From: Nikos Mavrogiannopoulos Date: Tue, 24 Mar 2015 09:09:43 +0000 (+0100) Subject: gnutls_pkcs11_obj_export3: allow operation when raw.data is NULL and we have a public key X-Git-Tag: gnutls_3_4_0~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33044780465260f7bda5c8bedc3e88ea5e160211;p=thirdparty%2Fgnutls.git gnutls_pkcs11_obj_export3: allow operation when raw.data is NULL and we have a public key --- diff --git a/lib/pkcs11.c b/lib/pkcs11.c index bc149e1bde..fa3ac83282 100644 --- a/lib/pkcs11.c +++ b/lib/pkcs11.c @@ -1107,14 +1107,16 @@ gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj, { int ret; - if (obj == NULL || obj->raw.data == NULL) { + if (obj == NULL) { gnutls_assert(); return GNUTLS_E_INVALID_REQUEST; } - switch (obj->type) { case GNUTLS_PKCS11_OBJ_X509_CRT: + if (obj->raw.data == NULL) + return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE); + if (fmt == GNUTLS_X509_FMT_PEM) { return gnutls_pem_base64_encode_alloc(PEM_X509_CERT2, @@ -1149,6 +1151,9 @@ gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj, return ret; } default: + if (obj->raw.data == NULL) + return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE); + if (fmt == GNUTLS_X509_FMT_PEM) { return gnutls_pem_base64_encode_alloc("DATA", &obj->raw,