diff --git a/Cargo.lock b/Cargo.lock index 9812ca093ff..72d701349ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3502,7 +3502,7 @@ dependencies = [ "ethrex-trie", "ethrex-vm", "hex", - "lambdaworks-crypto 0.11.0", + "lambdaworks-crypto 0.13.0", "rkyv", "secp256k1", "serde", @@ -3558,7 +3558,7 @@ dependencies = [ "ethrex-rlp", "hex", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lambdaworks-math 0.11.0", + "lambdaworks-math 0.13.0", "lazy_static", "malachite 0.6.1", "p256", @@ -5546,11 +5546,12 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec4b462bbec171e1af821f3d9fff72e17de93b3d1022f29aa70fec8262c1cee" +version = "0.12.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" dependencies = [ - "lambdaworks-math 0.11.0", + "lambdaworks-math 0.12.0", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "sha2", "sha3", @@ -5558,10 +5559,11 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.12.0" -source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ - "lambdaworks-math 0.12.0", + "lambdaworks-math 0.13.0", "rand 0.8.5", "rand_chacha 0.3.1", "serde", @@ -5571,22 +5573,26 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708d148956bcdc21ae5c432b4e20bbaa26fd68d5376a3a6c461f41095abea0ba" +version = "0.12.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" dependencies = [ - "rayon", + "getrandom 0.2.16", + "rand 0.8.5", "serde", "serde_json", ] [[package]] name = "lambdaworks-math" -version = "0.12.0" -source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ "getrandom 0.2.16", + "num-bigint 0.4.6", + "num-traits", "rand 0.8.5", + "rayon", "serde", "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index 7fba81ef907..c7edde91ad2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,7 +109,7 @@ futures = "0.3.31" aligned-sdk = { git = "https://github.com/yetanotherco/aligned_layer", rev = "c60d7eb147edbdf12bb7a7c6e92ec178d9f8da23" } spawned-concurrency = "0.4.2" spawned-rt = "0.4.2" -lambdaworks-crypto = "0.11.0" +lambdaworks-crypto = "0.13.0" tui-logger = { version = "0.17.3", features = ["tracing-support"] } crossbeam = "0.8.4" rayon = "1.10.0" diff --git a/crates/l2/prover/src/guest_program/src/risc0/Cargo.lock b/crates/l2/prover/src/guest_program/src/risc0/Cargo.lock index d88f52ad3bb..57ba0cc9285 100644 --- a/crates/l2/prover/src/guest_program/src/risc0/Cargo.lock +++ b/crates/l2/prover/src/guest_program/src/risc0/Cargo.lock @@ -1569,8 +1569,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1990,11 +1992,13 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec4b462bbec171e1af821f3d9fff72e17de93b3d1022f29aa70fec8262c1cee" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ "lambdaworks-math", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "sha2", "sha3", @@ -2002,10 +2006,14 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708d148956bcdc21ae5c432b4e20bbaa26fd68d5376a3a6c461f41095abea0ba" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ + "getrandom 0.2.16", + "num-bigint 0.4.6", + "num-traits", + "rand 0.8.5", "rayon", "serde", "serde_json", diff --git a/crates/l2/prover/src/guest_program/src/sp1/Cargo.lock b/crates/l2/prover/src/guest_program/src/sp1/Cargo.lock index 0cc858d5400..924bc4ff1a3 100644 --- a/crates/l2/prover/src/guest_program/src/sp1/Cargo.lock +++ b/crates/l2/prover/src/guest_program/src/sp1/Cargo.lock @@ -1320,8 +1320,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1726,11 +1728,13 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec4b462bbec171e1af821f3d9fff72e17de93b3d1022f29aa70fec8262c1cee" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ "lambdaworks-math", + "rand", + "rand_chacha", "serde", "sha2", "sha3", @@ -1738,10 +1742,14 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708d148956bcdc21ae5c432b4e20bbaa26fd68d5376a3a6c461f41095abea0ba" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ + "getrandom 0.2.16", + "num-bigint 0.4.6", + "num-traits", + "rand", "rayon", "serde", "serde_json", diff --git a/crates/l2/tee/quote-gen/Cargo.lock b/crates/l2/tee/quote-gen/Cargo.lock index e39b4d47898..bc7b5acc7b8 100644 --- a/crates/l2/tee/quote-gen/Cargo.lock +++ b/crates/l2/tee/quote-gen/Cargo.lock @@ -2228,7 +2228,7 @@ dependencies = [ "ethrex-trie", "ethrex-vm", "hex", - "lambdaworks-crypto 0.11.0", + "lambdaworks-crypto 0.13.0", "rkyv", "secp256k1", "serde 1.0.228", @@ -2282,7 +2282,7 @@ dependencies = [ "ethrex-crypto", "ethrex-rlp", "k256", - "lambdaworks-math 0.11.0", + "lambdaworks-math 0.13.0", "lazy_static", "malachite", "p256", @@ -3698,11 +3698,12 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec4b462bbec171e1af821f3d9fff72e17de93b3d1022f29aa70fec8262c1cee" +version = "0.12.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" dependencies = [ - "lambdaworks-math 0.11.0", + "lambdaworks-math 0.12.0", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde 1.0.228", "sha2", "sha3", @@ -3710,10 +3711,11 @@ dependencies = [ [[package]] name = "lambdaworks-crypto" -version = "0.12.0" -source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ - "lambdaworks-math 0.12.0", + "lambdaworks-math 0.13.0", "rand 0.8.5", "rand_chacha 0.3.1", "serde 1.0.228", @@ -3723,22 +3725,26 @@ dependencies = [ [[package]] name = "lambdaworks-math" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708d148956bcdc21ae5c432b4e20bbaa26fd68d5376a3a6c461f41095abea0ba" +version = "0.12.0" +source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" dependencies = [ - "rayon", + "getrandom 0.2.16", + "rand 0.8.5", "serde 1.0.228", "serde_json", ] [[package]] name = "lambdaworks-math" -version = "0.12.0" -source = "git+https://github.com/lambdaclass/lambdaworks.git?rev=5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b#5f8f2cfcc8a1a22f77e8dff2d581f1166eefb80b" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ "getrandom 0.2.16", + "num-bigint 0.4.6", + "num-traits", "rand 0.8.5", + "rayon", "serde 1.0.228", "serde_json", ] diff --git a/crates/vm/levm/Cargo.toml b/crates/vm/levm/Cargo.toml index 5d92465ef8d..0597a4a18b5 100644 --- a/crates/vm/levm/Cargo.toml +++ b/crates/vm/levm/Cargo.toml @@ -29,7 +29,7 @@ p256 = { version = "0.13.2", features = [ sha2 = "0.10.8" ripemd = "0.1.3" malachite = "0.6.1" -lambdaworks-math = "0.11.0" +lambdaworks-math = "0.13.0" bls12_381 = { git = "https://github.com/lambdaclass/bls12_381", branch = "expose-fp-struct", features = [ "groups", "bits", diff --git a/crates/vm/levm/src/precompiles.rs b/crates/vm/levm/src/precompiles.rs index 802f8851a0e..30f8c89c818 100644 --- a/crates/vm/levm/src/precompiles.rs +++ b/crates/vm/levm/src/precompiles.rs @@ -1057,8 +1057,10 @@ pub fn pairing_check(batch: &[(G1, G2)]) -> Result { valid_batch.push((g1, g2)); } let valid_batch_refs: Vec<_> = valid_batch.iter().map(|(p1, p2)| (p1, p2)).collect(); - let result = BN254AtePairing::compute_batch(&valid_batch_refs) - .map_err(|PairingError::PointNotInSubgroup| PrecompileError::PointNotInSubgroup)?; + let result = BN254AtePairing::compute_batch(&valid_batch_refs).map_err(|e| match e { + PairingError::PointNotInSubgroup => PrecompileError::PointNotInSubgroup, + PairingError::DivisionByZero => PrecompileError::InvalidPoint, + })?; Ok(result == QuadraticExtensionFieldElement::one()) } @@ -1336,7 +1338,9 @@ pub fn bls12_g1add( // equation holds since it has no solutions for an `x` coordinate where `y` is // zero within the prime field space. let x_squared = p0.0.square(); - let s = (x_squared.double() + &x_squared + BLS12381Curve::a()) / p0.1.double(); + let s = ((x_squared.double() + &x_squared + BLS12381Curve::a()) + / p0.1.double()) + .map_err(|_e| VMError::Internal(InternalError::DivisionByZero))?; let x = s.square() - p0.0.double(); let y = s * (p0.0 - &x) - p0.1; @@ -1349,7 +1353,8 @@ pub fn bls12_g1add( // The division may panic only when `t` has no inverse. This can only happen if // `p0.0 == p1.0`, for which the defining equation gives us two possible values for // `p0.1` and `p1.1`, which are 2 and -2. Both cases have already been handled before. - let l = (&p0.1 - p1.1) / (&p0.0 - &p1.0); + let l = ((&p0.1 - p1.1) / (&p0.0 - &p1.0)) + .map_err(|_e| VMError::Internal(InternalError::DivisionByZero))?; let x = l.square() - &p0.0 - p1.0; let y = l * (p0.0 - &x) - p0.1; @@ -1500,8 +1505,9 @@ pub fn bls12_g2add( // equation holds since it has no solutions for an `x` coordinate where `y` is // zero within the prime field space. let x_squared = p0.0.square(); - let s = - (x_squared.double() + &x_squared + BLS12381TwistCurve::a()) / p0.1.double(); + let s = ((x_squared.double() + &x_squared + BLS12381TwistCurve::a()) + / p0.1.double()) + .map_err(|_e| VMError::Internal(InternalError::DivisionByZero))?; let x = s.square() - p0.0.double(); let y = s * (p0.0 - &x) - p0.1; @@ -1514,7 +1520,8 @@ pub fn bls12_g2add( // The division may panic only when `t` has no inverse. This can only happen if // `p0.0 == p1.0`, for which the defining equation gives us two possible values for // `p0.1` and `p1.1`, which are 2 and -2. Both cases have already been handled before. - let l = (&p0.1 - p1.1) / (&p0.0 - &p1.0); + let l = ((&p0.1 - p1.1) / (&p0.0 - &p1.0)) + .map_err(|_e| VMError::Internal(InternalError::DivisionByZero))?; let x = l.square() - &p0.0 - p1.0; let y = l * (p0.0 - &x) - p0.1; diff --git a/tooling/Cargo.toml b/tooling/Cargo.toml index baca13995d8..927aeb8418a 100644 --- a/tooling/Cargo.toml +++ b/tooling/Cargo.toml @@ -78,7 +78,7 @@ libsql = "0.9.10" futures = "0.3.31" spawned-concurrency = "0.4.2" spawned-rt = "0.4.2" -lambdaworks-crypto = "0.11.0" +lambdaworks-crypto = "0.13.0" tui-logger = { version = "0.17.3", features = ["tracing-support"] } crossbeam = "0.8.4" rayon = "1.10.0"