diff options
author | Adriaan de Jong <dejong@fox-it.com> | 2012-02-14 11:11:24 +0100 |
---|---|---|
committer | David Sommerseth <davids@redhat.com> | 2012-03-30 11:33:03 +0200 |
commit | 00b973f8af85c3ea8fa3cef80eec55e8dc139b27 (patch) | |
tree | 42ad20eb89be0436bee7a397f2269272a4799414 /src/openvpn/pkcs11_openssl.c | |
parent | 31444111839f0720d6173a71f66fa3a988bcf9fb (diff) | |
download | openvpn-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.c | 16 |
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 |