OLD | NEW |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
4 /* | 4 /* |
5 * This file maps various PKCS #11 Mechanisms to related mechanisms, key | 5 * This file maps various PKCS #11 Mechanisms to related mechanisms, key |
6 * types, and ASN.1 encodings. | 6 * types, and ASN.1 encodings. |
7 */ | 7 */ |
8 #include "seccomon.h" | 8 #include "seccomon.h" |
9 #include "secmod.h" | 9 #include "secmod.h" |
10 #include "secmodi.h" | 10 #include "secmodi.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 newt[entry].iv = ivLen; | 135 newt[entry].iv = ivLen; |
136 newt[entry].blockSize = blockSize; | 136 newt[entry].blockSize = blockSize; |
137 | 137 |
138 pk11_MechanismTable = newt; | 138 pk11_MechanismTable = newt; |
139 pk11_MechTableSize = tableSize; | 139 pk11_MechTableSize = tableSize; |
140 pk11_MechEntrySize = size; | 140 pk11_MechEntrySize = size; |
141 if (old) PORT_Free(old); | 141 if (old) PORT_Free(old); |
142 } | 142 } |
143 | 143 |
144 /* | 144 /* |
145 * Get the key type needed for the given mechanism | 145 * Get the mechanism needed for the given key type |
146 */ | 146 */ |
147 CK_MECHANISM_TYPE | 147 CK_MECHANISM_TYPE |
148 PK11_GetKeyMechanism(CK_KEY_TYPE type) | 148 PK11_GetKeyMechanism(CK_KEY_TYPE type) |
149 { | 149 { |
150 switch (type) { | 150 switch (type) { |
151 case CKK_SEED: | 151 case CKK_SEED: |
152 return CKM_SEED_CBC; | 152 return CKM_SEED_CBC; |
153 case CKK_CAMELLIA: | 153 case CKK_CAMELLIA: |
154 return CKM_CAMELLIA_CBC; | 154 return CKM_CAMELLIA_CBC; |
155 case CKK_AES: | 155 case CKK_AES: |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 return CKM_ECDSA; | 194 return CKM_ECDSA; |
195 case CKK_GENERIC_SECRET: | 195 case CKK_GENERIC_SECRET: |
196 default: | 196 default: |
197 return CKM_SHA_1_HMAC; | 197 return CKM_SHA_1_HMAC; |
198 } | 198 } |
199 } | 199 } |
200 | 200 |
201 /* | 201 /* |
202 * Get the key type needed for the given mechanism | 202 * Get the key type needed for the given mechanism |
203 */ | 203 */ |
204 CK_MECHANISM_TYPE | 204 CK_KEY_TYPE |
205 PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len) | 205 PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len) |
206 { | 206 { |
207 switch (type) { | 207 switch (type) { |
208 case CKM_SEED_ECB: | 208 case CKM_SEED_ECB: |
209 case CKM_SEED_CBC: | 209 case CKM_SEED_CBC: |
210 case CKM_SEED_MAC: | 210 case CKM_SEED_MAC: |
211 case CKM_SEED_MAC_GENERAL: | 211 case CKM_SEED_MAC_GENERAL: |
212 case CKM_SEED_CBC_PAD: | 212 case CKM_SEED_CBC_PAD: |
213 case CKM_SEED_KEY_GEN: | 213 case CKM_SEED_KEY_GEN: |
214 return CKK_SEED; | 214 return CKK_SEED; |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 case CKM_ECDH1_DERIVE: | 367 case CKM_ECDH1_DERIVE: |
368 return CKK_EC; /* CKK_ECDSA is deprecated */ | 368 return CKK_EC; /* CKK_ECDSA is deprecated */ |
369 case CKM_SSL3_PRE_MASTER_KEY_GEN: | 369 case CKM_SSL3_PRE_MASTER_KEY_GEN: |
370 case CKM_GENERIC_SECRET_KEY_GEN: | 370 case CKM_GENERIC_SECRET_KEY_GEN: |
371 case CKM_SSL3_MASTER_KEY_DERIVE: | 371 case CKM_SSL3_MASTER_KEY_DERIVE: |
372 case CKM_SSL3_MASTER_KEY_DERIVE_DH: | 372 case CKM_SSL3_MASTER_KEY_DERIVE_DH: |
373 case CKM_SSL3_KEY_AND_MAC_DERIVE: | 373 case CKM_SSL3_KEY_AND_MAC_DERIVE: |
374 case CKM_SSL3_SHA1_MAC: | 374 case CKM_SSL3_SHA1_MAC: |
375 case CKM_SSL3_MD5_MAC: | 375 case CKM_SSL3_MD5_MAC: |
376 case CKM_TLS_MASTER_KEY_DERIVE: | 376 case CKM_TLS_MASTER_KEY_DERIVE: |
| 377 case CKM_NSS_TLS_MASTER_KEY_DERIVE_SHA256: |
377 case CKM_TLS_MASTER_KEY_DERIVE_DH: | 378 case CKM_TLS_MASTER_KEY_DERIVE_DH: |
| 379 case CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256: |
378 case CKM_TLS_KEY_AND_MAC_DERIVE: | 380 case CKM_TLS_KEY_AND_MAC_DERIVE: |
| 381 case CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256: |
379 case CKM_SHA_1_HMAC: | 382 case CKM_SHA_1_HMAC: |
380 case CKM_SHA_1_HMAC_GENERAL: | 383 case CKM_SHA_1_HMAC_GENERAL: |
381 case CKM_SHA224_HMAC: | 384 case CKM_SHA224_HMAC: |
382 case CKM_SHA224_HMAC_GENERAL: | 385 case CKM_SHA224_HMAC_GENERAL: |
383 case CKM_SHA256_HMAC: | 386 case CKM_SHA256_HMAC: |
384 case CKM_SHA256_HMAC_GENERAL: | 387 case CKM_SHA256_HMAC_GENERAL: |
385 case CKM_SHA384_HMAC: | 388 case CKM_SHA384_HMAC: |
386 case CKM_SHA384_HMAC_GENERAL: | 389 case CKM_SHA384_HMAC_GENERAL: |
387 case CKM_SHA512_HMAC: | 390 case CKM_SHA512_HMAC: |
388 case CKM_SHA512_HMAC_GENERAL: | 391 case CKM_SHA512_HMAC_GENERAL: |
389 case CKM_MD2_HMAC: | 392 case CKM_MD2_HMAC: |
390 case CKM_MD2_HMAC_GENERAL: | 393 case CKM_MD2_HMAC_GENERAL: |
391 case CKM_MD5_HMAC: | 394 case CKM_MD5_HMAC: |
392 case CKM_MD5_HMAC_GENERAL: | 395 case CKM_MD5_HMAC_GENERAL: |
393 case CKM_TLS_PRF_GENERAL: | 396 case CKM_TLS_PRF_GENERAL: |
| 397 case CKM_NSS_TLS_PRF_GENERAL_SHA256: |
394 return CKK_GENERIC_SECRET; | 398 return CKK_GENERIC_SECRET; |
395 default: | 399 default: |
396 return pk11_lookup(type)->keyType; | 400 return pk11_lookup(type)->keyType; |
397 } | 401 } |
398 } | 402 } |
399 | 403 |
400 /* | 404 /* |
401 * Get the Key Gen Mechanism needed for the given | 405 * Get the Key Gen Mechanism needed for the given |
402 * crypto mechanism | 406 * crypto mechanism |
403 */ | 407 */ |
(...skipping 16 matching lines...) Expand all Loading... |
420 return CKM_SEED_KEY_GEN; | 424 return CKM_SEED_KEY_GEN; |
421 case CKM_CAMELLIA_ECB: | 425 case CKM_CAMELLIA_ECB: |
422 case CKM_CAMELLIA_CBC: | 426 case CKM_CAMELLIA_CBC: |
423 case CKM_CAMELLIA_MAC: | 427 case CKM_CAMELLIA_MAC: |
424 case CKM_CAMELLIA_MAC_GENERAL: | 428 case CKM_CAMELLIA_MAC_GENERAL: |
425 case CKM_CAMELLIA_CBC_PAD: | 429 case CKM_CAMELLIA_CBC_PAD: |
426 case CKM_CAMELLIA_KEY_GEN: | 430 case CKM_CAMELLIA_KEY_GEN: |
427 return CKM_CAMELLIA_KEY_GEN; | 431 return CKM_CAMELLIA_KEY_GEN; |
428 case CKM_AES_ECB: | 432 case CKM_AES_ECB: |
429 case CKM_AES_CBC: | 433 case CKM_AES_CBC: |
| 434 case CKM_AES_CCM: |
| 435 case CKM_AES_CTR: |
| 436 case CKM_AES_CTS: |
| 437 case CKM_AES_GCM: |
430 case CKM_AES_MAC: | 438 case CKM_AES_MAC: |
431 case CKM_AES_MAC_GENERAL: | 439 case CKM_AES_MAC_GENERAL: |
432 case CKM_AES_CBC_PAD: | 440 case CKM_AES_CBC_PAD: |
433 case CKM_AES_KEY_GEN: | 441 case CKM_AES_KEY_GEN: |
434 return CKM_AES_KEY_GEN; | 442 return CKM_AES_KEY_GEN; |
435 case CKM_DES_ECB: | 443 case CKM_DES_ECB: |
436 case CKM_DES_CBC: | 444 case CKM_DES_CBC: |
437 case CKM_DES_MAC: | 445 case CKM_DES_MAC: |
438 case CKM_DES_MAC_GENERAL: | 446 case CKM_DES_MAC_GENERAL: |
439 case CKM_KEY_WRAP_LYNKS: | 447 case CKM_KEY_WRAP_LYNKS: |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 case CKM_EC_KEY_PAIR_GEN: /* aka CKM_ECDSA_KEY_PAIR_GEN */ | 565 case CKM_EC_KEY_PAIR_GEN: /* aka CKM_ECDSA_KEY_PAIR_GEN */ |
558 case CKM_ECDH1_DERIVE: | 566 case CKM_ECDH1_DERIVE: |
559 return CKM_EC_KEY_PAIR_GEN; | 567 return CKM_EC_KEY_PAIR_GEN; |
560 case CKM_SSL3_PRE_MASTER_KEY_GEN: | 568 case CKM_SSL3_PRE_MASTER_KEY_GEN: |
561 case CKM_SSL3_MASTER_KEY_DERIVE: | 569 case CKM_SSL3_MASTER_KEY_DERIVE: |
562 case CKM_SSL3_KEY_AND_MAC_DERIVE: | 570 case CKM_SSL3_KEY_AND_MAC_DERIVE: |
563 case CKM_SSL3_SHA1_MAC: | 571 case CKM_SSL3_SHA1_MAC: |
564 case CKM_SSL3_MD5_MAC: | 572 case CKM_SSL3_MD5_MAC: |
565 case CKM_TLS_MASTER_KEY_DERIVE: | 573 case CKM_TLS_MASTER_KEY_DERIVE: |
566 case CKM_TLS_KEY_AND_MAC_DERIVE: | 574 case CKM_TLS_KEY_AND_MAC_DERIVE: |
| 575 case CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256: |
567 return CKM_SSL3_PRE_MASTER_KEY_GEN; | 576 return CKM_SSL3_PRE_MASTER_KEY_GEN; |
568 case CKM_SHA_1_HMAC: | 577 case CKM_SHA_1_HMAC: |
569 case CKM_SHA_1_HMAC_GENERAL: | 578 case CKM_SHA_1_HMAC_GENERAL: |
570 case CKM_SHA224_HMAC: | 579 case CKM_SHA224_HMAC: |
571 case CKM_SHA224_HMAC_GENERAL: | 580 case CKM_SHA224_HMAC_GENERAL: |
572 case CKM_SHA256_HMAC: | 581 case CKM_SHA256_HMAC: |
573 case CKM_SHA256_HMAC_GENERAL: | 582 case CKM_SHA256_HMAC_GENERAL: |
574 case CKM_SHA384_HMAC: | 583 case CKM_SHA384_HMAC: |
575 case CKM_SHA384_HMAC_GENERAL: | 584 case CKM_SHA384_HMAC_GENERAL: |
576 case CKM_SHA512_HMAC: | 585 case CKM_SHA512_HMAC: |
577 case CKM_SHA512_HMAC_GENERAL: | 586 case CKM_SHA512_HMAC_GENERAL: |
578 case CKM_MD2_HMAC: | 587 case CKM_MD2_HMAC: |
579 case CKM_MD2_HMAC_GENERAL: | 588 case CKM_MD2_HMAC_GENERAL: |
580 case CKM_MD5_HMAC: | 589 case CKM_MD5_HMAC: |
581 case CKM_MD5_HMAC_GENERAL: | 590 case CKM_MD5_HMAC_GENERAL: |
582 case CKM_TLS_PRF_GENERAL: | 591 case CKM_TLS_PRF_GENERAL: |
| 592 case CKM_NSS_TLS_PRF_GENERAL_SHA256: |
583 case CKM_GENERIC_SECRET_KEY_GEN: | 593 case CKM_GENERIC_SECRET_KEY_GEN: |
584 return CKM_GENERIC_SECRET_KEY_GEN; | 594 return CKM_GENERIC_SECRET_KEY_GEN; |
585 case CKM_PBE_MD2_DES_CBC: | 595 case CKM_PBE_MD2_DES_CBC: |
586 case CKM_PBE_MD5_DES_CBC: | 596 case CKM_PBE_MD5_DES_CBC: |
587 case CKM_PBA_SHA1_WITH_SHA1_HMAC: | 597 case CKM_PBA_SHA1_WITH_SHA1_HMAC: |
588 case CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN: | 598 case CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN: |
589 case CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN: | 599 case CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN: |
590 case CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN: | 600 case CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN: |
591 case CKM_NETSCAPE_PBE_SHA1_DES_CBC: | 601 case CKM_NETSCAPE_PBE_SHA1_DES_CBC: |
592 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC: | 602 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC: |
(...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1867 case SEC_OID_MISSI_DSS: | 1877 case SEC_OID_MISSI_DSS: |
1868 case SEC_OID_MISSI_DSS_OLD: | 1878 case SEC_OID_MISSI_DSS_OLD: |
1869 case SEC_OID_MISSI_KEA_DSS_OLD: | 1879 case SEC_OID_MISSI_KEA_DSS_OLD: |
1870 case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST: | 1880 case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST: |
1871 return SEC_OID_ANSIX9_DSA_SIGNATURE; | 1881 return SEC_OID_ANSIX9_DSA_SIGNATURE; |
1872 default: | 1882 default: |
1873 break; | 1883 break; |
1874 } | 1884 } |
1875 return algTag; | 1885 return algTag; |
1876 } | 1886 } |
OLD | NEW |