Functions | Variables
third_party/boringssl-with-bazel/src/ssl/test/test_config.cc File Reference
#include "test_config.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory>
#include <openssl/base64.h>
#include <openssl/hpke.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include "../../crypto/internal.h"
#include "../internal.h"
#include "handshake_util.h"
#include "mock_quic_transport.h"
#include "test_state.h"
Include dependency graph for third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:

Go to the source code of this file.

Functions

static int AddQuicHandshakeData (SSL *ssl, enum ssl_encryption_level_t level, const uint8_t *data, size_t len)
 
static int AlpnSelectCallback (SSL *ssl, const uint8_t **out, uint8_t *outlen, const uint8_t *in, unsigned inlen, void *arg)
 
static ssl_private_key_result_t AsyncPrivateKeyComplete (SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out)
 
static ssl_private_key_result_t AsyncPrivateKeyDecrypt (SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, const uint8_t *in, size_t in_len)
 
static ssl_private_key_result_t AsyncPrivateKeySign (SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint16_t signature_algorithm, const uint8_t *in, size_t in_len)
 
static int CertCallback (SSL *ssl, void *arg)
 
static int CertVerifyCallback (X509_STORE_CTX *store_ctx, void *arg)
 
static bool CheckCertificateRequest (SSL *ssl)
 
static bool CheckPeerVerifyPrefs (SSL *ssl)
 
static bool CheckVerifyCallback (SSL *ssl)
 
static int ClientCertCallback (SSL *ssl, X509 **out_x509, EVP_PKEY **out_pkey)
 
static void CurrentTimeCallback (const SSL *ssl, timeval *out_clock)
 
static ssl_verify_result_t CustomVerifyCallback (SSL *ssl, uint8_t *out_alert)
 
static int DDoSCallback (const SSL_CLIENT_HELLO *client_hello)
 
static std::vector< std::string > DecodeHexStrings (const std::string &hex_strings)
 
static bssl::UniquePtr< STACK_OF(X509_NAME)> DecodeHexX509Names (const std::string &hex_names)
 
static int FlushQuicFlight (SSL *ssl)
 
static bool FromHexDigit (uint8_t *out, char c)
 
static bool GetCertificate (SSL *ssl, bssl::UniquePtr< X509 > *out_x509, bssl::UniquePtr< STACK_OF(X509)> *out_chain, bssl::UniquePtr< EVP_PKEY > *out_pkey)
 
static SSL_SESSIONGetSessionCallback (SSL *ssl, const uint8_t *data, int len, int *copy)
 
const TestConfigGetTestConfig (const SSL *ssl)
 
static bool HexDecode (std::string *out, const std::string &in)
 
static void InfoCallback (const SSL *ssl, int type, int val)
 
static void init_once ()
 
static bool InstallCertificate (SSL *ssl)
 
static int LegacyOCSPCallback (SSL *ssl, void *arg)
 
bool LoadCertificate (bssl::UniquePtr< X509 > *out_x509, bssl::UniquePtr< STACK_OF(X509)> *out_chain, const std::string &file)
 
bssl::UniquePtr< EVP_PKEYLoadPrivateKey (const std::string &file)
 
static bool MaybeInstallCertCompressionAlg (const TestConfig *config, SSL_CTX *ssl_ctx, uint16_t alg, ssl_cert_compression_func_t compress, ssl_cert_decompression_func_t decompress)
 
static void MessageCallback (int is_write, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)
 
static int NewSessionCallback (SSL *ssl, SSL_SESSION *session)
 
static int NextProtosAdvertisedCallback (SSL *ssl, const uint8_t **out, unsigned int *out_len, void *arg)
 
static int NextProtoSelectCallback (SSL *ssl, uint8_t **out, uint8_t *outlen, const uint8_t *in, unsigned inlen, void *arg)
 
bool ParseConfig (int argc, char **argv, bool is_shim, TestConfig *out_initial, TestConfig *out_resume, TestConfig *out_retry)
 
static unsigned PskClientCallback (SSL *ssl, const char *hint, char *out_identity, unsigned max_identity_len, uint8_t *out_psk, unsigned max_psk_len)
 
static unsigned PskServerCallback (SSL *ssl, const char *identity, uint8_t *out_psk, unsigned max_psk_len)
 
static enum ssl_select_cert_result_t SelectCertificateCallback (const SSL_CLIENT_HELLO *client_hello)
 
static int SendQuicAlert (SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert)
 
static int ServerNameCallback (SSL *ssl, int *out_alert, void *arg)
 
static int SetQuicReadSecret (SSL *ssl, enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
 
static int SetQuicWriteSecret (SSL *ssl, enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
 
bool SetTestConfig (SSL *ssl, const TestConfig *config)
 
static std::vector< std::string > SplitParts (const std::string &in, const char delim)
 
static int TicketKeyCallback (SSL *ssl, uint8_t *key_name, uint8_t *iv, EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx, int encrypt)
 

Variables

static const SSL_PRIVATE_KEY_METHOD g_async_private_key_method
 
static int g_config_index = 0
 
static CRYPTO_BUFFER_POOLg_pool = nullptr
 
static const SSL_QUIC_METHOD g_quic_method
 
static CRYPTO_once_t once = CRYPTO_ONCE_INIT
 

Function Documentation

◆ AddQuicHandshakeData()

static int AddQuicHandshakeData ( SSL ssl,
enum ssl_encryption_level_t  level,
const uint8_t data,
size_t  len 
)
static

◆ AlpnSelectCallback()

static int AlpnSelectCallback ( SSL ssl,
const uint8_t **  out,
uint8_t outlen,
const uint8_t in,
unsigned  inlen,
void *  arg 
)
static

◆ AsyncPrivateKeyComplete()

static ssl_private_key_result_t AsyncPrivateKeyComplete ( SSL ssl,
uint8_t out,
size_t *  out_len,
size_t  max_out 
)
static

◆ AsyncPrivateKeyDecrypt()

static ssl_private_key_result_t AsyncPrivateKeyDecrypt ( SSL ssl,
uint8_t out,
size_t *  out_len,
size_t  max_out,
const uint8_t in,
size_t  in_len 
)
static

◆ AsyncPrivateKeySign()

static ssl_private_key_result_t AsyncPrivateKeySign ( SSL ssl,
uint8_t out,
size_t *  out_len,
size_t  max_out,
uint16_t  signature_algorithm,
const uint8_t in,
size_t  in_len 
)
static

◆ CertCallback()

static int CertCallback ( SSL ssl,
void *  arg 
)
static

◆ CertVerifyCallback()

static int CertVerifyCallback ( X509_STORE_CTX store_ctx,
void *  arg 
)
static

◆ CheckCertificateRequest()

static bool CheckCertificateRequest ( SSL ssl)
static

◆ CheckPeerVerifyPrefs()

static bool CheckPeerVerifyPrefs ( SSL ssl)
static

◆ CheckVerifyCallback()

static bool CheckVerifyCallback ( SSL ssl)
static

◆ ClientCertCallback()

static int ClientCertCallback ( SSL ssl,
X509 **  out_x509,
EVP_PKEY **  out_pkey 
)
static

◆ CurrentTimeCallback()

static void CurrentTimeCallback ( const SSL ssl,
timeval out_clock 
)
static

◆ CustomVerifyCallback()

static ssl_verify_result_t CustomVerifyCallback ( SSL ssl,
uint8_t out_alert 
)
static

◆ DDoSCallback()

static int DDoSCallback ( const SSL_CLIENT_HELLO client_hello)
static

◆ DecodeHexStrings()

static std::vector<std::string> DecodeHexStrings ( const std::string &  hex_strings)
static

◆ DecodeHexX509Names()

static bssl::UniquePtr<STACK_OF(X509_NAME)> DecodeHexX509Names ( const std::string &  hex_names)
static

◆ FlushQuicFlight()

static int FlushQuicFlight ( SSL ssl)
static

◆ FromHexDigit()

static bool FromHexDigit ( uint8_t out,
char  c 
)
static

◆ GetCertificate()

static bool GetCertificate ( SSL ssl,
bssl::UniquePtr< X509 > *  out_x509,
bssl::UniquePtr< STACK_OF(X509)> *  out_chain,
bssl::UniquePtr< EVP_PKEY > *  out_pkey 
)
static

◆ GetSessionCallback()

static SSL_SESSION* GetSessionCallback ( SSL ssl,
const uint8_t data,
int  len,
int copy 
)
static

◆ GetTestConfig()

const TestConfig* GetTestConfig ( const SSL ssl)

◆ HexDecode()

static bool HexDecode ( std::string *  out,
const std::string &  in 
)
static

◆ InfoCallback()

static void InfoCallback ( const SSL ssl,
int  type,
int  val 
)
static

◆ init_once()

static void init_once ( )
static

◆ InstallCertificate()

static bool InstallCertificate ( SSL ssl)
static

◆ LegacyOCSPCallback()

static int LegacyOCSPCallback ( SSL ssl,
void *  arg 
)
static

◆ LoadCertificate()

bool LoadCertificate ( bssl::UniquePtr< X509 > *  out_x509,
bssl::UniquePtr< STACK_OF(X509)> *  out_chain,
const std::string &  file 
)

◆ LoadPrivateKey()

bssl::UniquePtr<EVP_PKEY> LoadPrivateKey ( const std::string &  file)

◆ MaybeInstallCertCompressionAlg()

static bool MaybeInstallCertCompressionAlg ( const TestConfig config,
SSL_CTX ssl_ctx,
uint16_t  alg,
ssl_cert_compression_func_t  compress,
ssl_cert_decompression_func_t  decompress 
)
static

◆ MessageCallback()

static void MessageCallback ( int  is_write,
int  version,
int  content_type,
const void *  buf,
size_t  len,
SSL ssl,
void *  arg 
)
static

◆ NewSessionCallback()

static int NewSessionCallback ( SSL ssl,
SSL_SESSION session 
)
static

◆ NextProtosAdvertisedCallback()

static int NextProtosAdvertisedCallback ( SSL ssl,
const uint8_t **  out,
unsigned int out_len,
void *  arg 
)
static

◆ NextProtoSelectCallback()

static int NextProtoSelectCallback ( SSL ssl,
uint8_t **  out,
uint8_t outlen,
const uint8_t in,
unsigned  inlen,
void *  arg 
)
static

◆ ParseConfig()

bool ParseConfig ( int  argc,
char **  argv,
bool  is_shim,
TestConfig out_initial,
TestConfig out_resume,
TestConfig out_retry 
)

◆ PskClientCallback()

static unsigned PskClientCallback ( SSL ssl,
const char *  hint,
char *  out_identity,
unsigned  max_identity_len,
uint8_t out_psk,
unsigned  max_psk_len 
)
static

◆ PskServerCallback()

static unsigned PskServerCallback ( SSL ssl,
const char *  identity,
uint8_t out_psk,
unsigned  max_psk_len 
)
static

◆ SelectCertificateCallback()

static enum ssl_select_cert_result_t SelectCertificateCallback ( const SSL_CLIENT_HELLO client_hello)
static

◆ SendQuicAlert()

static int SendQuicAlert ( SSL ssl,
enum ssl_encryption_level_t  level,
uint8_t  alert 
)
static

◆ ServerNameCallback()

static int ServerNameCallback ( SSL ssl,
int out_alert,
void *  arg 
)
static

◆ SetQuicReadSecret()

static int SetQuicReadSecret ( SSL ssl,
enum ssl_encryption_level_t  level,
const SSL_CIPHER cipher,
const uint8_t secret,
size_t  secret_len 
)
static

◆ SetQuicWriteSecret()

static int SetQuicWriteSecret ( SSL ssl,
enum ssl_encryption_level_t  level,
const SSL_CIPHER cipher,
const uint8_t secret,
size_t  secret_len 
)
static

◆ SetTestConfig()

bool SetTestConfig ( SSL ssl,
const TestConfig config 
)

◆ SplitParts()

static std::vector<std::string> SplitParts ( const std::string &  in,
const char  delim 
)
static

◆ TicketKeyCallback()

static int TicketKeyCallback ( SSL ssl,
uint8_t key_name,
uint8_t iv,
EVP_CIPHER_CTX ctx,
HMAC_CTX hmac_ctx,
int  encrypt 
)
static

Variable Documentation

◆ g_async_private_key_method

const SSL_PRIVATE_KEY_METHOD g_async_private_key_method
static

◆ g_config_index

int g_config_index = 0
static

◆ g_pool

CRYPTO_BUFFER_POOL* g_pool = nullptr
static

◆ g_quic_method

const SSL_QUIC_METHOD g_quic_method
static

◆ once

FlushQuicFlight
static int FlushQuicFlight(SSL *ssl)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1325
SetQuicWriteSecret
static int SetQuicWriteSecret(SSL *ssl, enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1304
SendQuicAlert
static int SendQuicAlert(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1334
AsyncPrivateKeyComplete
static ssl_private_key_result_t AsyncPrivateKeyComplete(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1184
SetQuicReadSecret
static int SetQuicReadSecret(SSL *ssl, enum ssl_encryption_level_t level, const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1293
AsyncPrivateKeyDecrypt
static ssl_private_key_result_t AsyncPrivateKeyDecrypt(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, const uint8_t *in, size_t in_len)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1156
AsyncPrivateKeySign
static ssl_private_key_result_t AsyncPrivateKeySign(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, uint16_t signature_algorithm, const uint8_t *in, size_t in_len)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1108
AddQuicHandshakeData
static int AddQuicHandshakeData(SSL *ssl, enum ssl_encryption_level_t level, const uint8_t *data, size_t len)
Definition: third_party/boringssl-with-bazel/src/ssl/test/test_config.cc:1315


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