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

Side by Side Diff: mozilla/security/nss/lib/pk11wrap/pk11obj.c

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, 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
« no previous file with comments | « mozilla/security/nss/lib/freebl/gcm.c ('k') | mozilla/security/nss/lib/pk11wrap/pk11pub.h » ('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 manages object type indepentent functions. 5 * This file manages object type indepentent functions.
6 */ 6 */
7 #include "seccomon.h" 7 #include "seccomon.h"
8 #include "secmod.h" 8 #include "secmod.h"
9 #include "secmodi.h" 9 #include "secmodi.h"
10 #include "secmodti.h" 10 #include "secmodti.h"
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 pk11_CloseSession(slot,session,owner); 816 pk11_CloseSession(slot,session,owner);
817 sig->len = len; 817 sig->len = len;
818 if (crv != CKR_OK) { 818 if (crv != CKR_OK) {
819 PORT_SetError( PK11_MapError(crv) ); 819 PORT_SetError( PK11_MapError(crv) );
820 return SECFailure; 820 return SECFailure;
821 } 821 }
822 return SECSuccess; 822 return SECSuccess;
823 } 823 }
824 824
825 SECStatus 825 SECStatus
826 PK11_EncryptWithSymKey(PK11SymKey *symKey, 826 PK11_Decrypt(PK11SymKey *symKey,
827 CK_MECHANISM_TYPE mechanism, SECItem *param, 827 CK_MECHANISM_TYPE mechanism, SECItem *param,
828 unsigned char *out, unsigned int *outLen, 828 unsigned char *out, unsigned int *outLen,
829 unsigned int maxLen, 829 unsigned int maxLen,
830 const unsigned char *data, unsigned dataLen) 830 const unsigned char *enc, unsigned encLen)
831 { 831 {
832 PK11SlotInfo *slot = symKey->slot; 832 PK11SlotInfo *slot = symKey->slot;
833 CK_MECHANISM mech = {0, NULL, 0 }; 833 CK_MECHANISM mech = {0, NULL, 0 };
834 CK_ULONG len = maxLen; 834 CK_ULONG len = maxLen;
835 PRBool owner = PR_TRUE; 835 PRBool owner = PR_TRUE;
836 CK_SESSION_HANDLE session; 836 CK_SESSION_HANDLE session;
837 PRBool haslock = PR_FALSE; 837 PRBool haslock = PR_FALSE;
838 CK_RV crv; 838 CK_RV crv;
839 839
840 mech.mechanism = mechanism; 840 mech.mechanism = mechanism;
841 if (param) { 841 if (param) {
842 mech.pParameter = param->data; 842 mech.pParameter = param->data;
843 mech.ulParameterLen = param->len; 843 mech.ulParameterLen = param->len;
844 } 844 }
845 845
846 session = pk11_GetNewSession(slot, &owner); 846 session = pk11_GetNewSession(slot, &owner);
847 haslock = (!owner || !slot->isThreadSafe); 847 haslock = (!owner || !slot->isThreadSafe);
848 if (haslock) PK11_EnterSlotMonitor(slot); 848 if (haslock) PK11_EnterSlotMonitor(slot);
849 crv = PK11_GETTAB(slot)->C_EncryptInit(session, &mech, symKey->objectID); 849 crv = PK11_GETTAB(slot)->C_DecryptInit(session, &mech, symKey->objectID);
850 if (crv != CKR_OK) { 850 if (crv != CKR_OK) {
851 if (haslock) PK11_ExitSlotMonitor(slot); 851 if (haslock) PK11_ExitSlotMonitor(slot);
852 » pk11_CloseSession(slot,session,owner); 852 » pk11_CloseSession(slot, session, owner);
853 PORT_SetError( PK11_MapError(crv) ); 853 PORT_SetError( PK11_MapError(crv) );
854 return SECFailure; 854 return SECFailure;
855 } 855 }
856 crv = PK11_GETTAB(slot)->C_Encrypt(session, (unsigned char *)data, 856
857 dataLen, out, &len); 857 crv = PK11_GETTAB(slot)->C_Decrypt(session, (unsigned char *)enc, encLen,
858 out, &len);
858 if (haslock) PK11_ExitSlotMonitor(slot); 859 if (haslock) PK11_ExitSlotMonitor(slot);
859 pk11_CloseSession(slot,session,owner); 860 pk11_CloseSession(slot, session, owner);
860 *outLen = len; 861 *outLen = len;
861 if (crv != CKR_OK) { 862 if (crv != CKR_OK) {
862 PORT_SetError( PK11_MapError(crv) ); 863 PORT_SetError( PK11_MapError(crv) );
863 return SECFailure; 864 return SECFailure;
864 } 865 }
865 return SECSuccess; 866 return SECSuccess;
866 } 867 }
867 868
868 SECStatus 869 SECStatus
869 PK11_DecryptWithSymKey(PK11SymKey *symKey, 870 PK11_Encrypt(PK11SymKey *symKey,
870 CK_MECHANISM_TYPE mechanism, SECItem *param, 871 CK_MECHANISM_TYPE mechanism, SECItem *param,
871 unsigned char *out, unsigned int *outLen, 872 unsigned char *out, unsigned int *outLen,
872 unsigned int maxLen, 873 unsigned int maxLen,
873 const unsigned char *enc, unsigned encLen) 874 const unsigned char *data, unsigned int dataLen)
874 { 875 {
875 PK11SlotInfo *slot = symKey->slot; 876 PK11SlotInfo *slot = symKey->slot;
876 CK_MECHANISM mech = {0, NULL, 0 }; 877 CK_MECHANISM mech = {0, NULL, 0 };
877 CK_ULONG len = maxLen; 878 CK_ULONG len = maxLen;
878 PRBool owner = PR_TRUE; 879 PRBool owner = PR_TRUE;
879 CK_SESSION_HANDLE session; 880 CK_SESSION_HANDLE session;
880 PRBool haslock = PR_FALSE; 881 PRBool haslock = PR_FALSE;
881 CK_RV crv; 882 CK_RV crv;
882 883
883 mech.mechanism = mechanism; 884 mech.mechanism = mechanism;
884 if (param) { 885 if (param) {
885 mech.pParameter = param->data; 886 mech.pParameter = param->data;
886 mech.ulParameterLen = param->len; 887 mech.ulParameterLen = param->len;
887 } 888 }
888 889
889 session = pk11_GetNewSession(slot, &owner); 890 session = pk11_GetNewSession(slot, &owner);
890 haslock = (!owner || !slot->isThreadSafe); 891 haslock = (!owner || !slot->isThreadSafe);
891 if (haslock) PK11_EnterSlotMonitor(slot); 892 if (haslock) PK11_EnterSlotMonitor(slot);
892 crv = PK11_GETTAB(slot)->C_DecryptInit(session, &mech, symKey->objectID); 893 crv = PK11_GETTAB(slot)->C_EncryptInit(session, &mech, symKey->objectID);
893 if (crv != CKR_OK) { 894 if (crv != CKR_OK) {
894 if (haslock) PK11_ExitSlotMonitor(slot); 895 if (haslock) PK11_ExitSlotMonitor(slot);
895 » pk11_CloseSession(slot, session, owner); 896 » pk11_CloseSession(slot,session,owner);
896 PORT_SetError( PK11_MapError(crv) ); 897 PORT_SetError( PK11_MapError(crv) );
897 return SECFailure; 898 return SECFailure;
898 } 899 }
899 900 crv = PK11_GETTAB(slot)->C_Encrypt(session, (unsigned char *)data,
900 crv = PK11_GETTAB(slot)->C_Decrypt(session, (unsigned char *)enc, encLen, 901 dataLen, out, &len);
901 out, &len);
902 if (haslock) PK11_ExitSlotMonitor(slot); 902 if (haslock) PK11_ExitSlotMonitor(slot);
903 pk11_CloseSession(slot, session, owner); 903 pk11_CloseSession(slot,session,owner);
904 *outLen = len; 904 *outLen = len;
ramant (doing other things) 2013/03/29 19:35:10 nit: why delete spaces between arguments in line#
wtc 2013/03/29 20:52:19 What I did here was to reorder the PK11_Encrypt an
905 if (crv != CKR_OK) { 905 if (crv != CKR_OK) {
906 PORT_SetError( PK11_MapError(crv) ); 906 PORT_SetError( PK11_MapError(crv) );
907 return SECFailure; 907 return SECFailure;
908 } 908 }
909 return SECSuccess; 909 return SECSuccess;
910 } 910 }
911 911
912 /* 912 /*
913 * Now SSL 2.0 uses raw RSA stuff. These next to functions *must* use 913 * Now SSL 2.0 uses raw RSA stuff. These next to functions *must* use
914 * RSA keys, or they'll fail. We do the checks up front. If anyone comes 914 * RSA keys, or they'll fail. We do the checks up front. If anyone comes
(...skipping 1052 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 PORT_SetError( PK11_MapError(crv) ); 1967 PORT_SetError( PK11_MapError(crv) );
1968 return NULL; 1968 return NULL;
1969 } 1969 }
1970 1970
1971 item->data = (unsigned char*) theTemplate[0].pValue; 1971 item->data = (unsigned char*) theTemplate[0].pValue;
1972 item->len =theTemplate[0].ulValueLen; 1972 item->len =theTemplate[0].ulValueLen;
1973 1973
1974 return item; 1974 return item;
1975 } 1975 }
1976 1976
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/freebl/gcm.c ('k') | mozilla/security/nss/lib/pk11wrap/pk11pub.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698