Enumerations | Functions
ssl_cert.cc File Reference
#include <openssl/ssl.h>
#include <assert.h>
#include <limits.h>
#include <string.h>
#include <utility>
#include <openssl/bn.h>
#include <openssl/bytestring.h>
#include <openssl/ec_key.h>
#include <openssl/err.h>
#include <openssl/mem.h>
#include <openssl/sha.h>
#include <openssl/x509.h>
#include "../crypto/internal.h"
#include "internal.h"
Include dependency graph for ssl_cert.cc:

Go to the source code of this file.

Enumerations

enum  leaf_cert_and_privkey_result_t { leaf_cert_and_privkey_error, leaf_cert_and_privkey_ok, leaf_cert_and_privkey_mismatch }
 

Functions

static CRYPTO_BUFFERbuffer_up_ref (CRYPTO_BUFFER *buffer)
 
static int cert_set_chain_and_key (CERT *cert, CRYPTO_BUFFER *const *certs, size_t num_certs, EVP_PKEY *privkey, const SSL_PRIVATE_KEY_METHOD *privkey_method)
 
static int cert_set_dc (CERT *cert, CRYPTO_BUFFER *const raw, EVP_PKEY *privkey, const SSL_PRIVATE_KEY_METHOD *key_method)
 
static enum leaf_cert_and_privkey_result_t check_leaf_cert_and_privkey (CRYPTO_BUFFER *leaf_buffer, EVP_PKEY *privkey)
 
static int set_signed_cert_timestamp_list (CERT *cert, const uint8_t *list, size_t list_len)
 
bool ssl_add_cert_chain (SSL_HANDSHAKE *hs, CBB *cbb)
 
bool ssl_add_client_CA_list (SSL_HANDSHAKE *hs, CBB *cbb)
 
static bool ssl_can_serve_dc (const SSL_HANDSHAKE *hs)
 
bool ssl_cert_check_key_usage (const CBS *in, enum ssl_key_usage_t bit)
 
bool ssl_cert_check_private_key (const CERT *cert, const EVP_PKEY *privkey)
 
void ssl_cert_clear_certs (CERT *cert)
 
UniquePtr< CERTssl_cert_dup (CERT *cert)
 
UniquePtr< EVP_PKEYssl_cert_parse_pubkey (const CBS *in)
 
static void ssl_cert_set_cert_cb (CERT *cert, int(*cb)(SSL *ssl, void *arg), void *arg)
 
static bool ssl_cert_skip_to_spki (const CBS *in, CBS *out_tbs_cert)
 
bool ssl_check_leaf_certificate (SSL_HANDSHAKE *hs, EVP_PKEY *pkey, const CRYPTO_BUFFER *leaf)
 
bool ssl_compare_public_and_private_key (const EVP_PKEY *pubkey, const EVP_PKEY *privkey)
 
void SSL_CTX_set0_client_CAs (SSL_CTX *ctx, STACK_OF(CRYPTO_BUFFER) *name_list)
 
void SSL_CTX_set_cert_cb (SSL_CTX *ctx, int(*cb)(SSL *ssl, void *arg), void *arg)
 
int SSL_CTX_set_chain_and_key (SSL_CTX *ctx, CRYPTO_BUFFER *const *certs, size_t num_certs, EVP_PKEY *privkey, const SSL_PRIVATE_KEY_METHOD *privkey_method)
 
int SSL_CTX_set_ocsp_response (SSL_CTX *ctx, const uint8_t *response, size_t response_len)
 
int SSL_CTX_set_signed_cert_timestamp_list (SSL_CTX *ctx, const uint8_t *list, size_t list_len)
 
int SSL_CTX_use_certificate_ASN1 (SSL_CTX *ctx, size_t der_len, const uint8_t *der)
 
int SSL_delegated_credential_used (const SSL *ssl)
 
bool ssl_has_certificate (const SSL_HANDSHAKE *hs)
 
bool ssl_has_client_CAs (const SSL_CONFIG *cfg)
 
bool ssl_on_certificate_selected (SSL_HANDSHAKE *hs)
 
bool ssl_parse_cert_chain (uint8_t *out_alert, UniquePtr< STACK_OF(CRYPTO_BUFFER)> *out_chain, UniquePtr< EVP_PKEY > *out_pubkey, uint8_t *out_leaf_sha256, CBS *cbs, CRYPTO_BUFFER_POOL *pool)
 
UniquePtr< STACK_OF(CRYPTO_BUFFER)> ssl_parse_client_CA_list (SSL *ssl, uint8_t *out_alert, CBS *cbs)
 
void SSL_set0_client_CAs (SSL *ssl, STACK_OF(CRYPTO_BUFFER) *name_list)
 
int SSL_set1_delegated_credential (SSL *ssl, CRYPTO_BUFFER *dc, EVP_PKEY *pkey, const SSL_PRIVATE_KEY_METHOD *key_method)
 
bool ssl_set_cert (CERT *cert, UniquePtr< CRYPTO_BUFFER > buffer)
 
void SSL_set_cert_cb (SSL *ssl, int(*cb)(SSL *ssl, void *arg), void *arg)
 
int SSL_set_chain_and_key (SSL *ssl, CRYPTO_BUFFER *const *certs, size_t num_certs, EVP_PKEY *privkey, const SSL_PRIVATE_KEY_METHOD *privkey_method)
 
int SSL_set_ocsp_response (SSL *ssl, const uint8_t *response, size_t response_len)
 
int SSL_set_signed_cert_timestamp_list (SSL *ssl, const uint8_t *list, size_t list_len)
 
bool ssl_signing_with_dc (const SSL_HANDSHAKE *hs)
 
int SSL_use_certificate_ASN1 (SSL *ssl, const uint8_t *der, size_t der_len)
 
const STACK_OF (CRYPTO_BUFFER) *SSL_CTX_get0_chain(const SSL_CTX *ctx)
 

Enumeration Type Documentation

◆ leaf_cert_and_privkey_result_t

Enumerator
leaf_cert_and_privkey_error 
leaf_cert_and_privkey_ok 
leaf_cert_and_privkey_mismatch 

Definition at line 218 of file ssl_cert.cc.

Function Documentation

◆ buffer_up_ref()

static CRYPTO_BUFFER* buffer_up_ref ( CRYPTO_BUFFER buffer)
static

Definition at line 145 of file ssl_cert.cc.

◆ cert_set_chain_and_key()

static int cert_set_chain_and_key ( CERT cert,
CRYPTO_BUFFER *const certs,
size_t  num_certs,
EVP_PKEY privkey,
const SSL_PRIVATE_KEY_METHOD privkey_method 
)
static

Definition at line 263 of file ssl_cert.cc.

◆ cert_set_dc()

static int cert_set_dc ( CERT cert,
CRYPTO_BUFFER *const  raw,
EVP_PKEY privkey,
const SSL_PRIVATE_KEY_METHOD key_method 
)
static

Definition at line 839 of file ssl_cert.cc.

◆ check_leaf_cert_and_privkey()

static enum leaf_cert_and_privkey_result_t check_leaf_cert_and_privkey ( CRYPTO_BUFFER leaf_buffer,
EVP_PKEY privkey 
)
static

Definition at line 230 of file ssl_cert.cc.

◆ set_signed_cert_timestamp_list()

static int set_signed_cert_timestamp_list ( CERT cert,
const uint8_t list,
size_t  list_len 
)
static

Definition at line 945 of file ssl_cert.cc.

◆ ssl_add_cert_chain()

bool ssl_add_cert_chain ( SSL_HANDSHAKE hs,
CBB cbb 
)

Definition at line 410 of file ssl_cert.cc.

◆ ssl_add_client_CA_list()

bool ssl_add_client_CA_list ( SSL_HANDSHAKE hs,
CBB cbb 
)

Definition at line 675 of file ssl_cert.cc.

◆ ssl_can_serve_dc()

static bool ssl_can_serve_dc ( const SSL_HANDSHAKE hs)
static

Definition at line 805 of file ssl_cert.cc.

◆ ssl_cert_check_key_usage()

bool ssl_cert_check_key_usage ( const CBS in,
enum ssl_key_usage_t  bit 
)

Definition at line 542 of file ssl_cert.cc.

◆ ssl_cert_check_private_key()

bool ssl_cert_check_private_key ( const CERT cert,
const EVP_PKEY privkey 
)

Definition at line 518 of file ssl_cert.cc.

◆ ssl_cert_clear_certs()

void ssl_cert_clear_certs ( CERT cert)

Definition at line 196 of file ssl_cert.cc.

◆ ssl_cert_dup()

UniquePtr<CERT> ssl_cert_dup ( CERT cert)

Definition at line 150 of file ssl_cert.cc.

◆ ssl_cert_parse_pubkey()

UniquePtr<EVP_PKEY> ssl_cert_parse_pubkey ( const CBS in)

Definition at line 482 of file ssl_cert.cc.

◆ ssl_cert_set_cert_cb()

static void ssl_cert_set_cert_cb ( CERT cert,
int(*)(SSL *ssl, void *arg cb,
void *  arg 
)
static

Definition at line 212 of file ssl_cert.cc.

◆ ssl_cert_skip_to_spki()

static bool ssl_cert_skip_to_spki ( const CBS in,
CBS out_tbs_cert 
)
static

Definition at line 440 of file ssl_cert.cc.

◆ ssl_check_leaf_certificate()

bool ssl_check_leaf_certificate ( SSL_HANDSHAKE hs,
EVP_PKEY pkey,
const CRYPTO_BUFFER leaf 
)

Definition at line 700 of file ssl_cert.cc.

◆ ssl_compare_public_and_private_key()

bool ssl_compare_public_and_private_key ( const EVP_PKEY pubkey,
const EVP_PKEY privkey 
)

Definition at line 492 of file ssl_cert.cc.

◆ SSL_CTX_set0_client_CAs()

void SSL_CTX_set0_client_CAs ( SSL_CTX ctx,
STACK_OF(CRYPTO_BUFFER) *  name_list 
)

Definition at line 990 of file ssl_cert.cc.

◆ SSL_CTX_set_cert_cb()

void SSL_CTX_set_cert_cb ( SSL_CTX ctx,
int(*)(SSL *ssl, void *arg cb,
void *  arg 
)

Definition at line 917 of file ssl_cert.cc.

◆ SSL_CTX_set_chain_and_key()

int SSL_CTX_set_chain_and_key ( SSL_CTX ctx,
CRYPTO_BUFFER *const certs,
size_t  num_certs,
EVP_PKEY privkey,
const SSL_PRIVATE_KEY_METHOD privkey_method 
)

Definition at line 887 of file ssl_cert.cc.

◆ SSL_CTX_set_ocsp_response()

int SSL_CTX_set_ocsp_response ( SSL_CTX ctx,
const uint8_t response,
size_t  response_len 
)

Definition at line 973 of file ssl_cert.cc.

◆ SSL_CTX_set_signed_cert_timestamp_list()

int SSL_CTX_set_signed_cert_timestamp_list ( SSL_CTX ctx,
const uint8_t list,
size_t  list_len 
)

Definition at line 959 of file ssl_cert.cc.

◆ SSL_CTX_use_certificate_ASN1()

int SSL_CTX_use_certificate_ASN1 ( SSL_CTX ctx,
size_t  der_len,
const uint8_t der 
)

Definition at line 898 of file ssl_cert.cc.

◆ SSL_delegated_credential_used()

int SSL_delegated_credential_used ( const SSL ssl)

Definition at line 1012 of file ssl_cert.cc.

◆ ssl_has_certificate()

bool ssl_has_certificate ( const SSL_HANDSHAKE hs)

Definition at line 340 of file ssl_cert.cc.

◆ ssl_has_client_CAs()

bool ssl_has_client_CAs ( const SSL_CONFIG cfg)

Definition at line 664 of file ssl_cert.cc.

◆ ssl_on_certificate_selected()

bool ssl_on_certificate_selected ( SSL_HANDSHAKE hs)

Definition at line 726 of file ssl_cert.cc.

◆ ssl_parse_cert_chain()

bool ssl_parse_cert_chain ( uint8_t out_alert,
UniquePtr< STACK_OF(CRYPTO_BUFFER)> *  out_chain,
UniquePtr< EVP_PKEY > *  out_pubkey,
uint8_t out_leaf_sha256,
CBS cbs,
CRYPTO_BUFFER_POOL pool 
)

Definition at line 346 of file ssl_cert.cc.

◆ ssl_parse_client_CA_list()

UniquePtr<STACK_OF(CRYPTO_BUFFER)> ssl_parse_client_CA_list ( SSL ssl,
uint8_t out_alert,
CBS cbs 
)

Definition at line 618 of file ssl_cert.cc.

◆ SSL_set0_client_CAs()

void SSL_set0_client_CAs ( SSL ssl,
STACK_OF(CRYPTO_BUFFER) *  name_list 
)

Definition at line 995 of file ssl_cert.cc.

◆ SSL_set1_delegated_credential()

int SSL_set1_delegated_credential ( SSL ssl,
CRYPTO_BUFFER dc,
EVP_PKEY pkey,
const SSL_PRIVATE_KEY_METHOD key_method 
)

Definition at line 1003 of file ssl_cert.cc.

◆ ssl_set_cert()

bool ssl_set_cert ( CERT cert,
UniquePtr< CRYPTO_BUFFER buffer 
)

Definition at line 305 of file ssl_cert.cc.

◆ SSL_set_cert_cb()

void SSL_set_cert_cb ( SSL ssl,
int(*)(SSL *ssl, void *arg cb,
void *  arg 
)

Definition at line 922 of file ssl_cert.cc.

◆ SSL_set_chain_and_key()

int SSL_set_chain_and_key ( SSL ssl,
CRYPTO_BUFFER *const certs,
size_t  num_certs,
EVP_PKEY privkey,
const SSL_PRIVATE_KEY_METHOD privkey_method 
)

Definition at line 877 of file ssl_cert.cc.

◆ SSL_set_ocsp_response()

int SSL_set_ocsp_response ( SSL ssl,
const uint8_t response,
size_t  response_len 
)

Definition at line 980 of file ssl_cert.cc.

◆ SSL_set_signed_cert_timestamp_list()

int SSL_set_signed_cert_timestamp_list ( SSL ssl,
const uint8_t list,
size_t  list_len 
)

Definition at line 964 of file ssl_cert.cc.

◆ ssl_signing_with_dc()

bool ssl_signing_with_dc ( const SSL_HANDSHAKE hs)

Definition at line 831 of file ssl_cert.cc.

◆ SSL_use_certificate_ASN1()

int SSL_use_certificate_ASN1 ( SSL ssl,
const uint8_t der,
size_t  der_len 
)

Definition at line 908 of file ssl_cert.cc.

◆ STACK_OF()

const STACK_OF ( CRYPTO_BUFFER  ) const

Definition at line 894 of file ssl_cert.cc.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:31