Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qopenssl_p.h
Go to the documentation of this file.
1// Copyright (C) 2017 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4/****************************************************************************
5**
6** In addition, as a special exception, the copyright holders listed above give
7** permission to link the code of its release of Qt with the OpenSSL project's
8** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
9** same license as the original version), and distribute the linked executables.
10**
11** You must comply with the GNU General Public License version 2 in all
12** respects for all of the code used other than the "OpenSSL" code. If you
13** modify this file, you may extend this exception to your version of the file,
14** but you are not obligated to do so. If you do not wish to do so, delete
15** this exception statement from your version of this file.
16**
17****************************************************************************/
18
19#ifndef QSSLSOCKET_OPENSSL_P_H
20#define QSSLSOCKET_OPENSSL_P_H
21
22//
23// W A R N I N G
24// -------------
25//
26// This file is not part of the Qt API. It exists purely as an
27// implementation detail. This header file may change from version to
28// version without notice, or even be removed.
29//
30// We mean it.
31//
32
33#include <QtNetwork/private/qtnetworkglobal_p.h>
34
35#include <QtNetwork/private/qsslsocket_p.h>
36
37#include <QtNetwork/qsslcipher.h>
38
39#ifdef Q_OS_WIN
40#include <qt_windows.h>
41#if defined(OCSP_RESPONSE)
42#undef OCSP_RESPONSE
43#endif
44#if defined(X509_NAME)
45#undef X509_NAME
46#endif
47#endif // Q_OS_WIN
48
49// This file is included in several *.cpp files and provides different
50// openssl declarations where they are needed.
51#include <openssl/asn1.h>
52#include <openssl/bio.h>
53#include <openssl/bn.h>
54#include <openssl/err.h>
55#include <openssl/evp.h>
56#include <openssl/pem.h>
57#include <openssl/pkcs12.h>
58#include <openssl/pkcs7.h>
59#include <openssl/rand.h>
60#include <openssl/ssl.h>
61#include <openssl/stack.h>
62#include <openssl/x509.h>
63#include <openssl/x509v3.h>
64#include <openssl/x509_vfy.h>
65#include <openssl/dsa.h>
66#include <openssl/rsa.h>
67#include <openssl/crypto.h>
68#include <openssl/tls1.h>
69#include <openssl/dh.h>
70
71QT_BEGIN_NAMESPACE
72
73struct QSslErrorEntry {
74 int code = 0;
75 int depth = 0;
76};
77
79
80QT_END_NAMESPACE
81
82#endif
QByteArray verifiedHello() const override
bool verifyClient(QUdpSocket *socket, const QByteArray &dgram, const QHostAddress &address, quint16 port) override
void abortHandshake(QUdpSocket *socket) override
virtual QDtls::HandshakeState state() const override
QHostAddress peerAddress() const override
QSslSocket::SslMode cryptographMode() const override
void ignoreVerificationErrors(const QList< QSslError > &errorsToIgnore) override
QSslCipher dtlsSessionCipher() const override
bool startHandshake(QUdpSocket *socket, const QByteArray &datagram) override
QDtlsPrivateOpenSSL(QDtls *qObject, QSslSocket::SslMode mode)
bool resumeHandshake(QUdpSocket *socket) override
unsigned pskServerCallback(const char *identity, unsigned char *psk, unsigned max_psk_len)
bool handleTimeout(QUdpSocket *socket) override
virtual void setDtlsMtuHint(quint16 mtu) override
quint16 peerPort() const override
qint64 writeDatagramEncrypted(QUdpSocket *socket, const QByteArray &datagram) override
void sendShutdownAlert(QUdpSocket *socket) override
unsigned pskClientCallback(const char *hint, char *identity, unsigned max_identity_len, unsigned char *psk, unsigned max_psk_len)
void setPeer(const QHostAddress &addr, quint16 port, const QString &name) override
QByteArray decryptDatagram(QUdpSocket *socket, const QByteArray &tlsdgram) override
QSsl::SslProtocol dtlsSessionProtocol() const override
virtual bool isConnectionEncrypted() const override
bool continueHandshake(QUdpSocket *socket, const QByteArray &datagram) override
QList< QSslError > peerVerificationErrors() const override
void setPeerVerificationName(const QString &name) override
virtual quint16 dtlsMtuHint() const override
QString peerVerificationName() const override
static QString getErrorsFromOpenSsl()
static QSslErrorEntry errorEntryFromStoreContext(X509_STORE_CTX *ctx)
bool init(QDtlsBasePrivate *dtlsBase, QUdpSocket *socket, const QHostAddress &remote, quint16 port, const QByteArray &receivedMessage)
QDtlsPrivateOpenSSL * dtlsPrivate
Combined button and popup list for selecting options.
Namespace containing onternal types that TLS backends implement.
int q_dgram_create(BIO *bio)
int q_dgram_read(BIO *bio, char *dst, int bytesToRead)
int q_dgram_write(BIO *bio, const char *src, int bytesToWrite)
int q_dgram_puts(BIO *bio, const char *src)
long q_dgram_ctrl(BIO *bio, int cmd, long num, void *ptr)
int q_dgram_destroy(BIO *bio)
const char *const qdtlsMethodName
unsigned q_PSK_client_callback(SSL *ssl, const char *hint, char *identity, unsigned max_identity_len, unsigned char *psk, unsigned max_psk_len)
unsigned q_PSK_server_callback(SSL *ssl, const char *identity, unsigned char *psk, unsigned max_psk_len)
int q_X509DtlsCallback(int ok, X509_STORE_CTX *ctx)
int q_generate_cookie_callback(SSL *ssl, unsigned char *dst, unsigned *cookieLength)
int q_verify_cookie_callback(SSL *ssl, const unsigned char *cookie, unsigned cookieLength)
static QString msgFunctionFailed(const char *function)
void delete_connection(SSL *ssl)
void delete_bio_method(BIO_METHOD *method)
QByteArray cookie_for_peer(SSL *ssl)
QByteArray fallbackSecret()
int next_timeoutMs(SSL *tlsConnection)
void delete_BIO_ADDR(BIO_ADDR *bio)
#define QT_DTLS_VERBOSE
#define qDtlsWarning(arg)
#define qDtlsDebug(arg)
Q_DECLARE_TYPEINFO(QSslErrorEntry, Q_PRIMITIVE_TYPE)
int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c)
const SSL_METHOD * q_TLS_method()
const EVP_CIPHER * q_EVP_des_cbc()
X509_STORE_CTX * q_X509_STORE_CTX_new()
void q_SSL_free(SSL *a)
void q_SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len)
void q_SSL_CTX_free(SSL_CTX *a)
void q_BIO_clear_flags(BIO *b, int flags)
const SSL_METHOD * q_TLS_server_method()
int q_SSL_in_init(const SSL *s)
const SSL_CIPHER * q_SSL_get_current_cipher(SSL *a)
const char * q_OpenSSL_version(int type)
int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b)
DH * q_d2i_DHparams(DH **a, const unsigned char **pp, long length)
int q_OBJ_obj2nid(const ASN1_OBJECT *a)
int q_ASN1_STRING_length(ASN1_STRING *a)
SSL_CTX * q_SSL_get_SSL_CTX(SSL *a)
void * q_X509_STORE_get_ex_data(X509_STORE *r, int idx)
void q_BIO_set_shutdown(BIO *a, int shut)
int q_DH_check(DH *dh, int *codes)
OPENSSL_STACK * q_OPENSSL_sk_new_null()
bool q_resolveOpenSslSymbols()
void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b)
char * q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c)
const EVP_CIPHER * q_EVP_aes_192_cbc()
int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
int q_SSL_get_ex_data_X509_STORE_CTX_idx()
const EVP_CIPHER * q_EVP_aes_256_cbc()
int q_SSL_CTX_get_security_level(const SSL_CTX *ctx)
int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c)
long q_BIO_ctrl(BIO *a, int b, long c, void *d)
const char * q_OBJ_nid2sn(int a)
int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc)
int q_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca)
int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain)
void q_SSL_SESSION_free(SSL_SESSION *ses)
void q_BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
int q_OBJ_ln2nid(const char *s)
unsigned int(* q_psk_server_callback_t)(SSL *ssl, const char *identity, unsigned char *psk, unsigned int max_psk_len)
int q_SSL_set_session(SSL *to, SSL_SESSION *session)
int q_SSL_session_reused(SSL *a)
const EVP_MD * q_EVP_get_digestbyname(const char *name)
long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d)
X509 * q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
void(* GenericCallbackType)()
int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b)
DSA * q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d)
ASN1_TIME * q_X509_gmtime_adj(ASN1_TIME *s, long adj)
int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r)
void q_SSL_set_connect_state(SSL *a)
unsigned long q_ERR_get_error()
int q_X509_digest(const X509 *x509, const EVP_MD *type, unsigned char *md, unsigned int *len)
unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b)
int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len)
void q_DH_free(DH *dh)
const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x)
int q_EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl)
int q_EVP_PKEY_set1_EC_KEY(EVP_PKEY *a, EC_KEY *b)
void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data)
void * q_CRYPTO_malloc(size_t num, const char *file, int line)
int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
EC_KEY * q_PEM_read_bio_EC_PUBKEY(BIO *a, EC_KEY **b, pem_password_cb *c, void *d)
const EVP_CIPHER * q_EVP_rc2_cbc()
RSA * q_RSA_new()
void q_ERR_error_string_n(unsigned long e, char *buf, size_t len)
int q_PEM_write_bio_RSA_PUBKEY(BIO *a, RSA *b)
BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w)
const EVP_MD * q_EVP_sha1()
X509 * q_X509_dup(X509 *a)
int q_SSL_get_error(SSL *a, int b)
int q_BIO_set_ex_data(BIO *b, int idx, void *data)
DH * q_DH_new()
RSA * q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d)
PKCS12 * q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12)
int q_X509_EXTENSION_get_critical(X509_EXTENSION *a)
void q_DSA_free(DSA *a)
void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a)
X509_NAME * q_X509_get_issuer_name(X509 *a)
int q_DSA_bits(DSA *a)
int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, unsigned protos_len)
int q_SSL_clear(SSL *a)
void * q_X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx)
void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b)
void q_EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a)
int q_RAND_status()
#define q_BIO_get_app_data(s)
SSL_CTX * q_SSL_CTX_new(const SSL_METHOD *a)
#define q_BIO_set_retry_read(b)
int q_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen)
int(* q_SSL_psk_use_session_cb_func_t)(SSL *, const EVP_MD *, const unsigned char **, size_t *, SSL_SESSION **)
int q_EC_curve_nist2nid(const char *name)
RSA * q_EVP_PKEY_get1_RSA(EVP_PKEY *a)
void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb)
DSA * q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d)
int q_SSL_accept(SSL *a)
int q_PEM_write_bio_DSA_PUBKEY(BIO *a, DSA *b)
const char * q_OBJ_nid2ln(int a)
int q_BN_num_bits(const BIGNUM *a)
int q_X509_cmp(X509 *a, X509 *b)
void q_SSL_set_accept_state(SSL *a)
void q_X509V3_conf_free(CONF_VALUE *val)
unsigned long q_SSL_set_options(SSL *s, unsigned long op)
int q_i2d_DHparams(DH *a, unsigned char **p)
void * q_X509V3_EXT_d2i(X509_EXTENSION *a)
int q_DH_bits(DH *dh)
EVP_PKEY * q_PEM_read_bio_PrivateKey(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d)
int q_SSL_get_shutdown(const SSL *ssl)
int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
int q_SSL_shutdown(SSL *a)
int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b)
void q_OPENSSL_sk_free(OPENSSL_STACK *a)
SSL_SESSION * q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length)
void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b)
void q_BIO_set_init(BIO *a, int init)
EVP_PKEY * q_EVP_PKEY_new()
void q_CRYPTO_free(void *str, const char *file, int line)
RSA * q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d)
void q_EVP_PKEY_free(EVP_PKEY *a)
int q_ASN1_STRING_print(BIO *a, const ASN1_STRING *b)
void q_AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
BIGNUM * q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c)
void q_X509_STORE_free(X509_STORE *store)
ASN1_STRING * q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a)
int q_BN_is_word(BIGNUM *a, BN_ULONG w)
void q_EC_KEY_free(EC_KEY *ecdh)
int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
BIO * q_BIO_new(const BIO_METHOD *a)
X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *a)
EC_KEY * q_EC_KEY_dup(const EC_KEY *src)
int q_SSL_CTX_check_private_key(const SSL_CTX *a)
int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d, int e, pem_password_cb *f, void *g)
void q_SSL_set_psk_use_session_callback(SSL *s, q_SSL_psk_use_session_cb_func_t)
unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session)
long q_X509_get_version(X509 *a)
int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint)
int q_i2d_X509(X509 *a, unsigned char **b)
DSA * q_DSA_new()
const EVP_CIPHER * q_EVP_des_ede3_cbc()
ASN1_TIME * q_X509_getm_notAfter(X509 *a)
int q_SSL_write(SSL *a, const void *b, int c)
EVP_PKEY * q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d)
int q_PEM_write_bio_PrivateKey_traditional(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d, int e, pem_password_cb *f, void *g)
void * q_BIO_get_data(BIO *a)
X509_STORE * q_X509_STORE_new()
int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
const char * q_SSL_alert_desc_string_long(int value)
long q_SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg)
ASN1_OBJECT * q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a)
#define q_BIO_set_retry_write(b)
void q_PKCS12_free(PKCS12 *pkcs12)
void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void(*b)(void *))
void * q_SSL_get_ex_data(const SSL *ssl, int idx)
int q_EVP_PKEY_up_ref(EVP_PKEY *a)
EVP_PKEY * q_X509_get_pubkey(X509 *a)
EC_KEY * q_EVP_PKEY_get1_EC_KEY(EVP_PKEY *a)
int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d, int e, pem_password_cb *f, void *g)
void q_AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a)
SSL_SESSION * q_SSL_get_session(const SSL *ssl)
int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b)
DH * q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d)
ASN1_INTEGER * q_X509_get_serialNumber(X509 *a)
void q_BIO_set_data(BIO *a, void *ptr)
int q_SSL_read(SSL *a, void *b, int c)
int q_CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
void q_ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
EC_KEY * q_EC_KEY_new_by_curve_name(int nid)
#define q_BIO_set_app_data(s, arg)
long q_ASN1_INTEGER_get(ASN1_INTEGER *a)
int q_EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key, const unsigned char *iv, int enc)
int q_PEM_write_bio_ECPrivateKey(BIO *a, EC_KEY *b, const EVP_CIPHER *c, unsigned char *d, int e, pem_password_cb *f, void *g)
void q_BIO_set_flags(BIO *b, int flags)
void q_SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, int(*cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg), void *arg)
void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level)
BIO * q_SSL_get_rbio(const SSL *s)
int q_X509_check_issued(X509 *a, X509 *b)
int q_SSL_version(const SSL *a)
const BIO_METHOD * q_BIO_s_mem()
int q_RAND_bytes(unsigned char *b, int n)
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b)
const char * q_SSL_alert_type_string(int value)
int q_PEM_write_bio_PUBKEY(BIO *a, EVP_PKEY *b)
int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b)
void q_SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, unsigned *len)
int q_BIO_read(BIO *a, void *b, int c)
int q_EC_GROUP_get_degree(const EC_GROUP *g)
int q_RSA_bits(RSA *a)
char * q_ERR_error_string(unsigned long a, char *b)
ASN1_OCTET_STRING * q_X509_EXTENSION_get_data(X509_EXTENSION *a)
int q_OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *obj, int no_name)
void q_RAND_seed(const void *a, int b)
unsigned int(* q_psk_client_callback_t)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len)
void q_SSL_set_bio(SSL *a, BIO *b, BIO *c)
void q_X509_up_ref(X509 *a)
DH * q_EVP_PKEY_get1_DH(EVP_PKEY *a)
#define q_SKM_sk_num(st)
X509_NAME_ENTRY * q_X509_NAME_get_entry(X509_NAME *a, int b)
void q_X509_print(BIO *a, X509 *b)
void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
void q_X509_free(X509 *a)
int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a)
int q_SSL_connect(SSL *a)
int q_BIO_get_shutdown(BIO *a)
X509_NAME * q_X509_get_subject_name(X509 *a)
DSA * q_EVP_PKEY_get1_DSA(EVP_PKEY *a)
const SSL_METHOD * q_TLS_client_method()
size_t q_SSL_get_client_random(SSL *a, unsigned char *out, size_t outlen)
int q_PEM_write_bio_PrivateKey(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d, int e, pem_password_cb *f, void *g)
SSL * q_SSL_new(SSL_CTX *a)
int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b)
int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx)
void q_SSL_set_psk_server_callback(SSL *ssl, q_psk_server_callback_t callback)
void * q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d)
void q_ASN1_TIME_free(ASN1_TIME *t)
void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx)
int q_OBJ_sn2nid(const char *s)
const X509V3_EXT_METHOD * q_X509V3_EXT_get(X509_EXTENSION *a)
#define q_BIO_clear_retry_flags(b)
void * q_BIO_get_ex_data(BIO *b, int idx)
int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
const EVP_CIPHER * q_EVP_aes_128_cbc()
BIO * q_BIO_new_mem_buf(void *a, int b)
int q_X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data)
int q_X509_get_ext_count(X509 *a)
void q_GENERAL_NAME_free(GENERAL_NAME *a)
int q_PEM_write_bio_EC_PUBKEY(BIO *a, EC_KEY *b)
SSL_SESSION * q_SSL_get1_session(SSL *ssl)
EVP_PKEY_CTX * q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)
int q_SSL_CIPHER_get_bits(const SSL_CIPHER *a, int *b)
int q_X509_verify_cert(X509_STORE_CTX *ctx)
long q_OpenSSL_version_num()
int q_CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
void q_SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, int(*cb)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg), void *arg)
int q_BIO_write(BIO *a, const void *b, int c)
void q_SSL_set_info_callback(SSL *ssl, void(*cb)(const SSL *ssl, int type, int val))
X509_STORE * q_X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx)
EVP_CIPHER_CTX * q_EVP_CIPHER_CTX_new()
X509 * q_d2i_X509(X509 **a, const unsigned char **b, long c)
X509_EXTENSION * q_X509_get_ext(X509 *a, int b)
int q_EVP_PKEY_type(int a)
const EC_GROUP * q_EC_KEY_get0_group(const EC_KEY *k)
int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b)
int q_ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
void q_SSL_set_psk_client_callback(SSL *ssl, q_psk_client_callback_t callback)
void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int(*c)(int, X509_STORE_CTX *))
#define q_OPENSSL_add_all_algorithms_conf()
int q_X509_NAME_entry_count(X509_NAME *a)
#define q_SKM_sk_value(type, st, i)
int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
int q_BIO_free(BIO *a)
int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c)
int q_SSL_set_ex_data(SSL *ssl, int idx, void *arg)
ASN1_OBJECT * q_X509_EXTENSION_get_object(X509_EXTENSION *a)
SSL_CONF_CTX * q_SSL_CONF_CTX_new()
long q_SSL_CTX_callback_ctrl(SSL_CTX *, int, GenericCallbackType)
ASN1_TIME * q_X509_getm_notBefore(X509 *a)
int q_EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a)
void q_RSA_free(RSA *a)
int q_i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *obj)
long q_SSL_get_verify_result(const SSL *a)
int q_OPENSSL_sk_num(OPENSSL_STACK *a)
size_t q_SSL_SESSION_get_master_key(const SSL_SESSION *session, unsigned char *out, size_t outlen)
int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx)
EC_KEY * q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d)
qssloptions q_SSL_CTX_set_options(SSL_CTX *ctx, qssloptions op)
int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
EVP_PKEY * q_X509_PUBKEY_get(X509_PUBKEY *a)