Executing PCKS impl throws "CKR_MECHANISM_PARAM_INVALID" for CKM_XOR_BASE_AND_DATA mechanism | Telit Cinterion IoT Developer Community
May 3, 2019 - 8:53pm, 2121 views
I'm not sure this is right forum to post this. Please guide me if this not the right forum for Safenet Luna HSM related question.
We have Luna HSM PCI K7 with firmware version (7.0.1) with Luna Client software version 7.3.0.
When we ran the list the supported mechanism command using LunaCM tool, Luna didn't list 'CKM_XOR_BASE_AND_DATA' mechanism in supported list. Gemalto's team shared information that 7.0.1 do suppoort the mechanism, so, we proceeded with Java PCKS implementation using JCProv, and when executing the mechanism 'CKM_XOR_BASE_AND_DATA' it throws an error
com.safenetinc.jcprov.CKR_Exception: C_DeriveKey rv=0x71 - CKR_MECHANISM_PARAM_INVALID
at com.safenetinc.jcprov.CryptokiEx.C_DeriveKey(CryptokiEx.java:1174)
// Below code is our implementation part
CK_KEY_DERIVATION_STRING_DATA deriveString = new CK_KEY_DERIVATION_STRING_DATA(componentValue, componentValue.length);
//Note: CKM_XOR_BASE_AND_DATA mechanism => 0x00000364
CK_MECHANISM mechanism = new CK_MECHANISM(new CK_MECHANISM_TYPE(0x00000364));
mechanism.pParameter = deriveString;
mechanism.parameterLen = deriveString.len;
CK_RV rv = CryptokiEx.C_DeriveKey(session, mechanism, hBaseKey, defaultAttrTemplate, defaultAttrTemplate.length, hResultKey);
System.out.println("handleIntermediateComponent - derived key: " + hResultKey.longValue());
if(rv.longValue() != CKR.OK.longValue()){
System.err.println("Failed to derive key");
}
Are we doing something wrong with mechanism parameter passing OR Luna HSM version doesn't support the mechanism?
Thank you.
Hello,
This forum was created for Gemalto M2M modules for wireless communication (2/3/4G). Here we have no experts for other Gemalto products.
Please try this location: https://www.gemalto.com/support
Best regards,
Bartłomiej