changeset 25443:9badee89c2cb

OS-8237 C_DeriveKey() doesn't always set object handle value (#336) Reviewed by: Dan McDonald <danmcd@joyent.com> Reviewed by: Mike Zeller <mike.zeller@joyent.com> Approved by: Mike Zeller <mike.zeller@joyent.com>
author Jason King <jasonbking@users.noreply.github.com>
date Wed, 07 Oct 2020 13:48:24 -0500
parents 3c3aefbaefd0
children bce4e0b00b04
files usr/src/lib/pkcs11/pkcs11_softtoken/common/softKeysUtil.c
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/lib/pkcs11/pkcs11_softtoken/common/softKeysUtil.c	Wed Oct 07 13:47:37 2020 -0400
+++ b/usr/src/lib/pkcs11/pkcs11_softtoken/common/softKeysUtil.c	Wed Oct 07 13:48:24 2020 -0500
@@ -946,8 +946,6 @@
 			return (rv);
 		}
 
-		*phKey = secret_key->handle;
-
 		/* Validate the key type and key length */
 		rv = soft_key_derive_check_length(secret_key, hash_size);
 		if (rv != CKR_OK) {
@@ -1065,6 +1063,8 @@
 			soft_delete_token_object(secret_key, B_FALSE, B_FALSE);
 	}
 
+	*phKey = secret_key->handle;
+
 	return (rv);
 }