From 00eaa91db598ad6ebe57024182e93bb82c3d75a3 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Mon, 20 Nov 2023 13:53:51 -0700 Subject: [PATCH] README.md: use `? instead of `expect` in example (#385) Using `?` encourages users to properly handle errors rather than panicking. --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1256e965..371c9fe6 100644 --- a/README.md +++ b/README.md @@ -12,21 +12,24 @@ A portable RSA implementation in pure Rust. ## Example ```rust +# fn main() -> Result<(), rsa::Error> { use rsa::{Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey}; let mut rng = rand::thread_rng(); let bits = 2048; -let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key"); +let priv_key = RsaPrivateKey::new(&mut rng, bits)?; let pub_key = RsaPublicKey::from(&priv_key); // Encrypt let data = b"hello world"; -let enc_data = pub_key.encrypt(&mut rng, Pkcs1v15Encrypt, &data[..]).expect("failed to encrypt"); +let enc_data = pub_key.encrypt(&mut rng, Pkcs1v15Encrypt, &data[..])?; assert_ne!(&data[..], &enc_data[..]); // Decrypt -let dec_data = priv_key.decrypt(Pkcs1v15Encrypt, &enc_data).expect("failed to decrypt"); +let dec_data = priv_key.decrypt(Pkcs1v15Encrypt, &enc_data)?; assert_eq!(&data[..], &dec_data[..]); +# Ok(()) +# } ``` > **Note:** If you encounter unusually slow key generation time while using `RsaPrivateKey::new` you can try to compile in release mode or add the following to your `Cargo.toml`. Key generation is much faster when building with higher optimization levels, but this will increase the compile time a bit.