Skip to content

Commit 9ad38be

Browse files
committed
Ported QSslContext
Change-Id: Ia286364f76a2942bdcc73cf34e0998d7aa67d08b
1 parent 320a91b commit 9ad38be

File tree

3 files changed

+7
-17
lines changed

3 files changed

+7
-17
lines changed

src/network/ssl/qsslcontext_openssl.cpp

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -329,21 +329,6 @@ void QSslContext::initSslContext(QSslContext *sslContext, QSslSocket::SslMode mo
329329
q_DH_free(dh);
330330
}
331331

332-
#ifndef OPENSSL_NO_EC
333-
#if OPENSSL_VERSION_NUMBER >= 0x10002000L
334-
if (q_SSLeay() >= 0x10002000L) {
335-
q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_ECDH_AUTO, 1, NULL);
336-
} else
337-
#endif
338-
{
339-
// Set temp ECDH params
340-
EC_KEY *ecdh = 0;
341-
ecdh = q_EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
342-
q_SSL_CTX_set_tmp_ecdh(sslContext->ctx, ecdh);
343-
q_EC_KEY_free(ecdh);
344-
}
345-
#endif // OPENSSL_NO_EC
346-
347332
#if OPENSSL_VERSION_NUMBER >= 0x10001000L && !defined(OPENSSL_NO_PSK)
348333
if (!client)
349334
q_SSL_CTX_use_psk_identity_hint(sslContext->ctx, sslContext->sslConfiguration.preSharedKeyIdentityHint().constData());
@@ -508,7 +493,7 @@ bool QSslContext::cacheSession(SSL* ssl)
508493
unsigned char *data = reinterpret_cast<unsigned char *>(m_sessionASN1.data());
509494
if (!q_i2d_SSL_SESSION(session, &data))
510495
qCWarning(lcSsl, "could not store persistent version of SSL session");
511-
m_sessionTicketLifeTimeHint = session->tlsext_tick_lifetime_hint;
496+
m_sessionTicketLifeTimeHint = q_SSL_SESSION_get_ticket_lifetime_hint(session);
512497
}
513498
}
514499

src/network/ssl/qsslsocket_openssl_symbols.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ DEFINEFUNC(SSL_CTX *, SSL_CTX_new, const SSL_METHOD *a, a, return 0, return)
260260
#else
261261
DEFINEFUNC(SSL_CTX *, SSL_CTX_new, SSL_METHOD *a, a, return 0, return)
262262
#endif
263+
DEFINEFUNC2(unsigned long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, unsigned long op, op, return 0, return)
263264
DEFINEFUNC2(int, SSL_CTX_set_cipher_list, SSL_CTX *a, a, const char *b, b, return -1, return)
264265
DEFINEFUNC(int, SSL_CTX_set_default_verify_paths, SSL_CTX *a, a, return -1, return)
265266
DEFINEFUNC3(void, SSL_CTX_set_verify, SSL_CTX *a, a, int b, b, int (*c)(int, X509_STORE_CTX *), c, return, DUMMYARG)
@@ -418,6 +419,7 @@ DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
418419
DEFINEFUNC(const char *, SSLeay_version, int a, a, return 0, return)
419420
DEFINEFUNC2(int, i2d_SSL_SESSION, SSL_SESSION *in, in, unsigned char **pp, pp, return 0, return)
420421
DEFINEFUNC3(SSL_SESSION *, d2i_SSL_SESSION, SSL_SESSION **a, a, const unsigned char **pp, pp, long length, length, return 0, return)
422+
DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
421423
#if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
422424
DEFINEFUNC6(int, SSL_select_next_proto, unsigned char **out, out, unsigned char *outlen, outlen,
423425
const unsigned char *in, in, unsigned int inlen, inlen,
@@ -882,6 +884,7 @@ bool q_resolveOpenSslSymbols()
882884
RESOLVEFUNC(SSL_CTX_ctrl)
883885
RESOLVEFUNC(SSL_CTX_free)
884886
RESOLVEFUNC(SSL_CTX_new)
887+
RESOLVEFUNC(q_SSL_CTX_set_options)
885888
RESOLVEFUNC(SSL_CTX_set_cipher_list)
886889
RESOLVEFUNC(SSL_CTX_set_default_verify_paths)
887890
RESOLVEFUNC(SSL_CTX_set_verify)
@@ -1006,6 +1009,7 @@ bool q_resolveOpenSslSymbols()
10061009
RESOLVEFUNC(SSLeay_version)
10071010
RESOLVEFUNC(i2d_SSL_SESSION)
10081011
RESOLVEFUNC(d2i_SSL_SESSION)
1012+
RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
10091013
#if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
10101014
RESOLVEFUNC(SSL_select_next_proto)
10111015
RESOLVEFUNC(SSL_CTX_set_next_proto_select_cb)

src/network/ssl/qsslsocket_openssl_symbols_p.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ SSL_CTX *q_SSL_CTX_new(const SSL_METHOD *a);
352352
#else
353353
SSL_CTX *q_SSL_CTX_new(SSL_METHOD *a);
354354
#endif
355+
unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
355356
int q_SSL_CTX_set_cipher_list(SSL_CTX *a, const char *b);
356357
int q_SSL_CTX_set_default_verify_paths(SSL_CTX *a);
357358
void q_SSL_CTX_set_verify(SSL_CTX *a, int b, int (*c)(int, X509_STORE_CTX *));
@@ -550,7 +551,6 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
550551
(DH *)q_PEM_ASN1_read_bio( \
551552
(void *(*)(void**, const unsigned char**, long int))q_d2i_DHparams, PEM_STRING_DHPARAMS, bp, (void **)x, cb, u)
552553
#endif
553-
#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
554554
#define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
555555
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
556556
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
@@ -576,6 +576,7 @@ long q_SSLeay();
576576
const char *q_SSLeay_version(int type);
577577
int q_i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
578578
SSL_SESSION *q_d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
579+
unsigned long q_SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session);
579580

580581
#if OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_NEXTPROTONEG)
581582
int q_SSL_select_next_proto(unsigned char **out, unsigned char *outlen,

0 commit comments

Comments
 (0)