Expand description
RSA-FDH is a is provably secure blind-signing signature scheme that uses RSA and a full domain hash.
This crate implements two RSA-FDH signature schemes:
-
A regular signature scheme with Full Domain Hash (FDH) padding.
-
A blind signature scheme that that supports blind-signing to keep the message being signed secret from the signer.
§Regular signature scheme example
use rsa::{RSAPrivateKey, RSAPublicKey};
use sha2::{Sha256, Digest};
// Set up rng and message
let mut rng = rand::thread_rng();;
let message = b"NEVER GOING TO GIVE YOU UP";
// Create the keys
let signer_priv_key = RSAPrivateKey::new(&mut rng, 2048).unwrap();
let signer_pub_key: RSAPublicKey = signer_priv_key.clone().into();
// Apply a standard digest to the message
let mut hasher = Sha256::new();
hasher.update(message);
let digest = hasher.finalize();
// Obtain a signture
let signature = rsa_fdh::sign::<Sha256, _>(&mut rng, &signer_priv_key, &digest).unwrap();
// Verify the signature
let ok = rsa_fdh::verify::<Sha256, _>(&signer_pub_key, &digest, &signature);
assert!(ok.is_ok());
Modules§
- A blind signature scheme that that supports blind-signing to keep the message being signed secret from the signer.
Enums§
- Error types
Functions§
- Sign a message.
- Verify a signature.