From 797faa9d44c576473ecf6015fe51d77a3f1b8d1e Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Wed, 16 Apr 2025 13:09:20 +0300 Subject: feat(guests): Add rsa benchmark --- guests/rsa/src/lib.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 guests/rsa/src/lib.rs (limited to 'guests/rsa/src') diff --git a/guests/rsa/src/lib.rs b/guests/rsa/src/lib.rs new file mode 100644 index 0000000..b2067cf --- /dev/null +++ b/guests/rsa/src/lib.rs @@ -0,0 +1,27 @@ +#![cfg_attr(feature = "no_std", no_std)] + +#[cfg(feature = "no_std")] +extern crate alloc; +#[cfg(feature = "no_std")] +use alloc::vec::Vec; + +use sha2::{Digest, Sha256}; + +#[cfg(feature = "sp1")] +use rsa_sp1::{pkcs8::DecodePublicKey, Pkcs1v15Sign, RsaPublicKey}; + +#[cfg(not(feature = "sp1"))] +use rsa::{pkcs8::DecodePublicKey, Pkcs1v15Sign, RsaPublicKey}; + +#[guests_macro::proving_entrypoint] +pub fn main(public_key: Vec, message: String, signature: Vec) -> bool { + let public_key = RsaPublicKey::from_public_key_der(&public_key).unwrap(); + + let mut hasher = Sha256::new(); + hasher.update(message); + let hashed_msg = hasher.finalize(); + + public_key + .verify(Pkcs1v15Sign::new::(), &hashed_msg, &signature) + .is_ok() +} -- cgit v1.2.3