32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
diff --git a/security/nss/lib/mozpkix/lib/pkixnss.cpp b/security/nss/lib/mozpkix/lib/pkixnss.cpp
|
|
index 31aa1ddd67..6eb367eae4 100644
|
|
--- a/security/nss/lib/mozpkix/lib/pkixnss.cpp
|
|
+++ b/security/nss/lib/mozpkix/lib/pkixnss.cpp
|
|
@@ -323,13 +323,21 @@ VerifyMLDSASignedDataNSS(Input data,
|
|
SECItem dataItem(UnsafeMapInputToSECItem(data));
|
|
CK_MECHANISM_TYPE mechanism;
|
|
|
|
- switch (pubk->u.mldsa.paramSet) {
|
|
- case SEC_OID_ML_DSA_44:
|
|
- case SEC_OID_ML_DSA_65:
|
|
- case SEC_OID_ML_DSA_87:
|
|
+ switch (SEC_GetSignatureAlgorithmOidTag(pubk->keyType, pubk->u.mldsa.params)) {
|
|
+ case CKP_ML_DSA_44:
|
|
+ hashPolicyTag = SEC_OID_UNKNOWN;
|
|
+ mechanism = CKM_ML_DSA;
|
|
+ signaturePolicyTag = SEC_OID_PRIVATE_3;
|
|
+ break;
|
|
+ case CKP_ML_DSA_65:
|
|
+ hashPolicyTag = SEC_OID_UNKNOWN;
|
|
mechanism = CKM_ML_DSA;
|
|
- signaturePolicyTag = pubk->u.mldsa.paramSet;
|
|
+ signaturePolicyTag = SEC_OID_PRIVATE_4;
|
|
+ break;
|
|
+ case CKP_ML_DSA_87:
|
|
hashPolicyTag = SEC_OID_UNKNOWN;
|
|
+ mechanism = CKM_ML_DSA;
|
|
+ signaturePolicyTag = SEC_OID_PRIVATE_5;
|
|
break;
|
|
default:
|
|
return Result::ERROR_UNSUPPORTED_KEYALG;
|