Ошибка шифрования HSM RSA OAEP с асимметричными хэшами
Я использую библиотеку PKCS11Interop для шифрования и дешифрования данных с указанными ниже параметрами.
CK_RSA_PKCS_OAEP_PARAMS p = new CK_RSA_PKCS_OAEP_PARAMS();
p.HashAlg = (uint)CKM.CKM_SHA256;
p.Mgf = (uint)CKG.CKG_MGF1_SHA1;
p.Source = (uint)CKZ.CKZ_DATA_SPECIFIED;
p.SourceData = IntPtr.Zero;
p.SourceDataLen = 0;
CK_MECHANISM mech = CkmUtils.CreateMechanism(CKM.CKM_RSA_PKCS_OAEP, p);
Я получаю сообщение об ошибке CKR_MECHANISM_PARAM_INVALID при попытке шифрования/дешифрования. Но когда я использую CKG_MGF1_SHA256 для MGF1, работает и шифрование, и дешифрование.
Я что-то упустил или несоответствующие хэши не поддерживаются блоками HSM?
1 ответ
В стандарте PKCS#1 случайные оракулы (обе хэш-функции) идентичны.
Если вам нужен SHA-1, используйте (uint)CKM.CKM_SHA_1 в качестве алгоритма хеширования.