OpenVPN
Macros | Typedefs | Functions
crypto_openssl.h File Reference
#include <openssl/evp.h>
#include <openssl/hmac.h>
#include <openssl/md5.h>
#include <openssl/sha.h>
Include dependency graph for crypto_openssl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define OPENVPN_MAX_IV_LENGTH   EVP_MAX_IV_LENGTH
 Maximum length of an IV. More...
 
#define OPENVPN_MODE_CBC   EVP_CIPH_CBC_MODE
 Cipher is in CBC mode. More...
 
#define OPENVPN_MODE_OFB   EVP_CIPH_OFB_MODE
 Cipher is in OFB mode. More...
 
#define OPENVPN_MODE_CFB   EVP_CIPH_CFB_MODE
 Cipher is in CFB mode. More...
 
#define OPENVPN_OP_ENCRYPT   1
 Cipher should encrypt. More...
 
#define OPENVPN_OP_DECRYPT   0
 Cipher should decrypt. More...
 
#define DES_KEY_LENGTH   8
 
#define MD4_DIGEST_LENGTH   16
 
#define crypto_msg(flags, ...)
 Retrieve any OpenSSL errors, then print the supplied error message. More...
 

Typedefs

typedef EVP_CIPHER cipher_kt_t
 Generic cipher key type context. More...
 
typedef EVP_MD md_kt_t
 Generic message digest key type context. More...
 
typedef EVP_CIPHER_CTX cipher_ctx_t
 Generic cipher context. More...
 
typedef EVP_MD_CTX md_ctx_t
 Generic message digest context. More...
 
typedef HMAC_CTX hmac_ctx_t
 Generic HMAC context. More...
 

Functions

void crypto_print_openssl_errors (const unsigned int flags)
 Retrieve any occurred OpenSSL errors and print those errors. More...
 
static bool cipher_kt_var_key_size (const cipher_kt_t *cipher)
 

Macro Definition Documentation

◆ crypto_msg

#define crypto_msg (   flags,
  ... 
)
Value:
do { \
crypto_print_openssl_errors(nonfatal(flags)); \
msg((flags), __VA_ARGS__); \
} while (false)
list flags
static unsigned int nonfatal(const unsigned int err)
Convert fatal errors to nonfatal, don&#39;t touch other errors.
Definition: error.h:396

Retrieve any OpenSSL errors, then print the supplied error message.

This is just a convenience wrapper for often occurring situations.

Parameters
flagsFlags to indicate error type and priority.
formatFormat string to print.
formatargs (optional) arguments for the format string.

Definition at line 98 of file crypto_openssl.h.

Referenced by backend_tls_ctx_reload_crl(), bio_read(), bio_write(), cipher_ctx_init(), cipher_ctx_update(), cipher_ctx_update_ad(), cipher_kt_get(), crypto_pem_decode(), get_highest_preference_tls_cipher(), key_des_check(), key_state_ssl_init(), md_kt_get(), rand_bytes(), show_available_curves(), show_available_tls_ciphers_list(), tls_ctx_add_extra_certs(), tls_ctx_client_new(), tls_ctx_load_ca(), tls_ctx_load_cert_file(), tls_ctx_load_cryptoapi(), tls_ctx_load_dh_params(), tls_ctx_load_ecdh_params(), tls_ctx_load_extra_certs(), tls_ctx_load_pkcs12(), tls_ctx_load_priv_file(), tls_ctx_restrict_ciphers(), tls_ctx_restrict_ciphers_tls13(), tls_ctx_server_new(), tls_ctx_use_management_external_key(), and tls_verify_crl_missing().

◆ DES_KEY_LENGTH

#define DES_KEY_LENGTH   8

Definition at line 77 of file crypto_openssl.h.

◆ MD4_DIGEST_LENGTH

#define MD4_DIGEST_LENGTH   16

Definition at line 78 of file crypto_openssl.h.

◆ OPENVPN_MAX_IV_LENGTH

#define OPENVPN_MAX_IV_LENGTH   EVP_MAX_IV_LENGTH

Maximum length of an IV.

Definition at line 53 of file crypto_openssl.h.

◆ OPENVPN_MODE_CBC

#define OPENVPN_MODE_CBC   EVP_CIPH_CBC_MODE

Cipher is in CBC mode.

Definition at line 56 of file crypto_openssl.h.

◆ OPENVPN_MODE_CFB

#define OPENVPN_MODE_CFB   EVP_CIPH_CFB_MODE

Cipher is in CFB mode.

Definition at line 62 of file crypto_openssl.h.

◆ OPENVPN_MODE_OFB

#define OPENVPN_MODE_OFB   EVP_CIPH_OFB_MODE

Cipher is in OFB mode.

Definition at line 59 of file crypto_openssl.h.

◆ OPENVPN_OP_DECRYPT

#define OPENVPN_OP_DECRYPT   0

Cipher should decrypt.

Definition at line 75 of file crypto_openssl.h.

◆ OPENVPN_OP_ENCRYPT

#define OPENVPN_OP_ENCRYPT   1

Cipher should encrypt.

Definition at line 72 of file crypto_openssl.h.

Typedef Documentation

◆ cipher_ctx_t

typedef EVP_CIPHER_CTX cipher_ctx_t

Generic cipher context.

Definition at line 44 of file crypto_openssl.h.

◆ cipher_kt_t

typedef EVP_CIPHER cipher_kt_t

Generic cipher key type context.

Definition at line 38 of file crypto_openssl.h.

◆ hmac_ctx_t

typedef HMAC_CTX hmac_ctx_t

Generic HMAC context.

Definition at line 50 of file crypto_openssl.h.

◆ md_ctx_t

typedef EVP_MD_CTX md_ctx_t

Generic message digest context.

Definition at line 47 of file crypto_openssl.h.

◆ md_kt_t

typedef EVP_MD md_kt_t

Generic message digest key type context.

Definition at line 41 of file crypto_openssl.h.

Function Documentation

◆ cipher_kt_var_key_size()

static bool cipher_kt_var_key_size ( const cipher_kt_t cipher)
inlinestatic

Definition at line 105 of file crypto_openssl.h.

◆ crypto_print_openssl_errors()

void crypto_print_openssl_errors ( const unsigned int  flags)

Retrieve any occurred OpenSSL errors and print those errors.

Note that this function uses the not thread-safe OpenSSL error API.

Parameters
flagsFlags to indicate error type and priority.

Definition at line 189 of file crypto_openssl.c.

References D_CRYPT_ERRORS, and msg.