Qt 4.8
qsslsocket_openssl_symbols_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtNetwork module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 
43 #ifndef QSSLSOCKET_OPENSSL_SYMBOLS_P_H
44 #define QSSLSOCKET_OPENSSL_SYMBOLS_P_H
45 
46 //
47 // W A R N I N G
48 // -------------
49 //
50 // This file is not part of the Qt API. It exists for the convenience
51 // of the QLibrary class. This header file may change from
52 // version to version without notice, or even be removed.
53 //
54 // We mean it.
55 //
56 
57 #include "qsslsocket_openssl_p.h"
58 
60 
61 #define DUMMYARG
62 
63 #if !defined QT_LINKED_OPENSSL
64 // **************** Shared declarations ******************
65 // ret func(arg)
66 
67 # define DEFINEFUNC(ret, func, arg, a, err, funcret) \
68  typedef ret (*_q_PTR_##func)(arg); \
69  static _q_PTR_##func _q_##func = 0; \
70  ret q_##func(arg) { \
71  if (!_q_##func) { \
72  qWarning("QSslSocket: cannot call unresolved function "#func); \
73  err; \
74  } \
75  funcret _q_##func(a); \
76  }
77 
78 // ret func(arg1, arg2)
79 # define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
80  typedef ret (*_q_PTR_##func)(arg1, arg2); \
81  static _q_PTR_##func _q_##func = 0; \
82  ret q_##func(arg1, arg2) { \
83  if (!_q_##func) { \
84  qWarning("QSslSocket: cannot call unresolved function "#func);\
85  err; \
86  } \
87  funcret _q_##func(a, b); \
88  }
89 
90 // ret func(arg1, arg2, arg3)
91 # define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
92  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3); \
93  static _q_PTR_##func _q_##func = 0; \
94  ret q_##func(arg1, arg2, arg3) { \
95  if (!_q_##func) { \
96  qWarning("QSslSocket: cannot call unresolved function "#func); \
97  err; \
98  } \
99  funcret _q_##func(a, b, c); \
100  }
101 
102 // ret func(arg1, arg2, arg3, arg4)
103 # define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
104  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4); \
105  static _q_PTR_##func _q_##func = 0; \
106  ret q_##func(arg1, arg2, arg3, arg4) { \
107  if (!_q_##func) { \
108  qWarning("QSslSocket: cannot call unresolved function "#func); \
109  err; \
110  } \
111  funcret _q_##func(a, b, c, d); \
112  }
113 
114 // ret func(arg1, arg2, arg3, arg4, arg5)
115 # define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
116  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5); \
117  static _q_PTR_##func _q_##func = 0; \
118  ret q_##func(arg1, arg2, arg3, arg4, arg5) { \
119  if (!_q_##func) { \
120  qWarning("QSslSocket: cannot call unresolved function "#func); \
121  err; \
122  } \
123  funcret _q_##func(a, b, c, d, e); \
124  }
125 
126 // ret func(arg1, arg2, arg3, arg4, arg6)
127 # define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
128  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6); \
129  static _q_PTR_##func _q_##func = 0; \
130  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { \
131  if (!_q_##func) { \
132  qWarning("QSslSocket: cannot call unresolved function "#func); \
133  err; \
134  } \
135  funcret _q_##func(a, b, c, d, e, f); \
136  }
137 
138 // ret func(arg1, arg2, arg3, arg4, arg6, arg7)
139 # define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
140  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
141  static _q_PTR_##func _q_##func = 0; \
142  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { \
143  if (!_q_##func) { \
144  qWarning("QSslSocket: cannot call unresolved function "#func); \
145  err; \
146  } \
147  funcret _q_##func(a, b, c, d, e, f, g); \
148  }
149 
150 // ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
151 # define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
152  typedef ret (*_q_PTR_##func)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
153  static _q_PTR_##func _q_##func = 0; \
154  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { \
155  if (_q_##func) { \
156  qWarning("QSslSocket: cannot call unresolved function "#func); \
157  err; \
158  } \
159  funcret _q_##func(a, b, c, d, e, f, g, h, i); \
160  }
161 // **************** Shared declarations ******************
162 
163 #else // !defined QT_LINKED_OPENSSL
164 
165 // **************** Static declarations ******************
166 
167 // ret func(arg)
168 # define DEFINEFUNC(ret, func, arg, a, err, funcret) \
169  ret q_##func(arg) { funcret func(a); }
170 
171 // ret func(arg1, arg2)
172 # define DEFINEFUNC2(ret, func, arg1, a, arg2, b, err, funcret) \
173  ret q_##func(arg1, arg2) { funcret func(a, b); }
174 
175 // ret func(arg1, arg2, arg3)
176 # define DEFINEFUNC3(ret, func, arg1, a, arg2, b, arg3, c, err, funcret) \
177  ret q_##func(arg1, arg2, arg3) { funcret func(a, b, c); }
178 
179 // ret func(arg1, arg2, arg3, arg4)
180 # define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret) \
181  ret q_##func(arg1, arg2, arg3, arg4) { funcret func(a, b, c, d); }
182 
183 // ret func(arg1, arg2, arg3, arg4, arg5)
184 # define DEFINEFUNC5(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, err, funcret) \
185  ret q_##func(arg1, arg2, arg3, arg4, arg5) { funcret func(a, b, c, d, e); }
186 
187 // ret func(arg1, arg2, arg3, arg4, arg6)
188 # define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret) \
189  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6) { funcret func(a, b, c, d, e, f); }
190 
191 // ret func(arg1, arg2, arg3, arg4, arg6, arg7)
192 # define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret) \
193  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7) { funcret func(a, b, c, d, e, f, g); }
194 
195 // ret func(arg1, arg2, arg3, arg4, arg6, arg7, arg8, arg9)
196 # define DEFINEFUNC9(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, arg8, h, arg9, i, err, funcret) \
197  ret q_##func(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { funcret func(a, b, c, d, e, f, g, h, i); }
198 
199 // **************** Static declarations ******************
200 
201 #endif // !defined QT_LINKED_OPENSSL
202 
204 long q_ASN1_INTEGER_get(ASN1_INTEGER *a);
205 unsigned char * q_ASN1_STRING_data(ASN1_STRING *a);
206 int q_ASN1_STRING_length(ASN1_STRING *a);
207 int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
208 long q_BIO_ctrl(BIO *a, int b, long c, void *d);
209 int q_BIO_free(BIO *a);
210 BIO *q_BIO_new(BIO_METHOD *a);
211 BIO *q_BIO_new_mem_buf(void *a, int b);
212 int q_BIO_read(BIO *a, void *b, int c);
213 BIO_METHOD *q_BIO_s_mem();
214 int q_BIO_write(BIO *a, const void *b, int c);
215 int q_BN_num_bits(const BIGNUM *a);
216 int q_CRYPTO_num_locks();
217 void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
218 void q_CRYPTO_set_id_callback(unsigned long (*a)());
219 void q_CRYPTO_free(void *a);
220 void q_DSA_free(DSA *a);
221 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
222 // 0.9.8 broke SC and BC by changing this function's signature.
223 X509 *q_d2i_X509(X509 **a, const unsigned char **b, long c);
224 #else
225 X509 *q_d2i_X509(X509 **a, unsigned char **b, long c);
226 #endif
227 char *q_ERR_error_string(unsigned long a, char *b);
228 unsigned long q_ERR_get_error();
229 const EVP_CIPHER *q_EVP_des_ede3_cbc();
230 int q_EVP_PKEY_assign(EVP_PKEY *a, int b, char *c);
231 int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b);
232 int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b);
233 void q_EVP_PKEY_free(EVP_PKEY *a);
234 RSA *q_EVP_PKEY_get1_RSA(EVP_PKEY *a);
235 DSA *q_EVP_PKEY_get1_DSA(EVP_PKEY *a);
236 int q_EVP_PKEY_type(int a);
237 EVP_PKEY *q_EVP_PKEY_new();
238 int q_i2d_X509(X509 *a, unsigned char **b);
239 const char *q_OBJ_nid2sn(int a);
240 int q_OBJ_obj2nid(const ASN1_OBJECT *a);
241 #ifdef SSLEAY_MACROS
242 // ### verify
243 void *q_PEM_ASN1_read_bio(d2i_of_void *a, const char *b, BIO *c, void **d, pem_password_cb *e,
244  void *f);
245 // ### ditto for write
246 #else
247 DSA *q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d);
248 RSA *q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d);
249 int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d,
250  int e, pem_password_cb *f, void *g);
251 int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d,
252  int e, pem_password_cb *f, void *g);
253 #endif
254 DSA *q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d);
255 RSA *q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d);
256 int q_PEM_write_bio_DSA_PUBKEY(BIO *a, DSA *b);
257 int q_PEM_write_bio_RSA_PUBKEY(BIO *a, RSA *b);
258 void q_RAND_seed(const void *a, int b);
259 int q_RAND_status();
260 void q_RSA_free(RSA *a);
261 int q_sk_num(STACK *a);
262 void q_sk_pop_free(STACK *a, void (*b)(void *));
263 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
264 void q_sk_free(_STACK *a);
265 void * q_sk_value(STACK *a, int b);
266 #else
267 void q_sk_free(STACK *a);
268 char * q_sk_value(STACK *a, int b);
269 #endif
270 int q_SSL_accept(SSL *a);
271 int q_SSL_clear(SSL *a);
272 char *q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c);
273 int q_SSL_connect(SSL *a);
274 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
275 // 0.9.8 broke SC and BC by changing this function's signature.
276 int q_SSL_CTX_check_private_key(const SSL_CTX *a);
277 #else
278 int q_SSL_CTX_check_private_key(SSL_CTX *a);
279 #endif
280 long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d);
281 void q_SSL_CTX_free(SSL_CTX *a);
282 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
283 SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
284 #else
285 SSL_CTX *q_SSL_CTX_new(SSL_METHOD *a);
286 #endif
287 int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b);
288 int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a);
289 void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *));
290 void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b);
291 int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b);
292 int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c);
293 int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
294 int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
295 int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
296 void q_SSL_free(SSL *a);
297 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
298 // 0.9.8 broke SC and BC by changing this function's signature.
299 STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
300 #else
301 STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(SSL *a);
302 #endif
303 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
304 const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
305 #else
306 SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
307 #endif
308 int q_SSL_get_error(SSL *a, int b);
309 STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
311 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
312 // 0.9.8 broke SC and BC by changing this function's signature.
313 long q_SSL_get_verify_result(const SSL *a);
314 #else
315 long q_SSL_get_verify_result(SSL *a);
316 #endif
317 int q_SSL_library_init();
319 SSL *q_SSL_new(SSL_CTX *a);
320 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
321 long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
322 #endif
323 int q_SSL_read(SSL *a, void *b, int c);
324 void q_SSL_set_bio(SSL *a, BIO *b, BIO *c);
325 void q_SSL_set_accept_state(SSL *a);
326 void q_SSL_set_connect_state(SSL *a);
327 int q_SSL_shutdown(SSL *a);
328 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
329 const SSL_METHOD *q_SSLv2_client_method();
330 const SSL_METHOD *q_SSLv3_client_method();
331 const SSL_METHOD *q_SSLv23_client_method();
332 const SSL_METHOD *q_TLSv1_client_method();
333 const SSL_METHOD *q_SSLv2_server_method();
334 const SSL_METHOD *q_SSLv3_server_method();
335 const SSL_METHOD *q_SSLv23_server_method();
336 const SSL_METHOD *q_TLSv1_server_method();
337 #else
338 SSL_METHOD *q_SSLv2_client_method();
339 SSL_METHOD *q_SSLv3_client_method();
340 SSL_METHOD *q_SSLv23_client_method();
341 SSL_METHOD *q_TLSv1_client_method();
342 SSL_METHOD *q_SSLv2_server_method();
343 SSL_METHOD *q_SSLv3_server_method();
344 SSL_METHOD *q_SSLv23_server_method();
345 SSL_METHOD *q_TLSv1_server_method();
346 #endif
347 int q_SSL_write(SSL *a, const void *b, int c);
348 int q_X509_cmp(X509 *a, X509 *b);
349 #ifdef SSLEAY_MACROS
350 void *q_ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
351 #define q_X509_dup(x509) (X509 *)q_ASN1_dup((i2d_of_void *)q_i2d_X509, \
352  (d2i_of_void *)q_d2i_X509,(char *)x509)
353 #else
354 X509 *q_X509_dup(X509 *a);
355 #endif
356 ASN1_OBJECT *q_X509_EXTENSION_get_object(X509_EXTENSION *a);
357 void q_X509_free(X509 *a);
358 X509_EXTENSION *q_X509_get_ext(X509 *a, int b);
359 int q_X509_get_ext_count(X509 *a);
360 void *q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d);
361 X509_NAME *q_X509_get_issuer_name(X509 *a);
362 X509_NAME *q_X509_get_subject_name(X509 *a);
363 int q_X509_verify_cert(X509_STORE_CTX *ctx);
364 int q_X509_NAME_entry_count(X509_NAME *a);
365 X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b);
366 ASN1_STRING *q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a);
367 ASN1_OBJECT *q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a);
368 EVP_PKEY *q_X509_PUBKEY_get(X509_PUBKEY *a);
369 void q_X509_STORE_free(X509_STORE *store);
370 X509_STORE *q_X509_STORE_new();
371 int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
372 void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx);
373 int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
374  X509 *x509, STACK_OF(X509) *chain);
375 X509_STORE_CTX *q_X509_STORE_CTX_new();
376 int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
377 int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
378 int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
379 X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
380 STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
381 
382 #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
383 #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
384 #ifdef SSLEAY_MACROS
385 int q_i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
386 int q_i2d_RSAPrivateKey(const RSA *a, unsigned char **pp);
387 RSA *q_d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length);
388 DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
389 #define q_PEM_read_bio_RSAPrivateKey(bp, x, cb, u) \
390  (RSA *)q_PEM_ASN1_read_bio( \
391  (void *(*)(void**, const unsigned char**, long int))q_d2i_RSAPrivateKey, PEM_STRING_RSA, bp, (void **)x, cb, u)
392 #define q_PEM_read_bio_DSAPrivateKey(bp, x, cb, u) \
393  (DSA *)q_PEM_ASN1_read_bio( \
394  (void *(*)(void**, const unsigned char**, long int))q_d2i_DSAPrivateKey, PEM_STRING_DSA, bp, (void **)x, cb, u)
395 #define q_PEM_write_bio_RSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
396  PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_RSAPrivateKey,PEM_STRING_RSA,\
397  bp,(char *)x,enc,kstr,klen,cb,u)
398 #define q_PEM_write_bio_DSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \
399  PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
400  bp,(char *)x,enc,kstr,klen,cb,u)
401 #endif
402 #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
403 #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
404 #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
405 #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
406 #define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
407 #define q_sk_X509_num(st) q_SKM_sk_num(X509, (st))
408 #define q_sk_X509_value(st, i) q_SKM_sk_value(X509, (st), (i))
409 #define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num(SSL_CIPHER, (st))
410 #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
411 #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
412  q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
413 #define q_X509_get_notAfter(x) X509_get_notAfter(x)
414 #define q_X509_get_notBefore(x) X509_get_notBefore(x)
415 #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
416  (char *)(rsa))
417 #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
418  (char *)(dsa))
419 #ifdef OPENSSL_LOAD_CONF
420 #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_conf()
421 #else
422 #define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_noconf()
423 #endif
426 int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
427 long q_SSLeay();
428 
429 // Helper function
430 class QDateTime;
431 QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime);
432 
434 
435 #endif
int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath)
double d
Definition: qnumeric_p.h:62
int q_BIO_read(BIO *a, void *b, int c)
int q_SSL_CTX_check_private_key(SSL_CTX *a)
long q_ASN1_INTEGER_get(ASN1_INTEGER *a)
int q_SSL_CTX_use_certificate(SSL_CTX *a, X509 *b)
const char * q_OBJ_nid2sn(int a)
int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b)
EVP_PKEY * q_X509_PUBKEY_get(X509_PUBKEY *a)
X509 * q_X509_dup(X509 *a)
int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b)
QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime)
SSL_METHOD * q_SSLv3_client_method()
BIO_METHOD * q_BIO_s_mem()
SSL_METHOD * q_SSLv3_server_method()
unsigned char c[8]
Definition: qnumeric_p.h:62
void q_CRYPTO_set_id_callback(unsigned long(*a)())
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
int q_X509_verify_cert(X509_STORE_CTX *ctx)
int q_X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
X509_STORE * q_X509_STORE_new()
int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b)
void q_OPENSSL_add_all_algorithms_noconf()
void q_SSL_CTX_free(SSL_CTX *a)
int q_EVP_PKEY_assign(EVP_PKEY *a, int b, char *c)
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)
SSL_CIPHER * q_SSL_get_current_cipher(SSL *a)
int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c)
int q_SSL_get_error(SSL *a, int b)
long ASN1_INTEGER_get ASN1_INTEGER * a
int q_SSL_write(SSL *a, const void *b, int c)
DSA * q_PEM_read_bio_DSAPrivateKey(BIO *a, DSA **b, pem_password_cb *c, void *d)
int q_EVP_PKEY_set1_RSA(EVP_PKEY *a, RSA *b)
int q_BN_num_bits(const BIGNUM *a)
int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx)
RSA * q_PEM_read_bio_RSA_PUBKEY(BIO *a, RSA **b, pem_password_cb *c, void *d)
char * q_ERR_error_string(unsigned long a, char *b)
int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const char *b, int c)
void q_SSL_set_bio(SSL *a, BIO *b, BIO *c)
EVP_PKEY * q_EVP_PKEY_new()
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
BIO * q_BIO_new(BIO_METHOD *a)
STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(SSL *a)
int q_X509_get_ext_count(X509 *a)
int q_SSL_library_init()
void q_SSL_set_accept_state(SSL *a)
SSL_METHOD * q_SSLv2_server_method()
int q_SSL_shutdown(SSL *a)
struct x509_st X509
void q_OPENSSL_add_all_algorithms_conf()
void q_CRYPTO_set_locking_callback(void(*a)(int, int, const char *, int))
SSL_METHOD * q_SSLv23_client_method()
SSL_METHOD * q_TLSv1_server_method()
int q_sk_num(STACK *a)
unsigned char * q_ASN1_STRING_data(ASN1_STRING *a)
RSA * q_PEM_read_bio_RSAPrivateKey(BIO *a, RSA **b, pem_password_cb *c, void *d)
int q_CRYPTO_num_locks()
long q_SSL_get_verify_result(SSL *a)
void q_X509_STORE_free(X509_STORE *store)
X509_NAME * q_X509_get_issuer_name(X509 *a)
int q_BIO_free(BIO *a)
void q_sk_pop_free(STACK *a, void(*b)(void *))
void q_X509_free(X509 *a)
int q_RAND_status()
int q_EVP_PKEY_set1_DSA(EVP_PKEY *a, DSA *b)
int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx)
int q_PEM_write_bio_DSA_PUBKEY(BIO *a, DSA *b)
long q_BIO_ctrl(BIO *a, int b, long c, void *d)
int q_EVP_PKEY_type(int a)
DSA * q_EVP_PKEY_get1_DSA(EVP_PKEY *a)
int q_PEM_write_bio_RSA_PUBKEY(BIO *a, RSA *b)
SSL_METHOD * q_SSLv2_client_method()
int q_SSL_accept(SSL *a)
void q_SSL_CTX_set_verify_depth(SSL_CTX *a, int b)
X509 * q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
SSL * q_SSL_new(SSL_CTX *a)
long q_SSLeay()
ASN1_OBJECT * q_X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *a)
void * q_X509_get_ext_d2i(X509 *a, int b, int *c, int *d)
int q_OBJ_obj2nid(const ASN1_OBJECT *a)
int q_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain)
int q_X509_NAME_entry_count(X509_NAME *a)
X509_EXTENSION * q_X509_get_ext(X509 *a, int b)
int q_i2d_X509(X509 *a, unsigned char **b)
The QDateTime class provides date and time functions.
Definition: qdatetime.h:216
int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a)
char * q_sk_value(STACK *a, int b)
SSL_METHOD * q_TLSv1_client_method()
DSA * q_PEM_read_bio_DSA_PUBKEY(BIO *a, DSA **b, pem_password_cb *c, void *d)
RSA * q_EVP_PKEY_get1_RSA(EVP_PKEY *a)
void q_sk_free(STACK *a)
#define store(x)
void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int(*c)(int, X509_STORE_CTX *))
X509_NAME * q_X509_get_subject_name(X509 *a)
#define ctx
Definition: qgl.cpp:6094
void q_SSL_load_error_strings()
ASN1_OBJECT * q_X509_EXTENSION_get_object(X509_EXTENSION *a)
unsigned long q_ERR_get_error()
int q_SSL_read(SSL *a, void *b, int c)
BIO * q_BIO_new_mem_buf(void *a, int b)
void q_SSL_set_connect_state(SSL *a)
void q_RAND_seed(const void *a, int b)
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b)
void q_SSL_free(SSL *a)
ASN1_STRING * q_X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *a)
int q_SSL_connect(SSL *a)
void q_EVP_PKEY_free(EVP_PKEY *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)
char * q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c)
const EVP_CIPHER * q_EVP_des_ede3_cbc()
int q_SSL_clear(SSL *a)
void q_X509_STORE_CTX_free(X509_STORE_CTX *storeCtx)
SSL_METHOD * q_SSLv23_server_method()
X509_STORE_CTX * q_X509_STORE_CTX_new()
void q_CRYPTO_free(void *a)
#define parg(name)
X509_NAME_ENTRY * q_X509_NAME_get_entry(X509_NAME *a, int b)
int q_BIO_write(BIO *a, const void *b, int c)
long q_SSL_CTX_ctrl(SSL_CTX *a, int b, long c, void *d)
int q_ASN1_STRING_length(ASN1_STRING *a)
SSL_CTX * q_SSL_CTX_new(SSL_METHOD *a)
void q_DSA_free(DSA *a)
X509 * q_d2i_X509(X509 **a, unsigned char **b, long c)
void q_RSA_free(RSA *a)
bool q_resolveOpenSslSymbols()
int q_X509_cmp(X509 *a, X509 *b)
int q_X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
X509 * q_SSL_get_peer_certificate(SSL *a)