| Index: mozilla/security/nss/lib/cryptohi/secsign.c
|
| ===================================================================
|
| --- mozilla/security/nss/lib/cryptohi/secsign.c (revision 164196)
|
| +++ mozilla/security/nss/lib/cryptohi/secsign.c (working copy)
|
| @@ -326,7 +326,18 @@
|
| algID = SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION;
|
| break;
|
| case dsaKey:
|
| - algID = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST;
|
| + /* get Signature length (= q_len*2) and work from there */
|
| + switch (PK11_SignatureLen(pk)) {
|
| + case 448:
|
| + algID = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST;
|
| + break;
|
| + case 512:
|
| + algID = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST;
|
| + break;
|
| + default:
|
| + algID = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST;
|
| + break;
|
| + }
|
| break;
|
| case ecKey:
|
| algID = SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST;
|
| @@ -462,6 +473,10 @@
|
| case SEC_OID_UNKNOWN: /* default for DSA if not specified */
|
| case SEC_OID_SHA1:
|
| sigTag = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST; break;
|
| + case SEC_OID_SHA224:
|
| + sigTag = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST; break;
|
| + case SEC_OID_SHA256:
|
| + sigTag = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST; break;
|
| default:
|
| break;
|
| }
|
|
|