summaryrefslogtreecommitdiffstats
path: root/src/openvpn/pkcs11_openssl.c
diff options
context:
space:
mode:
authorAdriaan de Jong <dejong@fox-it.com>2012-02-14 11:11:24 +0100
committerDavid Sommerseth <davids@redhat.com>2012-03-30 11:33:03 +0200
commit00b973f8af85c3ea8fa3cef80eec55e8dc139b27 (patch)
tree42ad20eb89be0436bee7a397f2269272a4799414 /src/openvpn/pkcs11_openssl.c
parent31444111839f0720d6173a71f66fa3a988bcf9fb (diff)
downloadopenvpn-00b973f8af85c3ea8fa3cef80eec55e8dc139b27.tar.gz
openvpn-00b973f8af85c3ea8fa3cef80eec55e8dc139b27.tar.xz
openvpn-00b973f8af85c3ea8fa3cef80eec55e8dc139b27.zip
Migrated x509_get_subject to use of the garbage collector
This also cleans up a messy call in pkcs11.c to _openssl_get_subject, as discussed at FOSDEM. Signed-off-by: Adriaan de Jong <dejong@fox-it.com> Acked-by: James Yonan <james@openvpn.net> Acked-by: David Sommerseth <davids@redhat.com> Signed-off-by: David Sommerseth <davids@redhat.com>
Diffstat (limited to 'src/openvpn/pkcs11_openssl.c')
-rw-r--r--src/openvpn/pkcs11_openssl.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/openvpn/pkcs11_openssl.c b/src/openvpn/pkcs11_openssl.c
index 18651fd..af843b7 100644
--- a/src/openvpn/pkcs11_openssl.c
+++ b/src/openvpn/pkcs11_openssl.c
@@ -39,6 +39,7 @@
#include "errlevel.h"
#include "pkcs11_backend.h"
+#include "ssl_verify.h"
#include <pkcs11-helper-1.0/pkcs11h-openssl.h>
int
@@ -121,23 +122,20 @@ cleanup:
return ret;
}
-int
-pkcs11_certificate_dn (pkcs11h_certificate_t certificate, char *dn,
- size_t dn_len)
+char *
+pkcs11_certificate_dn (pkcs11h_certificate_t certificate, struct gc_arena *gc)
{
X509 *x509 = NULL;
- int ret = 1;
+
+ char *dn = NULL;
if ((x509 = pkcs11h_openssl_getX509 (certificate)) == NULL)
{
msg (M_FATAL, "PKCS#11: Cannot get X509");
- ret = 1;
goto cleanup;
}
- _openssl_get_subject (x509, dn, dn_len);
-
- ret = 0;
+ dn = x509_get_subject (x509, gc);
cleanup:
if (x509 != NULL)
@@ -146,7 +144,7 @@ cleanup:
x509 = NULL;
}
- return ret;
+ return dn;
}
int