summaryrefslogtreecommitdiff
path: root/usr/src/lib/libkmf
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libkmf')
-rw-r--r--usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c b/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
index 548a047245..fc3da4b7e8 100644
--- a/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
+++ b/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c
@@ -4,6 +4,9 @@
* Use is subject to license terms.
*/
/*
+ * Copyright (c) 2012, OmniTI Computer Consulting, Inc. All rights reserved.
+ */
+/*
* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
* project 2000.
*/
@@ -2027,7 +2030,11 @@ OpenSSL_CertGetPrintable(KMF_HANDLE_T handle, const KMF_DATA *pcert,
int j;
int ext_index, nid, len;
BIO *mem = NULL;
+#if OPENSSL_VERSION_NUMBER < 0x10000000L
STACK *emlst = NULL;
+#else
+ STACK_OF(OPENSSL_STRING) *emlst = NULL;
+#endif
X509_EXTENSION *ex;
X509_CINF *ci;
@@ -2140,8 +2147,14 @@ OpenSSL_CertGetPrintable(KMF_HANDLE_T handle, const KMF_DATA *pcert,
case KMF_CERT_EMAIL:
emlst = X509_get1_email(xcert);
+#if OPENSSL_VERSION_NUMBER < 0x10000000L
for (j = 0; j < sk_num(emlst); j++)
(void) BIO_printf(mem, "%s\n", sk_value(emlst, j));
+#else
+ for (j = 0; j < sk_OPENSSL_STRING_num(emlst); j++)
+ (void) BIO_printf(mem, "%s\n",
+ sk_OPENSSL_STRING_value(emlst, j));
+#endif
len = BIO_gets(mem, resultStr, KMF_CERT_PRINTABLE_LEN);
X509_email_free(emlst);
@@ -4265,8 +4278,13 @@ convertToRawKey(EVP_PKEY *pkey, KMF_RAW_KEY_DATA *key)
ty = sk_ASN1_TYPE_value(attr->value.set, 0);
}
if (ty != NULL) {
+#if OPENSSL_VERSION_NUMBER < 0x10000000L
key->label = uni2asc(ty->value.bmpstring->data,
ty->value.bmpstring->length);
+#else
+ key->label = OPENSSL_uni2asc(ty->value.bmpstring->data,
+ ty->value.bmpstring->length);
+#endif
}
} else {
key->label = NULL;