OpenBSD manual page server

Manual Page Search Parameters

EVP(3) Library Functions Manual EVP(3)

evphigh-level cryptographic functions

#include <openssl/evp.h>

The EVP library provides a high-level interface to cryptographic functions. The abbreviation “EVP” is intended to mean “EnVeloPe” in the sense of “wrapper library”. It is not related to the technical meaning of the term “envelope” in contexts like CMS_encrypt(3), EVP_SealInit(3), PKCS7_encrypt(3), or SMIME_write_ASN1(3).

EVP_SealInit(3) and EVP_OpenInit(3) provide public key encryption and decryption to implement digital "envelopes".

The EVP_DigestSignInit(3) and EVP_DigestVerifyInit(3) functions implement digital signatures and Message Authentication Codes (MACs). Also see the older EVP_SignInit(3) and EVP_VerifyInit(3) functions.

Symmetric encryption is available with the EVP_EncryptInit(3) functions. The EVP_DigestInit(3) functions provide message digests.

Authenticated encryption with additional data (AEAD) is available with the EVP_AEAD_CTX_init(3) functions.

The () functions provide a high-level interface to asymmetric algorithms. To create a new EVP_PKEY, see EVP_PKEY_new(3). EVP_PKEYs can be associated with a private key of a particular algorithm by using the functions described in the EVP_PKEY_set1_RSA(3) page, or new keys can be generated using EVP_PKEY_keygen(3). EVP_PKEYs can be compared using EVP_PKEY_cmp(3) or printed using EVP_PKEY_print_private(3).

The () functions support the full range of asymmetric algorithm operations:

The EVP_BytesToKey(3) function provides some limited support for password based encryption. Careful selection of the parameters will provide a PKCS#5 PBKDF1 compatible implementation. However, new applications should typically not use this (preferring, for example, PBKDF2 from PCKS#5).

The EVP_EncodeInit(3) family of functions provides base64 encoding and decoding.

ASN1_item_digest(3), ASN1_item_sign(3), BIO_f_cipher(3), BIO_f_md(3), CMAC_Init(3), CMS_encrypt(3), CMS_sign(3), crypto(3), d2i_PKCS8PrivateKey_bio(3), d2i_PrivateKey(3), EVP_AEAD_CTX_init(3), EVP_aes_128_cbc(3), EVP_BytesToKey(3), EVP_camellia_128_cbc(3), EVP_chacha20(3), EVP_CIPHER_CTX_ctrl(3), EVP_CIPHER_CTX_get_cipher_data(3), EVP_CIPHER_CTX_init(3), EVP_CIPHER_CTX_set_flags(3), EVP_CIPHER_do_all(3), EVP_CIPHER_meth_new(3), EVP_CIPHER_nid(3), EVP_des_cbc(3), EVP_DigestInit(3), EVP_DigestSignInit(3), EVP_DigestVerifyInit(3), EVP_EncodeInit(3), EVP_EncryptInit(3), EVP_MD_CTX_ctrl(3), EVP_MD_nid(3), EVP_OpenInit(3), EVP_PKCS82PKEY(3), EVP_PKEY_asn1_get_count(3), EVP_PKEY_cmp(3), EVP_PKEY_CTX_ctrl(3), EVP_PKEY_CTX_get_operation(3), EVP_PKEY_CTX_new(3), EVP_PKEY_CTX_set_hkdf_md(3), EVP_PKEY_decrypt(3), EVP_PKEY_derive(3), EVP_PKEY_encrypt(3), EVP_PKEY_get_default_digest_nid(3), EVP_PKEY_keygen(3), EVP_PKEY_new(3), EVP_PKEY_print_private(3), EVP_PKEY_set1_RSA(3), EVP_PKEY_sign(3), EVP_PKEY_size(3), EVP_PKEY_verify(3), EVP_PKEY_verify_recover(3), EVP_rc4(3), EVP_SealInit(3), EVP_sha1(3), EVP_sha3_224(3), EVP_SignInit(3), EVP_sm3(3), EVP_sm4_cbc(3), EVP_VerifyInit(3), HMAC(3), OCSP_basic_sign(3), OCSP_request_sign(3), PEM_get_EVP_CIPHER_INFO(3), PEM_read_bio_PrivateKey(3), PKCS12_create(3), PKCS5_PBKDF2_HMAC(3), PKCS7_encrypt(3), PKCS7_sign(3), RSA_pkey_ctx_ctrl(3), SSL_CTX_set_tlsext_ticket_key_cb(3), X509_ALGOR_set0(3), X509_check_private_key(3), X509_digest(3), X509_get_pubkey(3), X509_PUBKEY_set(3), X509_sign(3), X509_to_X509_REQ(3)

December 6, 2024 OpenBSD-current