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

Unified Diff: patches/nss-encrypt-with-sym-key.patch

Issue 13327005: PK11_DecryptWithSymKey and PK11_EncryptWithSymKey have been (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: patches/nss-encrypt-with-sym-key.patch
===================================================================
--- patches/nss-encrypt-with-sym-key.patch (revision 190723)
+++ patches/nss-encrypt-with-sym-key.patch (working copy)
@@ -1,120 +0,0 @@
-Index: mozilla/security/nss/lib/pk11wrap/pk11obj.c
-===================================================================
---- mozilla/security/nss/lib/pk11wrap/pk11obj.c (revision 182578)
-+++ mozilla/security/nss/lib/pk11wrap/pk11obj.c (working copy)
-@@ -822,6 +822,93 @@
- return SECSuccess;
- }
-
-+SECStatus
-+PK11_EncryptWithSymKey(PK11SymKey *symKey,
-+ CK_MECHANISM_TYPE mechanism, SECItem *param,
-+ unsigned char *out, unsigned int *outLen,
-+ unsigned int maxLen,
-+ const unsigned char *data, unsigned dataLen)
-+{
-+ PK11SlotInfo *slot = symKey->slot;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ CK_ULONG len = maxLen;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ PRBool haslock = PR_FALSE;
-+ CK_RV crv;
-+
-+ mech.mechanism = mechanism;
-+ if (param) {
-+ mech.pParameter = param->data;
-+ mech.ulParameterLen = param->len;
-+ }
-+
-+ session = pk11_GetNewSession(slot, &owner);
-+ haslock = (!owner || !slot->isThreadSafe);
-+ if (haslock) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_EncryptInit(session, &mech, symKey->objectID);
-+ if (crv != CKR_OK) {
-+ if (haslock) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_Encrypt(session, (unsigned char *)data,
-+ dataLen, out, &len);
-+ if (haslock) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ *outLen = len;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+PK11_DecryptWithSymKey(PK11SymKey *symKey,
-+ CK_MECHANISM_TYPE mechanism, SECItem *param,
-+ unsigned char *out, unsigned int *outLen,
-+ unsigned int maxLen,
-+ const unsigned char *enc, unsigned encLen)
-+{
-+ PK11SlotInfo *slot = symKey->slot;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ CK_ULONG len = maxLen;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ PRBool haslock = PR_FALSE;
-+ CK_RV crv;
-+
-+ mech.mechanism = mechanism;
-+ if (param) {
-+ mech.pParameter = param->data;
-+ mech.ulParameterLen = param->len;
-+ }
-+
-+ session = pk11_GetNewSession(slot, &owner);
-+ haslock = (!owner || !slot->isThreadSafe);
-+ if (haslock) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_DecryptInit(session, &mech, symKey->objectID);
-+ if (crv != CKR_OK) {
-+ if (haslock) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot, session, owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ crv = PK11_GETTAB(slot)->C_Decrypt(session, (unsigned char *)enc, encLen,
-+ out, &len);
-+ if (haslock) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot, session, owner);
-+ *outLen = len;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
- /*
- * Now SSL 2.0 uses raw RSA stuff. These next to functions *must* use
- * RSA keys, or they'll fail. We do the checks up front. If anyone comes
-Index: mozilla/security/nss/lib/pk11wrap/pk11pub.h
-===================================================================
---- mozilla/security/nss/lib/pk11wrap/pk11pub.h (revision 182578)
-+++ mozilla/security/nss/lib/pk11wrap/pk11pub.h (working copy)
-@@ -508,6 +508,17 @@
- void *wincx);
- int PK11_GetPrivateModulusLen(SECKEYPrivateKey *key);
-
-+SECStatus PK11_EncryptWithSymKey(PK11SymKey *symKey,
-+ CK_MECHANISM_TYPE mechanism, SECItem *param,
-+ unsigned char *out, unsigned int *outLen,
-+ unsigned int maxLen,
-+ const unsigned char *data, unsigned dataLen);
-+SECStatus PK11_DecryptWithSymKey(PK11SymKey *symkey,
-+ CK_MECHANISM_TYPE mechanism, SECItem *param,
-+ unsigned char *out, unsigned int *outLen,
-+ unsigned int maxLen,
-+ const unsigned char *enc, unsigned encLen);
-+
- /* note: despite the name, this function takes a private key. */
- SECStatus PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
- unsigned *outLen, unsigned int maxLen, unsigned char *enc, unsigned encLen);

Powered by Google App Engine
This is Rietveld 408576698