Struct openssl::crypto::pkey::PKey [] [src]

pub struct PKey {
    // some fields omitted
}

Methods

impl PKey

Represents a public key, optionally with a private key attached.

fn new() -> PKey

fn from_handle(handle: *mut EVP_PKEY, parts: Parts) -> PKey

fn private_key_from_pem<R>(reader: &mut R) -> Result<PKey, SslError> where R: Read

Reads private key from PEM, takes ownership of handle

fn public_key_from_pem<R>(reader: &mut R) -> Result<PKey, SslError> where R: Read

Reads public key from PEM, takes ownership of handle

fn gen(&mut self, keysz: usize)

fn save_pub(&self) -> Vec<u8>

Returns a DER serialized form of the public key, suitable for load_pub().

fn load_pub(&mut self, s: &[u8])

Loads a DER serialized form of the public key, as produced by save_pub().

fn save_priv(&self) -> Vec<u8>

Returns a serialized form of the public and private keys, suitable for load_priv().

fn load_priv(&mut self, s: &[u8])

Loads a serialized form of the public and private keys, as produced by save_priv().

fn write_pem<W: Write>(&self, writer: &mut W) -> Result<(), SslError>

Stores private key as a PEM

fn write_pub_pem<W: Write>(&self, writer: &mut W) -> Result<(), SslError>

Stores public key as a PEM

fn size(&self) -> usize

Returns the size of the public key modulus.

fn can(&self, r: Role) -> bool

Returns whether this pkey object can perform the specified role.

fn max_data(&self) -> usize

Returns the maximum amount of data that can be encrypted by an encrypt() call.

fn private_encrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

fn public_encrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

fn private_decrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

fn public_decrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

fn encrypt(&self, s: &[u8]) -> Vec<u8>

Encrypts data with the public key, using OAEP padding, returning the encrypted data. The supplied data must not be larger than max_data().

fn encrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

Encrypts data with the public key, using provided padding, returning the encrypted data. The supplied data must not be larger than max_data().

fn public_encrypt(&self, s: &[u8]) -> Vec<u8>

Encrypts data with the public key, using OAEP padding, returning the encrypted data. The supplied data must not be larger than max_data().

fn public_decrypt(&self, s: &[u8]) -> Vec<u8>

Decrypts data with the public key, using PKCS1v15 padding, returning the decrypted data.

fn decrypt(&self, s: &[u8]) -> Vec<u8>

Decrypts data with the private key, expecting OAEP padding, returning the decrypted data.

fn decrypt_with_padding(&self, s: &[u8], padding: EncryptionPadding) -> Vec<u8>

Decrypts data with the private key, using provided padding, returning the encrypted data. The supplied data must not be larger than max_data().

fn private_decrypt(&self, s: &[u8]) -> Vec<u8>

Decrypts data with the private key, expecting OAEP padding, returning the decrypted data.

fn private_encrypt(&self, s: &[u8]) -> Vec<u8>

Encrypts data with the private key, using PKCS1v15 padding, returning the encrypted data. The supplied data must not be larger than max_data().

fn sign(&self, s: &[u8]) -> Vec<u8>

Signs data, using OpenSSL's default scheme and adding sha256 ASN.1 information to the signature. The bytes to sign must be the result of a sha256 hashing; returns the signature.

fn verify(&self, h: &[u8], s: &[u8]) -> bool

Verifies a signature s (using OpenSSL's default scheme and sha256) on the SHA256 hash of a message. Returns true if the signature is valid, and false otherwise.

fn sign_with_hash(&self, s: &[u8], hash: Type) -> Vec<u8>

Signs data, using OpenSSL's default scheme and add ASN.1 information for the given hash type to the signature. The bytes to sign must be the result of this type of hashing; returns the signature.

fn verify_with_hash(&self, h: &[u8], s: &[u8], hash: Type) -> bool

unsafe fn get_handle(&self) -> *mut EVP_PKEY

fn public_eq(&self, other: &PKey) -> bool

Trait Implementations

impl Drop for PKey

fn drop(&mut self)