Skip to content

Commit 7ec2a06

Browse files
authored
Update pkcs.h to 3.2.0 version and fix CK_RSA_AES_KEY_WRAP_PARAMS (#827)
This updates pkcs11.h header with the latest version from p11-kit. The CK_RSA_AES_KEY_WRAP_PARAMS were incorrectly added without param defines so this is also fixed and the usage renamed. Fixes #604
1 parent 0f972d8 commit 7ec2a06

File tree

2 files changed

+2872
-929
lines changed

2 files changed

+2872
-929
lines changed

src/lib/SoftHSM.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6538,7 +6538,7 @@ CK_RV SoftHSM::WrapMechRsaAesKw
65386538
ByteString wrapped_1; // buffer for the wrapped AES key;
65396539
ByteString wrapped_2; // buffer for the wrapped target key;
65406540
CK_RSA_AES_KEY_WRAP_PARAMS_PTR params = (CK_RSA_AES_KEY_WRAP_PARAMS_PTR)pMechanism->pParameter;
6541-
CK_ULONG emphKeyLen = params->aes_key_bits / 8;
6541+
CK_ULONG emphKeyLen = params->ulAESKeyBits / 8;
65426542
CK_OBJECT_HANDLE hEmphKey = CK_INVALID_HANDLE;
65436543
CK_OBJECT_CLASS emphKeyClass = CKO_SECRET_KEY;
65446544
CK_KEY_TYPE emphKeyType = CKK_AES;
@@ -6600,7 +6600,7 @@ CK_RV SoftHSM::WrapMechRsaAesKw
66006600
emphKey->destroyObject();
66016601
hEmphKey = CK_INVALID_HANDLE;
66026602

6603-
CK_MECHANISM oaepMech = {CKM_RSA_PKCS_OAEP, params->oaep_params, sizeof(CK_RSA_PKCS_OAEP_PARAMS)};
6603+
CK_MECHANISM oaepMech = {CKM_RSA_PKCS_OAEP, params->pOAEPParams, sizeof(CK_RSA_PKCS_OAEP_PARAMS)};
66046604
// Wraps the AES emph key with the wrapping RSA key using CKM_RSA_PKCS_OAEP with parameters of OAEPParams.
66056605
rv = SoftHSM::WrapKeyAsym(&oaepMech, token, wrapKey, emphkeydata, wrapped_1);
66066606

@@ -7116,7 +7116,7 @@ CK_RV SoftHSM::UnwrapMechRsaAesKw
71167116
CK_ULONG wrappedLen2 = ulWrappedKeyLen - wrappedLen1;
71177117

71187118
ByteString wrapped_1(&wrapped[0], wrappedLen1); // the wrapped AES key
7119-
CK_MECHANISM oaepMech = {CKM_RSA_PKCS_OAEP, params->oaep_params, sizeof(CK_RSA_PKCS_OAEP_PARAMS)};
7119+
CK_MECHANISM oaepMech = {CKM_RSA_PKCS_OAEP, params->pOAEPParams, sizeof(CK_RSA_PKCS_OAEP_PARAMS)};
71207120

71217121
// Un-wraps the temporary AES key from the first part with the private RSA key using CKM_RSA_PKCS_OAEP.
71227122
rv = UnwrapKeyAsym(&oaepMech, wrapped_1, token, unwrapKey, emphkeydata);
@@ -13219,32 +13219,32 @@ CK_RV SoftHSM::MechParamCheckRSAAESKEYWRAP(CK_MECHANISM_PTR pMechanism)
1321913219
}
1322013220

1322113221
CK_RSA_AES_KEY_WRAP_PARAMS_PTR params = (CK_RSA_AES_KEY_WRAP_PARAMS_PTR)pMechanism->pParameter;
13222-
if (params->aes_key_bits != 128 && params->aes_key_bits != 192 && params->aes_key_bits != 256)
13222+
if (params->ulAESKeyBits != 128 && params->ulAESKeyBits != 192 && params->ulAESKeyBits != 256)
1322313223
{
1322413224
ERROR_MSG("length of the temporary AES key in bits can be only 128, 192 or 256");
1322513225
return CKR_ARGUMENTS_BAD;
1322613226
}
13227-
if (params->oaep_params == NULL_PTR)
13227+
if (params->pOAEPParams == NULL_PTR)
1322813228
{
13229-
ERROR_MSG("oaep_params must be of type CK_RSA_PKCS_OAEP_PARAMS");
13229+
ERROR_MSG("pOAEPParams must be of type CK_RSA_PKCS_OAEP_PARAMS");
1323013230
return CKR_ARGUMENTS_BAD;
1323113231
}
13232-
if (params->oaep_params->mgf < 1UL || params->oaep_params->mgf > 5UL)
13232+
if (params->pOAEPParams->mgf < 1UL || params->pOAEPParams->mgf > 5UL)
1323313233
{
1323413234
ERROR_MSG("mgf not supported");
1323513235
return CKR_ARGUMENTS_BAD;
1323613236
}
13237-
if (params->oaep_params->source != CKZ_DATA_SPECIFIED)
13237+
if (params->pOAEPParams->source != CKZ_DATA_SPECIFIED)
1323813238
{
1323913239
ERROR_MSG("source must be CKZ_DATA_SPECIFIED");
1324013240
return CKR_ARGUMENTS_BAD;
1324113241
}
13242-
if (params->oaep_params->pSourceData != NULL)
13242+
if (params->pOAEPParams->pSourceData != NULL)
1324313243
{
1324413244
ERROR_MSG("pSourceData must be NULL");
1324513245
return CKR_ARGUMENTS_BAD;
1324613246
}
13247-
if (params->oaep_params->ulSourceDataLen != 0)
13247+
if (params->pOAEPParams->ulSourceDataLen != 0)
1324813248
{
1324913249
ERROR_MSG("ulSourceDataLen must be 0");
1325013250
return CKR_ARGUMENTS_BAD;

0 commit comments

Comments
 (0)