OpenVPN
Macros | Typedefs | Functions
crypto_openssl.h File Reference

Data Channel Cryptography OpenSSL-specific backend interface. More...

#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.
 
#define OPENVPN_MODE_CBC   EVP_CIPH_CBC_MODE
 Cipher is in CBC mode.
 
#define OPENVPN_MODE_OFB   EVP_CIPH_OFB_MODE
 Cipher is in OFB mode.
 
#define OPENVPN_MODE_CFB   EVP_CIPH_CFB_MODE
 Cipher is in CFB mode.
 
#define OPENVPN_MODE_GCM   EVP_CIPH_GCM_MODE
 Cipher is in GCM mode.
 
#define OPENVPN_OP_ENCRYPT   1
 Cipher should encrypt.
 
#define OPENVPN_OP_DECRYPT   0
 Cipher should decrypt.
 
#define MD4_DIGEST_LENGTH   16
 
#define crypto_msg(flags, ...)
 Retrieve any OpenSSL errors, then print the supplied error message.
 

Typedefs

typedef EVP_CIPHER_CTX cipher_ctx_t
 Generic cipher context.
 
typedef EVP_MD_CTX md_ctx_t
 Generic message digest context.
 
typedef HMAC_CTX hmac_ctx_t
 Generic HMAC context.
 
typedef void provider_t
 
typedef const EVP_CIPHER evp_cipher_type
 
typedef const EVP_MD evp_md_type
 
typedef int crypto_operation_t
 

Functions

void crypto_print_openssl_errors (const unsigned int flags)
 Retrieve any occurred OpenSSL errors and print those errors.
 

Detailed Description

Data Channel Cryptography OpenSSL-specific backend interface.

Definition in file crypto_openssl.h.

Macro Definition Documentation

◆ crypto_msg

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

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.
...Format string and optional format arguments

Definition at line 116 of file crypto_openssl.h.

◆ MD4_DIGEST_LENGTH

#define MD4_DIGEST_LENGTH   16

Definition at line 97 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 75 of file crypto_openssl.h.

◆ OPENVPN_MODE_CBC

#define OPENVPN_MODE_CBC   EVP_CIPH_CBC_MODE

Cipher is in CBC mode.

Definition at line 78 of file crypto_openssl.h.

◆ OPENVPN_MODE_CFB

#define OPENVPN_MODE_CFB   EVP_CIPH_CFB_MODE

Cipher is in CFB mode.

Definition at line 84 of file crypto_openssl.h.

◆ OPENVPN_MODE_GCM

#define OPENVPN_MODE_GCM   EVP_CIPH_GCM_MODE

Cipher is in GCM mode.

Definition at line 87 of file crypto_openssl.h.

◆ OPENVPN_MODE_OFB

#define OPENVPN_MODE_OFB   EVP_CIPH_OFB_MODE

Cipher is in OFB mode.

Definition at line 81 of file crypto_openssl.h.

◆ OPENVPN_OP_DECRYPT

#define OPENVPN_OP_DECRYPT   0

Cipher should decrypt.

Definition at line 95 of file crypto_openssl.h.

◆ OPENVPN_OP_ENCRYPT

#define OPENVPN_OP_ENCRYPT   1

Cipher should encrypt.

Definition at line 92 of file crypto_openssl.h.

Typedef Documentation

◆ cipher_ctx_t

typedef EVP_CIPHER_CTX cipher_ctx_t

Generic cipher context.

Definition at line 42 of file crypto_openssl.h.

◆ crypto_operation_t

typedef int crypto_operation_t

Definition at line 89 of file crypto_openssl.h.

◆ evp_cipher_type

typedef const EVP_CIPHER evp_cipher_type

Definition at line 67 of file crypto_openssl.h.

◆ evp_md_type

typedef const EVP_MD evp_md_type

Definition at line 68 of file crypto_openssl.h.

◆ hmac_ctx_t

typedef HMAC_CTX hmac_ctx_t

Generic HMAC context.

Definition at line 49 of file crypto_openssl.h.

◆ md_ctx_t

typedef EVP_MD_CTX md_ctx_t

Generic message digest context.

Definition at line 45 of file crypto_openssl.h.

◆ provider_t

typedef void provider_t

Definition at line 52 of file crypto_openssl.h.

Function Documentation

◆ 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 236 of file crypto_openssl.c.

References check_debug_level(), D_CRYPT_ERRORS, D_TLS_DEBUG_MED, ERR_get_error_all(), and msg.

Referenced by tls_ctx_load_cert_pem_file(), tls_ctx_load_cert_uri(), and tls_ctx_load_pkcs12().