46 # include <private/qsystemlibrary_p.h> 48 # include <QtCore/qlibrary.h> 50 #include <QtCore/qmutex.h> 51 #include <private/qmutexpool_p.h> 52 #include <QtCore/qdatetime.h> 53 #if defined(Q_OS_UNIX) 54 #include <QtCore/qdir.h> 102 DEFINEFUNC3(
void *, ASN1_dup, i2d_of_void *
a, a, d2i_of_void *b, b,
char *
c, c,
return 0,
return)
104 DEFINEFUNC(
long, ASN1_INTEGER_get, ASN1_INTEGER *a, a,
return 0,
return)
105 DEFINEFUNC(
unsigned char *, ASN1_STRING_data, ASN1_STRING *a, a,
return 0,
return)
106 DEFINEFUNC(
int, ASN1_STRING_length, ASN1_STRING *a, a,
return 0,
return)
107 DEFINEFUNC2(
int, ASN1_STRING_to_UTF8,
unsigned char **a, a, ASN1_STRING *b, b,
return 0,
return);
108 DEFINEFUNC4(
long, BIO_ctrl, BIO *a, a,
int b, b,
long c, c,
void *
d, d,
return -1,
return)
109 DEFINEFUNC(
int, BIO_free, BIO *a, a,
return 0,
return)
110 DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a,
return 0,
return)
111 DEFINEFUNC2(BIO *, BIO_new_mem_buf,
void *a, a,
int b, b,
return 0,
return)
112 DEFINEFUNC3(
int, BIO_read, BIO *a, a,
void *b, b,
int c, c,
return -1,
return)
114 DEFINEFUNC3(
int, BIO_write, BIO *a, a,
const void *b, b,
int c, c,
return -1,
return)
115 DEFINEFUNC(
int, BN_num_bits,
const BIGNUM *a, a,
return 0,
return)
117 DEFINEFUNC(
void, CRYPTO_set_locking_callback,
void (*a)(
int,
int, const
char *,
int), a, return, DUMMYARG)
118 DEFINEFUNC(
void, CRYPTO_set_id_callback,
unsigned long (*a)(), a, return, DUMMYARG)
119 DEFINEFUNC(
void, CRYPTO_free,
void *a, a, return, DUMMYARG)
120 DEFINEFUNC(
void, DSA_free, DSA *a, a, return, DUMMYARG)
121 #if OPENSSL_VERSION_NUMBER < 0x00908000L 122 DEFINEFUNC3(
X509 *, d2i_X509,
X509 **a, a,
unsigned char **b, b,
long c, c,
return 0,
return)
123 #else // 0.9.8 broke SC and BC by changing this signature. 124 DEFINEFUNC3(
X509 *, d2i_X509,
X509 **a, a,
const unsigned char **b, b,
long c, c,
return 0,
return)
126 DEFINEFUNC2(
char *, ERR_error_string,
unsigned long a, a,
char *b, b,
return 0,
return)
129 DEFINEFUNC3(
int, EVP_PKEY_assign, EVP_PKEY *a, a,
int b, b,
char *c, c, return -1, return)
130 DEFINEFUNC2(
int, EVP_PKEY_set1_RSA, EVP_PKEY *a, a, RSA *b, b, return -1, return)
131 DEFINEFUNC2(
int, EVP_PKEY_set1_DSA, EVP_PKEY *a, a, DSA *b, b, return -1, return)
132 DEFINEFUNC(
void, EVP_PKEY_free, EVP_PKEY *a, a, return, DUMMYARG)
133 DEFINEFUNC(DSA *, EVP_PKEY_get1_DSA, EVP_PKEY *a, a, return 0, return)
134 DEFINEFUNC(RSA *, EVP_PKEY_get1_RSA, EVP_PKEY *a, a, return 0, return)
136 DEFINEFUNC(
int, EVP_PKEY_type,
int a, a, return NID_undef, return)
137 DEFINEFUNC2(
int, i2d_X509,
X509 *a, a,
unsigned char **b, b, return -1, return)
138 DEFINEFUNC(const
char *, OBJ_nid2sn,
int a, a, return 0, return)
139 DEFINEFUNC(
int, OBJ_obj2nid, const ASN1_OBJECT *a, a, return NID_undef, return)
141 DEFINEFUNC6(
void *, PEM_ASN1_read_bio, d2i_of_void *a, a,
const char *b, b, BIO *c, c,
void **
d, d, pem_password_cb *e, e,
void *f, f,
return 0,
return)
142 DEFINEFUNC6(
void *, PEM_ASN1_write_bio, d2i_of_void *a, a,
const char *b, b, BIO *c, c,
void **
d, d, pem_password_cb *e, e,
void *f, f,
return 0,
return)
144 DEFINEFUNC4(DSA *, PEM_read_bio_DSAPrivateKey, BIO *a, a, DSA **b, b, pem_password_cb *c, c,
void *d, d,
return 0,
return)
145 DEFINEFUNC4(RSA *, PEM_read_bio_RSAPrivateKey, BIO *a, a, RSA **b, b, pem_password_cb *c, c,
void *d, d,
return 0,
return)
146 DEFINEFUNC7(
int, PEM_write_bio_DSAPrivateKey, BIO *a, a, DSA *b, b,
const EVP_CIPHER *c, c,
unsigned char *d, d,
int e, e, pem_password_cb *f, f,
void *g, g,
return 0,
return)
147 DEFINEFUNC7(
int, PEM_write_bio_RSAPrivateKey, BIO *a, a, RSA *b, b,
const EVP_CIPHER *c, c,
unsigned char *d, d,
int e, e, pem_password_cb *f, f,
void *g, g,
return 0,
return)
149 DEFINEFUNC4(DSA *, PEM_read_bio_DSA_PUBKEY, BIO *a, a, DSA **b, b, pem_password_cb *c, c,
void *d, d,
return 0,
return)
150 DEFINEFUNC4(RSA *, PEM_read_bio_RSA_PUBKEY, BIO *a, a, RSA **b, b, pem_password_cb *c, c,
void *d, d,
return 0,
return)
151 DEFINEFUNC2(
int, PEM_write_bio_DSA_PUBKEY, BIO *a, a, DSA *b, b,
return 0,
return)
152 DEFINEFUNC2(
int, PEM_write_bio_RSA_PUBKEY, BIO *a, a, RSA *b, b,
return 0,
return)
153 DEFINEFUNC2(
void, RAND_seed,
const void *a, a,
int b, b,
return, DUMMYARG)
154 DEFINEFUNC(
int, RAND_status,
void, DUMMYARG,
return -1,
return)
155 DEFINEFUNC(
void, RSA_free, RSA *a, a,
return, DUMMYARG)
156 DEFINEFUNC(
int, sk_num, STACK *a, a,
return -1,
return)
157 DEFINEFUNC2(
void, sk_pop_free, STACK *a, a,
void (*b)(
void*), b,
return, DUMMYARG)
158 #if OPENSSL_VERSION_NUMBER >= 0x10000000L 159 DEFINEFUNC(
void, sk_free, _STACK *a, a,
return, DUMMYARG)
160 DEFINEFUNC2(
void *, sk_value, STACK *a, a,
int b, b,
return 0,
return)
162 DEFINEFUNC(
void, sk_free, STACK *a, a,
return, DUMMYARG)
163 DEFINEFUNC2(
char *, sk_value, STACK *a, a,
int b, b,
return 0,
return)
165 DEFINEFUNC(
int, SSL_accept, SSL *a, a,
return -1,
return)
166 DEFINEFUNC(
int, SSL_clear, SSL *a, a,
return -1,
return)
167 DEFINEFUNC3(
char *, SSL_CIPHER_description, SSL_CIPHER *a, a,
char *b, b,
int c, c,
return 0,
return)
168 DEFINEFUNC(
int, SSL_connect, SSL *a, a,
return -1,
return)
169 #if OPENSSL_VERSION_NUMBER >= 0x00908000L 171 DEFINEFUNC(
int, SSL_CTX_check_private_key,
const SSL_CTX *a, a,
return -1,
return)
173 DEFINEFUNC(
int, SSL_CTX_check_private_key, SSL_CTX *a, a,
return -1,
return)
175 DEFINEFUNC4(
long, SSL_CTX_ctrl, SSL_CTX *a, a,
int b, b,
long c, c,
void *d, d,
return -1,
return)
176 DEFINEFUNC(
void, SSL_CTX_free, SSL_CTX *a, a,
return, DUMMYARG)
177 #if OPENSSL_VERSION_NUMBER >= 0x10000000L 178 DEFINEFUNC(SSL_CTX *, SSL_CTX_new,
const SSL_METHOD *a, a,
return 0,
return)
180 DEFINEFUNC(SSL_CTX *, SSL_CTX_new, SSL_METHOD *a, a,
return 0,
return)
182 DEFINEFUNC2(
int, SSL_CTX_set_cipher_list, SSL_CTX *a, a,
const char *b, b,
return -1,
return)
183 DEFINEFUNC(
int, SSL_CTX_set_default_verify_paths, SSL_CTX *a, a,
return -1,
return)
184 DEFINEFUNC3(
void, SSL_CTX_set_verify, SSL_CTX *a, a,
int b, b,
int (*c)(
int, X509_STORE_CTX *), c,
return, DUMMYARG)
185 DEFINEFUNC2(
void, SSL_CTX_set_verify_depth, SSL_CTX *a, a,
int b, b,
return, DUMMYARG)
186 DEFINEFUNC2(
int, SSL_CTX_use_certificate, SSL_CTX *a, a,
X509 *b, b,
return -1,
return)
187 DEFINEFUNC3(
int, SSL_CTX_use_certificate_file, SSL_CTX *a, a,
const char *b, b,
int c, c,
return -1,
return)
188 DEFINEFUNC2(
int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a, EVP_PKEY *b, b,
return -1,
return)
189 DEFINEFUNC2(
int, SSL_CTX_use_RSAPrivateKey, SSL_CTX *a, a, RSA *b, b,
return -1,
return)
190 DEFINEFUNC3(
int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a,
const char *b, b,
int c, c,
return -1,
return)
191 DEFINEFUNC(
void, SSL_free, SSL *a, a,
return, DUMMYARG)
192 #if OPENSSL_VERSION_NUMBER >= 0x00908000L 194 DEFINEFUNC(
STACK_OF(SSL_CIPHER) *, SSL_get_ciphers,
const SSL *a, a,
return 0,
return)
198 #if OPENSSL_VERSION_NUMBER >= 0x10000000L 199 DEFINEFUNC(
const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a,
return 0,
return)
201 DEFINEFUNC(SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a,
return 0,
return)
203 DEFINEFUNC2(
int, SSL_get_error, SSL *a, a,
int b, b,
return -1,
return)
205 DEFINEFUNC(
X509 *, SSL_get_peer_certificate, SSL *a, a,
return 0,
return)
206 #if OPENSSL_VERSION_NUMBER >= 0x00908000L 208 DEFINEFUNC(
long, SSL_get_verify_result,
const SSL *a, a,
return -1,
return)
210 DEFINEFUNC(
long, SSL_get_verify_result, SSL *a, a,
return -1,
return)
212 DEFINEFUNC(
int, SSL_library_init,
void, DUMMYARG,
return -1,
return)
213 DEFINEFUNC(
void, SSL_load_error_strings,
void, DUMMYARG,
return, DUMMYARG)
214 DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a,
return 0,
return)
215 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) 216 DEFINEFUNC4(
long, SSL_ctrl, SSL *a, a,
int cmd, cmd,
long larg, larg,
void *
parg, parg,
return -1,
return)
218 DEFINEFUNC3(
int, SSL_read, SSL *a, a,
void *b, b,
int c, c,
return -1,
return)
219 DEFINEFUNC3(
void, SSL_set_bio, SSL *a, a, BIO *b, b, BIO *c, c,
return, DUMMYARG)
220 DEFINEFUNC(
void, SSL_set_accept_state, SSL *a, a,
return, DUMMYARG)
221 DEFINEFUNC(
void, SSL_set_connect_state, SSL *a, a,
return, DUMMYARG)
222 DEFINEFUNC(
int, SSL_shutdown, SSL *a, a,
return -1,
return)
223 #if OPENSSL_VERSION_NUMBER >= 0x10000000L 224 #ifndef OPENSSL_NO_SSL2 230 #ifndef OPENSSL_NO_SSL2 246 DEFINEFUNC3(
int, SSL_write, SSL *a, a,
const void *b, b,
int c, c,
return -1,
return)
248 #ifndef SSLEAY_MACROS 251 DEFINEFUNC(ASN1_OBJECT *, X509_EXTENSION_get_object, X509_EXTENSION *a, a,
return 0,
return)
253 DEFINEFUNC2(X509_EXTENSION *, X509_get_ext,
X509 *a, a,
int b, b,
return 0,
return)
255 DEFINEFUNC4(
void *, X509_get_ext_d2i,
X509 *a, a,
int b, b,
int *c, c,
int *d, d,
return 0,
return)
256 DEFINEFUNC(X509_NAME *, X509_get_issuer_name,
X509 *a, a,
return 0,
return)
257 DEFINEFUNC(X509_NAME *, X509_get_subject_name,
X509 *a, a,
return 0,
return)
258 DEFINEFUNC(
int, X509_verify_cert, X509_STORE_CTX *a, a,
return -1,
return)
259 DEFINEFUNC(
int, X509_NAME_entry_count, X509_NAME *a, a,
return 0,
return)
260 DEFINEFUNC2(X509_NAME_ENTRY *, X509_NAME_get_entry, X509_NAME *a, a,
int b, b,
return 0,
return)
261 DEFINEFUNC(ASN1_STRING *, X509_NAME_ENTRY_get_data, X509_NAME_ENTRY *a, a,
return 0,
return)
262 DEFINEFUNC(ASN1_OBJECT *, X509_NAME_ENTRY_get_object, X509_NAME_ENTRY *a, a,
return 0,
return)
263 DEFINEFUNC(EVP_PKEY *, X509_PUBKEY_get, X509_PUBKEY *a, a,
return 0,
return)
264 DEFINEFUNC(
void, X509_STORE_free, X509_STORE *a, a,
return, DUMMYARG)
266 DEFINEFUNC2(
int, X509_STORE_add_cert, X509_STORE *a, a,
X509 *b, b, return 0, return)
267 DEFINEFUNC(
void, X509_STORE_CTX_free, X509_STORE_CTX *a, a, return, DUMMYARG)
268 DEFINEFUNC4(
int, X509_STORE_CTX_init, X509_STORE_CTX *a, a, X509_STORE *b, b,
X509 *c, c,
STACK_OF(
X509) *d, d, return -1, return)
269 DEFINEFUNC2(
int, X509_STORE_CTX_set_purpose, X509_STORE_CTX *a, a,
int b, b, return -1, return)
270 DEFINEFUNC(
int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return)
271 DEFINEFUNC(
int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return)
272 DEFINEFUNC(
X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return)
273 DEFINEFUNC(
STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
276 DEFINEFUNC2(
int, i2d_DSAPrivateKey,
const DSA *a, a,
unsigned char **b, b,
return -1,
return)
277 DEFINEFUNC2(
int, i2d_RSAPrivateKey,
const RSA *a, a,
unsigned char **b, b,
return -1,
return)
278 DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a,
unsigned char **b, b,
long c, c,
return 0,
return)
279 DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a,
unsigned char **b, b,
long c, c,
return 0,
return)
281 DEFINEFUNC(
void, OPENSSL_add_all_algorithms_noconf,
void, DUMMYARG,
return, DUMMYARG)
282 DEFINEFUNC(
void, OPENSSL_add_all_algorithms_conf,
void, DUMMYARG,
return, DUMMYARG)
283 DEFINEFUNC3(
int, SSL_CTX_load_verify_locations, SSL_CTX *
ctx, ctx,
const char *CAfile, CAfile,
const char *CApath, CApath,
return 0,
return)
284 DEFINEFUNC(
long, SSLeay,
void, DUMMYARG,
return 0,
return)
287 #define RESOLVEFUNC(func, ordinal, lib) \ 288 if (!(_q_##func = _q_PTR_##func(lib->resolve(#ordinal)))) \ 289 qWarning("QSslSocket: cannot resolve "#func); 291 #define RESOLVEFUNC(func) \ 292 if (!(_q_##func = _q_PTR_##func(libs.first->resolve(#func))) \ 293 && !(_q_##func = _q_PTR_##func(libs.second->resolve(#func)))) \ 294 qWarning("QSslSocket: cannot resolve "#func); 297 #if !defined QT_LINKED_OPENSSL 302 qWarning(
"QSslSocket: unable to resolve symbols. " 303 "QT_NO_LIBRARY is defined which means runtime resolving of " 304 "libraries won't work.");
305 qWarning(
"Either compile Qt statically or with support for runtime resolving " 318 for (
int i = 1; i < rhsparts.
count(); ++i) {
319 if (lhsparts.
count() <= i)
325 int a = lhsparts.
at(i).
toInt(&ok);
335 if (lhsparts.
at(i) == rhsparts.
at(i))
337 return lhsparts.
at(i) > rhsparts.
at(i);
349 if (size <
sizeof (info->dlpi_addr) + sizeof (info->dlpi_name))
393 foreach (
const QString &path, paths) {
398 foreach (
const QString &entry, entryList)
410 foreach (
const QString &path, paths) {
415 foreach (
const QString &entry, entryList)
431 if (!ssleay32->
load(
false)) {
438 if (!libeay32->
load(
false)) {
444 pair.
first = ssleay32;
456 # if defined(Q_OS_SYMBIAN) 458 if (!libssl->
load()) {
465 if (!libcrypto->
load()) {
474 # elif defined(Q_OS_UNIX) 505 #if defined(Q_OS_QNX) // on QNX, the libs are always libssl.so and libcrypto.so 508 #elif defined(SHLIB_VERSION_NUMBER) 514 if (libcrypto->
load() && libssl->
load()) {
526 if (libcrypto->
load() && libssl->
load()) {
538 foreach (
const QString &crypto, cryptoList) {
540 if (libcrypto->
load()) {
544 foreach (
const QString &ssl, sslList) {
550 if (libssl->
load()) {
564 libssl = libcrypto = 0;
576 static volatile bool symbolsResolved =
false;
577 static volatile bool triedToResolveSymbols =
false;
583 if (triedToResolveSymbols)
585 triedToResolveSymbols =
true;
630 #ifdef SSLEAY_MACROS // ### verify 676 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) 707 #ifndef SSLEAY_MACROS 729 #else // Q_OS_SYMBIAN 763 #ifdef SSLEAY_MACROS // ### verify 809 #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) 818 #ifndef OPENSSL_NO_SSL2 824 #ifndef OPENSSL_NO_SSL2 847 #ifndef SSLEAY_MACROS 870 #endif // Q_OS_SYMBIAN 871 symbolsResolved =
true;
876 #endif // QT_NO_LIBRARY 878 #else // !defined QT_LINKED_OPENSSL 887 #endif // !defined QT_LINKED_OPENSSL 895 size_t lTimeLength = aTime->length;
896 char *pString = (
char *) aTime->data;
898 if (aTime->type == V_ASN1_UTCTIME) {
901 char *pBuffer = lBuffer;
903 if ((lTimeLength < 11) || (lTimeLength > 17))
906 memcpy(pBuffer, pString, 10);
910 if ((*pString ==
'Z') || (*pString ==
'-') || (*pString ==
'+')) {
914 *pBuffer++ = *pString++;
915 *pBuffer++ = *pString++;
917 if (*pString ==
'.') {
919 while ((*pString >=
'0') && (*pString <=
'9'))
928 if (*pString ==
'Z') {
931 if ((*pString !=
'+') && (*pString !=
'-'))
934 lSecondsFromUCT = ((pString[1] -
'0') * 10 + (pString[2] -
'0')) * 60;
935 lSecondsFromUCT += (pString[3] -
'0') * 10 + (pString[4] -
'0');
936 lSecondsFromUCT *= 60;
938 lSecondsFromUCT = -lSecondsFromUCT;
942 lTime.
tm_sec = ((lBuffer[10] -
'0') * 10) + (lBuffer[11] -
'0');
943 lTime.
tm_min = ((lBuffer[8] -
'0') * 10) + (lBuffer[9] -
'0');
944 lTime.
tm_hour = ((lBuffer[6] -
'0') * 10) + (lBuffer[7] -
'0');
945 lTime.
tm_mday = ((lBuffer[4] -
'0') * 10) + (lBuffer[5] -
'0');
946 lTime.
tm_mon = (((lBuffer[2] -
'0') * 10) + (lBuffer[3] -
'0')) - 1;
947 lTime.
tm_year = ((lBuffer[0] -
'0') * 10) + (lBuffer[1] -
'0');
955 result = result.
addSecs(lSecondsFromUCT);
958 }
else if (aTime->type == V_ASN1_GENERALIZEDTIME) {
960 if (lTimeLength < 15)
965 lTime.
tm_sec = ((pString[12] -
'0') * 10) + (pString[13] -
'0');
966 lTime.
tm_min = ((pString[10] -
'0') * 10) + (pString[11] -
'0');
967 lTime.
tm_hour = ((pString[8] -
'0') * 10) + (pString[9] -
'0');
968 lTime.
tm_mday = ((pString[6] -
'0') * 10) + (pString[7] -
'0');
969 lTime.
tm_mon = (((pString[4] -
'0') * 10) + (pString[5] -
'0'));
970 lTime.
tm_year = ((pString[0] -
'0') * 1000) + ((pString[1] -
'0') * 100) +
971 ((pString[2] -
'0') * 10) + (pString[3] -
'0');
980 qWarning(
"unsupported date format detected");
The QDir class provides access to directory structures and their contents.
QDateTime addSecs(int secs) const
Returns a QDateTime object containing a datetime s seconds later than the datetime of this object (or...
Q_CORE_EXPORT QByteArray qgetenv(const char *varName)
void setFileNameAndVersion(const QString &fileName, int verNum)
Sets the fileName property and major version number to fileName and versionNumber respectively...
static QString fromLocal8Bit(const char *, int size=-1)
Returns a QString initialized with the first size characters of the 8-bit string str.
static mach_timebase_info_data_t info
#define QT_END_NAMESPACE
This macro expands to.
bool q_resolveOpenSslSymbols()
bool unload()
Unloads the library and returns true if the library could be unloaded; otherwise returns false...
static QStringList findAllLibCrypto()
int toInt(bool *ok=0, int base=10) const
Returns the string converted to an int using base base, which is 10 by default and must be between 2 ...
#define DEFINEFUNC(ret, func, args, argcall, funcret)
return SSL_METHOD * TLSv1_client_method
return SSL_METHOD * SSLv23_client_method
static QPair< QSystemLibrary *, QSystemLibrary * > loadOpenSslWin32()
iterator begin()
Returns an STL-style iterator pointing to the first item in the list.
QString completeSuffix() const
Returns the complete suffix of the file.
return SSL_METHOD * SSLv23_server_method
The QDate class provides date functions.
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
long ASN1_INTEGER_get ASN1_INTEGER * a
int count(const T &t) const
Returns the number of occurrences of value in the list.
The QString class provides a Unicode character string.
#define RESOLVEFUNC(func)
return DEFINEFUNC3(void, SSL_CTX_set_verify, SSL_CTX *a, a, int b, b, int(*c)(int, X509_STORE_CTX *), c, return, DUMMYARG) void SSL_free SSL *a
static bool libGreaterThan(const QString &lhs, const QString &rhs)
bool load(bool onlySystemDirectory=true)
static int dlIterateCallback(struct dl_phdr_info *info, size_t size, void *data)
void append(const T &t)
Inserts value at the end of the list.
static QStringList findAllLibSsl()
The QTime class provides clock time functions.
#define QT_BEGIN_NAMESPACE
This macro expands to.
return SSL_METHOD * TLSv1_server_method
#define DEFINEFUNC4(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, err, funcret)
return EVP_PKEY * EVP_PKEY_new
X509_STORE * X509_STORE_new
return int CRYPTO_num_locks
QList< T > toList() const
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
iterator end()
Returns an STL-style iterator pointing to the imaginary item after the last item in the list...
const T & at(int i) const
Returns the item at index position i in the list.
return const EVP_CIPHER * EVP_des_ede3_cbc
The QStringList class provides a list of strings.
static QStringList libraryPathList()
Q_CORE_EXPORT void qWarning(const char *,...)
const_iterator insert(const T &value)
static const char * data(const QByteArray &arr)
return SSL_METHOD * SSLv2_client_method
return DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return)
void qSort(RandomAccessIterator start, RandomAccessIterator end)
QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime)
The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes...
#define DEFINEFUNC7(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, arg7, g, err, funcret)
bool load()
Loads the library and returns true if the library was loaded successfully; otherwise returns false...
The QDateTime class provides date and time functions.
return X509_STORE_CTX * X509_STORE_CTX_new
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
if(void) toggleToolbarShown
void setLoadHints(LoadHints hints)
unsigned long ERR_get_error
return(isPopup||isToolTip)
QStringList split(const QString &sep, SplitBehavior behavior=KeepEmptyParts, Qt::CaseSensitivity cs=Qt::CaseSensitive) const Q_REQUIRED_RESULT
Splits the string into substrings wherever sep occurs, and returns the list of those strings...
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
The QFileInfo class provides system-independent file information.
STACK_OF(SSL_CIPHER) *SSL_get_ciphers SSL *a
return SSL_METHOD * SSLv3_client_method
return SSL_METHOD * SSLv2_server_method
QString absolutePath() const
Returns a file's path absolute path.
return SSL_METHOD * SSLv3_server_method
static QMutex * globalInstanceGet(const void *address)
Returns a QMutex from the global mutex pool.
QStringList entryList(Filters filters=NoFilter, SortFlags sort=NoSort) const
Returns a list of the names of all the files and directories in the directory, ordered according to t...
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
LoadHints loadHints
Give the load() function some hints on how it should behave.
#define DEFINEFUNC6(ret, func, arg1, a, arg2, b, arg3, c, arg4, d, arg5, e, arg6, f, err, funcret)
The QLibrary class loads shared libraries at runtime.