Difference between revisions of "EVP"
(Initial EVP page)
Revision as of 22:29, 27 February 2013
The EVP functions provide a high level interface to OpenSSL cryptographic functions.
They provide the following features:
- A single consistent interface regardless of the underlying algorithm or mode
- Support for an extensive range of algorithms
- Encryption/Decryption using both symmetric and asymmetric algorithms
- Key derivation
- Secure Hash functions
- Message Authentication Codes
- Support for external crypto engines
Working with EVP_PKEYs
EVP_PKEY objects are used to store a public key and (optionally) a private key, along with an associated algorithm and parameters. They are also capable of storing symmetric MAC keys.
The following EVP_PKEY types are supported:
- EVP_PKEY_EC: Elliptic Curve keys (for ECDSA and ECDH) - Supports sign/verify operations, and Key derivation
- EVP_PKEY_RSA: RSA - Supports sign/verify and encrypt/decrypt
- EVP_PKEY_DH: Diffie Hellman - for key derivation
- EVP_PKEY_DSA: DSA keys for sign/verify
- EVP_PKEY_HMAC: An HMAC key for generating a Message Authentication Code
- EVP_PKEY_CMAC: A CMAC key for generating a Message Authentication Code
Working with Algorithms and Modes
Need content here