[ros-diffs] [winesync] 31793: Autosyncing with Wine HEAD

winesync at svn.reactos.org winesync at svn.reactos.org
Mon Jan 14 17:27:49 CET 2008


Author: winesync
Date: Mon Jan 14 19:27:48 2008
New Revision: 31793

URL: http://svn.reactos.org/svn/reactos?rev=31793&view=rev
Log:
Autosyncing with Wine HEAD

Modified:
    trunk/reactos/dll/win32/rsaenh/rsaenh.c
    trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild

Modified: trunk/reactos/dll/win32/rsaenh/rsaenh.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/rsaenh.c?rev=31793&r1=31792&r2=31793&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/rsaenh.c (original)
+++ trunk/reactos/dll/win32/rsaenh/rsaenh.c Mon Jan 14 19:27:48 2008
@@ -2798,6 +2798,14 @@
     }
     
     switch (dwParam) {
+        case KP_PADDING:
+            /* The MS providers only support PKCS5_PADDING */
+            if (*(DWORD *)pbData != PKCS5_PADDING) {
+                SetLastError(NTE_BAD_DATA);
+                return FALSE;
+            }
+            return TRUE;
+
         case KP_MODE:
             pCryptKey->dwMode = *(DWORD*)pbData;
             return TRUE;
@@ -2814,6 +2822,23 @@
             memcpy(pCryptKey->abInitVector, pbData, pCryptKey->dwBlockLen);
             setup_key(pCryptKey);
             return TRUE;
+
+        case KP_SALT_EX:
+        {
+            CRYPT_INTEGER_BLOB *blob = (CRYPT_INTEGER_BLOB *)pbData;
+
+            /* salt length can't be greater than 128 bits = 16 bytes */
+            if (blob->cbData > 16)
+            {
+                SetLastError(ERROR_INVALID_PARAMETER);
+                return FALSE;
+            }
+            memcpy(pCryptKey->abKeyValue + pCryptKey->dwKeyLen, blob->pbData,
+                   blob->cbData);
+            pCryptKey->dwSaltLen = blob->cbData;
+            setup_key(pCryptKey);
+            return TRUE;
+        }
 
         case KP_EFFECTIVE_KEYLEN:
             switch (pCryptKey->aiAlgid) {
@@ -2901,7 +2926,7 @@
                                  DWORD *pdwDataLen, DWORD dwFlags)
 {
     CRYPTKEY *pCryptKey;
-    DWORD dwBitLen;
+    DWORD dwValue;
         
     TRACE("(hProv=%08lx, hKey=%08lx, dwParam=%08x, pbData=%p, pdwDataLen=%p dwFlags=%08x)\n",
           hProv, hKey, dwParam, pbData, pdwDataLen, dwFlags);
@@ -2933,20 +2958,24 @@
             return copy_param(pbData, pdwDataLen, 
                     (CONST BYTE*)&pCryptKey->abKeyValue[pCryptKey->dwKeyLen], pCryptKey->dwSaltLen);
         
+        case KP_PADDING:
+            dwValue = PKCS5_PADDING;
+            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwValue, sizeof(DWORD));
+
         case KP_KEYLEN:
-            dwBitLen = pCryptKey->dwKeyLen << 3;
-            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwBitLen, sizeof(DWORD));
+            dwValue = pCryptKey->dwKeyLen << 3;
+            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwValue, sizeof(DWORD));
         
         case KP_EFFECTIVE_KEYLEN:
             if (pCryptKey->dwEffectiveKeyLen)
-                dwBitLen = pCryptKey->dwEffectiveKeyLen;
+                dwValue = pCryptKey->dwEffectiveKeyLen;
             else
-                dwBitLen = pCryptKey->dwKeyLen << 3;
-            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwBitLen, sizeof(DWORD));
+                dwValue = pCryptKey->dwKeyLen << 3;
+            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwValue, sizeof(DWORD));
 
         case KP_BLOCKLEN:
-            dwBitLen = pCryptKey->dwBlockLen << 3;
-            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwBitLen, sizeof(DWORD));
+            dwValue = pCryptKey->dwBlockLen << 3;
+            return copy_param(pbData, pdwDataLen, (CONST BYTE*)&dwValue, sizeof(DWORD));
     
         case KP_MODE:
             return copy_param(pbData, pdwDataLen, (CONST BYTE*)&pCryptKey->dwMode, sizeof(DWORD));

Modified: trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild?rev=31793&r1=31792&r2=31793&view=diff
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild (original)
+++ trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild Mon Jan 14 19:27:48 2008
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<group>
 <module name="rsaenh" type="win32dll" baseaddress="${BASEADDRESS_RSAENH}" installbase="system32" installname="rsaenh.dll" allowwarnings="true">
 	<autoregister infsection="OleControlDlls" type="DllRegisterServer" />
 	<importlibrary definition="rsaenh.spec.def" />
@@ -26,3 +27,4 @@
 	<file>version.rc</file>
 	<file>rsaenh.spec</file>
 </module>
+</group>




More information about the Ros-diffs mailing list