Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qsslsocket_openssl_symbols_p.h
Go to the documentation of this file.
1// Copyright (C) 2017 The Qt Company Ltd.
2// Copyright (C) 2014 BlackBerry Limited. All rights reserved.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5/****************************************************************************
6**
7** In addition, as a special exception, the copyright holders listed above give
8** permission to link the code of its release of Qt with the OpenSSL project's
9** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
10** same license as the original version), and distribute the linked executables.
11**
12** You must comply with the GNU General Public License version 2 in all
13** respects for all of the code used other than the "OpenSSL" code. If you
14** modify this file, you may extend this exception to your version of the file,
15** but you are not obligated to do so. If you do not wish to do so, delete
16** this exception statement from your version of this file.
17**
18****************************************************************************/
19
20#ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
21#define QSSLSOCKET_OPENSSL_SYMBOLS_P_H
22
23
24//
25// W A R N I N G
26// -------------
27//
28// This file is not part of the Qt API. It exists purely as an
29// implementation detail. This header file may change from version to
30// version without notice, or even be removed.
31//
32// We mean it.
33//
34
35#include <QtNetwork/private/qtnetworkglobal_p.h>
36
37#include "qopenssl_p.h"
38
39#include <QtCore/qglobal.h>
40
41#if QT_CONFIG(ocsp)
42#include <QtNetwork/private/qocsp_p.h>
43#endif
44
46
47#define DUMMYARG
48
49#if !defined QT_LINKED_OPENSSL
50// **************** Shared declarations ******************
51// ret func(arg)
52
53# define DEFINEFUNC(ret, func, arg, a, err, funcret) \
54 typedef ret (*_q_PTR_##func)(arg); \
55 static _q_PTR_##func _q_##func = nullptr; \
56 ret q_##func(arg) { \
57 if (Q_UNLIKELY(!_q_##func)) { \
58 qsslSocketUnresolvedSymbolWarning(#func); \
59 err; \
60 } \
61 funcret _q_##func(a); \
62 }
63
64// ret func(arg1, arg2)
65# define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
66 typedef ret (*_q_PTR_##func)(arg1, arg2); \
67 static _q_PTR_##func _q_##func = nullptr; \
68 ret q_##func(arg1, arg2) { \
69 if (Q_UNLIKELY(!_q_##func)) { \
70 qsslSocketUnresolvedSymbolWarning(#func);\
71 err; \
72 } \
73 funcret _q_##func(a, b); \
74 }
75
76// ret func(arg1, arg2, arg3)
77# define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
78 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3); \
79 static _q_PTR_##func _q_##func = nullptr; \
80 ret q_##func(arg1, arg2, arg3) { \
81 if (Q_UNLIKELY(!_q_##func)) { \
82 qsslSocketUnresolvedSymbolWarning(#func); \
83 err; \
84 } \
85 funcret _q_##func(a, b, c); \
86 }
87
88// ret func(arg1, arg2, arg3, arg4)
89# define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
90 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4); \
91 static _q_PTR_##func _q_##func = nullptr; \
92 ret q_##func(arg1, arg2, arg3, arg4) { \
93 if (Q_UNLIKELY(!_q_##func)) { \
94 qsslSocketUnresolvedSymbolWarning(#func); \
95 err; \
96 } \
97 funcret _q_##func(a, b, c, d); \
98 }
99
100// ret func(arg1, arg2, arg3, arg4, arg5)
101# define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
102 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5); \
103 static _q_PTR_##func _q_##func = nullptr; \
104 ret q_##func(arg1, arg2, arg3, arg4, arg5) { \
105 if (Q_UNLIKELY(!_q_##func)) { \
106 qsslSocketUnresolvedSymbolWarning(#func); \
107 err; \
108 } \
109 funcret _q_##func(a, b, c, d, e); \
110 }
111
112// ret func(arg1, arg2, arg3, arg4, arg6)
113# define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
114 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6); \
115 static _q_PTR_##func _q_##func = nullptr; \
116 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { \
117 if (Q_UNLIKELY(!_q_##func)) { \
118 qsslSocketUnresolvedSymbolWarning(#func); \
119 err; \
120 } \
121 funcret _q_##func(a, b, c, d, e, f); \
122 }
123
124// ret func(arg1, arg2, arg3, arg4, arg6, arg7)
125# define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
126 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
127 static _q_PTR_##func _q_##func = nullptr; \
128 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { \
129 if (Q_UNLIKELY(!_q_##func)) { \
130 qsslSocketUnresolvedSymbolWarning(#func); \
131 err; \
132 } \
133 funcret _q_##func(a, b, c, d, e, f, g); \
134 }
135
136// ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
137# define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
138 typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
139 static _q_PTR_##func _q_##func = nullptr; \
140 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { \
141 if (Q_UNLIKELY(!_q_##func)) { \
142 qsslSocketUnresolvedSymbolWarning(#func); \
143 err; \
144 } \
145 funcret _q_##func(a, b, c, d, e, f, g, h, i); \
146 }
147// **************** Shared declarations ******************
148
149#else // !defined QT_LINKED_OPENSSL
150
151// **************** Static declarations ******************
152
153// ret func(arg)
154# define DEFINEFUNC(ret, func, arg, a, err, funcret) \
155 ret q_##func(arg) { funcret func(a); }
156
157// ret func(arg1, arg2)
158# define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
159 ret q_##func(arg1, arg2) { funcret func(a, b); }
160
161// ret func(arg1, arg2, arg3)
162# define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
163 ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
164
165// ret func(arg1, arg2, arg3, arg4)
166# define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
167 ret q_##func(arg1, arg2, arg3, arg4) { funcret func(a, b, c, d); }
168
169// ret func(arg1, arg2, arg3, arg4, arg5)
170# define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
171 ret q_##func(arg1, arg2, arg3, arg4, arg5) { funcret func(a, b, c, d, e); }
172
173// ret func(arg1, arg2, arg3, arg4, arg6)
174# define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
175 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { funcret func(a, b, c, d, e, f); }
176
177// ret func(arg1, arg2, arg3, arg4, arg6, arg7)
178# define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
179 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { funcret func(a, b, c, d, e, f, g); }
180
181// ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
182# define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
183 ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { funcret func(a, b, c, d, e, f, g, h, i); }
184
185// **************** Static declarations ******************
186
187#endif // !defined QT_LINKED_OPENSSL
188#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
189typedef uint64_t qssloptions;
190#else
191typedef unsigned long qssloptions;
192#endif
193// TODO: the following lines previously were a part of 1.1 - specific header.
194// To reduce the amount of the change, I'm directly copying and pasting the
195// content of the header here. Later, can be better sorted/split into groups,
196// depending on the functionality.
197
198const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
199
200BIO *q_BIO_new(const BIO_METHOD *a);
201const BIO_METHOD *q_BIO_s_mem();
202
203void q_AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a);
204int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
205int q_EVP_PKEY_up_ref(EVP_PKEY *a);
206EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
207void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
208int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx);
209int q_OPENSSL_sk_num(OPENSSL_STACK *a);
210void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
211OPENSSL_STACK *q_OPENSSL_sk_new_null();
212void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
213void q_OPENSSL_sk_free(OPENSSL_STACK *a);
214void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
217int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
218size_t q_SSL_get_client_random(SSL *a, unsigned char *out, size_t outlen);
219size_t q_SSL_SESSION_get_master_key(const SSL_SESSION *session, unsigned char *out, size_t outlen);
220int 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);
221const SSL_METHOD *q_TLS_method();
222const SSL_METHOD *q_TLS_client_method();
223const SSL_METHOD *q_TLS_server_method();
224ASN1_TIME *q_X509_getm_notBefore(X509 *a);
225ASN1_TIME *q_X509_getm_notAfter(X509 *a);
226void q_ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
227void q_X509V3_conf_free(CONF_VALUE *val);
228
229void q_X509_up_ref(X509 *a);
231EVP_PKEY *q_X509_get_pubkey(X509 *a);
232void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
233int q_X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data);
234void *q_X509_STORE_get_ex_data(X509_STORE *r, int idx);
235STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
236void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
237
238# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
239 | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
240
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)
243
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)
249
250int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
251
253const char *q_OpenSSL_version(int type);
254
255unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session);
256unsigned long q_SSL_set_options(SSL *s, unsigned long op);
257
258#ifdef TLS1_3_VERSION
259int q_SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
260
261// The functions below do not really have to be ifdefed like this, but for now
262// they only used in TLS 1.3 handshake (and probably future versions).
263// Plus, 'is resumalbe' is OpenSSL 1.1.1-only (and again we need it for
264// TLS 1.3-specific session management).
265
266extern "C"
267{
268using NewSessionCallback = int (*)(SSL *, SSL_SESSION *);
269}
270
271void q_SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, NewSessionCallback cb);
272int q_SSL_SESSION_is_resumable(const SSL_SESSION *s);
273
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)
276
277#endif
278
279#if QT_CONFIG(dtls)
280// Functions and types required for DTLS support:
281extern "C"
282{
283
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 *);
291
292}
293
294int q_DTLSv1_listen(SSL *s, BIO_ADDR *client);
295BIO_ADDR *q_BIO_ADDR_new();
296void q_BIO_ADDR_free(BIO_ADDR *ap);
297
298// API we need for a custom dgram BIO:
299
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);
308
309#endif // dtls
310
311void q_BIO_set_data(BIO *a, void *ptr);
312void *q_BIO_get_data(BIO *a);
313void q_BIO_set_init(BIO *a, int init);
315void q_BIO_set_shutdown(BIO *a, int shut);
316
317#if QT_CONFIG(ocsp)
318const OCSP_CERTID *q_OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x);
319#endif // ocsp
320
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)
323
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)
326
327extern "C" {
328typedef int (*q_SSL_psk_use_session_cb_func_t)(SSL *, const EVP_MD *, const unsigned char **, size_t *,
329 SSL_SESSION **);
330}
332// Here the content of the 1.1 header ends.
333
335long q_ASN1_INTEGER_get(ASN1_INTEGER *a);
336int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y);
337int q_ASN1_STRING_length(ASN1_STRING *a);
338int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
339int q_ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm);
340long q_BIO_ctrl(BIO *a, int b, long c, void *d);
341int q_BIO_free(BIO *a);
342BIO *q_BIO_new_mem_buf(void *a, int b);
343int q_BIO_read(BIO *a, void *b, int c);
344int q_BIO_write(BIO *a, const void *b, int c);
345int q_BN_num_bits(const BIGNUM *a);
346int q_BN_is_word(BIGNUM *a, BN_ULONG w);
347BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w);
348
349X509 *q_d2i_X509(X509 **a, const unsigned char **b, long c);
350char *q_ERR_error_string(unsigned long a, char *b);
351void q_ERR_error_string_n(unsigned long e, char *buf, size_t len);
352unsigned long q_ERR_get_error();
353EVP_CIPHER_CTX *q_EVP_CIPHER_CTX_new();
354void q_EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
355int q_EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
356int q_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
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);
360int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
361const EVP_MD *q_EVP_get_digestbyname(const char *name);
362
363#ifndef OPENSSL_NO_DES
364const EVP_CIPHER *q_EVP_des_cbc();
365const EVP_CIPHER *q_EVP_des_ede3_cbc();
366#endif // OPENSSL_NO_DES
367
368#ifndef OPENSSL_NO_RC2
369const EVP_CIPHER *q_EVP_rc2_cbc();
370#endif // OPENSSL_NO_RC2
371
372#ifndef OPENSSL_NO_AES
373const EVP_CIPHER *q_EVP_aes_128_cbc();
374const EVP_CIPHER *q_EVP_aes_192_cbc();
375const EVP_CIPHER *q_EVP_aes_256_cbc();
376#endif // OPENSSL_NO_AES
377
378const EVP_MD *q_EVP_sha1();
379
380void q_EVP_PKEY_free(EVP_PKEY *a);
382EVP_PKEY *q_EVP_PKEY_new();
383int q_i2d_X509(X509 *a, unsigned char **b);
384const char *q_OBJ_nid2sn(int a);
385const char *q_OBJ_nid2ln(int a);
386int q_OBJ_sn2nid(const char *s);
387int q_OBJ_ln2nid(const char *s);
388int q_i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *obj);
389int q_OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *obj, int no_name);
390int q_OBJ_obj2nid(const ASN1_OBJECT *a);
391#define q_EVP_get_digestbynid(a) q_EVP_get_digestbyname(q_OBJ_nid2sn(a))
392EVP_PKEY *q_PEM_read_bio_PrivateKey(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
393
394DH *q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d);
395int q_PEM_write_bio_PrivateKey(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
396 int e, pem_password_cb *f, void *g);
397int q_PEM_write_bio_PrivateKey_traditional(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
398 int e, pem_password_cb *f, void *g);
399EVP_PKEY *q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
400int q_PEM_write_bio_PUBKEY(BIO *a, EVP_PKEY *b);
401
402void q_RAND_seed(const void *a, int b);
404int q_RAND_bytes(unsigned char *b, int n);
405int q_SSL_accept(SSL *a);
406int q_SSL_clear(SSL *a);
407char *q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c);
408int q_SSL_CIPHER_get_bits(const SSL_CIPHER *a, int *b);
409BIO *q_SSL_get_rbio(const SSL *s);
410int q_SSL_connect(SSL *a);
411int q_SSL_CTX_check_private_key(const SSL_CTX *a);
412long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d);
413void q_SSL_CTX_free(SSL_CTX *a);
414SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
415int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b);
417void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *));
418void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b);
419extern "C" {
421}
423int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b);
424int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c);
425int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
426int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
427X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
428SSL_CONF_CTX *q_SSL_CONF_CTX_new();
429void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
430void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
431unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
432int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
433int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
434void q_SSL_free(SSL *a);
435STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
436const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
437int q_SSL_version(const SSL *a);
438int q_SSL_get_error(SSL *a, int b);
439STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
440long q_SSL_get_verify_result(const SSL *a);
441SSL *q_SSL_new(SSL_CTX *a);
442SSL_CTX *q_SSL_get_SSL_CTX(SSL *a);
443long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
444int q_SSL_read(SSL *a, void *b, int c);
445void q_SSL_set_bio(SSL *a, BIO *b, BIO *c);
449int q_SSL_in_init(const SSL *s);
450int q_SSL_get_shutdown(const SSL *ssl);
451int q_SSL_set_session(SSL *to, SSL_SESSION *session);
452void q_SSL_SESSION_free(SSL_SESSION *ses);
453SSL_SESSION *q_SSL_get1_session(SSL *ssl);
454SSL_SESSION *q_SSL_get_session(const SSL *ssl);
455int q_SSL_set_ex_data(SSL *ssl, int idx, void *arg);
456void *q_SSL_get_ex_data(const SSL *ssl, int idx);
457#ifndef OPENSSL_NO_PSK
458typedef 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);
460typedef unsigned int (*q_psk_server_callback_t)(SSL *ssl, const char *identity, unsigned char *psk, unsigned int max_psk_len);
462int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);
463#endif // !OPENSSL_NO_PSK
464int q_SSL_write(SSL *a, const void *b, int c);
465int q_X509_cmp(X509 *a, X509 *b);
466X509 *q_X509_dup(X509 *a);
467void q_X509_print(BIO *a, X509*b);
468int q_X509_digest(const X509 *x509, const EVP_MD *type, unsigned char *md, unsigned int *len);
469ASN1_OBJECT *q_X509_EXTENSION_get_object(X509_EXTENSION *a);
470void q_X509_free(X509 *a);
471ASN1_TIME *q_X509_gmtime_adj(ASN1_TIME *s, long adj);
472void q_ASN1_TIME_free(ASN1_TIME *t);
473X509_EXTENSION *q_X509_get_ext(X509 *a, int b);
475void *q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d);
476const X509V3_EXT_METHOD *q_X509V3_EXT_get(X509_EXTENSION *a);
477void *q_X509V3_EXT_d2i(X509_EXTENSION *a);
478int q_X509_EXTENSION_get_critical(X509_EXTENSION *a);
479ASN1_OCTET_STRING *q_X509_EXTENSION_get_data(X509_EXTENSION *a);
480void q_BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a);
481void q_AUTHORITY_KEYID_free(AUTHORITY_KEYID *a);
482int q_ASN1_STRING_print(BIO *a, const ASN1_STRING *b);
483int q_X509_check_issued(X509 *a, X509 *b);
484X509_NAME *q_X509_get_issuer_name(X509 *a);
485X509_NAME *q_X509_get_subject_name(X509 *a);
486ASN1_INTEGER *q_X509_get_serialNumber(X509 *a);
487int q_X509_verify_cert(X509_STORE_CTX *ctx);
489X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b);
490ASN1_STRING *q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a);
491ASN1_OBJECT *q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a);
492EVP_PKEY *q_X509_PUBKEY_get(X509_PUBKEY *a);
493void q_X509_STORE_free(X509_STORE *store);
494X509_STORE *q_X509_STORE_new();
495int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
496void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx);
497int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
498 X509 *x509, STACK_OF(X509) *chain);
499X509_STORE_CTX *q_X509_STORE_CTX_new();
500int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
501int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
504X509_STORE *q_X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
505
506// Diffie-Hellman support
508void q_DH_free(DH *dh);
509DH *q_d2i_DHparams(DH **a, const unsigned char **pp, long length);
510int q_i2d_DHparams(DH *a, unsigned char **p);
511int q_DH_check(DH *dh, int *codes);
512
513BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
514#define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh)
515
516#ifndef OPENSSL_NO_EC
517// EC Diffie-Hellman support
518#define q_SSL_CTX_set_tmp_ecdh(ctx, ecdh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_ECDH, 0, (char *)ecdh)
519
520// EC curves management
521size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
522int q_EC_curve_nist2nid(const char *name);
523#endif // OPENSSL_NO_EC
524
525#define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY, 0, (char *)key)
526
527// PKCS#12 support
528int q_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
529PKCS12 *q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12);
530void q_PKCS12_free(PKCS12 *pkcs12);
531
532#define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
533#define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
534#define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
535#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num((st))
536#define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
537
538void q_GENERAL_NAME_free(GENERAL_NAME *a);
539
540#define q_sk_X509_num(st) q_SKM_sk_num((st))
541#define q_sk_X509_value(st, i) q_SKM_sk_value(X509, (st), (i))
542#define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num((st))
543#define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
544#define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
545 q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
546#define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf()
547
548#if OPENSSL_VERSION_MAJOR < 3
549int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
550#else
551int q_SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
552#endif // OPENSSL_VERSION_MAJOR
553
554int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
555SSL_SESSION *q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
556
557#ifndef OPENSSL_NO_NEXTPROTONEG
558int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
559 const unsigned char *in, unsigned int inlen,
560 const unsigned char *client, unsigned int client_len);
562 int (*cb) (SSL *ssl, unsigned char **out,
563 unsigned char *outlen,
564 const unsigned char *in,
565 unsigned int inlen, void *arg),
566 void *arg);
567void q_SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
568 unsigned *len);
569int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
570 unsigned protos_len);
572 int (*cb) (SSL *ssl,
573 const unsigned char **out,
574 unsigned char *outlen,
575 const unsigned char *in,
576 unsigned int inlen,
577 void *arg), void *arg);
578void q_SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
579 unsigned *len);
580#endif // !OPENSSL_NO_NEXTPROTONEG
581
582
583#if QT_CONFIG(dtls)
584
585extern "C"
586{
587typedef int (*CookieGenerateCallback)(SSL *, unsigned char *, unsigned *);
588}
589
590void q_SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, CookieGenerateCallback cb);
591void q_SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, CookieVerifyCallback cb);
592const SSL_METHOD *q_DTLS_server_method();
593const SSL_METHOD *q_DTLS_client_method();
594
595#endif // dtls
596
597void *q_X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
599
600#if QT_CONFIG(dtls)
601#define q_DTLS_set_link_mtu(ssl, mtu) q_SSL_ctrl((ssl), DTLS_CTRL_SET_LINK_MTU, (mtu), nullptr)
602#define q_DTLSv1_get_timeout(ssl, arg) q_SSL_ctrl(ssl, DTLS_CTRL_GET_TIMEOUT, 0, arg)
603#define q_DTLSv1_handle_timeout(ssl) q_SSL_ctrl(ssl, DTLS_CTRL_HANDLE_TIMEOUT, 0, nullptr)
604#endif // dtls
605
606void q_BIO_set_flags(BIO *b, int flags);
607void q_BIO_clear_flags(BIO *b, int flags);
608void *q_BIO_get_ex_data(BIO *b, int idx);
609int q_BIO_set_ex_data(BIO *b, int idx, void *data);
610
611#define q_BIO_set_retry_read(b) q_BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY))
612#define q_BIO_set_retry_write(b) q_BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY))
613#define q_BIO_clear_retry_flags(b) q_BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
614#define q_BIO_set_app_data(s,arg) q_BIO_set_ex_data(s,0,arg)
615#define q_BIO_get_app_data(s) q_BIO_get_ex_data(s,0)
616
617#define q_SSL_set_tlsext_status_type(ssl, type) \
618 q_SSL_ctrl((ssl), SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, (type), nullptr)
619
620#if QT_CONFIG(ocsp)
621
622OCSP_RESPONSE *q_d2i_OCSP_RESPONSE(OCSP_RESPONSE **a, const unsigned char **in, long len);
623int q_i2d_OCSP_RESPONSE(OCSP_RESPONSE *r, unsigned char **ppout);
624OCSP_RESPONSE *q_OCSP_response_create(int status, OCSP_BASICRESP *bs);
625void q_OCSP_RESPONSE_free(OCSP_RESPONSE *rs);
626int q_OCSP_response_status(OCSP_RESPONSE *resp);
627OCSP_BASICRESP *q_OCSP_response_get1_basic(OCSP_RESPONSE *resp);
628OCSP_SINGLERESP *q_OCSP_basic_add1_status(OCSP_BASICRESP *rsp, OCSP_CERTID *cid,
629 int status, int reason, ASN1_TIME *revtime,
630 ASN1_TIME *thisupd, ASN1_TIME *nextupd);
631int q_OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, const EVP_MD *dgst,
632 STACK_OF(X509) *certs, unsigned long flags);
633OCSP_BASICRESP *q_OCSP_BASICRESP_new();
634void q_OCSP_BASICRESP_free(OCSP_BASICRESP *bs);
635int q_OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st, unsigned long flags);
636int q_OCSP_resp_count(OCSP_BASICRESP *bs);
637OCSP_SINGLERESP *q_OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
638int q_OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, ASN1_GENERALIZEDTIME **revtime,
639 ASN1_GENERALIZEDTIME **thisupd, ASN1_GENERALIZEDTIME **nextupd);
640int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, ASN1_GENERALIZEDTIME *nextupd, long nsec, long maxsec);
641int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
642 ASN1_INTEGER **pserial, OCSP_CERTID *cid);
643
644const STACK_OF(X509) *q_OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
645OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer);
646void q_OCSP_CERTID_free(OCSP_CERTID *cid);
647int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
648
649#define q_SSL_get_tlsext_status_ocsp_resp(ssl, arg) \
650 q_SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP, 0, arg)
651
652#define q_SSL_CTX_set_tlsext_status_cb(ssl, cb) \
653 q_SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB, GenericCallbackType(cb))
654
655# define q_SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \
656 q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP, arglen, arg)
657
658#endif // ocsp
659
660
661void *q_CRYPTO_malloc(size_t num, const char *file, int line);
662#define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0)
663void q_CRYPTO_free(void *str, const char *file, int line);
664# define q_OPENSSL_free(addr) q_CRYPTO_free(addr, "", 0)
665int q_CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len);
666
667void q_SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val));
670
673
674// Here we have the ones that make difference between OpenSSL pre/post v3:
675#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
676X509 *q_SSL_get1_peer_certificate(SSL *a);
677#define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate
678int q_EVP_PKEY_get_bits(const EVP_PKEY *pkey);
679int q_EVP_PKEY_get_base_id(const EVP_PKEY *pkey);
680#define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id
681#else
683int q_EVP_PKEY_base_id(EVP_PKEY *a);
684#endif // OPENSSL_VERSION_MAJOR >= 3
685
686#ifndef OPENSSL_NO_DEPRECATED_3_0
687
689void q_DSA_free(DSA *a);
690
692void q_RSA_free(RSA *a);
693
694#ifndef OPENSSL_NO_EC
695
696EC_KEY *q_EC_KEY_dup(const EC_KEY *src);
698void q_EC_KEY_free(EC_KEY *ecdh);
699
700#endif // OPENSSL_NO_EC
701
702int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
703
704DSA *q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d);
705RSA *q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d);
706
707DSA *q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d);
708RSA *q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d);
709
712
713int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d,
714 int e, pem_password_cb *f, void *g);
715int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d,
716 int e, pem_password_cb *f, void *g);
717
718RSA *q_EVP_PKEY_get1_RSA(EVP_PKEY *a);
719DSA *q_EVP_PKEY_get1_DSA(EVP_PKEY *a);
720DH *q_EVP_PKEY_get1_DH(EVP_PKEY *a);
721
722int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b);
723int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b);
724int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b);
725
726int q_DH_bits(DH *dh);
727int q_RSA_bits(RSA *a);
728int q_DSA_bits(DSA *a);
729
730int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r);
731int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
732
733#ifndef OPENSSL_NO_EC
734
735EC_KEY *q_PEM_read_bio_EC_PUBKEY(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
736EC_KEY *q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
737
738int q_PEM_write_bio_ECPrivateKey(BIO *a, EC_KEY *b, const EVP_CIPHER *c, unsigned char *d,
739 int e, pem_password_cb *f, void *g);
740int q_PEM_write_bio_EC_PUBKEY(BIO *a, EC_KEY *b);
741
742EC_KEY *q_EVP_PKEY_get1_EC_KEY(EVP_PKEY *a);
743int q_EVP_PKEY_set1_EC_KEY(EVP_PKEY *a, EC_KEY *b);
744
745const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k);
746int q_EC_GROUP_get_degree(const EC_GROUP* g);
747
748#define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
749 (char *)(rsa))
750#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
751 (char *)(dsa))
752
753
754#endif // OPENSSL_NO_EC
755
756#endif // OPENSSL_NO_DEPRECATED_3_0
757
759
760#endif
EGLContext ctx
QString str
[2]
double e
QSet< QString >::iterator it
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
return ret
static ControlElement< T > * ptr(QWidget *widget)
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLint level
GLuint64 key
GLfloat GLfloat GLfloat w
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLboolean r
[2]
GLenum GLuint GLenum GLsizei length
GLfloat GLfloat f
GLenum src
GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
GLbitfield flags
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLboolean GLboolean g
GLuint name
GLfloat n
GLint y
GLhandleARB obj
[2]
const GLubyte * c
GLuint GLfloat * val
GLenum GLsizei len
GLdouble GLdouble t
Definition qopenglext.h:243
GLuint in
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
GLdouble s
[6]
Definition qopenglext.h:235
GLfloat GLfloat p
[1]
GLuint num
SSL_CTX int(*) void arg)
SSL_CTX int(* cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
SSL_CTX int(*) void DUMMYARG SSL const unsigned char protos)
SSL_CTX int(*) void DUMMYARG SSL const unsigned char unsigne protos_len)
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()
unsigned long qssloptions
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)
int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath)
void(* GenericCallbackType)()
int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b)
int q_EVP_PKEY_base_id(EVP_PKEY *a)
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)
X509 * q_SSL_get_peer_certificate(SSL *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()
SSL_CTX * q_SSL_CTX_new(const SSL_METHOD *a)
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)
STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx)
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)
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)
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)
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)
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 *))
int q_X509_NAME_entry_count(X509_NAME *a)
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)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
QFile file
[0]
QSettings settings("MySoft", "Star Runner")
[0]
QTextStream out(stdout)
[7]
QList< QSslCertificate > cert
[0]
const auto certs
[1]