| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Signature stuff. | 2 * Signature stuff. |
| 3 * | 3 * |
| 4 * This Source Code Form is subject to the terms of the Mozilla Public | 4 * This Source Code Form is subject to the terms of the Mozilla Public |
| 5 * License, v. 2.0. If a copy of the MPL was not distributed with this | 5 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 7 /* $Id: secsign.c,v 1.29 2012/06/25 21:48:39 rrelyea%redhat.com Exp $ */ | 7 /* $Id: secsign.c,v 1.29 2012/06/25 21:48:39 rrelyea%redhat.com Exp $ */ |
| 8 | 8 |
| 9 #include <stdio.h> | 9 #include <stdio.h> |
| 10 #include "cryptohi.h" | 10 #include "cryptohi.h" |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 /* XXX We should probably have some asserts here to make sure the key type | 319 /* XXX We should probably have some asserts here to make sure the key type |
| 320 * and algID match | 320 * and algID match |
| 321 */ | 321 */ |
| 322 | 322 |
| 323 if (algID == SEC_OID_UNKNOWN) { | 323 if (algID == SEC_OID_UNKNOWN) { |
| 324 switch(pk->keyType) { | 324 switch(pk->keyType) { |
| 325 case rsaKey: | 325 case rsaKey: |
| 326 algID = SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION; | 326 algID = SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION; |
| 327 break; | 327 break; |
| 328 case dsaKey: | 328 case dsaKey: |
| 329 » algID = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST; | 329 » /* get Signature length (= q_len*2) and work from there */ |
| 330 » switch (PK11_SignatureLen(pk)) { |
| 331 » » case 448: |
| 332 » » algID = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST; |
| 333 » » break; |
| 334 » » case 512: |
| 335 » » algID = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST; |
| 336 » » break; |
| 337 » » default: |
| 338 » » algID = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST; |
| 339 » » break; |
| 340 » } |
| 330 break; | 341 break; |
| 331 case ecKey: | 342 case ecKey: |
| 332 algID = SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST; | 343 algID = SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST; |
| 333 break; | 344 break; |
| 334 default: | 345 default: |
| 335 PORT_SetError(SEC_ERROR_INVALID_KEY); | 346 PORT_SetError(SEC_ERROR_INVALID_KEY); |
| 336 return SECFailure; | 347 return SECFailure; |
| 337 } | 348 } |
| 338 } | 349 } |
| 339 | 350 |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 sigTag = SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION; break; | 466 sigTag = SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION; break; |
| 456 default: | 467 default: |
| 457 break; | 468 break; |
| 458 } | 469 } |
| 459 break; | 470 break; |
| 460 case dsaKey: | 471 case dsaKey: |
| 461 switch (hashAlgTag) { | 472 switch (hashAlgTag) { |
| 462 case SEC_OID_UNKNOWN: /* default for DSA if not specified */ | 473 case SEC_OID_UNKNOWN: /* default for DSA if not specified */ |
| 463 case SEC_OID_SHA1: | 474 case SEC_OID_SHA1: |
| 464 sigTag = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST; break; | 475 sigTag = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST; break; |
| 476 case SEC_OID_SHA224: |
| 477 sigTag = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST; break; |
| 478 case SEC_OID_SHA256: |
| 479 sigTag = SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST; break; |
| 465 default: | 480 default: |
| 466 break; | 481 break; |
| 467 } | 482 } |
| 468 break; | 483 break; |
| 469 case ecKey: | 484 case ecKey: |
| 470 switch (hashAlgTag) { | 485 switch (hashAlgTag) { |
| 471 case SEC_OID_UNKNOWN: /* default for ECDSA if not specified */ | 486 case SEC_OID_UNKNOWN: /* default for ECDSA if not specified */ |
| 472 case SEC_OID_SHA1: | 487 case SEC_OID_SHA1: |
| 473 sigTag = SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE; break; | 488 sigTag = SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE; break; |
| 474 case SEC_OID_SHA224: | 489 case SEC_OID_SHA224: |
| 475 sigTag = SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE; break; | 490 sigTag = SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE; break; |
| 476 case SEC_OID_SHA256: | 491 case SEC_OID_SHA256: |
| 477 sigTag = SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE; break; | 492 sigTag = SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE; break; |
| 478 case SEC_OID_SHA384: | 493 case SEC_OID_SHA384: |
| 479 sigTag = SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE; break; | 494 sigTag = SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE; break; |
| 480 case SEC_OID_SHA512: | 495 case SEC_OID_SHA512: |
| 481 sigTag = SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE; break; | 496 sigTag = SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE; break; |
| 482 default: | 497 default: |
| 483 break; | 498 break; |
| 484 } | 499 } |
| 485 default: | 500 default: |
| 486 break; | 501 break; |
| 487 } | 502 } |
| 488 return sigTag; | 503 return sigTag; |
| 489 } | 504 } |
| OLD | NEW |