Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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);
236
237# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
238 | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
239
240#define q_SKM_sk_num(st) q_OPENSSL_sk_num((OPENSSL_STACK *)st)
241#define q_SKM_sk_value(type, st,i) (type *)q_OPENSSL_sk_value((OPENSSL_STACK *)st, i)
242
243#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
244 | OPENSSL_INIT_ADD_ALL_DIGESTS \
245 | OPENSSL_INIT_LOAD_CONFIG, NULL)
246#define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
247 | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
248
249int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
250
252const char *q_OpenSSL_version(int type);
253
254unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session);
255unsigned long q_SSL_set_options(SSL *s, unsigned long op);
256
257#ifdef TLS1_3_VERSION
258int q_SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
259
260// The functions below do not really have to be ifdefed like this, but for now
261// they only used in TLS 1.3 handshake (and probably future versions).
262// Plus, 'is resumalbe' is OpenSSL 1.1.1-only (and again we need it for
263// TLS 1.3-specific session management).
264
265extern "C"
266{
267using NewSessionCallback = int (*)(SSL *, SSL_SESSION *);
268}
269
270void q_SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, NewSessionCallback cb);
271int q_SSL_SESSION_is_resumable(const SSL_SESSION *s);
272
273#define q_SSL_CTX_set_session_cache_mode(ctx,m) \
274 q_SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
275
276#endif
277
278#if QT_CONFIG(dtls)
279// Functions and types required for DTLS support:
280extern "C"
281{
282
283typedef int (*CookieVerifyCallback)(SSL *, const unsigned char *, unsigned);
284typedef int (*DgramWriteCallback) (BIO *, const char *, int);
285typedef int (*DgramReadCallback) (BIO *, char *, int);
286typedef int (*DgramPutsCallback) (BIO *, const char *);
287typedef long (*DgramCtrlCallback) (BIO *, int, long, void *);
288typedef int (*DgramCreateCallback) (BIO *);
289typedef int (*DgramDestroyCallback) (BIO *);
290
291}
292
293int q_DTLSv1_listen(SSL *s, BIO_ADDR *client);
294BIO_ADDR *q_BIO_ADDR_new();
295void q_BIO_ADDR_free(BIO_ADDR *ap);
296
297// API we need for a custom dgram BIO:
298
299BIO_METHOD *q_BIO_meth_new(int type, const char *name);
300void q_BIO_meth_free(BIO_METHOD *biom);
301int q_BIO_meth_set_write(BIO_METHOD *biom, DgramWriteCallback);
302int q_BIO_meth_set_read(BIO_METHOD *biom, DgramReadCallback);
303int q_BIO_meth_set_puts(BIO_METHOD *biom, DgramPutsCallback);
304int q_BIO_meth_set_ctrl(BIO_METHOD *biom, DgramCtrlCallback);
305int q_BIO_meth_set_create(BIO_METHOD *biom, DgramCreateCallback);
306int q_BIO_meth_set_destroy(BIO_METHOD *biom, DgramDestroyCallback);
307
308#endif // dtls
309
310void q_BIO_set_data(BIO *a, void *ptr);
311void *q_BIO_get_data(BIO *a);
312void q_BIO_set_init(BIO *a, int init);
314void q_BIO_set_shutdown(BIO *a, int shut);
315
316#if QT_CONFIG(ocsp)
317const OCSP_CERTID *q_OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x);
318#endif // ocsp
319
320#define q_SSL_CTX_set_min_proto_version(ctx, version) \
321 q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, nullptr)
322
323#define q_SSL_CTX_set_max_proto_version(ctx, version) \
324 q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, nullptr)
325
326extern "C" {
327typedef int (*q_SSL_psk_use_session_cb_func_t)(SSL *, const EVP_MD *, const unsigned char **, size_t *,
328 SSL_SESSION **);
329}
331// Here the content of the 1.1 header ends.
332
334long q_ASN1_INTEGER_get(ASN1_INTEGER *a);
335int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y);
336int q_ASN1_STRING_length(ASN1_STRING *a);
337int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
338int q_ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm);
339long q_BIO_ctrl(BIO *a, int b, long c, void *d);
340int q_BIO_free(BIO *a);
341BIO *q_BIO_new_mem_buf(void *a, int b);
342int q_BIO_read(BIO *a, void *b, int c);
343int q_BIO_write(BIO *a, const void *b, int c);
344int q_BN_num_bits(const BIGNUM *a);
345int q_BN_is_word(BIGNUM *a, BN_ULONG w);
346BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w);
347
348X509 *q_d2i_X509(X509 **a, const unsigned char **b, long c);
349char *q_ERR_error_string(unsigned long a, char *b);
350void q_ERR_error_string_n(unsigned long e, char *buf, size_t len);
351unsigned long q_ERR_get_error();
352EVP_CIPHER_CTX *q_EVP_CIPHER_CTX_new();
353void q_EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
354int q_EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
355int q_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
356int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc);
357int q_EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key, const unsigned char *iv, int enc);
358int q_EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl);
359int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
360const EVP_MD *q_EVP_get_digestbyname(const char *name);
361
362#ifndef OPENSSL_NO_DES
363const EVP_CIPHER *q_EVP_des_cbc();
364const EVP_CIPHER *q_EVP_des_ede3_cbc();
365#endif // OPENSSL_NO_DES
366
367#ifndef OPENSSL_NO_RC2
368const EVP_CIPHER *q_EVP_rc2_cbc();
369#endif // OPENSSL_NO_RC2
370
371#ifndef OPENSSL_NO_AES
372const EVP_CIPHER *q_EVP_aes_128_cbc();
373const EVP_CIPHER *q_EVP_aes_192_cbc();
374const EVP_CIPHER *q_EVP_aes_256_cbc();
375#endif // OPENSSL_NO_AES
376
377const EVP_MD *q_EVP_sha1();
378
379void q_EVP_PKEY_free(EVP_PKEY *a);
381EVP_PKEY *q_EVP_PKEY_new();
382int q_i2d_X509(X509 *a, unsigned char **b);
383const char *q_OBJ_nid2sn(int a);
384const char *q_OBJ_nid2ln(int a);
385int q_OBJ_sn2nid(const char *s);
386int q_OBJ_ln2nid(const char *s);
387int q_i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *obj);
388int q_OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *obj, int no_name);
389int q_OBJ_obj2nid(const ASN1_OBJECT *a);
390#define q_EVP_get_digestbynid(a) q_EVP_get_digestbyname(q_OBJ_nid2sn(a))
391EVP_PKEY *q_PEM_read_bio_PrivateKey(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
392
393int q_PEM_write_bio_PrivateKey(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
394 int e, pem_password_cb *f, void *g);
395int q_PEM_write_bio_PrivateKey_traditional(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
396 int e, pem_password_cb *f, void *g);
397EVP_PKEY *q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
398int q_PEM_write_bio_PUBKEY(BIO *a, EVP_PKEY *b);
399
400void q_RAND_seed(const void *a, int b);
402int q_RAND_bytes(unsigned char *b, int n);
403int q_SSL_accept(SSL *a);
404int q_SSL_clear(SSL *a);
405char *q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c);
406int q_SSL_CIPHER_get_bits(const SSL_CIPHER *a, int *b);
407BIO *q_SSL_get_rbio(const SSL *s);
408int q_SSL_connect(SSL *a);
409int q_SSL_CTX_check_private_key(const SSL_CTX *a);
410long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d);
411void q_SSL_CTX_free(SSL_CTX *a);
412SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
413int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b);
415void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *));
416void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b);
417extern "C" {
419}
421int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b);
422int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c);
423int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
424int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
425X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
426SSL_CONF_CTX *q_SSL_CONF_CTX_new();
427void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
428void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
429unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
430int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
431int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
432void q_SSL_free(SSL *a);
433STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
434const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
435int q_SSL_version(const SSL *a);
436int q_SSL_get_error(SSL *a, int b);
437STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
438long q_SSL_get_verify_result(const SSL *a);
439SSL *q_SSL_new(SSL_CTX *a);
440SSL_CTX *q_SSL_get_SSL_CTX(SSL *a);
441long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
442int q_SSL_read(SSL *a, void *b, int c);
443void q_SSL_set_bio(SSL *a, BIO *b, BIO *c);
447int q_SSL_in_init(const SSL *s);
448int q_SSL_get_shutdown(const SSL *ssl);
449int q_SSL_set_session(SSL *to, SSL_SESSION *session);
450void q_SSL_SESSION_free(SSL_SESSION *ses);
451SSL_SESSION *q_SSL_get1_session(SSL *ssl);
452SSL_SESSION *q_SSL_get_session(const SSL *ssl);
453int q_SSL_set_ex_data(SSL *ssl, int idx, void *arg);
454void *q_SSL_get_ex_data(const SSL *ssl, int idx);
455#ifndef OPENSSL_NO_PSK
456typedef 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);
458typedef unsigned int (*q_psk_server_callback_t)(SSL *ssl, const char *identity, unsigned char *psk, unsigned int max_psk_len);
460int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);
461#endif // !OPENSSL_NO_PSK
462int q_SSL_write(SSL *a, const void *b, int c);
463int q_X509_cmp(X509 *a, X509 *b);
464X509 *q_X509_dup(X509 *a);
465void q_X509_print(BIO *a, X509*b);
466int q_X509_digest(const X509 *x509, const EVP_MD *type, unsigned char *md, unsigned int *len);
467ASN1_OBJECT *q_X509_EXTENSION_get_object(X509_EXTENSION *a);
468void q_X509_free(X509 *a);
469ASN1_TIME *q_X509_gmtime_adj(ASN1_TIME *s, long adj);
470void q_ASN1_TIME_free(ASN1_TIME *t);
471X509_EXTENSION *q_X509_get_ext(X509 *a, int b);
473void *q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d);
474const X509V3_EXT_METHOD *q_X509V3_EXT_get(X509_EXTENSION *a);
475void *q_X509V3_EXT_d2i(X509_EXTENSION *a);
476int q_X509_EXTENSION_get_critical(X509_EXTENSION *a);
477ASN1_OCTET_STRING *q_X509_EXTENSION_get_data(X509_EXTENSION *a);
478void q_BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a);
479void q_AUTHORITY_KEYID_free(AUTHORITY_KEYID *a);
480int q_ASN1_STRING_print(BIO *a, const ASN1_STRING *b);
481int q_X509_check_issued(X509 *a, X509 *b);
482X509_NAME *q_X509_get_issuer_name(X509 *a);
483X509_NAME *q_X509_get_subject_name(X509 *a);
484ASN1_INTEGER *q_X509_get_serialNumber(X509 *a);
485int q_X509_verify_cert(X509_STORE_CTX *ctx);
487X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b);
488ASN1_STRING *q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a);
489ASN1_OBJECT *q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a);
490EVP_PKEY *q_X509_PUBKEY_get(X509_PUBKEY *a);
491void q_X509_STORE_free(X509_STORE *store);
492X509_STORE *q_X509_STORE_new();
493int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
494void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx);
495int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
496 X509 *x509, STACK_OF(X509) *chain);
497X509_STORE_CTX *q_X509_STORE_CTX_new();
498int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
499int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
502X509_STORE *q_X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
503
504// Diffie-Hellman support
505#ifndef OPENSSL_NO_DEPRECATED_3_0
507void q_DH_free(DH *dh);
508int q_DH_check(DH *dh, int *codes);
509void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
510
511DH *q_d2i_DHparams(DH **a, const unsigned char **pp, long length);
512int q_i2d_DHparams(DH *a, unsigned char **p);
513
514DH *q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d);
515#endif // OPENSSL_NO_DEPRECATED_3_0
516
517BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
518#define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh)
519#define q_SSL_CTX_set_dh_auto(ctx, onoff) q_SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
520
521#ifndef OPENSSL_NO_EC
522// EC Diffie-Hellman support
523#define q_SSL_CTX_set_tmp_ecdh(ctx, ecdh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_ECDH, 0, (char *)ecdh)
524
525// EC curves management
526size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
527int q_EC_curve_nist2nid(const char *name);
528#endif // OPENSSL_NO_EC
529
530#define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY, 0, (char *)key)
531
532// PKCS#12 support
533int q_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
534PKCS12 *q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12);
535void q_PKCS12_free(PKCS12 *pkcs12);
536
537#define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
538#define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
539#define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
540#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num((st))
541#define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
542
543void q_GENERAL_NAME_free(GENERAL_NAME *a);
544
545#define q_sk_X509_num(st) q_SKM_sk_num((st))
546#define q_sk_X509_value(st, i) q_SKM_sk_value(X509, (st), (i))
547#define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num((st))
548#define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
549#define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
550 q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
551#define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf()
552
553#if OPENSSL_VERSION_MAJOR < 3
554int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
555#else
556int q_SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
557#endif // OPENSSL_VERSION_MAJOR
558
559int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
560SSL_SESSION *q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
561
562#ifndef OPENSSL_NO_NEXTPROTONEG
563int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
564 const unsigned char *in, unsigned int inlen,
565 const unsigned char *client, unsigned int client_len);
567 int (*cb) (SSL *ssl, unsigned char **out,
568 unsigned char *outlen,
569 const unsigned char *in,
570 unsigned int inlen, void *arg),
571 void *arg);
572void q_SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
573 unsigned *len);
574int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
575 unsigned protos_len);
577 int (*cb) (SSL *ssl,
578 const unsigned char **out,
579 unsigned char *outlen,
580 const unsigned char *in,
581 unsigned int inlen,
582 void *arg), void *arg);
583void q_SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
584 unsigned *len);
585#endif // !OPENSSL_NO_NEXTPROTONEG
586
587
588#if QT_CONFIG(dtls)
589
590extern "C"
591{
592typedef int (*CookieGenerateCallback)(SSL *, unsigned char *, unsigned *);
593}
594
595void q_SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, CookieGenerateCallback cb);
596void q_SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, CookieVerifyCallback cb);
597const SSL_METHOD *q_DTLS_server_method();
598const SSL_METHOD *q_DTLS_client_method();
599
600#endif // dtls
601
602void *q_X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
604
605#if QT_CONFIG(dtls)
606#define q_DTLS_set_link_mtu(ssl, mtu) q_SSL_ctrl((ssl), DTLS_CTRL_SET_LINK_MTU, (mtu), nullptr)
607#define q_DTLSv1_get_timeout(ssl, arg) q_SSL_ctrl(ssl, DTLS_CTRL_GET_TIMEOUT, 0, arg)
608#define q_DTLSv1_handle_timeout(ssl) q_SSL_ctrl(ssl, DTLS_CTRL_HANDLE_TIMEOUT, 0, nullptr)
609#endif // dtls
610
611void q_BIO_set_flags(BIO *b, int flags);
612void q_BIO_clear_flags(BIO *b, int flags);
613void *q_BIO_get_ex_data(BIO *b, int idx);
614int q_BIO_set_ex_data(BIO *b, int idx, void *data);
615
616#define q_BIO_set_retry_read(b) q_BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY))
617#define q_BIO_set_retry_write(b) q_BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY))
618#define q_BIO_clear_retry_flags(b) q_BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
619#define q_BIO_set_app_data(s,arg) q_BIO_set_ex_data(s,0,arg)
620#define q_BIO_get_app_data(s) q_BIO_get_ex_data(s,0)
621
622#define q_SSL_set_tlsext_status_type(ssl, type) \
623 q_SSL_ctrl((ssl), SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, (type), nullptr)
624
625#if QT_CONFIG(ocsp)
626
627OCSP_RESPONSE *q_d2i_OCSP_RESPONSE(OCSP_RESPONSE **a, const unsigned char **in, long len);
628int q_i2d_OCSP_RESPONSE(OCSP_RESPONSE *r, unsigned char **ppout);
629OCSP_RESPONSE *q_OCSP_response_create(int status, OCSP_BASICRESP *bs);
630void q_OCSP_RESPONSE_free(OCSP_RESPONSE *rs);
631int q_OCSP_response_status(OCSP_RESPONSE *resp);
632OCSP_BASICRESP *q_OCSP_response_get1_basic(OCSP_RESPONSE *resp);
633OCSP_SINGLERESP *q_OCSP_basic_add1_status(OCSP_BASICRESP *rsp, OCSP_CERTID *cid,
634 int status, int reason, ASN1_TIME *revtime,
635 ASN1_TIME *thisupd, ASN1_TIME *nextupd);
636int q_OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, const EVP_MD *dgst,
637 STACK_OF(X509) *certs, unsigned long flags);
638OCSP_BASICRESP *q_OCSP_BASICRESP_new();
639void q_OCSP_BASICRESP_free(OCSP_BASICRESP *bs);
640int q_OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st, unsigned long flags);
641int q_OCSP_resp_count(OCSP_BASICRESP *bs);
642OCSP_SINGLERESP *q_OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
643int q_OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, ASN1_GENERALIZEDTIME **revtime,
644 ASN1_GENERALIZEDTIME **thisupd, ASN1_GENERALIZEDTIME **nextupd);
645int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, ASN1_GENERALIZEDTIME *nextupd, long nsec, long maxsec);
646int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
647 ASN1_INTEGER **pserial, OCSP_CERTID *cid);
648
649const STACK_OF(X509) *q_OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
650OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer);
651void q_OCSP_CERTID_free(OCSP_CERTID *cid);
652int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
653
654#define q_SSL_get_tlsext_status_ocsp_resp(ssl, arg) \
655 q_SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP, 0, arg)
656
657#define q_SSL_CTX_set_tlsext_status_cb(ssl, cb) \
658 q_SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB, GenericCallbackType(cb))
659
660# define q_SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \
661 q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP, arglen, arg)
662
663#endif // ocsp
664
665
666void *q_CRYPTO_malloc(size_t num, const char *file, int line);
667#define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0)
668void q_CRYPTO_free(void *str, const char *file, int line);
669# define q_OPENSSL_free(addr) q_CRYPTO_free(addr, "", 0)
670int q_CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len);
671
672void q_SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val));
675
678
679// Here we have the ones that make difference between OpenSSL pre/post v3:
680#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
681X509 *q_SSL_get1_peer_certificate(SSL *a);
682#define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate
683int q_EVP_PKEY_get_bits(const EVP_PKEY *pkey);
684int q_EVP_PKEY_get_base_id(const EVP_PKEY *pkey);
685#define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id
686#else
688int q_EVP_PKEY_base_id(EVP_PKEY *a);
689#endif // OPENSSL_VERSION_MAJOR >= 3
690
691#ifndef OPENSSL_NO_DEPRECATED_3_0
692
694void q_DSA_free(DSA *a);
695
697void q_RSA_free(RSA *a);
698
699#ifndef OPENSSL_NO_EC
700
701EC_KEY *q_EC_KEY_dup(const EC_KEY *src);
703void q_EC_KEY_free(EC_KEY *ecdh);
704
705#endif // OPENSSL_NO_EC
706
707int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
708
709DSA *q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d);
710RSA *q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d);
711
712DSA *q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d);
713RSA *q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d);
714
717
718int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d,
719 int e, pem_password_cb *f, void *g);
720int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d,
721 int e, pem_password_cb *f, void *g);
722
723RSA *q_EVP_PKEY_get1_RSA(EVP_PKEY *a);
724DSA *q_EVP_PKEY_get1_DSA(EVP_PKEY *a);
725DH *q_EVP_PKEY_get1_DH(EVP_PKEY *a);
726
727int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b);
728int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b);
729int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b);
730
731int q_DH_bits(DH *dh);
732int q_RSA_bits(RSA *a);
733int q_DSA_bits(DSA *a);
734
735int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r);
736int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
737
738#ifndef OPENSSL_NO_EC
739
740EC_KEY *q_PEM_read_bio_EC_PUBKEY(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
741EC_KEY *q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
742
743int q_PEM_write_bio_ECPrivateKey(BIO *a, EC_KEY *b, const EVP_CIPHER *c, unsigned char *d,
744 int e, pem_password_cb *f, void *g);
745int q_PEM_write_bio_EC_PUBKEY(BIO *a, EC_KEY *b);
746
747EC_KEY *q_EVP_PKEY_get1_EC_KEY(EVP_PKEY *a);
748int q_EVP_PKEY_set1_EC_KEY(EVP_PKEY *a, EC_KEY *b);
749
750const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k);
751int q_EC_GROUP_get_degree(const EC_GROUP* g);
752
753#define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
754 (char *)(rsa))
755#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
756 (char *)(dsa))
757
758
759#endif // OPENSSL_NO_EC
760
761#endif // OPENSSL_NO_DEPRECATED_3_0
762
764
765#endif
EGLContext ctx
QString str
[2]
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
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat f
GLenum src
GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
GLbitfield flags
GLboolean GLboolean g
GLuint name
GLfloat n
GLint y
GLhandleARB obj
[2]
GLdouble s
[6]
Definition qopenglext.h:235
const GLubyte * c
GLuint GLfloat * val
GLdouble GLdouble t
Definition qopenglext.h:243
GLuint in
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
GLfloat GLfloat p
[1]
GLenum GLsizei len
GLuint num
SSL_CTX int void DUMMYARG SSL const unsigned char * protos
SSL_CTX int void * arg
SSL_CTX int void DUMMYARG SSL const unsigned char unsigned protos_len
SSL_CTX int(* cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *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_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]