[][src]Crate rsa

RSA Implementation in pure Rust.

Usage

extern crate rsa;
extern crate rand;

use rsa::{PublicKey, RSAPrivateKey, PaddingScheme};
use rand::rngs::OsRng;

let mut rng = OsRng::new().expect("no secure randomness available");
let bits = 2048;
let key = RSAPrivateKey::new(&mut rng, bits).expect("failed to generate a key");

// Encrypt
let data = b"hello world";
let enc_data = key.encrypt(&mut rng, PaddingScheme::PKCS1v15, &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = key.decrypt(PaddingScheme::PKCS1v15, &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

Re-exports

pub use self::padding::PaddingScheme;

Modules

algorithms

Useful algorithms.

errors

Error types.

hash

Supported hash functions.

padding

Supported padding schemes.

Structs

RSAPrivateKey

Represents a whole RSA key, public and private parts.

RSAPublicKey

Represents the public part of an RSA key.

Traits

PublicKey

Generic trait for operations on a public key.