summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pkcs11.c9
1 files changed, 7 insertions, 2 deletions
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,