1919 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
2020 */
2121
22+ #include "wolfpkcs11/pkcs11.h"
2223#ifdef HAVE_CONFIG_H
2324 #include <wolfpkcs11/config.h>
2425#endif
@@ -1974,6 +1975,9 @@ static int wp11_Object_New(WP11_Slot* slot, CK_KEY_TYPE type,
19741975 #ifndef NO_AES
19751976 case CKK_AES :
19761977 #endif
1978+ #ifdef WOLFPKCS11_HKDF
1979+ case CKK_HKDF :
1980+ #endif
19771981 case CKK_GENERIC_SECRET :
19781982 obj -> data .symmKey = (WP11_Data * )XMALLOC (sizeof (WP11_Data ), NULL ,
19791983 DYNAMIC_TYPE_AES );
@@ -1984,6 +1988,11 @@ static int wp11_Object_New(WP11_Slot* slot, CK_KEY_TYPE type,
19841988 XMEMSET (obj -> data .symmKey , 0 , sizeof (WP11_Data ));
19851989 }
19861990 break ;
1991+ #ifdef WOLFPKCS11_NSS
1992+ case CKK_NSS_TRUST :
1993+ /* Nothing yet */
1994+ break ;
1995+ #endif
19871996 default :
19881997 ret = NOT_AVAILABLE_E ;
19891998 }
@@ -6167,7 +6176,7 @@ int WP11_Session_SetCtrParams(WP11_Session* session, CK_ULONG ulCounterBits,
61676176 if (ret == 0 ) {
61686177 if (object -> onToken )
61696178 WP11_Lock_LockRO (object -> lock );
6170- key = & object -> data .symmKey ;
6179+ key = object -> data .symmKey ;
61716180 ret = wc_AesSetKey (& ctr -> aes , key -> data , key -> len , cb , AES_ENCRYPTION );
61726181 if (object -> onToken )
61736182 WP11_Lock_UnlockRO (object -> lock );
@@ -6313,7 +6322,7 @@ int WP11_Session_SetCtsParams(WP11_Session* session, unsigned char* iv,
63136322 if (ret == 0 ) {
63146323 if (object -> onToken )
63156324 WP11_Lock_LockRO (object -> lock );
6316- key = & object -> data .symmKey ;
6325+ key = object -> data .symmKey ;
63176326 ret = wc_AesSetKey (& cts -> aes , key -> data , key -> len , iv ,
63186327 enc ? AES_ENCRYPTION : AES_DECRYPTION );
63196328 if (object -> onToken )
@@ -6691,7 +6700,8 @@ void WP11_Object_Free(WP11_Object* object)
66916700 object -> data .dhKey = NULL ;
66926701 }
66936702 #endif
6694- if ((object -> type == CKK_AES || object -> type == CKK_GENERIC_SECRET ) &&
6703+ if ((object -> type == CKK_AES || object -> type == CKK_GENERIC_SECRET ||
6704+ object -> type == CKK_HKDF )) & &
66956705 object -> data .symmKey != NULL ) {
66966706 /* TODO: ForceZero */
66976707 XMEMSET (object -> data .symmKey -> data , 0 , object -> data .symmKey -> len );
@@ -7885,7 +7895,7 @@ static int GetEcbCheckValue(WP11_Object* secret, byte* dataOut,
78857895 byte * hash ;
78867896 byte * input ;
78877897 word32 inLen ;
7888- WP11_Data * key = & secret -> data .symmKey ;
7898+ WP11_Data * key = secret -> data .symmKey ;
78897899
78907900 if (dataOut == NULL ) {
78917901 if (outLen != NULL ) {
@@ -11122,7 +11132,7 @@ int WP11_AesCcm_Encrypt(unsigned char* plain, word32 plainSz,
1112211132 if (ret == 0 ) {
1112311133 if (secret -> onToken )
1112411134 WP11_Lock_LockRO (secret -> lock );
11125- key = & secret -> data .symmKey ;
11135+ key = secret -> data .symmKey ;
1112611136 ret = wc_AesCcmSetKey (& aes , key -> data , key -> len );
1112711137 if (secret -> onToken )
1112811138 WP11_Lock_UnlockRO (secret -> lock );
@@ -11177,7 +11187,7 @@ int WP11_AesCcm_Decrypt(unsigned char* enc, word32 encSz, unsigned char* dec,
1117711187 if (ret == 0 ) {
1117811188 if (secret -> onToken )
1117911189 WP11_Lock_LockRO (secret -> lock );
11180- key = & secret -> data .symmKey ;
11190+ key = secret -> data .symmKey ;
1118111191 ret = wc_AesCcmSetKey (& aes , key -> data , key -> len );
1118211192 if (secret -> onToken )
1118311193 WP11_Lock_UnlockRO (secret -> lock );
@@ -11233,7 +11243,7 @@ int WP11_AesEcb_Encrypt(unsigned char* plain, word32 plainSz,
1123311243 if (ret == 0 ) {
1123411244 if (secret -> onToken )
1123511245 WP11_Lock_LockRO (secret -> lock );
11236- key = & secret -> data .symmKey ;
11246+ key = secret -> data .symmKey ;
1123711247 ret = wc_AesSetKey (& aes , key -> data , key -> len , NULL , AES_ENCRYPTION );
1123811248 if (secret -> onToken )
1123911249 WP11_Lock_UnlockRO (secret -> lock );
@@ -11274,7 +11284,7 @@ int WP11_AesEcb_Decrypt(unsigned char* enc, word32 encSz, unsigned char* dec,
1127411284 if (ret == 0 ) {
1127511285 if (secret -> onToken )
1127611286 WP11_Lock_LockRO (secret -> lock );
11277- key = & secret -> data .symmKey ;
11287+ key = secret -> data .symmKey ;
1127811288 ret = wc_AesSetKey (& aes , key -> data , key -> len , NULL , AES_DECRYPTION );
1127911289 if (secret -> onToken )
1128011290 WP11_Lock_UnlockRO (secret -> lock );
@@ -11500,7 +11510,7 @@ int WP11_Aes_Cmac_Init(WP11_Object* secret, WP11_Session* session,
1150011510 cmac -> sigLen = (byte )sigLen ;
1150111511 if (secret -> onToken )
1150211512 WP11_Lock_LockRO (secret -> lock );
11503- key = & secret -> data .symmKey ;
11513+ key = secret -> data .symmKey ;
1150411514 ret = wc_InitCmac_ex (& cmac -> cmac , key -> data , key -> len , WC_CMAC_AES , NULL ,
1150511515 NULL , secret -> slot -> devId );
1150611516 if (secret -> onToken )
0 commit comments