diff -up tqsllib-2.0/openssl_cert.cpp.openssl tqsllib-2.0/openssl_cert.cpp --- tqsllib-2.0/openssl_cert.cpp.openssl 2005-03-11 13:47:11.000000000 +0100 +++ tqsllib-2.0/openssl_cert.cpp 2009-08-22 22:12:52.000000000 +0200 @@ -1178,7 +1178,7 @@ tqsl_verifyDataBlock(tQSL_Cert cert, con } EVP_VerifyInit(&ctx, EVP_sha1()); EVP_VerifyUpdate(&ctx, data, datalen); - if (!EVP_VerifyFinal(&ctx, sig, slen, TQSL_API_TO_CERT(cert)->key)) { + if (EVP_VerifyFinal(&ctx, sig, slen, TQSL_API_TO_CERT(cert)->key) <= 0) { tQSL_Error = TQSL_OPENSSL_ERROR; return 1; } @@ -1260,6 +1260,11 @@ tqsl_getCertificateRequestCountry(tQSL_C return 0; } +#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#define asc2uni OPENSSL_asc2uni +#define uni2asc OPENSSL_uni2asc +#endif + static int tqsl_add_bag_attribute(PKCS12_SAFEBAG *bag, const char *oidname, const string& value) { int nid; @@ -1288,7 +1293,7 @@ tqsl_add_bag_attribute(PKCS12_SAFEBAG *b sk_ASN1_TYPE_push(attrib->value.set, val); #if (OPENSSL_VERSION_NUMBER & 0xfffff000) == 0x00906000 attrib->set = 1; -#elif (OPENSSL_VERSION_NUMBER & 0xfffff000) == 0x00907000 +#elif (OPENSSL_VERSION_NUMBER & 0xfffff000) >= 0x00908000 attrib->single = 0; #else #error "Unexpected OpenSSL version; check X509_ATTRIBUTE struct compatibility" @@ -1479,8 +1484,13 @@ tqsl_exportPKCS12File(tQSL_Cert cert, co /* Form into PKCS12 data */ p12 = PKCS12_init(NID_pkcs7_data); +#if OPENSSL_VERSION_NUMBER >= 0x10000000L + ASN1_seq_pack((STACK_OF(OPENSSL_BLOCK)*)safes, (int(*)(void*, unsigned char**))i2d_PKCS7, &(p12)->authsafes->d.data->data, + &(p12)->authsafes->d.data->length); +#else ASN1_seq_pack_PKCS7(safes, (int(*)())i2d_PKCS7, &(p12)->authsafes->d.data->data, &(p12)->authsafes->d.data->length); +#endif sk_PKCS7_pop_free(safes, PKCS7_free); safes = 0; PKCS12_set_mac(p12, p12password, -1, 0, 0, PKCS12_DEFAULT_ITER, 0);