Skip to content

Commit cea23c7

Browse files
committed
rsa: add doc tests for new Signature implementation
Signed-off-by: Dmitry Baryshkov <[email protected]>
1 parent 90f5dbf commit cea23c7

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/lib.rs

+48
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,54 @@
4747
//! assert_eq!(&data[..], &dec_data[..]);
4848
//! ```
4949
//!
50+
//! Using PKCS1v15 signatures
51+
//! ```
52+
//! use rsa::{Hash, RsaPrivateKey};
53+
//! use rsa::pkcs1v15::{SigningKey, VerifyingKey};
54+
//! use sha2::{Digest, Sha256};
55+
//! use signature::{RandomizedSigner, Signature, Verifier};
56+
//!
57+
//! let mut rng = rand::thread_rng();
58+
//!
59+
//! let bits = 2048;
60+
//! let private_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
61+
//! let signing_key = SigningKey::new_with_hash(private_key, Hash::SHA2_256);
62+
//! let verifying_key: VerifyingKey = (&signing_key).into();
63+
//!
64+
//! // Sign
65+
//! let data = b"hello world";
66+
//! let digest = Sha256::digest(data).to_vec();
67+
//! let signature = signing_key.sign_with_rng(&mut rng, &digest);
68+
//! assert_ne!(signature.as_bytes(), data);
69+
//!
70+
//! // Verify
71+
//! verifying_key.verify(&digest, &signature).expect("failed to verify");
72+
//! ```
73+
//!
74+
//! Using PSS signatures
75+
//! ```
76+
//! use rsa::{Hash, RsaPrivateKey};
77+
//! use rsa::pss::{BlindedSigningKey, VerifyingKey};
78+
//! use sha2::{Digest, Sha256};
79+
//! use signature::{RandomizedSigner, Signature, Verifier};
80+
//!
81+
//! let mut rng = rand::thread_rng();
82+
//!
83+
//! let bits = 2048;
84+
//! let private_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
85+
//! let signing_key = BlindedSigningKey::new(private_key, Box::new(Sha256::new()));
86+
//! let verifying_key: VerifyingKey = (&signing_key).into();
87+
//!
88+
//! // Sign
89+
//! let data = b"hello world";
90+
//! let digest = Sha256::digest(data).to_vec();
91+
//! let signature = signing_key.sign_with_rng(&mut rng, &digest);
92+
//! assert_ne!(signature.as_bytes(), data);
93+
//!
94+
//! // Verify
95+
//! verifying_key.verify(&digest, &signature).expect("failed to verify");
96+
//! ```
97+
//!
5098
//! ## PKCS#1 RSA Key Encoding
5199
//!
52100
//! PKCS#1 is a legacy format for encoding RSA keys as binary (DER) or text

0 commit comments

Comments
 (0)