Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(592)

Side by Side Diff: nss/lib/softoken/pkcs11.c

Issue 13898013: Update NSS to NSS_3_15_BETA2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Update NSS versions and tag in README.chromium Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 {CKM_DSA_SHA1, {DSA_MIN_P_BITS, DSA_MAX_P_BITS, 297 {CKM_DSA_SHA1, {DSA_MIN_P_BITS, DSA_MAX_P_BITS,
298 CKF_SN_VR}, PR_TRUE}, 298 CKF_SN_VR}, PR_TRUE},
299 /* -------------------- Diffie Hellman Operations --------------------- */ 299 /* -------------------- Diffie Hellman Operations --------------------- */
300 /* no diffie hellman yet */ 300 /* no diffie hellman yet */
301 {CKM_DH_PKCS_KEY_PAIR_GEN, {DH_MIN_P_BITS, DH_MAX_P_BITS, 301 {CKM_DH_PKCS_KEY_PAIR_GEN, {DH_MIN_P_BITS, DH_MAX_P_BITS,
302 CKF_GENERATE_KEY_PAIR}, PR_TRUE}, 302 CKF_GENERATE_KEY_PAIR}, PR_TRUE},
303 {CKM_DH_PKCS_DERIVE, {DH_MIN_P_BITS, DH_MAX_P_BITS, 303 {CKM_DH_PKCS_DERIVE, {DH_MIN_P_BITS, DH_MAX_P_BITS,
304 CKF_DERIVE}, PR_TRUE}, 304 CKF_DERIVE}, PR_TRUE},
305 #ifdef NSS_ENABLE_ECC 305 #ifdef NSS_ENABLE_ECC
306 /* -------------------- Elliptic Curve Operations --------------------- */ 306 /* -------------------- Elliptic Curve Operations --------------------- */
307 {CKM_EC_KEY_PAIR_GEN, {112, 571, CKF_GENERATE_KEY_PAIR|CKF_EC_BPNU}, P R_TRUE}, 307 {CKM_EC_KEY_PAIR_GEN, {EC_MIN_KEY, EC_MAX_KEY,
308 {CKM_ECDH1_DERIVE, {112, 571, CKF_DERIVE|CKF_EC_BPNU}, PR_TRUE}, 308 » » » » CKF_GENERATE_KEY_PAIR|CKF_EC_BPNU}, PR_TRUE},
309 {CKM_ECDSA, {112, 571, CKF_SN_VR|CKF_EC_BPNU}, PR_TRUE}, 309 {CKM_ECDH1_DERIVE, {EC_MIN_KEY, EC_MAX_KEY,
310 {CKM_ECDSA_SHA1, {112, 571, CKF_SN_VR|CKF_EC_BPNU}, PR_TRUE}, 310 » » » » CKF_DERIVE|CKF_EC_BPNU}, PR_TRUE},
311 {CKM_ECDSA, {EC_MIN_KEY, EC_MAX_KEY,
312 » » » » CKF_SN_VR|CKF_EC_BPNU}, PR_TRUE},
313 {CKM_ECDSA_SHA1, {EC_MIN_KEY, EC_MAX_KEY,
314 » » » » CKF_SN_VR|CKF_EC_BPNU}, PR_TRUE},
311 #endif /* NSS_ENABLE_ECC */ 315 #endif /* NSS_ENABLE_ECC */
312 /* ------------------------- RC2 Operations --------------------------- */ 316 /* ------------------------- RC2 Operations --------------------------- */
313 {CKM_RC2_KEY_GEN, {1, 128, CKF_GENERATE}, PR_TRUE}, 317 {CKM_RC2_KEY_GEN, {1, 128, CKF_GENERATE}, PR_TRUE},
314 {CKM_RC2_ECB, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE}, 318 {CKM_RC2_ECB, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE},
315 {CKM_RC2_CBC, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE}, 319 {CKM_RC2_CBC, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE},
316 {CKM_RC2_MAC, {1, 128, CKF_SN_VR}, PR_TRUE}, 320 {CKM_RC2_MAC, {1, 128, CKF_SN_VR}, PR_TRUE},
317 {CKM_RC2_MAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE}, 321 {CKM_RC2_MAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE},
318 {CKM_RC2_CBC_PAD, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE}, 322 {CKM_RC2_CBC_PAD, {1, 128, CKF_EN_DE_WR_UN}, PR_TRUE},
319 /* ------------------------- RC4 Operations --------------------------- */ 323 /* ------------------------- RC4 Operations --------------------------- */
320 {CKM_RC4_KEY_GEN, {1, 256, CKF_GENERATE}, PR_FALSE}, 324 {CKM_RC4_KEY_GEN, {1, 256, CKF_GENERATE}, PR_FALSE},
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 {CKM_SHA256, {0, 0, CKF_DIGEST}, PR_FALSE}, 384 {CKM_SHA256, {0, 0, CKF_DIGEST}, PR_FALSE},
381 {CKM_SHA256_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE}, 385 {CKM_SHA256_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE},
382 {CKM_SHA256_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE}, 386 {CKM_SHA256_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE},
383 {CKM_SHA384, {0, 0, CKF_DIGEST}, PR_FALSE}, 387 {CKM_SHA384, {0, 0, CKF_DIGEST}, PR_FALSE},
384 {CKM_SHA384_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE}, 388 {CKM_SHA384_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE},
385 {CKM_SHA384_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE}, 389 {CKM_SHA384_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE},
386 {CKM_SHA512, {0, 0, CKF_DIGEST}, PR_FALSE}, 390 {CKM_SHA512, {0, 0, CKF_DIGEST}, PR_FALSE},
387 {CKM_SHA512_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE}, 391 {CKM_SHA512_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE},
388 {CKM_SHA512_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE}, 392 {CKM_SHA512_HMAC_GENERAL, {1, 128, CKF_SN_VR}, PR_TRUE},
389 {CKM_TLS_PRF_GENERAL, {0, 512, CKF_SN_VR}, PR_FALSE}, 393 {CKM_TLS_PRF_GENERAL, {0, 512, CKF_SN_VR}, PR_FALSE},
394 {CKM_NSS_TLS_PRF_GENERAL_SHA256,
395 {0, 512, CKF_SN_VR}, PR_FALSE},
390 /* ------------------------- HKDF Operations -------------------------- */ 396 /* ------------------------- HKDF Operations -------------------------- */
391 {CKM_NSS_HKDF_SHA1, {1, 128, CKF_DERIVE}, PR_TRUE}, 397 {CKM_NSS_HKDF_SHA1, {1, 128, CKF_DERIVE}, PR_TRUE},
392 {CKM_NSS_HKDF_SHA256, {1, 128, CKF_DERIVE}, PR_TRUE}, 398 {CKM_NSS_HKDF_SHA256, {1, 128, CKF_DERIVE}, PR_TRUE},
393 {CKM_NSS_HKDF_SHA384, {1, 128, CKF_DERIVE}, PR_TRUE}, 399 {CKM_NSS_HKDF_SHA384, {1, 128, CKF_DERIVE}, PR_TRUE},
394 {CKM_NSS_HKDF_SHA512, {1, 128, CKF_DERIVE}, PR_TRUE}, 400 {CKM_NSS_HKDF_SHA512, {1, 128, CKF_DERIVE}, PR_TRUE},
395 /* ------------------------- CAST Operations --------------------------- */ 401 /* ------------------------- CAST Operations --------------------------- */
396 #ifdef NSS_SOFTOKEN_DOES_CAST 402 #ifdef NSS_SOFTOKEN_DOES_CAST
397 /* Cast operations are not supported ( yet? ) */ 403 /* Cast operations are not supported ( yet? ) */
398 {CKM_CAST_KEY_GEN, {1, 8, CKF_GENERATE}, PR_TRUE}, 404 {CKM_CAST_KEY_GEN, {1, 8, CKF_GENERATE}, PR_TRUE},
399 {CKM_CAST_ECB, {1, 8, CKF_EN_DE_WR_UN}, PR_TRUE}, 405 {CKM_CAST_ECB, {1, 8, CKF_EN_DE_WR_UN}, PR_TRUE},
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 {CKM_SSL3_MD5_MAC, { 0, 16, CKF_DERIVE}, PR_FALSE}, 453 {CKM_SSL3_MD5_MAC, { 0, 16, CKF_DERIVE}, PR_FALSE},
448 {CKM_SSL3_SHA1_MAC, { 0, 20, CKF_DERIVE}, PR_FALSE}, 454 {CKM_SSL3_SHA1_MAC, { 0, 20, CKF_DERIVE}, PR_FALSE},
449 {CKM_MD5_KEY_DERIVATION, { 0, 16, CKF_DERIVE}, PR_FALSE}, 455 {CKM_MD5_KEY_DERIVATION, { 0, 16, CKF_DERIVE}, PR_FALSE},
450 {CKM_MD2_KEY_DERIVATION, { 0, 16, CKF_DERIVE}, PR_FALSE}, 456 {CKM_MD2_KEY_DERIVATION, { 0, 16, CKF_DERIVE}, PR_FALSE},
451 {CKM_SHA1_KEY_DERIVATION, { 0, 20, CKF_DERIVE}, PR_FALSE}, 457 {CKM_SHA1_KEY_DERIVATION, { 0, 20, CKF_DERIVE}, PR_FALSE},
452 {CKM_SHA224_KEY_DERIVATION, { 0, 28, CKF_DERIVE}, PR_FALSE}, 458 {CKM_SHA224_KEY_DERIVATION, { 0, 28, CKF_DERIVE}, PR_FALSE},
453 {CKM_SHA256_KEY_DERIVATION, { 0, 32, CKF_DERIVE}, PR_FALSE}, 459 {CKM_SHA256_KEY_DERIVATION, { 0, 32, CKF_DERIVE}, PR_FALSE},
454 {CKM_SHA384_KEY_DERIVATION, { 0, 48, CKF_DERIVE}, PR_FALSE}, 460 {CKM_SHA384_KEY_DERIVATION, { 0, 48, CKF_DERIVE}, PR_FALSE},
455 {CKM_SHA512_KEY_DERIVATION, { 0, 64, CKF_DERIVE}, PR_FALSE}, 461 {CKM_SHA512_KEY_DERIVATION, { 0, 64, CKF_DERIVE}, PR_FALSE},
456 {CKM_TLS_MASTER_KEY_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE}, 462 {CKM_TLS_MASTER_KEY_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE},
463 {CKM_NSS_TLS_MASTER_KEY_DERIVE_SHA256,
464 {48, 48, CKF_DERIVE}, PR_FALSE},
457 {CKM_TLS_MASTER_KEY_DERIVE_DH, {8, 128, CKF_DERIVE}, PR_FALSE}, 465 {CKM_TLS_MASTER_KEY_DERIVE_DH, {8, 128, CKF_DERIVE}, PR_FALSE},
466 {CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256,
467 {8, 128, CKF_DERIVE}, PR_FALSE},
458 {CKM_TLS_KEY_AND_MAC_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE}, 468 {CKM_TLS_KEY_AND_MAC_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE},
469 {CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256,
470 {48, 48, CKF_DERIVE}, PR_FALSE},
459 /* ---------------------- PBE Key Derivations ------------------------ */ 471 /* ---------------------- PBE Key Derivations ------------------------ */
460 {CKM_PBE_MD2_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE}, 472 {CKM_PBE_MD2_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE},
461 {CKM_PBE_MD5_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE}, 473 {CKM_PBE_MD5_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE},
462 /* ------------------ NETSCAPE PBE Key Derivations ------------------- */ 474 /* ------------------ NETSCAPE PBE Key Derivations ------------------- */
463 {CKM_NETSCAPE_PBE_SHA1_DES_CBC, { 8, 8, CKF_GENERATE}, PR_TRUE}, 475 {CKM_NETSCAPE_PBE_SHA1_DES_CBC, { 8, 8, CKF_GENERATE}, PR_TRUE},
464 {CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, 476 {CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, {24,24, CKF_GENERATE}, PR_TRUE},
465 {CKM_PBE_SHA1_DES3_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, 477 {CKM_PBE_SHA1_DES3_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE},
466 {CKM_PBE_SHA1_DES2_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, 478 {CKM_PBE_SHA1_DES2_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE},
467 {CKM_PBE_SHA1_RC2_40_CBC, {40,40, CKF_GENERATE}, PR_TRUE}, 479 {CKM_PBE_SHA1_RC2_40_CBC, {40,40, CKF_GENERATE}, PR_TRUE},
468 {CKM_PBE_SHA1_RC2_128_CBC, {128,128, CKF_GENERATE}, PR_TRUE}, 480 {CKM_PBE_SHA1_RC2_128_CBC, {128,128, CKF_GENERATE}, PR_TRUE},
(...skipping 1418 matching lines...) Expand 10 before | Expand all | Expand 10 after
1887 1899
1888 if (sftk_hasAttribute(object, CKA_NETSCAPE_DB)) { 1900 if (sftk_hasAttribute(object, CKA_NETSCAPE_DB)) {
1889 crv = sftk_Attribute2SSecItem(arena, &privKey->u.ec.publicValue, 1901 crv = sftk_Attribute2SSecItem(arena, &privKey->u.ec.publicValue,
1890 object, CKA_NETSCAPE_DB); 1902 object, CKA_NETSCAPE_DB);
1891 if (crv != CKR_OK) break; 1903 if (crv != CKR_OK) break;
1892 /* privKey was zero'd so public value is already set to NULL, 0 1904 /* privKey was zero'd so public value is already set to NULL, 0
1893 * if we don't set it explicitly */ 1905 * if we don't set it explicitly */
1894 } 1906 }
1895 rv = DER_SetUInteger(privKey->arena, &privKey->u.ec.version, 1907 rv = DER_SetUInteger(privKey->arena, &privKey->u.ec.version,
1896 NSSLOWKEY_EC_PRIVATE_KEY_VERSION); 1908 NSSLOWKEY_EC_PRIVATE_KEY_VERSION);
1897 » if (rv != SECSuccess) crv = CKR_HOST_MEMORY; 1909 » if (rv != SECSuccess) {
1910 » crv = CKR_HOST_MEMORY;
1911 » /* The following ifdef is needed for Linux arm distros and
1912 » * Android as gcc 4.6 has a bug when targeting arm (but not
1913 » * thumb). The bug has been fixed in gcc 4.7.
1914 » * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56561
1915 » */
1916 #if defined (__arm__) && !defined(__thumb__) && defined (__GNUC__)
1917 » *crvp = CKR_HOST_MEMORY;
1918 » break;
1919 #endif
1920 » }
1898 break; 1921 break;
1899 #endif /* NSS_ENABLE_ECC */ 1922 #endif /* NSS_ENABLE_ECC */
1900 1923
1901 default: 1924 default:
1902 crv = CKR_KEY_TYPE_INCONSISTENT; 1925 crv = CKR_KEY_TYPE_INCONSISTENT;
1903 break; 1926 break;
1904 } 1927 }
1905 if (crv == CKR_OK && itemTemplateCount != 0) { 1928 if (crv == CKR_OK && itemTemplateCount != 0) {
1906 PORT_Assert(itemTemplateCount > 0); 1929 PORT_Assert(itemTemplateCount > 0);
1907 PORT_Assert(itemTemplateCount <= SFTK_MAX_ITEM_TEMPLATE); 1930 PORT_Assert(itemTemplateCount <= SFTK_MAX_ITEM_TEMPLATE);
(...skipping 2791 matching lines...) Expand 10 before | Expand all | Expand 10 after
4699 4722
4700 4723
4701 CK_RV NSC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, 4724 CK_RV NSC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot,
4702 CK_VOID_PTR pReserved) 4725 CK_VOID_PTR pReserved)
4703 { 4726 {
4704 CHECK_FORK(); 4727 CHECK_FORK();
4705 4728
4706 return CKR_FUNCTION_NOT_SUPPORTED; 4729 return CKR_FUNCTION_NOT_SUPPORTED;
4707 } 4730 }
4708 4731
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698