|
|
629af49 |
diff -up Crypt-OpenSSL-X509-0.7/t/x509.t.openssl Crypt-OpenSSL-X509-0.7/t/x509.t
|
|
|
629af49 |
--- Crypt-OpenSSL-X509-0.7/t/x509.t.openssl 2009-08-26 10:06:16.000000000 +0200
|
|
|
629af49 |
+++ Crypt-OpenSSL-X509-0.7/t/x509.t 2009-08-26 10:05:21.000000000 +0200
|
|
|
629af49 |
@@ -12,7 +12,7 @@ ok($x509->fingerprint_md5() eq '51:86:E8
|
|
|
629af49 |
ok($x509->issuer() eq 'C=US, O=VeriSign, Inc., OU=Class 1 Public Primary Certification Authority', 'issuer()');
|
|
|
629af49 |
ok($x509->subject() eq 'C=US, O=VeriSign, Inc., OU=Class 1 Public Primary Certification Authority', 'subject()');
|
|
|
629af49 |
|
|
|
81a4a2a |
-ok($x509->hash() eq '2edf7016', 'hash()');
|
|
|
81a4a2a |
+ok($x509->hash() eq '2edf7016' or '24ad0b63', 'hash()');
|
|
|
629af49 |
|
|
|
629af49 |
ok($x509 = Crypt::OpenSSL::X509->new_from_file('certs/thawte.pem'), 'new_from_file()');
|
|
|
629af49 |
|
|
|
f7bc3db |
diff -up Crypt-OpenSSL-X509-0.7/X509.xs.openssl Crypt-OpenSSL-X509-0.7/X509.xs
|
|
|
f7bc3db |
--- Crypt-OpenSSL-X509-0.7/X509.xs.openssl 2008-02-23 23:18:11.000000000 +0100
|
|
|
629af49 |
+++ Crypt-OpenSSL-X509-0.7/X509.xs 2009-08-25 23:12:45.000000000 +0200
|
|
|
f7bc3db |
@@ -252,12 +252,19 @@ accessor(x509)
|
|
|
f7bc3db |
} else if (ix == 7) {
|
|
|
f7bc3db |
|
|
|
f7bc3db |
int j;
|
|
|
629af49 |
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
|
|
f7bc3db |
+ STACK_OF(OPENSSL_STRING) *emlst = X509_get1_email(x509);
|
|
|
f7bc3db |
+
|
|
|
f7bc3db |
+ for (j = 0; j < sk_OPENSSL_STRING_num(emlst); j++) {
|
|
|
f7bc3db |
+ BIO_printf(bio, "%s", sk_OPENSSL_STRING_value(emlst, j));
|
|
|
f7bc3db |
+ }
|
|
|
629af49 |
+#else
|
|
|
f7bc3db |
STACK *emlst = X509_get1_email(x509);
|
|
|
f7bc3db |
|
|
|
f7bc3db |
for (j = 0; j < sk_num(emlst); j++) {
|
|
|
f7bc3db |
BIO_printf(bio, "%s", sk_value(emlst, j));
|
|
|
f7bc3db |
}
|
|
|
f7bc3db |
-
|
|
|
629af49 |
+#endif
|
|
|
f7bc3db |
X509_email_free(emlst);
|
|
|
f7bc3db |
}
|
|
|
f7bc3db |
|
|
|
629af49 |
@@ -289,7 +296,17 @@ as_string(x509, format = FORMAT_PEM)
|
|
|
629af49 |
i2d_X509_bio(bio, x509);
|
|
|
f7bc3db |
|
|
|
f7bc3db |
} else if (format == FORMAT_NETSCAPE) {
|
|
|
629af49 |
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
|
|
f7bc3db |
+ NETSCAPE_X509 nx;
|
|
|
f7bc3db |
+ ASN1_OCTET_STRING hdr;
|
|
|
f7bc3db |
+
|
|
|
f7bc3db |
+ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR;
|
|
|
f7bc3db |
+ hdr.length = strlen(NETSCAPE_CERT_HDR);
|
|
|
629af49 |
+ nx.header = &hd;;
|
|
|
f7bc3db |
+ nx.cert = x509;
|
|
|
629af49 |
|
|
|
f7bc3db |
+ ASN1_item_i2d_bio(ASN1_ITEM_rptr(NETSCAPE_X509), bio, &nx;;
|
|
|
629af49 |
+#else
|
|
|
f7bc3db |
ASN1_HEADER ah;
|
|
|
f7bc3db |
ASN1_OCTET_STRING os;
|
|
|
f7bc3db |
|
|
|
629af49 |
@@ -300,6 +317,7 @@ as_string(x509, format = FORMAT_PEM)
|
|
|
f7bc3db |
ah.meth = X509_asn1_meth();
|
|
|
f7bc3db |
|
|
|
f7bc3db |
ASN1_i2d_bio(i2d_ASN1_HEADER, bio, (unsigned char *)&ah;;
|
|
|
629af49 |
+#endif
|
|
|
f7bc3db |
}
|
|
|
f7bc3db |
|
|
|
f7bc3db |
RETVAL = sv_bio_final(bio);
|