QtBase  v6.3.1
qsslsocket_openssl_symbols_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2017 The Qt Company Ltd.
4 ** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
5 ** Contact: https://www.qt.io/licensing/
6 **
7 ** This file is part of the QtNetwork module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** Commercial License Usage
11 ** Licensees holding valid commercial Qt licenses may use this file in
12 ** accordance with the commercial license agreement provided with the
13 ** Software or, alternatively, in accordance with the terms contained in
14 ** a written agreement between you and The Qt Company. For licensing terms
15 ** and conditions see https://www.qt.io/terms-conditions. For further
16 ** information use the contact form at https://www.qt.io/contact-us.
17 **
18 ** GNU Lesser General Public License Usage
19 ** Alternatively, this file may be used under the terms of the GNU Lesser
20 ** General Public License version 3 as published by the Free Software
21 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
22 ** packaging of this file. Please review the following information to
23 ** ensure the GNU Lesser General Public License version 3 requirements
24 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
25 **
26 ** GNU General Public License Usage
27 ** Alternatively, this file may be used under the terms of the GNU
28 ** General Public License version 2.0 or (at your option) the GNU General
29 ** Public license version 3 or any later version approved by the KDE Free
30 ** Qt Foundation. The licenses are as published by the Free Software
31 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
32 ** included in the packaging of this file. Please review the following
33 ** information to ensure the GNU General Public License requirements will
34 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
35 ** https://www.gnu.org/licenses/gpl-3.0.html.
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40 
41 /****************************************************************************
42 **
43 ** In addition, as a special exception, the copyright holders listed above give
44 ** permission to link the code of its release of Qt with the OpenSSL project's
45 ** "OpenSSL" library (or modified versions of the "OpenSSL" library that use the
46 ** same license as the original version), and distribute the linked executables.
47 **
48 ** You must comply with the GNU General Public License version 2 in all
49 ** respects for all of the code used other than the "OpenSSL" code. If you
50 ** modify this file, you may extend this exception to your version of the file,
51 ** but you are not obligated to do so. If you do not wish to do so, delete
52 ** this exception statement from your version of this file.
53 **
54 ****************************************************************************/
55 
56 #ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
57 #define QSSLSOCKET_OPENSSL_SYMBOLS_P_H
58 
59 
60 //
61 // W A R N I N G
62 // -------------
63 //
64 // This file is not part of the Qt API. It exists purely as an
65 // implementation detail. This header file may change from version to
66 // version without notice, or even be removed.
67 //
68 // We mean it.
69 //
70 
71 #include <QtNetwork/private/qtnetworkglobal_p.h>
72 
73 #include "qopenssl_p.h"
74 
75 #include <QtCore/qglobal.h>
76 
77 #if QT_CONFIG(ocsp)
78 #include <QtNetwork/private/qocsp_p.h>
79 #endif
80 
82 
83 #define DUMMYARG
84 
85 #if !defined QT_LINKED_OPENSSL
86 // **************** Shared declarations ******************
87 // ret func(arg)
88 
89 # define DEFINEFUNC(ret, func, arg, a, err, funcret) \
90  typedef ret (*_q_PTR_##func)(arg); \
91  static _q_PTR_##func _q_##func = nullptr; \
92  ret q_##func(arg) { \
93  if (Q_UNLIKELY(!_q_##func)) { \
94  qsslSocketUnresolvedSymbolWarning(#func); \
95  err; \
96  } \
97  funcret _q_##func(a); \
98  }
99 
100 // ret func(arg1, arg2)
101 # define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
102  typedef ret (*_q_PTR_##func)(arg1, arg2); \
103  static _q_PTR_##func _q_##func = nullptr; \
104  ret q_##func(arg1, arg2) { \
105  if (Q_UNLIKELY(!_q_##func)) { \
106  qsslSocketUnresolvedSymbolWarning(#func);\
107  err; \
108  } \
109  funcret _q_##func(a, b); \
110  }
111 
112 // ret func(arg1, arg2, arg3)
113 # define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
114  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3); \
115  static _q_PTR_##func _q_##func = nullptr; \
116  ret q_##func(arg1, arg2, arg3) { \
117  if (Q_UNLIKELY(!_q_##func)) { \
118  qsslSocketUnresolvedSymbolWarning(#func); \
119  err; \
120  } \
121  funcret _q_##func(a, b, c); \
122  }
123 
124 // ret func(arg1, arg2, arg3, arg4)
125 # define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
126  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4); \
127  static _q_PTR_##func _q_##func = nullptr; \
128  ret q_##func(arg1, arg2, arg3, arg4) { \
129  if (Q_UNLIKELY(!_q_##func)) { \
130  qsslSocketUnresolvedSymbolWarning(#func); \
131  err; \
132  } \
133  funcret _q_##func(a, b, c, d); \
134  }
135 
136 // ret func(arg1, arg2, arg3, arg4, arg5)
137 # define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
138  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5); \
139  static _q_PTR_##func _q_##func = nullptr; \
140  ret q_##func(arg1, arg2, arg3, arg4, arg5) { \
141  if (Q_UNLIKELY(!_q_##func)) { \
142  qsslSocketUnresolvedSymbolWarning(#func); \
143  err; \
144  } \
145  funcret _q_##func(a, b, c, d, e); \
146  }
147 
148 // ret func(arg1, arg2, arg3, arg4, arg6)
149 # define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
150  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6); \
151  static _q_PTR_##func _q_##func = nullptr; \
152  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { \
153  if (Q_UNLIKELY(!_q_##func)) { \
154  qsslSocketUnresolvedSymbolWarning(#func); \
155  err; \
156  } \
157  funcret _q_##func(a, b, c, d, e, f); \
158  }
159 
160 // ret func(arg1, arg2, arg3, arg4, arg6, arg7)
161 # define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
162  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
163  static _q_PTR_##func _q_##func = nullptr; \
164  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { \
165  if (Q_UNLIKELY(!_q_##func)) { \
166  qsslSocketUnresolvedSymbolWarning(#func); \
167  err; \
168  } \
169  funcret _q_##func(a, b, c, d, e, f, g); \
170  }
171 
172 // ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
173 # define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
174  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
175  static _q_PTR_##func _q_##func = nullptr; \
176  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { \
177  if (Q_UNLIKELY(!_q_##func)) { \
178  qsslSocketUnresolvedSymbolWarning(#func); \
179  err; \
180  } \
181  funcret _q_##func(a, b, c, d, e, f, g, h, i); \
182  }
183 // **************** Shared declarations ******************
184 
185 #else // !defined QT_LINKED_OPENSSL
186 
187 // **************** Static declarations ******************
188 
189 // ret func(arg)
190 # define DEFINEFUNC(ret, func, arg, a, err, funcret) \
191  ret q_##func(arg) { funcret func(a); }
192 
193 // ret func(arg1, arg2)
194 # define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
195  ret q_##func(arg1, arg2) { funcret func(a, b); }
196 
197 // ret func(arg1, arg2, arg3)
198 # define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
199  ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
200 
201 // ret func(arg1, arg2, arg3, arg4)
202 # define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
203  ret q_##func(arg1, arg2, arg3, arg4) { funcret func(a, b, c, d); }
204 
205 // ret func(arg1, arg2, arg3, arg4, arg5)
206 # define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
207  ret q_##func(arg1, arg2, arg3, arg4, arg5) { funcret func(a, b, c, d, e); }
208 
209 // ret func(arg1, arg2, arg3, arg4, arg6)
210 # define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
211  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { funcret func(a, b, c, d, e, f); }
212 
213 // ret func(arg1, arg2, arg3, arg4, arg6, arg7)
214 # define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
215  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { funcret func(a, b, c, d, e, f, g); }
216 
217 // ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
218 # define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
219  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { funcret func(a, b, c, d, e, f, g, h, i); }
220 
221 // **************** Static declarations ******************
222 
223 #endif // !defined QT_LINKED_OPENSSL
224 
225 // TODO: the following lines previously were a part of 1.1 - specific header.
226 // To reduce the amount of the change, I'm directly copying and pasting the
227 // content of the header here. Later, can be better sorted/split into groups,
228 // depending on the functionality.
229 
230 const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
231 
232 BIO *q_BIO_new(const BIO_METHOD *a);
233 const BIO_METHOD *q_BIO_s_mem();
234 
235 void q_AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a);
236 int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
237 int q_EVP_PKEY_up_ref(EVP_PKEY *a);
238 EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
239 void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
240 int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx);
241 int q_OPENSSL_sk_num(OPENSSL_STACK *a);
242 void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
243 OPENSSL_STACK *q_OPENSSL_sk_new_null();
244 void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
245 void q_OPENSSL_sk_free(OPENSSL_STACK *a);
246 void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
248 unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
249 int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
250 size_t q_SSL_get_client_random(SSL *a, unsigned char *out, size_t outlen);
251 size_t q_SSL_SESSION_get_master_key(const SSL_SESSION *session, unsigned char *out, size_t outlen);
252 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);
253 const SSL_METHOD *q_TLS_method();
254 const SSL_METHOD *q_TLS_client_method();
255 const SSL_METHOD *q_TLS_server_method();
256 ASN1_TIME *q_X509_getm_notBefore(X509 *a);
257 ASN1_TIME *q_X509_getm_notAfter(X509 *a);
258 void q_ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
259 void q_X509V3_conf_free(CONF_VALUE *val);
260 
261 void q_X509_up_ref(X509 *a);
262 long q_X509_get_version(X509 *a);
263 EVP_PKEY *q_X509_get_pubkey(X509 *a);
264 void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
265 int q_X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data);
266 void *q_X509_STORE_get_ex_data(X509_STORE *r, int idx);
267 STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
268 void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
269 
270 # define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
271  | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
272 
273 #define q_SKM_sk_num(st) q_OPENSSL_sk_num((OPENSSL_STACK *)st)
274 #define q_SKM_sk_value(type, st,i) (type *)q_OPENSSL_sk_value((OPENSSL_STACK *)st, i)
275 
276 #define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
277  | OPENSSL_INIT_ADD_ALL_DIGESTS \
278  | OPENSSL_INIT_LOAD_CONFIG, NULL)
279 #define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
280  | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
281 
282 int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
283 
285 const char *q_OpenSSL_version(int type);
286 
287 unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session);
288 unsigned long q_SSL_set_options(SSL *s, unsigned long op);
289 
290 #ifdef TLS1_3_VERSION
291 int q_SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
292 
293 // The functions below do not really have to be ifdefed like this, but for now
294 // they only used in TLS 1.3 handshake (and probably future versions).
295 // Plus, 'is resumalbe' is OpenSSL 1.1.1-only (and again we need it for
296 // TLS 1.3-specific session management).
297 
298 extern "C"
299 {
300 using NewSessionCallback = int (*)(SSL *, SSL_SESSION *);
301 }
302 
303 void q_SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, NewSessionCallback cb);
304 int q_SSL_SESSION_is_resumable(const SSL_SESSION *s);
305 
306 #define q_SSL_CTX_set_session_cache_mode(ctx,m) \
307  q_SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
308 
309 #endif
310 
311 #if QT_CONFIG(dtls)
312 // Functions and types required for DTLS support:
313 extern "C"
314 {
315 
316 typedef int (*CookieVerifyCallback)(SSL *, const unsigned char *, unsigned);
317 typedef int (*DgramWriteCallback) (BIO *, const char *, int);
318 typedef int (*DgramReadCallback) (BIO *, char *, int);
319 typedef int (*DgramPutsCallback) (BIO *, const char *);
320 typedef long (*DgramCtrlCallback) (BIO *, int, long, void *);
321 typedef int (*DgramCreateCallback) (BIO *);
322 typedef int (*DgramDestroyCallback) (BIO *);
323 
324 }
325 
326 int q_DTLSv1_listen(SSL *s, BIO_ADDR *client);
327 BIO_ADDR *q_BIO_ADDR_new();
328 void q_BIO_ADDR_free(BIO_ADDR *ap);
329 
330 // API we need for a custom dgram BIO:
331 
332 BIO_METHOD *q_BIO_meth_new(int type, const char *name);
333 void q_BIO_meth_free(BIO_METHOD *biom);
334 int q_BIO_meth_set_write(BIO_METHOD *biom, DgramWriteCallback);
335 int q_BIO_meth_set_read(BIO_METHOD *biom, DgramReadCallback);
336 int q_BIO_meth_set_puts(BIO_METHOD *biom, DgramPutsCallback);
337 int q_BIO_meth_set_ctrl(BIO_METHOD *biom, DgramCtrlCallback);
338 int q_BIO_meth_set_create(BIO_METHOD *biom, DgramCreateCallback);
339 int q_BIO_meth_set_destroy(BIO_METHOD *biom, DgramDestroyCallback);
340 
341 #endif // dtls
342 
343 void q_BIO_set_data(BIO *a, void *ptr);
344 void *q_BIO_get_data(BIO *a);
345 void q_BIO_set_init(BIO *a, int init);
347 void q_BIO_set_shutdown(BIO *a, int shut);
348 
349 #if QT_CONFIG(ocsp)
350 const OCSP_CERTID *q_OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x);
351 #endif // ocsp
352 
353 #define q_SSL_CTX_set_min_proto_version(ctx, version) \
354  q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, nullptr)
355 
356 #define q_SSL_CTX_set_max_proto_version(ctx, version) \
357  q_SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, nullptr)
358 
359 extern "C" {
360 typedef int (*q_SSL_psk_use_session_cb_func_t)(SSL *, const EVP_MD *, const unsigned char **, size_t *,
361  SSL_SESSION **);
362 }
364 // Here the content of the 1.1 header ends.
365 
367 long q_ASN1_INTEGER_get(ASN1_INTEGER *a);
368 int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y);
369 int q_ASN1_STRING_length(ASN1_STRING *a);
370 int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
371 int q_ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm);
372 long q_BIO_ctrl(BIO *a, int b, long c, void *d);
373 int q_BIO_free(BIO *a);
374 BIO *q_BIO_new_mem_buf(void *a, int b);
375 int q_BIO_read(BIO *a, void *b, int c);
376 int q_BIO_write(BIO *a, const void *b, int c);
377 int q_BN_num_bits(const BIGNUM *a);
378 int q_BN_is_word(BIGNUM *a, BN_ULONG w);
379 BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w);
380 
381 X509 *q_d2i_X509(X509 **a, const unsigned char **b, long c);
382 char *q_ERR_error_string(unsigned long a, char *b);
383 void q_ERR_error_string_n(unsigned long e, char *buf, size_t len);
384 unsigned long q_ERR_get_error();
385 EVP_CIPHER_CTX *q_EVP_CIPHER_CTX_new();
386 void q_EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
387 int q_EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
388 int q_EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
389 int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc);
390 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);
391 int q_EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl);
392 int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
393 const EVP_MD *q_EVP_get_digestbyname(const char *name);
394 
395 #ifndef OPENSSL_NO_DES
396 const EVP_CIPHER *q_EVP_des_cbc();
397 const EVP_CIPHER *q_EVP_des_ede3_cbc();
398 #endif // OPENSSL_NO_DES
399 
400 #ifndef OPENSSL_NO_RC2
401 const EVP_CIPHER *q_EVP_rc2_cbc();
402 #endif // OPENSSL_NO_RC2
403 
404 #ifndef OPENSSL_NO_AES
405 const EVP_CIPHER *q_EVP_aes_128_cbc();
406 const EVP_CIPHER *q_EVP_aes_192_cbc();
407 const EVP_CIPHER *q_EVP_aes_256_cbc();
408 #endif // OPENSSL_NO_AES
409 
410 const EVP_MD *q_EVP_sha1();
411 
412 void q_EVP_PKEY_free(EVP_PKEY *a);
414 EVP_PKEY *q_EVP_PKEY_new();
415 int q_i2d_X509(X509 *a, unsigned char **b);
416 const char *q_OBJ_nid2sn(int a);
417 const char *q_OBJ_nid2ln(int a);
418 int q_OBJ_sn2nid(const char *s);
419 int q_OBJ_ln2nid(const char *s);
420 int q_i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *obj);
421 int q_OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *obj, int no_name);
422 int q_OBJ_obj2nid(const ASN1_OBJECT *a);
423 #define q_EVP_get_digestbynid(a) q_EVP_get_digestbyname(q_OBJ_nid2sn(a))
424 EVP_PKEY *q_PEM_read_bio_PrivateKey(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
425 
426 DH *q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d);
427 int q_PEM_write_bio_PrivateKey(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
428  int e, pem_password_cb *f, void *g);
429 int q_PEM_write_bio_PrivateKey_traditional(BIO *a, EVP_PKEY *b, const EVP_CIPHER *c, unsigned char *d,
430  int e, pem_password_cb *f, void *g);
431 EVP_PKEY *q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d);
432 int q_PEM_write_bio_PUBKEY(BIO *a, EVP_PKEY *b);
433 
434 void q_RAND_seed(const void *a, int b);
436 int q_RAND_bytes(unsigned char *b, int n);
437 int q_SSL_accept(SSL *a);
438 int q_SSL_clear(SSL *a);
439 char *q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c);
440 int q_SSL_CIPHER_get_bits(const SSL_CIPHER *a, int *b);
441 BIO *q_SSL_get_rbio(const SSL *s);
442 int q_SSL_connect(SSL *a);
443 int q_SSL_CTX_check_private_key(const SSL_CTX *a);
444 long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d);
445 void q_SSL_CTX_free(SSL_CTX *a);
446 SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
447 int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b);
449 void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *));
450 void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b);
451 extern "C" {
453 }
455 int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b);
456 int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c);
457 int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
458 int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
459 X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
460 SSL_CONF_CTX *q_SSL_CONF_CTX_new();
461 void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
462 void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
463 unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
464 int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
465 int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
466 void q_SSL_free(SSL *a);
467 STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
468 const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
469 int q_SSL_version(const SSL *a);
470 int q_SSL_get_error(SSL *a, int b);
471 STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
472 long q_SSL_get_verify_result(const SSL *a);
473 SSL *q_SSL_new(SSL_CTX *a);
474 SSL_CTX *q_SSL_get_SSL_CTX(SSL *a);
475 long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
476 int q_SSL_read(SSL *a, void *b, int c);
477 void q_SSL_set_bio(SSL *a, BIO *b, BIO *c);
480 int q_SSL_shutdown(SSL *a);
481 int q_SSL_in_init(const SSL *s);
482 int q_SSL_get_shutdown(const SSL *ssl);
483 int q_SSL_set_session(SSL *to, SSL_SESSION *session);
484 void q_SSL_SESSION_free(SSL_SESSION *ses);
485 SSL_SESSION *q_SSL_get1_session(SSL *ssl);
486 SSL_SESSION *q_SSL_get_session(const SSL *ssl);
487 int q_SSL_set_ex_data(SSL *ssl, int idx, void *arg);
488 void *q_SSL_get_ex_data(const SSL *ssl, int idx);
489 #ifndef OPENSSL_NO_PSK
490 typedef 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);
492 typedef unsigned int (*q_psk_server_callback_t)(SSL *ssl, const char *identity, unsigned char *psk, unsigned int max_psk_len);
494 int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);
495 #endif // !OPENSSL_NO_PSK
496 int q_SSL_write(SSL *a, const void *b, int c);
497 int q_X509_cmp(X509 *a, X509 *b);
498 X509 *q_X509_dup(X509 *a);
499 void q_X509_print(BIO *a, X509*b);
500 int q_X509_digest(const X509 *x509, const EVP_MD *type, unsigned char *md, unsigned int *len);
501 ASN1_OBJECT *q_X509_EXTENSION_get_object(X509_EXTENSION *a);
502 void q_X509_free(X509 *a);
503 ASN1_TIME *q_X509_gmtime_adj(ASN1_TIME *s, long adj);
504 void q_ASN1_TIME_free(ASN1_TIME *t);
505 X509_EXTENSION *q_X509_get_ext(X509 *a, int b);
507 void *q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d);
508 const X509V3_EXT_METHOD *q_X509V3_EXT_get(X509_EXTENSION *a);
509 void *q_X509V3_EXT_d2i(X509_EXTENSION *a);
510 int q_X509_EXTENSION_get_critical(X509_EXTENSION *a);
511 ASN1_OCTET_STRING *q_X509_EXTENSION_get_data(X509_EXTENSION *a);
512 void q_BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a);
513 void q_AUTHORITY_KEYID_free(AUTHORITY_KEYID *a);
514 int q_ASN1_STRING_print(BIO *a, const ASN1_STRING *b);
515 int q_X509_check_issued(X509 *a, X509 *b);
516 X509_NAME *q_X509_get_issuer_name(X509 *a);
517 X509_NAME *q_X509_get_subject_name(X509 *a);
518 ASN1_INTEGER *q_X509_get_serialNumber(X509 *a);
519 int q_X509_verify_cert(X509_STORE_CTX *ctx);
520 int q_X509_NAME_entry_count(X509_NAME *a);
521 X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b);
522 ASN1_STRING *q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a);
523 ASN1_OBJECT *q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a);
524 EVP_PKEY *q_X509_PUBKEY_get(X509_PUBKEY *a);
525 void q_X509_STORE_free(X509_STORE *store);
526 X509_STORE *q_X509_STORE_new();
527 int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
528 void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx);
529 int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
530  X509 *x509, STACK_OF(X509) *chain);
531 X509_STORE_CTX *q_X509_STORE_CTX_new();
532 int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
533 int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
534 int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
535 X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
536 X509_STORE *q_X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
537 
538 // Diffie-Hellman support
539 DH *q_DH_new();
540 void q_DH_free(DH *dh);
541 DH *q_d2i_DHparams(DH **a, const unsigned char **pp, long length);
542 int q_i2d_DHparams(DH *a, unsigned char **p);
543 int q_DH_check(DH *dh, int *codes);
544 
545 BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
546 #define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh)
547 
548 #ifndef OPENSSL_NO_EC
549 // EC Diffie-Hellman support
550 #define q_SSL_CTX_set_tmp_ecdh(ctx, ecdh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_ECDH, 0, (char *)ecdh)
551 
552 // EC curves management
553 size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
554 int q_EC_curve_nist2nid(const char *name);
555 #endif // OPENSSL_NO_EC
556 
557 #define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY, 0, (char *)key)
558 
559 // PKCS#12 support
560 int q_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
561 PKCS12 *q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12);
562 void q_PKCS12_free(PKCS12 *pkcs12);
563 
564 #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
565 #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
566 #define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
567 #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num((st))
568 #define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
569 
570 void q_GENERAL_NAME_free(GENERAL_NAME *a);
571 
572 #define q_sk_X509_num(st) q_SKM_sk_num((st))
573 #define q_sk_X509_value(st, i) q_SKM_sk_value(X509, (st), (i))
574 #define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num((st))
575 #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
576 #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
577  q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
578 #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf()
579 
580 #if OPENSSL_VERSION_MAJOR < 3
581 int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
582 #else
583 int q_SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
584 #endif // OPENSSL_VERSION_MAJOR
585 
586 int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
587 SSL_SESSION *q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
588 
589 #ifndef OPENSSL_NO_NEXTPROTONEG
590 int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
591  const unsigned char *in, unsigned int inlen,
592  const unsigned char *client, unsigned int client_len);
594  int (*cb) (SSL *ssl, unsigned char **out,
595  unsigned char *outlen,
596  const unsigned char *in,
597  unsigned int inlen, void *arg),
598  void *arg);
599 void q_SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
600  unsigned *len);
601 int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
602  unsigned protos_len);
604  int (*cb) (SSL *ssl,
605  const unsigned char **out,
606  unsigned char *outlen,
607  const unsigned char *in,
608  unsigned int inlen,
609  void *arg), void *arg);
610 void q_SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
611  unsigned *len);
612 #endif // !OPENSSL_NO_NEXTPROTONEG
613 
614 
615 #if QT_CONFIG(dtls)
616 
617 extern "C"
618 {
619 typedef int (*CookieGenerateCallback)(SSL *, unsigned char *, unsigned *);
620 }
621 
622 void q_SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, CookieGenerateCallback cb);
623 void q_SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, CookieVerifyCallback cb);
624 const SSL_METHOD *q_DTLS_server_method();
625 const SSL_METHOD *q_DTLS_client_method();
626 
627 #endif // dtls
628 
629 void *q_X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
631 
632 #if QT_CONFIG(dtls)
633 #define q_DTLS_set_link_mtu(ssl, mtu) q_SSL_ctrl((ssl), DTLS_CTRL_SET_LINK_MTU, (mtu), nullptr)
634 #define q_DTLSv1_get_timeout(ssl, arg) q_SSL_ctrl(ssl, DTLS_CTRL_GET_TIMEOUT, 0, arg)
635 #define q_DTLSv1_handle_timeout(ssl) q_SSL_ctrl(ssl, DTLS_CTRL_HANDLE_TIMEOUT, 0, nullptr)
636 #endif // dtls
637 
638 void q_BIO_set_flags(BIO *b, int flags);
639 void q_BIO_clear_flags(BIO *b, int flags);
640 void *q_BIO_get_ex_data(BIO *b, int idx);
641 int q_BIO_set_ex_data(BIO *b, int idx, void *data);
642 
643 #define q_BIO_set_retry_read(b) q_BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY))
644 #define q_BIO_set_retry_write(b) q_BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY))
645 #define q_BIO_clear_retry_flags(b) q_BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
646 #define q_BIO_set_app_data(s,arg) q_BIO_set_ex_data(s,0,arg)
647 #define q_BIO_get_app_data(s) q_BIO_get_ex_data(s,0)
648 
649 #define q_SSL_set_tlsext_status_type(ssl, type) \
650  q_SSL_ctrl((ssl), SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, (type), nullptr)
651 
652 #if QT_CONFIG(ocsp)
653 
654 OCSP_RESPONSE *q_d2i_OCSP_RESPONSE(OCSP_RESPONSE **a, const unsigned char **in, long len);
655 int q_i2d_OCSP_RESPONSE(OCSP_RESPONSE *r, unsigned char **ppout);
656 OCSP_RESPONSE *q_OCSP_response_create(int status, OCSP_BASICRESP *bs);
657 void q_OCSP_RESPONSE_free(OCSP_RESPONSE *rs);
658 int q_OCSP_response_status(OCSP_RESPONSE *resp);
659 OCSP_BASICRESP *q_OCSP_response_get1_basic(OCSP_RESPONSE *resp);
660 OCSP_SINGLERESP *q_OCSP_basic_add1_status(OCSP_BASICRESP *rsp, OCSP_CERTID *cid,
661  int status, int reason, ASN1_TIME *revtime,
662  ASN1_TIME *thisupd, ASN1_TIME *nextupd);
663 int q_OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, const EVP_MD *dgst,
664  STACK_OF(X509) *certs, unsigned long flags);
665 OCSP_BASICRESP *q_OCSP_BASICRESP_new();
666 void q_OCSP_BASICRESP_free(OCSP_BASICRESP *bs);
667 int q_OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, X509_STORE *st, unsigned long flags);
668 int q_OCSP_resp_count(OCSP_BASICRESP *bs);
669 OCSP_SINGLERESP *q_OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
670 int q_OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, ASN1_GENERALIZEDTIME **revtime,
671  ASN1_GENERALIZEDTIME **thisupd, ASN1_GENERALIZEDTIME **nextupd);
672 int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, ASN1_GENERALIZEDTIME *nextupd, long nsec, long maxsec);
673 int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
674  ASN1_INTEGER **pserial, OCSP_CERTID *cid);
675 
676 const STACK_OF(X509) *q_OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
677 OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer);
678 void q_OCSP_CERTID_free(OCSP_CERTID *cid);
679 int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
680 
681 #define q_SSL_get_tlsext_status_ocsp_resp(ssl, arg) \
682  q_SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP, 0, arg)
683 
684 #define q_SSL_CTX_set_tlsext_status_cb(ssl, cb) \
685  q_SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB, GenericCallbackType(cb))
686 
687 # define q_SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \
688  q_SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP, arglen, arg)
689 
690 #endif // ocsp
691 
692 
693 void *q_CRYPTO_malloc(size_t num, const char *file, int line);
694 #define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0)
695 void q_CRYPTO_free(void *str, const char *file, int line);
696 # define q_OPENSSL_free(addr) q_CRYPTO_free(addr, "", 0)
697 
698 void q_SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val));
701 
702 int q_SSL_CTX_get_security_level(const SSL_CTX *ctx);
703 void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
704 
705 // Here we have the ones that make difference between OpenSSL pre/post v3:
706 #if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
707 X509 *q_SSL_get1_peer_certificate(SSL *a);
708 #define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate
709 int q_EVP_PKEY_get_bits(const EVP_PKEY *pkey);
710 int q_EVP_PKEY_get_base_id(const EVP_PKEY *pkey);
711 #define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id
712 #else
714 int q_EVP_PKEY_base_id(EVP_PKEY *a);
715 #endif // OPENSSL_VERSION_MAJOR >= 3
716 
717 #ifndef OPENSSL_NO_DEPRECATED_3_0
718 
719 DSA *q_DSA_new();
720 void q_DSA_free(DSA *a);
721 
722 RSA *q_RSA_new();
723 void q_RSA_free(RSA *a);
724 
725 #ifndef OPENSSL_NO_EC
726 
727 EC_KEY *q_EC_KEY_dup(const EC_KEY *src);
728 EC_KEY *q_EC_KEY_new_by_curve_name(int nid);
729 void q_EC_KEY_free(EC_KEY *ecdh);
730 
731 #endif // OPENSSL_NO_EC
732 
733 int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
734 
735 DSA *q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d);
736 RSA *q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d);
737 
738 DSA *q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d);
739 RSA *q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d);
740 
743 
744 int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d,
745  int e, pem_password_cb *f, void *g);
746 int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d,
747  int e, pem_password_cb *f, void *g);
748 
749 RSA *q_EVP_PKEY_get1_RSA(EVP_PKEY *a);
750 DSA *q_EVP_PKEY_get1_DSA(EVP_PKEY *a);
751 DH *q_EVP_PKEY_get1_DH(EVP_PKEY *a);
752 
753 int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b);
754 int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b);
755 int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b);
756 
757 int q_DH_bits(DH *dh);
758 int q_RSA_bits(RSA *a);
759 int q_DSA_bits(DSA *a);
760 
761 int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r);
762 int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
763 
764 #ifndef OPENSSL_NO_EC
765 
766 EC_KEY *q_PEM_read_bio_EC_PUBKEY(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
767 EC_KEY *q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d);
768 
769 int q_PEM_write_bio_ECPrivateKey(BIO *a, EC_KEY *b, const EVP_CIPHER *c, unsigned char *d,
770  int e, pem_password_cb *f, void *g);
771 int q_PEM_write_bio_EC_PUBKEY(BIO *a, EC_KEY *b);
772 
773 EC_KEY *q_EVP_PKEY_get1_EC_KEY(EVP_PKEY *a);
774 int q_EVP_PKEY_set1_EC_KEY(EVP_PKEY *a, EC_KEY *b);
775 
776 const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k);
777 int q_EC_GROUP_get_degree(const EC_GROUP* g);
778 
779 #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
780  (char *)(rsa))
781 #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
782  (char *)(dsa))
783 
784 
785 #endif // OPENSSL_NO_EC
786 
787 #endif // OPENSSL_NO_DEPRECATED_3_0
788 
790 
791 #endif
FT_UInt idx
Definition: cffcmap.c:135
QString str
[2]
double e
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro vuzp8 reg2 vuzp d d &reg2 endm macro vzip8 reg2 vzip d d &reg2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld init[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld SRC pixld MASK if DST_R else pixld DST_R endif if src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head if pixblock_size cache_preload_simple endif process_pixblock_tail pixinterleave dst_w_basereg irp if pixblock_size chunk_size tst beq if DST_W else pixst DST_W else mov ORIG_W endif add lsl if lsl endif if lsl endif lsl endif lsl endif lsl endif subs mov DST_W if regs_shortage str endif bge start_of_loop_label endm macro generate_composite_function
set set set set set set set macro pixldst1 op
void
Definition: png.h:1080
EGLOutputLayerEXT EGLint EGLAttrib value
GLenum GLuint GLenum GLsizei length
Definition: qopengl.h:270
GLenum type
Definition: qopengl.h:270
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLint level
GLuint64 key
GLboolean r
[2]
GLfloat GLfloat GLfloat w
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLfloat GLfloat f
GLenum src
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]
Definition: qopenglext.h:4164
const GLubyte * c
Definition: qopenglext.h:12701
GLuint GLfloat * val
Definition: qopenglext.h:1513
GLenum GLsizei len
Definition: qopenglext.h:3292
GLdouble GLdouble t
[9]
Definition: qopenglext.h:243
GLuint in
Definition: qopenglext.h:8870
GLdouble GLdouble GLdouble GLdouble q
Definition: qopenglext.h:259
GLdouble s
[6]
Definition: qopenglext.h:235
GLfloat GLfloat p
[1]
Definition: qopenglext.h:12698
GLuint num
Definition: qopenglext.h:5654
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)
void q_SSL_free(SSL *a)
ASN1_TIME * q_X509_getm_notBefore(X509 *a)
ASN1_STRING * q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a)
void q_SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len)
SSL_SESSION * q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length)
void q_SSL_CTX_free(SSL_CTX *a)
void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b)
void q_BIO_clear_flags(BIO *b, int flags)
const EVP_CIPHER * q_EVP_aes_128_cbc()
int q_SSL_in_init(const SSL *s)
X509 * q_SSL_get_peer_certificate(SSL *a)
int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b)
const EVP_CIPHER * q_EVP_des_cbc()
int q_OBJ_obj2nid(const ASN1_OBJECT *a)
int q_ASN1_STRING_length(ASN1_STRING *a)
void q_BIO_set_shutdown(BIO *a, int shut)
int q_DH_check(DH *dh, int *codes)
bool q_resolveOpenSslSymbols()
void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b)
int q_ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
DH * q_EVP_PKEY_get1_DH(EVP_PKEY *a)
int q_SSL_get_ex_data_X509_STORE_CTX_idx()
EC_KEY * q_PEM_read_bio_EC_PUBKEY(BIO *a, EC_KEY **b, pem_password_cb *c, void *d)
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)
const SSL_METHOD * q_TLS_client_method()
long q_BIO_ctrl(BIO *a, int b, long c, void *d)
int q_EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *key, const unsigned char *iv, int enc)
EVP_PKEY * q_PEM_read_bio_PrivateKey(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d)
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)
SSL_CTX * q_SSL_get_SSL_CTX(SSL *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)
ASN1_OBJECT * q_X509_EXTENSION_get_object(X509_EXTENSION *a)
int q_SSL_set_session(SSL *to, SSL_SESSION *session)
int q_SSL_session_reused(SSL *a)
long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d)
ASN1_TIME * q_X509_gmtime_adj(ASN1_TIME *s, long adj)
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)
const EVP_CIPHER * q_EVP_rc2_cbc()
int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r)
DSA * q_DSA_new()
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)
X509_STORE * q_X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx)
X509 * q_d2i_X509(X509 **a, const unsigned char **b, long c)
int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len)
const SSL_METHOD * q_TLS_server_method()
ASN1_OCTET_STRING * q_X509_EXTENSION_get_data(X509_EXTENSION *a)
EC_KEY * q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d)
void * q_BIO_get_data(BIO *a)
void q_DH_free(DH *dh)
const EVP_CIPHER * q_EVP_des_ede3_cbc()
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)
X509 * q_X509_dup(X509 *a)
unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op)
X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *a)
int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
void * q_SSL_get_ex_data(const SSL *ssl, int idx)
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)
void * q_BIO_get_ex_data(BIO *b, int idx)
BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w)
X509_NAME * q_X509_get_issuer_name(X509 *a)
DSA * q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d)
OPENSSL_STACK * q_OPENSSL_sk_new_null()
int q_SSL_get_error(SSL *a, int b)
const char * q_OBJ_nid2ln(int a)
BIO * q_SSL_get_rbio(const SSL *s)
int q_BIO_set_ex_data(BIO *b, int idx, void *data)
int q_X509_EXTENSION_get_critical(X509_EXTENSION *a)
void q_DSA_free(DSA *a)
void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a)
int q_DSA_bits(DSA *a)
int q_SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, unsigned protos_len)
ASN1_INTEGER * q_X509_get_serialNumber(X509 *a)
SSL * q_SSL_new(SSL_CTX *a)
int q_SSL_clear(SSL *a)
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()
const char * q_OpenSSL_version(int type)
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)
void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb)
int q_SSL_accept(SSL *a)
int q_PEM_write_bio_DSA_PUBKEY(BIO *a, DSA *b)
int q_BN_num_bits(const BIGNUM *a)
const EVP_MD * q_EVP_get_digestbyname(const char *name)
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)
int q_DH_bits(DH *dh)
STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx)
RSA * q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **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)
EVP_CIPHER_CTX * q_EVP_CIPHER_CTX_new()
void q_BIO_set_init(BIO *a, int init)
void q_CRYPTO_free(void *str, const char *file, int line)
EVP_PKEY_CTX * q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)
void q_EVP_PKEY_free(EVP_PKEY *a)
int q_ASN1_STRING_print(BIO *a, const ASN1_STRING *b)
DSA * q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d)
void q_AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c)
void q_X509_STORE_free(X509_STORE *store)
int q_BN_is_word(BIGNUM *a, BN_ULONG w)
X509 * q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
void q_EC_KEY_free(EC_KEY *ecdh)
int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
SSL_CTX * q_SSL_CTX_new(const SSL_METHOD *a)
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)
EVP_PKEY * q_X509_PUBKEY_get(X509_PUBKEY *a)
long q_X509_get_version(X509 *a)
int q_SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint)
EVP_PKEY * q_X509_get_pubkey(X509 *a)
int q_i2d_X509(X509 *a, unsigned char **b)
char * q_ERR_error_string(unsigned long a, char *b)
void * q_CRYPTO_malloc(size_t num, const char *file, int line)
int q_SSL_write(SSL *a, const void *b, int c)
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)
DH * q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d)
int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
long q_SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg)
void q_PKCS12_free(PKCS12 *pkcs12)
void * q_X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx)
void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void(*b)(void *))
EC_KEY * q_EVP_PKEY_get1_EC_KEY(EVP_PKEY *a)
SSL_SESSION * q_SSL_get1_session(SSL *ssl)
int q_EVP_PKEY_up_ref(EVP_PKEY *a)
const EVP_MD * q_EVP_sha1()
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)
int q_EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b)
void q_BIO_set_data(BIO *a, void *ptr)
int q_SSL_read(SSL *a, void *b, int c)
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)
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)
EC_KEY * q_EC_KEY_new_by_curve_name(int nid)
void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level)
DH * q_d2i_DHparams(DH **a, const unsigned char **pp, long length)
int q_X509_check_issued(X509 *a, X509 *b)
int q_SSL_version(const SSL *a)
char * q_SSL_CIPHER_description(const SSL_CIPHER *a, char *b, int c)
ASN1_TIME * q_X509_getm_notAfter(X509 *a)
int q_RAND_bytes(unsigned char *b, int n)
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b)
int q_PEM_write_bio_PUBKEY(BIO *a, EVP_PKEY *b)
int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b)
const EC_GROUP * q_EC_KEY_get0_group(const EC_KEY *k)
X509_STORE_CTX * q_X509_STORE_CTX_new()
RSA * q_EVP_PKEY_get1_RSA(EVP_PKEY *a)
void q_SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, unsigned *len)
const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x)
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)
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)
RSA * q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d)
void * q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d)
const X509V3_EXT_METHOD * q_X509V3_EXT_get(X509_EXTENSION *a)
void q_X509_up_ref(X509 *a)
const char * q_OBJ_nid2sn(int a)
void q_X509_print(BIO *a, X509 *b)
X509_NAME * q_X509_get_subject_name(X509 *a)
void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
SSL_SESSION * q_SSL_get_session(const SSL *ssl)
void q_X509_free(X509 *a)
int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a)
DH * q_DH_new()
int q_SSL_connect(SSL *a)
EVP_PKEY * q_EVP_PKEY_new()
const char * q_SSL_alert_type_string(int value)
int q_BIO_get_shutdown(BIO *a)
void * q_X509_STORE_get_ex_data(X509_STORE *r, int idx)
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)
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_ASN1_TIME_free(ASN1_TIME *t)
void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx)
int q_OBJ_sn2nid(const char *s)
EC_KEY * q_EC_KEY_dup(const EC_KEY *src)
X509_NAME_ENTRY * q_X509_NAME_get_entry(X509_NAME *a, int b)
const EVP_CIPHER * q_EVP_aes_256_cbc()
EVP_PKEY * q_PEM_read_bio_PUBKEY(BIO *a, EVP_PKEY **b, pem_password_cb *c, void *d)
int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
SSL_CONF_CTX * q_SSL_CONF_CTX_new()
X509_EXTENSION * q_X509_get_ext(X509 *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)
ASN1_OBJECT * q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a)
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))
BIGNUM * q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
const char * q_SSL_alert_desc_string_long(int value)
BIO * q_BIO_new(const BIO_METHOD *a)
int q_EVP_PKEY_type(int a)
const EVP_CIPHER * q_EVP_aes_192_cbc()
const SSL_CIPHER * q_SSL_get_current_cipher(SSL *a)
X509_STORE * q_X509_STORE_new()
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)
long q_SSL_CTX_callback_ctrl(SSL_CTX *, int, GenericCallbackType)
PKCS12 * q_d2i_PKCS12_bio(BIO *bio, PKCS12 **pkcs12)
RSA * q_RSA_new()
const BIO_METHOD * q_BIO_s_mem()
DSA * q_EVP_PKEY_get1_DSA(EVP_PKEY *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)
BIO * q_BIO_new_mem_buf(void *a, int b)
const SSL_METHOD * q_TLS_method()
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)
int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
void * q_X509V3_EXT_d2i(X509_EXTENSION *a)
void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
QFile file
[0]
QSettings settings("MySoft", "Star Runner")
[0]
QTextStream out(stdout)
[7]
QList< QSslCertificate > cert
[0]
const auto certs
[1]
QStringList::Iterator it
#define free_func
Definition: zconf.h:149