OpenVPN
openssl_compat.h File Reference

OpenSSL compatibility stub. More...

#include "buffer.h"
#include <openssl/rsa.h>
#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/err.h>
Include dependency graph for openssl_compat.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PRI_OPENSSL_STACK   "d"
#define EVP_MD_get0_name   EVP_MD_name
#define EVP_CIPHER_get0_name   EVP_CIPHER_name
#define EVP_CIPHER_CTX_get_mode   EVP_CIPHER_CTX_mode
#define SSL_CTX_new_ex(libctx, propq, method)
 Reduce SSL_CTX_new_ex() to SSL_CTX_new() for OpenSSL < 3.
#define EVP_CIPH_FLAG_ENC_THEN_MAC   0x10000000

Typedefs

typedef unsigned long openssl_err_t
typedef int openssl_stack_size_t
typedef uint64_t openssl_opt_t
typedef void OSSL_LIB_CTX
typedef void OSSL_PROVIDER

Functions

static int EVP_PKEY_get_group_name (EVP_PKEY *pkey, char *gname, size_t gname_sz, size_t *gname_len)
static const EVP_CIPHER * EVP_CIPHER_fetch (void *ctx, const char *algorithm, const char *properties)
static const EVP_MD * EVP_MD_fetch (void *ctx, const char *algorithm, const char *properties)
static void EVP_CIPHER_free (const EVP_CIPHER *cipher)
static void EVP_MD_free (const EVP_MD *md)
static openssl_err_t ERR_get_error_all (const char **file, int *line, const char **func, const char **data, int *flags)
static int SSL_get0_peer_signature_name (SSL *ssl, const char **sigalg)

Detailed Description

OpenSSL compatibility stub.

This file provide compatibility stubs for the OpenSSL libraries prior to the current major version. Newer versions may introduce changes in the library interface, including replacing functions or enforcing various objects and structures as fully opaque.

Definition in file openssl_compat.h.

Macro Definition Documentation

◆ EVP_CIPH_FLAG_ENC_THEN_MAC

#define EVP_CIPH_FLAG_ENC_THEN_MAC   0x10000000

Definition at line 204 of file openssl_compat.h.

Referenced by cipher_kt_mode_cbc().

◆ EVP_CIPHER_CTX_get_mode

#define EVP_CIPHER_CTX_get_mode   EVP_CIPHER_CTX_mode

Definition at line 118 of file openssl_compat.h.

Referenced by cipher_ctx_mode_ofb_cfb().

◆ EVP_CIPHER_get0_name

#define EVP_CIPHER_get0_name   EVP_CIPHER_name

Definition at line 117 of file openssl_compat.h.

Referenced by cipher_name_cmp(), collect_ciphers(), and show_available_ciphers().

◆ EVP_MD_get0_name

#define EVP_MD_get0_name   EVP_MD_name

Definition at line 116 of file openssl_compat.h.

Referenced by md_kt_name(), and print_digest().

◆ PRI_OPENSSL_STACK

#define PRI_OPENSSL_STACK   "d"

Definition at line 58 of file openssl_compat.h.

Referenced by tls_ctx_load_ca().

◆ SSL_CTX_new_ex

#define SSL_CTX_new_ex ( libctx,
propq,
method )
Value:
SSL_CTX_new((method))

Reduce SSL_CTX_new_ex() to SSL_CTX_new() for OpenSSL < 3.

Definition at line 121 of file openssl_compat.h.

Referenced by test_tls_ctx_use_pkcs11(), and tls_ctx_new().

Typedef Documentation

◆ openssl_err_t

typedef unsigned long openssl_err_t

Definition at line 56 of file openssl_compat.h.

◆ openssl_opt_t

typedef uint64_t openssl_opt_t

Definition at line 61 of file openssl_compat.h.

◆ openssl_stack_size_t

typedef int openssl_stack_size_t

Definition at line 57 of file openssl_compat.h.

◆ OSSL_LIB_CTX

typedef void OSSL_LIB_CTX

Definition at line 124 of file openssl_compat.h.

◆ OSSL_PROVIDER

typedef void OSSL_PROVIDER

Definition at line 125 of file openssl_compat.h.

Function Documentation

◆ ERR_get_error_all()

openssl_err_t ERR_get_error_all ( const char ** file,
int * line,
const char ** func,
const char ** data,
int * flags )
inlinestatic

Definition at line 158 of file openssl_compat.h.

Referenced by crypto_print_openssl_errors().

◆ EVP_CIPHER_fetch()

const EVP_CIPHER * EVP_CIPHER_fetch ( void * ctx,
const char * algorithm,
const char * properties )
inlinestatic

Definition at line 130 of file openssl_compat.h.

References ASSERT.

Referenced by cipher_get(), and cipher_kt_block_size().

◆ EVP_CIPHER_free()

◆ EVP_MD_fetch()

const EVP_MD * EVP_MD_fetch ( void * ctx,
const char * algorithm,
const char * properties )
inlinestatic

Definition at line 138 of file openssl_compat.h.

References ASSERT.

Referenced by md_get(), and md_valid().

◆ EVP_MD_free()

void EVP_MD_free ( const EVP_MD * md)
inlinestatic

Definition at line 152 of file openssl_compat.h.

Referenced by md_ctx_init(), md_kt_name(), md_kt_size(), and md_valid().

◆ EVP_PKEY_get_group_name()

int EVP_PKEY_get_group_name ( EVP_PKEY * pkey,
char * gname,
size_t gname_sz,
size_t * gname_len )
inlinestatic

Definition at line 87 of file openssl_compat.h.

References strncpynt().

Referenced by print_pkey_details().

◆ SSL_get0_peer_signature_name()

int SSL_get0_peer_signature_name ( SSL * ssl,
const char ** sigalg )
inlinestatic

Definition at line 171 of file openssl_compat.h.

Referenced by print_peer_signature().