7
8
9
10
11
12
13
14
15
16
17
18
19
21#ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
22#define QSSLSOCKET_OPENSSL_SYMBOLS_P_H
36#include <QtNetwork/private/qtnetworkglobal_p.h>
40#include <QtCore/qglobal.h>
43#include <QtNetwork/private/qocsp_p.h>
50#if !defined QT_LINKED_OPENSSL
54# define DEFINEFUNC(ret, func, arg, a, err, funcret)
55 typedef ret (*_q_PTR_##func)(arg);
56 static _q_PTR_##func _q_##func = nullptr;
58 if (Q_UNLIKELY(!_q_##func)) {
59 qsslSocketUnresolvedSymbolWarning(#func);
66# define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret)
67 typedef ret (*_q_PTR_##func)(arg1, arg2);
68 static _q_PTR_##func _q_##func = nullptr;
69 ret q_##func(arg1, arg2) {
70 if (Q_UNLIKELY(!_q_##func)) {
71 qsslSocketUnresolvedSymbolWarning(#func);
74 funcret _q_##func(a, b);
78# define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret)
79 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3);
80 static _q_PTR_##func _q_##func = nullptr;
81 ret q_##func(arg1, arg2, arg3) {
82 if (Q_UNLIKELY(!_q_##func)) {
83 qsslSocketUnresolvedSymbolWarning(#func);
86 funcret _q_##func(a, b, c);
90# define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret)
91 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4);
92 static _q_PTR_##func _q_##func = nullptr;
93 ret q_##func(arg1, arg2, arg3, arg4) {
94 if (Q_UNLIKELY(!_q_##func)) {
95 qsslSocketUnresolvedSymbolWarning(#func);
98 funcret _q_##func(a, b, c, d);
102# define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret)
103 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5);
104 static _q_PTR_##func _q_##func = nullptr;
105 ret q_##func(arg1, arg2, arg3, arg4, arg5) {
106 if (Q_UNLIKELY(!_q_##func)) {
107 qsslSocketUnresolvedSymbolWarning(#func);
110 funcret _q_##func(a, b, c, d, e);
114# define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret)
115 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6);
116 static _q_PTR_##func _q_##func = nullptr;
117 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) {
118 if (Q_UNLIKELY(!_q_##func)) {
119 qsslSocketUnresolvedSymbolWarning(#func);
122 funcret _q_##func(a, b, c, d, e, f);
126# define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret)
127 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
128 static _q_PTR_##func _q_##func = nullptr;
129 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
130 if (Q_UNLIKELY(!_q_##func)) {
131 qsslSocketUnresolvedSymbolWarning(#func);
134 funcret _q_##func(a, b, c, d, e, f, g);
138# define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret)
139 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
140 static _q_PTR_##func _q_##func = nullptr;
141 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
142 if (Q_UNLIKELY(!_q_##func)) {
143 qsslSocketUnresolvedSymbolWarning(#func);
146 funcret _q_##func(a, b, c, d, e, f, g, h, i);
155# define DEFINEFUNC(ret, func, arg, a, err, funcret)
156 ret q_##func(arg) { funcret func(a); }
159# define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret)
160 ret q_##func(arg1, arg2) { funcret func(a, b); }
163# define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret)
164 ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
167# define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret)
168 ret q_##func(arg1, arg2, arg3, arg4) { funcret func(a, b, c, d); }
171# define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret)
172 ret q_##func(arg1, arg2, arg3, arg4, arg5) { funcret func(a, b, c, d, e); }
175# define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret)
176 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { funcret func(a, b, c, d, e, f); }
179# define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret)
180 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { funcret func(a, b, c, d, e, f, g); }
183# define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret)
184 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { funcret func(a, b, c, d, e, f, g, h, i); }
189#if defined(OPENSSL_VERSION_MAJOR
) && OPENSSL_VERSION_MAJOR
>= 3
190typedef uint64_t qssloptions;
192typedef unsigned long qssloptions;
221int 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);
236STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
238# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS
239 | OPENSSL_INIT_LOAD_CRYPTO_STRINGS
, NULL)
241#define q_SKM_sk_num(st) q_OPENSSL_sk_num((OPENSSL_STACK *)st)
242#define q_SKM_sk_value(type, st,i) (type *)q_OPENSSL_sk_value((OPENSSL_STACK *)st, i)
244#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
245 | OPENSSL_INIT_ADD_ALL_DIGESTS
246 | OPENSSL_INIT_LOAD_CONFIG
, NULL)
247#define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS
248 | OPENSSL_INIT_ADD_ALL_DIGESTS
, NULL)
259int q_SSL_CTX_set_ciphersuites(SSL_CTX *ctx,
const char *str);
268using NewSessionCallback =
int (*)(SSL *, SSL_SESSION *);
271void q_SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, NewSessionCallback cb);
272int q_SSL_SESSION_is_resumable(
const SSL_SESSION *s);
274#define q_SSL_CTX_set_session_cache_mode(ctx,m)
275 q_SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE
,m,NULL)
284typedef int (*CookieVerifyCallback)(SSL *,
const unsigned char *,
unsigned);
285typedef int (*DgramWriteCallback) (BIO *,
const char *,
int);
286typedef int (*DgramReadCallback) (BIO *,
char *,
int);
287typedef int (*DgramPutsCallback) (BIO *,
const char *);
288typedef long (*DgramCtrlCallback) (BIO *,
int,
long,
void *);
289typedef int (*DgramCreateCallback) (BIO *);
290typedef int (*DgramDestroyCallback) (BIO *);
294int q_DTLSv1_listen(SSL *s, BIO_ADDR *client);
295BIO_ADDR *q_BIO_ADDR_new();
296void q_BIO_ADDR_free(BIO_ADDR *ap);
300BIO_METHOD *q_BIO_meth_new(
int type,
const char *name);
301void q_BIO_meth_free(BIO_METHOD *biom);
302int q_BIO_meth_set_write(BIO_METHOD *biom, DgramWriteCallback);
303int q_BIO_meth_set_read(BIO_METHOD *biom, DgramReadCallback);
304int q_BIO_meth_set_puts(BIO_METHOD *biom, DgramPutsCallback);
305int q_BIO_meth_set_ctrl(BIO_METHOD *biom, DgramCtrlCallback);
306int q_BIO_meth_set_create(BIO_METHOD *biom, DgramCreateCallback);
307int q_BIO_meth_set_destroy(BIO_METHOD *biom, DgramDestroyCallback);
318const OCSP_CERTID *q_OCSP_SINGLERESP_get0_id(
const OCSP_SINGLERESP *x);
321#define q_SSL_CTX_set_min_proto_version(ctx, version)
322 q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION
, version, nullptr)
324#define q_SSL_CTX_set_max_proto_version(ctx, version)
325 q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION
, version, nullptr)
357int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx,
const EVP_CIPHER *type,
const unsigned char *key,
const unsigned char *iv,
int enc);
358int q_EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,
const EVP_CIPHER *cipher, ENGINE *impl,
const unsigned char *key,
const unsigned char *iv,
int enc);
359int q_EVP_CipherUpdate(EVP_CIPHER_CTX *ctx,
unsigned char *out,
int *outl,
const unsigned char *in,
int inl);
363#ifndef OPENSSL_NO_DES
368#ifndef OPENSSL_NO_RC2
372#ifndef OPENSSL_NO_AES
391#define q_EVP_get_digestbynid(a) q_EVP_get_digestbyname(q_OBJ_nid2sn(a))
395 int e, pem_password_cb *f,
void *g);
397 int e, pem_password_cb *f,
void *g);
434STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(
const SSL *a);
438STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
456#ifndef OPENSSL_NO_PSK
457typedef 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);
467int q_X509_digest(
const X509 *x509,
const EVP_MD *type,
unsigned char *md,
unsigned int *len);
497 X509 *x509, STACK_OF(X509) *
chain);
506#ifndef OPENSSL_NO_DEPRECATED_3_0
510void q_DH_get0_pqg(
const DH *dh,
const BIGNUM **p,
const BIGNUM **q,
const BIGNUM **g);
519#define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH
, 0
, (char *)dh)
520#define q_SSL_CTX_set_dh_auto(ctx, onoff) q_SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO
,onoff,NULL)
524#define q_SSL_CTX_set_tmp_ecdh(ctx, ecdh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_ECDH
, 0
, (char *)ecdh)
531#define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY
, 0
, (char *)key)
534int q_PKCS12_parse(PKCS12 *p12,
const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **
ca);
538#define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO
,0
,(char *)pp)
539#define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING
,0
,NULL)
540#define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE
,(op),NULL)
550#define q_SSL_CTX_add_extra_chain_cert(ctx,x509)
551 q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT
,0
,(char *)x509)
554#if OPENSSL_VERSION_MAJOR
< 3
555int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx,
const char *CAfile,
const char *CApath);
557int q_SSL_CTX_load_verify_dir(SSL_CTX *ctx,
const char *CApath);
563#ifndef OPENSSL_NO_NEXTPROTONEG
565 const unsigned char *in,
unsigned int inlen,
566 const unsigned char *client,
unsigned int client_len);
568 int (*cb) (SSL *ssl,
unsigned char **out,
569 unsigned char *outlen,
570 const unsigned char *in,
571 unsigned int inlen,
void *arg),
576 unsigned protos_len);
579 const unsigned char **out,
580 unsigned char *outlen,
581 const unsigned char *in,
583 void *arg),
void *arg);
593typedef int (*CookieGenerateCallback)(SSL *,
unsigned char *,
unsigned *);
596void q_SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, CookieGenerateCallback cb);
597void q_SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, CookieVerifyCallback cb);
598const SSL_METHOD *q_DTLS_server_method();
599const SSL_METHOD *q_DTLS_client_method();
607#define q_DTLS_set_link_mtu(ssl, mtu) q_SSL_ctrl((ssl), DTLS_CTRL_SET_LINK_MTU, (mtu), nullptr)
608#define q_DTLSv1_get_timeout(ssl, arg) q_SSL_ctrl(ssl, DTLS_CTRL_GET_TIMEOUT, 0
, arg)
609#define q_DTLSv1_handle_timeout(ssl) q_SSL_ctrl(ssl, DTLS_CTRL_HANDLE_TIMEOUT, 0
, nullptr)
617#define q_BIO_set_retry_read(b) q_BIO_set_flags(b, (BIO_FLAGS_READ
|BIO_FLAGS_SHOULD_RETRY
))
618#define q_BIO_set_retry_write(b) q_BIO_set_flags(b, (BIO_FLAGS_WRITE
|BIO_FLAGS_SHOULD_RETRY
))
619#define q_BIO_clear_retry_flags(b) q_BIO_clear_flags(b, (BIO_FLAGS_RWS
|BIO_FLAGS_SHOULD_RETRY
))
620#define q_BIO_set_app_data(s,arg) q_BIO_set_ex_data(s,0
,arg)
621#define q_BIO_get_app_data(s) q_BIO_get_ex_data(s,0
)
623#define q_SSL_set_tlsext_status_type(ssl, type)
624 q_SSL_ctrl((ssl), SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE
, (type), nullptr)
628OCSP_RESPONSE *q_d2i_OCSP_RESPONSE(OCSP_RESPONSE **a,
const unsigned char **in,
long len);
629int q_i2d_OCSP_RESPONSE(OCSP_RESPONSE *r,
unsigned char **ppout);
630OCSP_RESPONSE *q_OCSP_response_create(
int status, OCSP_BASICRESP *bs);
631void q_OCSP_RESPONSE_free(OCSP_RESPONSE *rs);
632int q_OCSP_response_status(OCSP_RESPONSE *resp);
633OCSP_BASICRESP *q_OCSP_response_get1_basic(OCSP_RESPONSE *resp);
634OCSP_SINGLERESP *q_OCSP_basic_add1_status(OCSP_BASICRESP *rsp, OCSP_CERTID *cid,
635 int status,
int reason, ASN1_TIME *revtime,
636 ASN1_TIME *thisupd, ASN1_TIME *nextupd);
637int q_OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key,
const EVP_MD *dgst,
638 STACK_OF(X509) *certs,
unsigned long flags);
639OCSP_BASICRESP *q_OCSP_BASICRESP_new();
640void q_OCSP_BASICRESP_free(OCSP_BASICRESP *bs);
641int q_OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st,
unsigned long flags);
642int q_OCSP_resp_count(OCSP_BASICRESP *bs);
643OCSP_SINGLERESP *q_OCSP_resp_get0(OCSP_BASICRESP *bs,
int idx);
644int q_OCSP_single_get0_status(OCSP_SINGLERESP *single,
int *reason, ASN1_GENERALIZEDTIME **revtime,
645 ASN1_GENERALIZEDTIME **thisupd, ASN1_GENERALIZEDTIME **nextupd);
646int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, ASN1_GENERALIZEDTIME *nextupd,
long nsec,
long maxsec);
647int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
648 ASN1_INTEGER **pserial, OCSP_CERTID *cid);
650const STACK_OF(X509) *q_OCSP_resp_get0_certs(
const OCSP_BASICRESP *bs);
651OCSP_CERTID *q_OCSP_cert_to_id(
const EVP_MD *dgst, X509 *subject, X509 *issuer);
652void q_OCSP_CERTID_free(OCSP_CERTID *cid);
653int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
655#define q_SSL_get_tlsext_status_ocsp_resp(ssl, arg)
656 q_SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP, 0
, arg)
658#define q_SSL_CTX_set_tlsext_status_cb(ssl, cb)
659 q_SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB, GenericCallbackType(cb))
661# define q_SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen)
662 q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP, arglen, arg)
668#define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0
)
670# define q_OPENSSL_free(addr) q_CRYPTO_free(addr, "", 0
)
681#if defined(OPENSSL_VERSION_MAJOR
) && OPENSSL_VERSION_MAJOR
>= 3
682X509 *q_SSL_get1_peer_certificate(SSL *a);
683#define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate
684int q_EVP_PKEY_get_bits(
const EVP_PKEY *pkey);
685int q_EVP_PKEY_get_security_bits(
const EVP_PKEY *pkey);
686int q_EVP_PKEY_get_base_id(
const EVP_PKEY *pkey);
687#define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id
688const char *q_EVP_PKEY_get0_type_name(
const EVP_PKEY *pkey);
689#define q_EVP_PKEY_type_name q_EVP_PKEY_get0_type_name
691X509 *q_SSL_get_peer_certificate(SSL *a);
692int q_EVP_PKEY_base_id(EVP_PKEY *a);
695#ifndef OPENSSL_NO_DEPRECATED_3_0
723 int e, pem_password_cb *f,
void *g);
725 int e, pem_password_cb *f,
void *g);
748 int e, pem_password_cb *f,
void *g);
757#define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA
,
759#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA
,
QByteArray verifiedHello() const override
QDtlsClientVerifierOpenSSL()
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 int s_indexForSSLExtraData
static QSslErrorEntry errorEntryFromStoreContext(X509_STORE_CTX *ctx)
bool init(QDtlsBasePrivate *dtlsBase, QUdpSocket *socket, const QHostAddress &remote, quint16 port, const QByteArray &receivedMessage)
QDtlsPrivateOpenSSL * dtlsPrivate
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 qDtlsWarning(arg)
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_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)
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()
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)
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_SSL_CONF_CTX_free(SSL_CONF_CTX *a)
X509_NAME * q_X509_get_issuer_name(X509 *a)
int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, unsigned protos_len)
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)
#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_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)
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)
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)
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)
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_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)
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)