Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a5a06edbd920fbe6f49dc3a0573e6753 > files > 1

tqsllib-2.0-9.fc12.src.rpm

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);