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

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

Issue 329663003: Apply the fix for NSS bug 1021102 from the NSS upstream. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/nss
Patch Set: RSA_PrivateKeyCheck should require p > q. Created 6 years, 6 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
« no previous file with comments | « nss/lib/freebl/rsa.c ('k') | patches/nss-rsa-key-check.patch » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 2039 matching lines...) Expand 10 before | Expand all | Expand 10 after
2050 if (!prime2 || prime2->attrib.pValue != tmpKey.prime2.data) { 2050 if (!prime2 || prime2->attrib.pValue != tmpKey.prime2.data) {
2051 crv = sftk_forceAttribute(object, CKA_PRIME_2, 2051 crv = sftk_forceAttribute(object, CKA_PRIME_2,
2052 sftk_item_expand(&tmpKey.prime2)); 2052 sftk_item_expand(&tmpKey.prime2));
2053 if (crv != CKR_OK) goto loser; 2053 if (crv != CKR_OK) goto loser;
2054 } 2054 }
2055 if (!exponent1 || exponent1->attrib.pValue != tmpKey.exponent1.data) { 2055 if (!exponent1 || exponent1->attrib.pValue != tmpKey.exponent1.data) {
2056 crv = sftk_forceAttribute(object, CKA_EXPONENT_1, 2056 crv = sftk_forceAttribute(object, CKA_EXPONENT_1,
2057 sftk_item_expand(&tmpKey.exponent1)); 2057 sftk_item_expand(&tmpKey.exponent1));
2058 if (crv != CKR_OK) goto loser; 2058 if (crv != CKR_OK) goto loser;
2059 } 2059 }
2060 if (!exponent1 || exponent1->attrib.pValue != tmpKey.exponent1.data) { 2060 if (!exponent2 || exponent2->attrib.pValue != tmpKey.exponent2.data) {
2061 crv = sftk_forceAttribute(object, CKA_EXPONENT_2, 2061 crv = sftk_forceAttribute(object, CKA_EXPONENT_2,
2062 sftk_item_expand(&tmpKey.exponent2)); 2062 sftk_item_expand(&tmpKey.exponent2));
2063 if (crv != CKR_OK) goto loser; 2063 if (crv != CKR_OK) goto loser;
2064 } 2064 }
2065 if (!exponent1 || exponent1->attrib.pValue != tmpKey.exponent1.data) { 2065 if (!coefficient || coefficient->attrib.pValue != tmpKey.coefficient.data) {
2066 crv = sftk_forceAttribute(object, CKA_COEFFICIENT, 2066 crv = sftk_forceAttribute(object, CKA_COEFFICIENT,
2067 sftk_item_expand(&tmpKey.coefficient)); 2067 sftk_item_expand(&tmpKey.coefficient));
2068 if (crv != CKR_OK) goto loser; 2068 if (crv != CKR_OK) goto loser;
2069 } 2069 }
2070 rv = SECSuccess; 2070 rv = SECSuccess;
2071 2071
2072 /* we're done (one way or the other), clean up all our stuff */ 2072 /* we're done (one way or the other), clean up all our stuff */
2073 loser: 2073 loser:
2074 if (tmpKey.arena) { 2074 if (tmpKey.arena) {
2075 PORT_FreeArena(tmpKey.arena,PR_TRUE); 2075 PORT_FreeArena(tmpKey.arena,PR_TRUE);
2076 } 2076 }
2077 if (modulus) { 2077 if (modulus) {
2078 sftk_FreeAttribute(modulus); 2078 sftk_FreeAttribute(modulus);
2079 } 2079 }
2080 if (prime1) { 2080 if (prime1) {
2081 sftk_FreeAttribute(prime1); 2081 sftk_FreeAttribute(prime1);
2082 } 2082 }
2083 if (prime2) { 2083 if (prime2) {
2084 sftk_FreeAttribute(prime2); 2084 sftk_FreeAttribute(prime2);
2085 } 2085 }
2086 if (privateExponent) { 2086 if (privateExponent) {
2087 sftk_FreeAttribute(privateExponent); 2087 sftk_FreeAttribute(privateExponent);
2088 } 2088 }
2089 if (publicExponent) { 2089 if (publicExponent) {
2090 sftk_FreeAttribute(publicExponent); 2090 sftk_FreeAttribute(publicExponent);
2091 } 2091 }
2092 if (exponent1) {
2093 sftk_FreeAttribute(exponent1);
2094 }
2095 if (exponent2) {
2096 sftk_FreeAttribute(exponent2);
2097 }
2098 if (coefficient) {
2099 sftk_FreeAttribute(coefficient);
2100 }
2092 return rv; 2101 return rv;
2093 } 2102 }
2094 2103
2095 /* Generate a low private key structure from an object */ 2104 /* Generate a low private key structure from an object */
2096 NSSLOWKEYPrivateKey * 2105 NSSLOWKEYPrivateKey *
2097 sftk_GetPrivKey(SFTKObject *object,CK_KEY_TYPE key_type, CK_RV *crvp) 2106 sftk_GetPrivKey(SFTKObject *object,CK_KEY_TYPE key_type, CK_RV *crvp)
2098 { 2107 {
2099 NSSLOWKEYPrivateKey *priv = NULL; 2108 NSSLOWKEYPrivateKey *priv = NULL;
2100 2109
2101 if (object->objclass != CKO_PRIVATE_KEY) { 2110 if (object->objclass != CKO_PRIVATE_KEY) {
(...skipping 2661 matching lines...) Expand 10 before | Expand all | Expand 10 after
4763 4772
4764 4773
4765 CK_RV NSC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, 4774 CK_RV NSC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot,
4766 CK_VOID_PTR pReserved) 4775 CK_VOID_PTR pReserved)
4767 { 4776 {
4768 CHECK_FORK(); 4777 CHECK_FORK();
4769 4778
4770 return CKR_FUNCTION_NOT_SUPPORTED; 4779 return CKR_FUNCTION_NOT_SUPPORTED;
4771 } 4780 }
4772 4781
OLDNEW
« no previous file with comments | « nss/lib/freebl/rsa.c ('k') | patches/nss-rsa-key-check.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698