Skip to content

Conversation

@austinabell
Copy link

Draft PR until this is released into 1.2 -- as this is pointing to the git version

@austinabell
Copy link
Author

austinabell commented Dec 4, 2024

Running tests in zkvm using current main (533aff23f633c6102c961d47b9370ec96770de6d), most pass but one hits memory cap (might just be too many tests run and using bump alloc, but will check the specific failure to make sure not an edge case)

running 8 tests
test decode_rsa2048_priv_der ... ok
test decode_rsa2048_priv_pem ... ok
test decode_rsa2048_pub_der ... ok
test decode_rsa2048_pub_pem ... ok
test encode_rsa2048_priv_der ... ok
test encode_rsa2048_priv_pem ... ok
test encode_rsa2048_pub_der ... ok
test encode_rsa2048_pub_pem ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Running test in guest: /Users/austinabell/development/risc0/RustCrypto-RSA/target/riscv32im-risc0-zkvm-elf/debug/deps/pkcs1v15-d75b7fdbf54859c1 []

running 1 test
test signature_stringify ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Running test in guest: /Users/austinabell/development/risc0/RustCrypto-RSA/target/riscv32im-risc0-zkvm-elf/debug/deps/pkcs1-37c12db8e7c347cb []

running 16 tests
test decode_rsa2048_priv_der ... ok
test decode_rsa2048_priv_pem ... ok
test decode_rsa2048_pub_der ... ok
test decode_rsa2048_pub_pem ... ok
test decode_rsa4096_priv_der ... ok
test decode_rsa4096_priv_pem ... ok
test decode_rsa4096_pub_der ... ok
test decode_rsa4096_pub_pem ... ok
test encode_rsa2048_priv_der ... ok
test encode_rsa2048_priv_pem ... ok
test encode_rsa2048_pub_der ... ok
test encode_rsa2048_pub_pem ... ok
test encode_rsa4096_priv_der ... ok
test encode_rsa4096_priv_pem ... ok
test encode_rsa4096_pub_der ... ok
test encode_rsa4096_pub_pem ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Running test in guest: /Users/austinabell/development/risc0/RustCrypto-RSA/target/riscv32im-risc0-zkvm-elf/debug/deps/rsa-ad39eb3288bfe13d []

running 55 tests
test algorithms::generate::tests::key_generation_1024 ... ok
test algorithms::generate::tests::key_generation_128 ... ok
test algorithms::generate::tests::key_generation_multi_16_1024 ... ok
test algorithms::generate::tests::key_generation_multi_3_256 ... ok
test algorithms::generate::tests::key_generation_multi_4_64 ... ok
test algorithms::generate::tests::key_generation_multi_5_64 ... ok
test algorithms::generate::tests::key_generation_multi_8_576 ... ok
test algorithms::generate::tests::test_impossible_keys ... ok
test algorithms::pad::tests::test_left_pad ... ok
test algorithms::pkcs1v15::tests::test_non_zero_bytes ... ok
test algorithms::rsa::tests::recover_primes_works ... ok
test key::tests::build_key_from_p_q ... ok
test key::tests::build_key_from_primes ... ok
test key::tests::invalid_coeff_private_key_regression ... ok
test key::tests::key_generation_1024 ... ok
test key::tests::key_generation_128 ... ok
test key::tests::key_generation_multi_16_1024 ... ok
test key::tests::key_generation_multi_3_256 ... ok
test key::tests::key_generation_multi_4_64 ... ok
test key::tests::key_generation_multi_5_64 ... ok
test key::tests::key_generation_multi_8_576 ... ok
test key::tests::reject_oversized_private_key ... ok
test key::tests::test_from_into ... ok
test key::tests::test_negative_decryption_value ... ok
test oaep::tests::test_decrypt_oaep_invalid_hash ... ok
test oaep::tests::test_decrypt_oaep_invalid_hash_traits ... ok
test oaep::tests::test_encrypt_decrypt_oaep ... ok
test oaep::tests::test_encrypt_decrypt_oaep_traits ... ok
test pkcs1v15::tests::test_decrypt_pkcs1v15 ... ok
test pkcs1v15::tests::test_decrypt_pkcs1v15_traits ... ok
test pkcs1v15::tests::test_encrypt_decrypt_pkcs1v15 ... ok
test pkcs1v15::tests::test_encrypt_decrypt_pkcs1v15_traits ... ok
test pkcs1v15::tests::test_sign_pkcs1v15 ... ok
test pkcs1v15::tests::test_sign_pkcs1v15_digest_signer ... ok
test pkcs1v15::tests::test_sign_pkcs1v15_signer ... ok
test pkcs1v15::tests::test_sign_pkcs1v15_signer_sha2_256 ... ok
test pkcs1v15::tests::test_sign_pkcs1v15_signer_sha3_256 ... ok
test pkcs1v15::tests::test_unpadded_signature ... ok
test pkcs1v15::tests::test_unpadded_signature_hazmat ... ok
test pkcs1v15::tests::test_verify_pkcs1v15 ... ok
test pkcs1v15::tests::test_verify_pkcs1v15_digest_signer ... ok
test pkcs1v15::tests::test_verify_pkcs1v15_signer ... ok
Error: Guest panicked: Out of memory!
test pss::test::test_sign_and_verify_2049bit_key ...

@austinabell
Copy link
Author

Update on the above, running tests without that test passes all, and running just that test in isolation works fine. It's just a very large execution with a profile that looks like this:
Screenshot 2024-12-05 at 12 44 37 PM

(not sure if a use case we want to focus on adding a precompile for)

@austinabell austinabell changed the base branch from risc0 to release-v0.9.6 December 9, 2024 21:53
@austinabell austinabell marked this pull request as ready for review December 9, 2024 21:59
@austinabell austinabell merged commit cb42fd2 into release-v0.9.6 Dec 10, 2024
@flaub flaub deleted the austin/bigint2 branch December 10, 2024 18:20
austinabell added a commit that referenced this pull request Dec 13, 2024
Use the new RSA extern (#2)

---------

Co-authored-by: Frank Laub <github@frank.laub.io>
Use risc0-bigint2 (#3)

* Use risc0-bigint2

* Use num-bigint-dig feature

* Update lockfile

* Update ref

* Update ref

* Update git ref
Update bigint2 impl with 4096 bit support (#4)

* update acceleration to use latest version of bigint2 (with 4096 bit support)

* bump version

* bump to 1.2
austinabell added a commit that referenced this pull request Dec 13, 2024
* Add Zirgen-based acceleration (#1)

Use the new RSA extern (#2)

---------

Co-authored-by: Frank Laub <github@frank.laub.io>
Use risc0-bigint2 (#3)

* Use risc0-bigint2

* Use num-bigint-dig feature

* Update lockfile

* Update ref

* Update ref

* Update git ref
Update bigint2 impl with 4096 bit support (#4)

* update acceleration to use latest version of bigint2 (with 4096 bit support)

* bump version

* bump to 1.2

* gate prop tests behind cfg to enable cargo risczero test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants