|
47 | 47 | //! assert_eq!(&data[..], &dec_data[..]);
|
48 | 48 | //! ```
|
49 | 49 | //!
|
| 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 | +//! |
50 | 98 | //! ## PKCS#1 RSA Key Encoding
|
51 | 99 | //!
|
52 | 100 | //! PKCS#1 is a legacy format for encoding RSA keys as binary (DER) or text
|
|
0 commit comments