| 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 implements PKCS 11 on top of our existing security modules | 5 * This file implements PKCS 11 on top of our existing security modules |
| 6 * | 6 * |
| 7 * For more information about PKCS 11 See PKCS 11 Token Inteface Standard. | 7 * For more information about PKCS 11 See PKCS 11 Token Inteface Standard. |
| 8 * This implementation has two slots: | 8 * This implementation has two slots: |
| 9 * slot 1 is our generic crypto support. It does not require login. | 9 * slot 1 is our generic crypto support. It does not require login. |
| 10 * It supports Public Key ops, and all they bulk ciphers and hashes. | 10 * It supports Public Key ops, and all they bulk ciphers and hashes. |
| (...skipping 3616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3627 sftk_DeleteAttributeType(key,CKA_VALUE); | 3627 sftk_DeleteAttributeType(key,CKA_VALUE); |
| 3628 | 3628 |
| 3629 /* Now Set up the parameters to generate the key (based on mechanism) */ | 3629 /* Now Set up the parameters to generate the key (based on mechanism) */ |
| 3630 key_gen_type = nsc_bulk; /* bulk key by default */ | 3630 key_gen_type = nsc_bulk; /* bulk key by default */ |
| 3631 switch (pMechanism->mechanism) { | 3631 switch (pMechanism->mechanism) { |
| 3632 case CKM_CDMF_KEY_GEN: | 3632 case CKM_CDMF_KEY_GEN: |
| 3633 case CKM_DES_KEY_GEN: | 3633 case CKM_DES_KEY_GEN: |
| 3634 case CKM_DES2_KEY_GEN: | 3634 case CKM_DES2_KEY_GEN: |
| 3635 case CKM_DES3_KEY_GEN: | 3635 case CKM_DES3_KEY_GEN: |
| 3636 checkWeak = PR_TRUE; | 3636 checkWeak = PR_TRUE; |
| 3637 /* fall through */ |
| 3637 case CKM_RC2_KEY_GEN: | 3638 case CKM_RC2_KEY_GEN: |
| 3638 case CKM_RC4_KEY_GEN: | 3639 case CKM_RC4_KEY_GEN: |
| 3639 case CKM_GENERIC_SECRET_KEY_GEN: | 3640 case CKM_GENERIC_SECRET_KEY_GEN: |
| 3640 case CKM_SEED_KEY_GEN: | 3641 case CKM_SEED_KEY_GEN: |
| 3641 case CKM_CAMELLIA_KEY_GEN: | 3642 case CKM_CAMELLIA_KEY_GEN: |
| 3642 case CKM_AES_KEY_GEN: | 3643 case CKM_AES_KEY_GEN: |
| 3643 case CKM_NSS_CHACHA20_KEY_GEN: | 3644 case CKM_NSS_CHACHA20_KEY_GEN: |
| 3644 #if NSS_SOFTOKEN_DOES_RC5 | 3645 #if NSS_SOFTOKEN_DOES_RC5 |
| 3645 case CKM_RC5_KEY_GEN: | 3646 case CKM_RC5_KEY_GEN: |
| 3646 #endif | 3647 #endif |
| 3647 crv = nsc_SetupBulkKeyGen(pMechanism->mechanism,&key_type,&key_length); | 3648 crv = nsc_SetupBulkKeyGen(pMechanism->mechanism,&key_type,&key_length); |
| 3648 break; | 3649 break; |
| 3649 case CKM_SSL3_PRE_MASTER_KEY_GEN: | 3650 case CKM_SSL3_PRE_MASTER_KEY_GEN: |
| 3650 key_type = CKK_GENERIC_SECRET; | 3651 key_type = CKK_GENERIC_SECRET; |
| 3651 key_length = 48; | 3652 key_length = 48; |
| 3652 key_gen_type = nsc_ssl; | 3653 key_gen_type = nsc_ssl; |
| 3653 break; | 3654 break; |
| 3654 case CKM_PBA_SHA1_WITH_SHA1_HMAC: | 3655 case CKM_PBA_SHA1_WITH_SHA1_HMAC: |
| 3655 case CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN: | 3656 case CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN: |
| 3656 case CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN: | 3657 case CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN: |
| 3657 case CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN: | 3658 case CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN: |
| 3658 key_gen_type = nsc_pbe; | 3659 key_gen_type = nsc_pbe; |
| 3659 key_type = CKK_GENERIC_SECRET; | 3660 key_type = CKK_GENERIC_SECRET; |
| 3660 crv = nsc_SetupHMACKeyGen(pMechanism, &pbe_param); | 3661 crv = nsc_SetupHMACKeyGen(pMechanism, &pbe_param); |
| 3661 break; | 3662 break; |
| 3662 case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC: | 3663 case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC: |
| 3663 faultyPBE3DES = PR_TRUE; | 3664 faultyPBE3DES = PR_TRUE; |
| 3665 /* fall through */ |
| 3664 case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC: | 3666 case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC: |
| 3665 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC: | 3667 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC: |
| 3666 case CKM_NETSCAPE_PBE_SHA1_DES_CBC: | 3668 case CKM_NETSCAPE_PBE_SHA1_DES_CBC: |
| 3667 case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC: | 3669 case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC: |
| 3668 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4: | 3670 case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4: |
| 3669 case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4: | 3671 case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4: |
| 3670 case CKM_PBE_SHA1_DES3_EDE_CBC: | 3672 case CKM_PBE_SHA1_DES3_EDE_CBC: |
| 3671 case CKM_PBE_SHA1_DES2_EDE_CBC: | 3673 case CKM_PBE_SHA1_DES2_EDE_CBC: |
| 3672 case CKM_PBE_SHA1_RC2_128_CBC: | 3674 case CKM_PBE_SHA1_RC2_128_CBC: |
| 3673 case CKM_PBE_SHA1_RC2_40_CBC: | 3675 case CKM_PBE_SHA1_RC2_40_CBC: |
| (...skipping 3398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7072 att = sftk_FindAttribute(key,CKA_VALUE); | 7074 att = sftk_FindAttribute(key,CKA_VALUE); |
| 7073 sftk_FreeObject(key); | 7075 sftk_FreeObject(key); |
| 7074 if (!att) { | 7076 if (!att) { |
| 7075 return CKR_KEY_HANDLE_INVALID; | 7077 return CKR_KEY_HANDLE_INVALID; |
| 7076 } | 7078 } |
| 7077 crv = NSC_DigestUpdate(hSession,(CK_BYTE_PTR)att->attrib.pValue, | 7079 crv = NSC_DigestUpdate(hSession,(CK_BYTE_PTR)att->attrib.pValue, |
| 7078 att->attrib.ulValueLen); | 7080 att->attrib.ulValueLen); |
| 7079 sftk_FreeAttribute(att); | 7081 sftk_FreeAttribute(att); |
| 7080 return crv; | 7082 return crv; |
| 7081 } | 7083 } |
| OLD | NEW |