Last active
May 23, 2022 11:11
-
-
Save nalinbhardwaj/5d7ce7307ffca6033ddec68ff4b24388 to your computer and use it in GitHub Desktop.
Minimal bug tester for circom known/unknown analysis panic: https://github.com/iden3/circom/pull/57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma circom 2.0.3; | |
template TestEllipticCurveScalarMultiplyUnequal(n, k, b, x, p){ | |
signal input in[2][k]; | |
signal output out[2][k]; | |
var Bits[250]; | |
var BitLength; | |
for (var i = 0; i < 250; i++) { | |
Bits[i] = (x >> i) & 1; | |
if(Bits[i] == 1){ | |
BitLength = i + 1; | |
} | |
} | |
signal R[BitLength][2][k]; | |
for(var i=BitLength - 1; i>=0; i--){ | |
if( i == BitLength - 1 ){ | |
for(var j=0; j<2; j++)for(var idx=0; idx<k; idx++) | |
R[i][j][idx] <== in[j][idx]; | |
}else{ | |
// E(Fp) has no points of order 2, so the only way 2*R[i+1] = O is if R[i+1] = O | |
for(var j=0; j<2; j++)for(var idx=0; idx<k; idx++) | |
R[i][j][idx] <== R[i+1][j][idx]; | |
} | |
} | |
for(var i=0; i<2; i++)for(var idx=0; idx<k; idx++) | |
out[i][idx] <== R[0][i][idx]; | |
} | |
template Tester(n, k) { | |
signal input in[2][k]; | |
var p[50] = [35747322042231467, 36025922209447795, 1084959616957103, 7925923977987733, 16551456537884751, 23443114579904617, 1829881462546425]; | |
var x_abs = 15132376222941642752; | |
var b = 4; | |
component xP = TestEllipticCurveScalarMultiplyUnequal(n, k, b, x_abs, p); | |
for(var i=0; i<2; i++)for(var idx=0; idx<k; idx++) | |
xP.in[i][idx] <== in[i][idx]; | |
} | |
component main { public [ in ] } = Tester(55, 7); | |
/* | |
{ | |
"in": [ | |
[ | |
"2009822906594717", | |
"20442509737585892", | |
"19998406545305169", | |
"3257293002446733", | |
"9524330011591718", | |
"22878868367690592", | |
"556175690519393" | |
], | |
[ | |
"5482847202149361", | |
"4456548308632729", | |
"21161498208540270", | |
"18926196016982932", | |
"18046733294100249", | |
"18607721477678504", | |
"984728513755546" | |
] | |
] | |
} | |
*/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
thread 'main' panicked at 'Method call in file type_analysis/src/analyzers/unknown_known_analysis.rs line 216', /Users/nibnalin/Documents/circom/program_structure/src/utils/environment.rs:192:9 | |
stack backtrace: | |
0: 0x10b876191 - std::backtrace_rs::backtrace::libunwind::trace::h310ac7aacd577bf8 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 | |
1: 0x10b876191 - std::backtrace_rs::backtrace::trace_unsynchronized::had33a05577c9d011 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 | |
2: 0x10b876191 - std::sys_common::backtrace::_print_fmt::hd9acce3818e5f1bc | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/sys_common/backtrace.rs:67:5 | |
3: 0x10b876191 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4edbddd26fc45697 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/sys_common/backtrace.rs:46:22 | |
4: 0x10b8929bb - core::fmt::write::h266c957f12b1655a | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/fmt/mod.rs:1163:17 | |
5: 0x10b87290a - std::io::Write::write_fmt::h65d4ee621e8d810d | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/io/mod.rs:1696:15 | |
6: 0x10b877d15 - std::sys_common::backtrace::_print::h9a5ef67cfa8b031e | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/sys_common/backtrace.rs:49:5 | |
7: 0x10b877d15 - std::sys_common::backtrace::print::h99dfbbc518768f3b | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/sys_common/backtrace.rs:36:9 | |
8: 0x10b877d15 - std::panicking::default_hook::{{closure}}::h5b4886cd9f93dfca | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:210:50 | |
9: 0x10b8778ff - std::panicking::default_hook::h986d152c7bd7e732 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:227:9 | |
10: 0x10b878400 - std::panicking::rust_panic_with_hook::h151f3b3bf37b4f17 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:624:17 | |
11: 0x10b877e9e - std::panicking::begin_panic_handler::{{closure}}::hf6660086d9ebd48c | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:521:13 | |
12: 0x10b876607 - std::sys_common::backtrace::__rust_end_short_backtrace::h34152178ea368a9a | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/sys_common/backtrace.rs:139:18 | |
13: 0x10b877e0a - rust_begin_unwind | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:517:5 | |
14: 0x10b8c1b3b - std::panicking::begin_panic_fmt::h0fe158f210bff25c | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:460:5 | |
15: 0x10b53e344 - program_structure::utils::environment::RawEnvironment<T,CC,SC,VC>::get_mut_variable_or_break::h70c10694635bb6d9 | |
16: 0x10b54896c - type_analysis::analyzers::unknown_known_analysis::analyze::h2fbbfda02f0ba15c | |
17: 0x10b5495fa - type_analysis::analyzers::unknown_known_analysis::analyze::iterate_statements::h521780550157b87b | |
18: 0x10b547db1 - type_analysis::analyzers::unknown_known_analysis::analyze::h2fbbfda02f0ba15c | |
19: 0x10b5495fa - type_analysis::analyzers::unknown_known_analysis::analyze::iterate_statements::h521780550157b87b | |
20: 0x10b547db1 - type_analysis::analyzers::unknown_known_analysis::analyze::h2fbbfda02f0ba15c | |
21: 0x10b547666 - type_analysis::analyzers::unknown_known_analysis::unknown_known_analysis::hc45ca09d6c0407de | |
22: 0x10b533474 - type_analysis::check_types::check_types::h895e7d7756dc359c | |
23: 0x10b45fd8e - circom::type_analysis_user::analyse_project::h27a511cc6457cb31 | |
24: 0x10b47172a - circom::main::h26e0bd380a334f61 | |
25: 0x10b45ee96 - std::sys_common::backtrace::__rust_begin_short_backtrace::h7968ddfd54d4d243 | |
26: 0x10b45eeac - std::rt::lang_start::{{closure}}::hd799e985cb306c25 | |
27: 0x10b875e7f - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h042bcf1eeb382749 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:259:13 | |
28: 0x10b875e7f - std::panicking::try::do_call::h58aa98b024209748 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:403:40 | |
29: 0x10b875e7f - std::panicking::try::hcfc7bc2af44bc609 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:367:19 | |
30: 0x10b875e7f - std::panic::catch_unwind::h88980c0eb694c110 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133:14 | |
31: 0x10b875e7f - std::rt::lang_start_internal::{{closure}}::hc07a850a9bc371e5 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/rt.rs:128:48 | |
32: 0x10b875e7f - std::panicking::try::do_call::h061d0434866b3d81 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:403:40 | |
33: 0x10b875e7f - std::panicking::try::h8d38c4e20b01fbf0 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:367:19 | |
34: 0x10b875e7f - std::panic::catch_unwind::hc41b36baa54eb12d | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133:14 | |
35: 0x10b875e7f - std::rt::lang_start_internal::h59ad95b3bebc83b2 | |
at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/rt.rs:128:20 | |
36: 0x10b4724d9 - _main | |
DONE (0s) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment