@@ -498,6 +498,7 @@ static CK_RV test_attribute(void* args)
498498 { CKA_CLASS , & privKeyClass , sizeof (privKeyClass ) },
499499 { CKA_KEY_TYPE , & genericKeyType , sizeof (genericKeyType ) },
500500 { CKA_EXTRACTABLE , & ckTrue , sizeof (ckTrue ) },
501+ { CKA_SENSITIVE , & ckFalse , sizeof (ckFalse ) },
501502 { CKA_VALUE , keyData , sizeof (keyData ) },
502503 };
503504 CK_ULONG tmplCnt = sizeof (tmpl ) / sizeof (* tmpl );
@@ -796,10 +797,12 @@ static CK_RV get_generic_key(CK_SESSION_HANDLE session, unsigned char* data,
796797 CK_OBJECT_HANDLE * key )
797798{
798799 CK_RV ret ;
800+ CK_BBOOL sensitive = (extractable == CK_TRUE ) ? CK_FALSE : CK_TRUE ;
799801 CK_ATTRIBUTE generic_key [] = {
800802 { CKA_CLASS , & secretKeyClass , sizeof (secretKeyClass ) },
801803 { CKA_KEY_TYPE , & genericKeyType , sizeof (genericKeyType ) },
802804 { CKA_EXTRACTABLE , & extractable , sizeof (CK_BBOOL ) },
805+ { CKA_SENSITIVE , & sensitive , sizeof (CK_BBOOL ) },
803806 { CKA_SIGN , & ckTrue , sizeof (ckTrue ) },
804807 { CKA_VERIFY , & ckTrue , sizeof (ckTrue ) },
805808 { CKA_VALUE , data , len },
@@ -2060,6 +2063,7 @@ static CK_RV get_rsa_priv_key(CK_SESSION_HANDLE session, unsigned char* privId,
20602063 CK_OBJECT_HANDLE * obj )
20612064{
20622065 CK_RV ret ;
2066+ CK_BBOOL sensitive = (extractable == CK_TRUE ) ? CK_FALSE : CK_TRUE ;
20632067 CK_ATTRIBUTE rsa_2048_priv_key [] = {
20642068 { CKA_CLASS , & privKeyClass , sizeof (privKeyClass ) },
20652069 { CKA_KEY_TYPE , & rsaKeyType , sizeof (rsaKeyType ) },
@@ -2074,6 +2078,7 @@ static CK_RV get_rsa_priv_key(CK_SESSION_HANDLE session, unsigned char* privId,
20742078 { CKA_COEFFICIENT , rsa_2048_u , sizeof (rsa_2048_u ) },
20752079 { CKA_PUBLIC_EXPONENT , rsa_2048_pub_exp , sizeof (rsa_2048_pub_exp ) },
20762080 { CKA_EXTRACTABLE , & extractable , sizeof (CK_BBOOL ) },
2081+ { CKA_SENSITIVE , & sensitive , sizeof (CK_BBOOL ) },
20772082 { CKA_TOKEN , & ckTrue , sizeof (ckTrue ) },
20782083 { CKA_ID , privId , privIdLen },
20792084 };
@@ -3422,10 +3427,12 @@ static CK_OBJECT_HANDLE get_ecc_priv_key(CK_SESSION_HANDLE session,
34223427 CK_OBJECT_HANDLE * obj )
34233428{
34243429 CK_RV ret ;
3430+ CK_BBOOL sensitive = (extractable == CK_TRUE ) ? CK_FALSE : CK_TRUE ;
34253431 CK_ATTRIBUTE ecc_p256_priv_key [] = {
34263432 { CKA_CLASS , & privKeyClass , sizeof (privKeyClass ) },
34273433 { CKA_KEY_TYPE , & eccKeyType , sizeof (eccKeyType ) },
34283434 { CKA_EXTRACTABLE , & extractable , sizeof (CK_BBOOL ) },
3435+ { CKA_SENSITIVE , & sensitive , sizeof (CK_BBOOL ) },
34293436 { CKA_VERIFY , & ckTrue , sizeof (ckTrue ) },
34303437 { CKA_EC_PARAMS , ecc_p256_params , sizeof (ecc_p256_params ) },
34313438 { CKA_VALUE , ecc_p256_priv , sizeof (ecc_p256_priv ) },
@@ -4219,10 +4226,12 @@ static CK_OBJECT_HANDLE get_dh_priv_key(CK_SESSION_HANDLE session,
42194226 CK_OBJECT_HANDLE * obj )
42204227{
42214228 CK_RV ret ;
4229+ CK_BBOOL sensitive = (extractable == CK_TRUE ) ? CK_FALSE : CK_TRUE ;
42224230 CK_ATTRIBUTE dh_2048_priv_key [] = {
42234231 { CKA_CLASS , & privKeyClass , sizeof (privKeyClass ) },
42244232 { CKA_KEY_TYPE , & dhKeyType , sizeof (dhKeyType ) },
42254233 { CKA_EXTRACTABLE , & extractable , sizeof (CK_BBOOL ) },
4234+ { CKA_SENSITIVE , & sensitive , sizeof (CK_BBOOL ) },
42264235 { CKA_DERIVE , & ckTrue , sizeof (ckTrue ) },
42274236 { CKA_PRIME , dh_ffdhe2048_p , sizeof (dh_ffdhe2048_p ) },
42284237 { CKA_BASE , dh_ffdhe2048_g , sizeof (dh_ffdhe2048_g ) },
0 commit comments