[Pcsclite-cvs-commit] r426 - trunk/PKCS11/src
Ludovic Rousseau
rousseau at alioth.debian.org
Sat Nov 25 21:14:11 CET 2006
Author: rousseau
Date: 2006-11-25 21:14:11 +0100 (Sat, 25 Nov 2006)
New Revision: 426
Modified:
trunk/PKCS11/src/p11_crypt.c
Log:
C_Decrypt(): correct key size.
Patch from
http://archives.neohapsis.com/archives/dev/muscle/2006-q4/0162.html
Modified: trunk/PKCS11/src/p11_crypt.c
===================================================================
--- trunk/PKCS11/src/p11_crypt.c 2006-10-13 18:57:33 UTC (rev 425)
+++ trunk/PKCS11/src/p11_crypt.c 2006-11-25 20:14:11 UTC (rev 426)
@@ -9,6 +9,7 @@
** Purpose: Encryption and decryption
**
******************************************************************************/
+#include <assert.h>
#include "cryptoki.h"
/* Removed by Netscape
@@ -30,6 +31,8 @@
int i = 0;
int padLen = toLen - 3 - fromLen;
+ assert( toLen > fromLen );
+ assert( padLen >= 0 );
if( toLen < fromLen || padLen < 0 ) {
return 0;
}
@@ -51,6 +54,8 @@
memcpy(to+i, from, fromLen);
i += fromLen;
+ assert( (CK_ULONG) i == toLen );
+
return 1;
}
@@ -356,7 +361,7 @@
P11_Object *key; /* = (P11_Object *)session->sign_key; */
MSCCryptInit cryptInit;
CK_BYTE *t_data1 = 0, *t_data2 = 0;
- CK_ULONG output_len, t_data1_len, t_data2_len;
+ CK_ULONG t_data1_len, t_data2_len;
P11_Slot *slot;
CK_ULONG slotID;
@@ -422,10 +427,9 @@
cryptInit.optParams = 0;
cryptInit.optParamsSize = 0;
- output_len = key->msc_key->keySize / 8;
- t_data1 = (CK_BYTE *)malloc(output_len);
- t_data2_len = output_len;
- t_data2 = (CK_BYTE *)malloc(t_data2_len);
+ t_data1 = (CK_BYTE *)malloc(key->msc_key->keySize / 8);
+ t_data2 = (CK_BYTE *)malloc(key->msc_key->keySize / 8);
+ t_data2_len = key->msc_key->keySize / 8; // PATCH
if (!t_data1 || !t_data2)
rv = CKR_HOST_MEMORY;
More information about the Pcsclite-cvs-commit
mailing list