106 Commits

Author SHA1 Message Date
Fredrik Dahlgren
27e6311a61 Bumped versions 2022-09-13 09:22:33 +02:00
Fredrik Dahlgren
593e357c4e Improved handling of custom templates 2022-09-13 09:13:58 +02:00
Fredrik Dahlgren
f66900dc93 Updated warning for binary conversion analysis pass 2022-09-12 22:24:12 +02:00
Fredrik Dahlgren
3cdd3c3fc5 Update to support Circom 2.0.8 2022-09-12 21:59:23 +02:00
Fredrik Dahlgren
ff820f1e0c Bumped package versions 2022-09-12 13:53:57 +02:00
Fredrik Dahlgren
1e5a4a6a25 Bumped circomspect-program-structure version 2022-09-12 13:51:01 +02:00
Fredrik Dahlgren
3a2cfd3b03 Added metadata to Cargo.toml 2022-09-12 11:37:56 +02:00
Fredrik Dahlgren
efcf008341 Fixed test failures due to renaming 2022-09-12 11:26:01 +02:00
Fredrik Dahlgren
92a73d7816 Renamed internal crates to avoid crates.io namespace collisions 2022-09-12 11:15:37 +02:00
Fredrik Dahlgren
27dd74dae5 Added version information for internal crates to Cargo.toml 2022-09-12 11:02:39 +02:00
Fredrik Dahlgren
9cf62d5966 Better output from side-effect analysis 2022-09-12 10:50:24 +02:00
Fredrik Dahlgren
5770f1bcf6 Track original names in side-effect analysis 2022-09-12 09:30:28 +02:00
Fredrik Dahlgren
3cc44f4560 Added ReportWriter
This change also adds the verbose output options to the CLI.
2022-09-12 09:22:15 +02:00
Fredrik Dahlgren
31cb9924f8 Fixed clippy suggestions 2022-09-08 12:11:00 +02:00
Fredrik Dahlgren
65793b9717 Added degree analysis to signal assignment analysis pass 2022-09-07 19:25:54 +02:00
Fredrik Dahlgren
91b860945e Refactored side-effect analysis 2022-09-07 19:25:24 +02:00
Fredrik Dahlgren
b476ed3095 Exit early for functions 2022-09-07 19:24:59 +02:00
Fredrik Dahlgren
5edf136e4a Edited comments 2022-09-07 19:23:20 +02:00
Fredrik Dahlgren
149f64282d Switched rustfmt to more sensible defaults 2022-09-02 14:08:50 +02:00
Fredrik Dahlgren
4fed2c5078 Fixed clippy lints 2022-09-01 15:09:46 +02:00
Fredrik Dahlgren
993318d6fe Added definition complexity pass 2022-09-01 13:55:44 +02:00
Fredrik Dahlgren
ff34a68ffb Updated warning message 2022-09-01 13:55:25 +02:00
Fredrik Dahlgren
7c01140bac Completely rewrote side-effect analysis 2022-09-01 13:55:01 +02:00
Fredrik Dahlgren
de905848b0 Added constraint analysis to crate 2022-08-31 12:33:31 +02:00
Fredrik Dahlgren
e27834eef5 Updated taint analysis test case 2022-08-31 12:33:10 +02:00
Fredrik Dahlgren
d0f47acd29 Rewrote taint analysis 2022-08-31 12:29:53 +02:00
Fredrik Dahlgren
a34e505af6 Added ConstraintAnalysis 2022-08-31 11:31:56 +02:00
Fredrik Dahlgren
3c99485133 Updated analyses to handle IR declarations 2022-08-31 11:29:19 +02:00
Fredrik Dahlgren
a74ce26746 Bug fix in side-effect analysis 2022-08-25 12:05:04 +02:00
Fredrik Dahlgren
254b7844c6 Updated missing side-effect warning message 2022-08-25 11:13:49 +02:00
Fredrik Dahlgren
7315d9dd3a Ran cargo fmt 2022-08-25 10:38:18 +02:00
Fredrik Dahlgren
252224c336 Added side-effects analysis and removed dead assignment analysis 2022-08-25 09:53:41 +02:00
Fredrik Dahlgren
6a362c39c4 Renamed VariableUse methods 2022-08-25 09:52:42 +02:00
Fredrik Dahlgren
5da6379824 Added Access and Update expression nodes to IR 2022-08-24 11:06:42 +02:00
Fredrik Dahlgren
0e3c3c823c Added lint for non-strict Num2Bits and Bits2Num 2022-08-05 22:56:38 +02:00
Fredrik Dahlgren
4935260153 Updated signal assignment lint
The resulting report now contains all constraints for the assigned signal.
2022-08-05 16:22:47 +02:00
Fredrik Dahlgren
10bb695aac Updated signal assignments lint to handle accesses 2022-08-01 22:07:05 +02:00
Fredrik Dahlgren
0ff0c83a62 Added missing minus sign to note 2022-08-01 22:03:10 +02:00
Fredrik Dahlgren
143dfd69be Updated VariableMeta to take accesses into account 2022-07-31 22:11:56 +02:00
Fredrik Dahlgren
a295f944dc Added detection of unused function/template parameters 2022-07-12 20:31:03 +02:00
Fredrik Dahlgren
cdf4e63e64 Ran cargo fmt 2022-07-03 16:27:17 +02:00
Fredrik Dahlgren
0b0fb3eee5 Added bitwise complement analysis pass 2022-07-03 16:11:26 +02:00
Fredrik Dahlgren
a068af8c80 Added variable accesses to field arithmetic analysis pass 2022-07-03 16:10:36 +02:00
Fredrik Dahlgren
0b389c4d08 Add unit tests to analysis passes 2022-07-02 09:43:45 +02:00
Fredrik Dahlgren
a277368896 Changed Cfg::into_ssa to return self 2022-07-02 09:40:45 +02:00
Fredrik Dahlgren
97e243d91b Don't version arrays. 2022-07-01 12:13:08 +02:00
Fredrik Dahlgren
a9ccef75da Removed Declaration enum variant from IR.
Declarations are now tracked by the CFG header. The set of declared variables is obtained by calling `Cfg::get_variables()`, and the declaration for variable `v` can be obtained by calling `Cfg::get_declaration(v)`.
2022-05-27 14:33:10 +02:00
Fredrik Dahlgren
552464b334 Fixed Clippy lints. 2022-05-27 10:02:45 +02:00
Fredrik Dahlgren
fddc5aebbf Replaced quotes with backticks in log messages. 2022-05-27 08:53:26 +02:00
Fredrik Dahlgren
3fed5bc136 Implemented constant value propagation
Added constant value propagation for expressions. This is used to implement the constant conditional analysis pass.
2022-05-27 08:46:39 +02:00