Author: winesync
Date: Fri Apr 4 09:27:55 2008
New Revision: 32855
URL:
http://svn.reactos.org/svn/reactos?rev=32855&view=rev
Log:
Autosyncing with Wine HEAD
Modified:
trunk/reactos/dll/win32/rsaenh/handle.c
trunk/reactos/dll/win32/rsaenh/implglue.c
trunk/reactos/dll/win32/rsaenh/mpi.c
trunk/reactos/dll/win32/rsaenh/rsaenh.c
trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild
Modified: trunk/reactos/dll/win32/rsaenh/handle.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/handle.c?…
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/handle.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rsaenh/handle.c [iso-8859-1] Fri Apr 4 09:27:55 2008
@@ -193,10 +193,10 @@
int release_handle_table(HANDLETABLE *lpTable)
{
TRACE("(lpTable=%p)\n", lpTable);
-
+
release_all_handles(lpTable);
destroy_handle_table(lpTable);
- return (int)HeapFree(GetProcessHeap(), 0, lpTable);
+ return HeapFree(GetProcessHeap(), 0, lpTable);
}
/******************************************************************************
Modified: trunk/reactos/dll/win32/rsaenh/implglue.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/implglue.…
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/implglue.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rsaenh/implglue.c [iso-8859-1] Fri Apr 4 09:27:55 2008
@@ -134,7 +134,7 @@
BOOL duplicate_hash_impl(ALG_ID aiAlgid, CONST HASH_CONTEXT *pSrcHashContext,
HASH_CONTEXT *pDestHashContext)
{
- memcpy(pDestHashContext, pSrcHashContext, sizeof(HASH_CONTEXT));
+ *pDestHashContext = *pSrcHashContext;
return TRUE;
}
@@ -227,7 +227,7 @@
case CALG_AES_128:
case CALG_AES_192:
case CALG_AES_256:
- memcpy(pDestKeyContext, pSrcKeyContext, sizeof(KEY_CONTEXT));
+ *pDestKeyContext = *pSrcKeyContext;
break;
case CALG_RSA_KEYX:
case CALG_RSA_SIGN:
Modified: trunk/reactos/dll/win32/rsaenh/mpi.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/mpi.c?rev…
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/mpi.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rsaenh/mpi.c [iso-8859-1] Fri Apr 4 09:27:55 2008
@@ -30,9 +30,6 @@
#include <stdarg.h>
#include "tomcrypt.h"
-
-/* table of first PRIME_SIZE primes */
-static const mp_digit __prime_tab[];
/* Known optimal configurations
CPU /Compiler /MUL CUTOFF/SQR CUTOFF
@@ -1069,7 +1066,7 @@
/* normalize both x and y, ensure that y >= b/2, [b == 2**DIGIT_BIT] */
norm = mp_count_bits(&y) % DIGIT_BIT;
- if (norm < (int)(DIGIT_BIT-1)) {
+ if (norm < DIGIT_BIT-1) {
norm = (DIGIT_BIT-1) - norm;
if ((res = mp_mul_2d (&x, norm, &x)) != MP_OKAY) {
goto __Y;
@@ -1285,7 +1282,7 @@
}
/* shift by as many digits in the bit count */
- if (b >= (int)DIGIT_BIT) {
+ if (b >= DIGIT_BIT) {
mp_rshd (c, b / DIGIT_BIT);
}
@@ -1390,9 +1387,9 @@
} else {
t = 0;
}
- q.dp[ix] = (mp_digit)t;
- }
-
+ q.dp[ix] = t;
+ }
+
if (d != NULL) {
*d = (mp_digit)w;
}
@@ -1710,11 +1707,11 @@
}
/* read next digit and reset bitcnt */
buf = X->dp[digidx--];
- bitcnt = (int)DIGIT_BIT;
+ bitcnt = DIGIT_BIT;
}
/* grab the next msb from the exponent */
- y = (mp_digit)(buf >> (DIGIT_BIT - 1)) & 1;
+ y = (buf >> (DIGIT_BIT - 1)) & 1;
buf <<= (mp_digit)1;
/* if the bit is zero and mode == 0 then we ignore it
@@ -2609,7 +2606,7 @@
}
/* if the modulus is larger than the value than return */
- if (b > (int) (a->used * DIGIT_BIT)) {
+ if (b > a->used * DIGIT_BIT) {
res = mp_copy (a, c);
return res;
}
@@ -2624,8 +2621,7 @@
c->dp[x] = 0;
}
/* clear the digit that is not completely outside/inside the modulus */
- c->dp[b / DIGIT_BIT] &=
- (mp_digit) ((((mp_digit) 1) << (((mp_digit) b) % DIGIT_BIT)) - ((mp_digit)
1));
+ c->dp[b / DIGIT_BIT] &= (1 << ((mp_digit)b % DIGIT_BIT)) - 1;
mp_clamp (c);
return MP_OKAY;
}
@@ -2661,7 +2657,7 @@
/* now compute C = A * B mod b */
- for (x = bits - 1; x < (int)DIGIT_BIT; x++) {
+ for (x = bits - 1; x < DIGIT_BIT; x++) {
if ((res = mp_mul_2 (a, a)) != MP_OKAY) {
return res;
}
@@ -2907,14 +2903,14 @@
}
}
- if (c->alloc < (int)(c->used + b/DIGIT_BIT + 1)) {
+ if (c->alloc < c->used + b/DIGIT_BIT + 1) {
if ((res = mp_grow (c, c->used + b / DIGIT_BIT + 1)) != MP_OKAY) {
return res;
}
}
/* shift by as many digits in the bit count */
- if (b >= (int)DIGIT_BIT) {
+ if (b >= DIGIT_BIT) {
if ((res = mp_lshd (c, b / DIGIT_BIT)) != MP_OKAY) {
return res;
}
@@ -3034,6 +3030,45 @@
mp_clear (&t);
return res;
}
+
+/* table of first PRIME_SIZE primes */
+static const mp_digit __prime_tab[] = {
+ 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013,
+ 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035,
+ 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059,
+ 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, 0x0083,
+ 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD,
+ 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF,
+ 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107,
+ 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137,
+
+ 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167,
+ 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199,
+ 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9,
+ 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7,
+ 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239,
+ 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265,
+ 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293,
+ 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF,
+
+ 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301,
+ 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B,
+ 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371,
+ 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD,
+ 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5,
+ 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419,
+ 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449,
+ 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B,
+
+ 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7,
+ 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503,
+ 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529,
+ 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F,
+ 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3,
+ 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7,
+ 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623,
+ 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653
+};
/* determines if an integers is divisible by one
* of the first PRIME_SIZE primes or not
@@ -3811,44 +3846,6 @@
memset (a->dp, 0, sizeof (mp_digit) * a->alloc);
}
-static const mp_digit __prime_tab[] = {
- 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013,
- 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035,
- 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059,
- 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, 0x0083,
- 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD,
- 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF,
- 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107,
- 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137,
-
- 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167,
- 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199,
- 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9,
- 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7,
- 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239,
- 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265,
- 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293,
- 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF,
-
- 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301,
- 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B,
- 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371,
- 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD,
- 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5,
- 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419,
- 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449,
- 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B,
-
- 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7,
- 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503,
- 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529,
- 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F,
- 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3,
- 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7,
- 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623,
- 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653
-};
-
/* reverse an array, used for radix code */
void
bn_reverse (unsigned char *s, int len)
@@ -4068,7 +4065,7 @@
}
/* read next digit and reset the bitcnt */
buf = X->dp[digidx--];
- bitcnt = (int) DIGIT_BIT;
+ bitcnt = DIGIT_BIT;
}
/* grab the next msb from the exponent */
Modified: trunk/reactos/dll/win32/rsaenh/rsaenh.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/rsaenh.c?…
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/rsaenh.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rsaenh/rsaenh.c [iso-8859-1] Fri Apr 4 09:27:55 2008
@@ -75,8 +75,7 @@
#define RSAENH_MAX_BLOCK_SIZE 24
#define RSAENH_KEYSTATE_IDLE 0
#define RSAENH_KEYSTATE_ENCRYPTING 1
-#define RSAENH_KEYSTATE_DECRYPTING 2
-#define RSAENH_KEYSTATE_MASTERKEY 3
+#define RSAENH_KEYSTATE_MASTERKEY 2
typedef struct _RSAENH_SCHANNEL_INFO
{
SCHANNEL_ALG saEncAlg;
@@ -549,7 +548,7 @@
if (!src) return FALSE;
*dst = HeapAlloc(GetProcessHeap(), 0, sizeof(HMAC_INFO));
if (!*dst) return FALSE;
- memcpy(*dst, src, sizeof(HMAC_INFO));
+ **dst = *src;
(*dst)->pbInnerString = NULL;
(*dst)->pbOuterString = NULL;
if ((*dst)->cbInnerString == 0) (*dst)->cbInnerString =
RSAENH_HMAC_DEF_PAD_LEN;
@@ -828,8 +827,8 @@
}
}
- hCryptKey = (HCRYPTKEY)new_object(&handle_table, sizeof(CRYPTKEY),
RSAENH_MAGIC_KEY,
- destroy_key, (OBJECTHDR**)&pCryptKey);
+ hCryptKey = new_object(&handle_table, sizeof(CRYPTKEY), RSAENH_MAGIC_KEY,
+ destroy_key, (OBJECTHDR**)&pCryptKey);
if (hCryptKey != (HCRYPTKEY)INVALID_HANDLE_VALUE)
{
pCryptKey->aiAlgid = aiAlgid;
@@ -1095,8 +1094,8 @@
KEYCONTAINER *pKeyContainer;
HCRYPTPROV hKeyContainer;
- hKeyContainer = (HCRYPTPROV)new_object(&handle_table, sizeof(KEYCONTAINER),
RSAENH_MAGIC_CONTAINER,
- destroy_key_container,
(OBJECTHDR**)&pKeyContainer);
+ hKeyContainer = new_object(&handle_table, sizeof(KEYCONTAINER),
RSAENH_MAGIC_CONTAINER,
+ destroy_key_container, (OBJECTHDR**)&pKeyContainer);
if (hKeyContainer != (HCRYPTPROV)INVALID_HANDLE_VALUE)
{
lstrcpynA(pKeyContainer->szName, pszContainerName, MAX_PATH);
@@ -1670,10 +1669,10 @@
}
}
- *phHash = (HCRYPTHASH)new_object(&handle_table, sizeof(CRYPTHASH),
RSAENH_MAGIC_HASH,
- destroy_hash, (OBJECTHDR**)&pCryptHash);
+ *phHash = new_object(&handle_table, sizeof(CRYPTHASH), RSAENH_MAGIC_HASH,
+ destroy_hash, (OBJECTHDR**)&pCryptHash);
if (!pCryptHash) return FALSE;
-
+
pCryptHash->aiAlgid = Algid;
pCryptHash->hKey = hKey;
pCryptHash->hProv = hProv;
@@ -1834,11 +1833,11 @@
return FALSE;
}
- *phHash = (HCRYPTHASH)new_object(&handle_table, sizeof(CRYPTHASH),
RSAENH_MAGIC_HASH,
- destroy_hash, (OBJECTHDR**)&pDestHash);
+ *phHash = new_object(&handle_table, sizeof(CRYPTHASH), RSAENH_MAGIC_HASH,
+ destroy_hash, (OBJECTHDR**)&pDestHash);
if (*phHash != (HCRYPTHASH)INVALID_HANDLE_VALUE)
{
- memcpy(pDestHash, pSrcHash, sizeof(CRYPTHASH));
+ *pDestHash = *pSrcHash;
duplicate_hash_impl(pSrcHash->aiAlgid, &pSrcHash->context,
&pDestHash->context);
copy_hmac_info(&pDestHash->pHMACInfo, pSrcHash->pHMACInfo);
copy_data_blob(&pDestHash->tpPRFParams.blobLabel,
&pSrcHash->tpPRFParams.blobLabel);
@@ -1890,11 +1889,11 @@
return FALSE;
}
- *phKey = (HCRYPTKEY)new_object(&handle_table, sizeof(CRYPTKEY), RSAENH_MAGIC_KEY,
destroy_key,
- (OBJECTHDR**)&pDestKey);
+ *phKey = new_object(&handle_table, sizeof(CRYPTKEY), RSAENH_MAGIC_KEY,
destroy_key,
+ (OBJECTHDR**)&pDestKey);
if (*phKey != (HCRYPTKEY)INVALID_HANDLE_VALUE)
{
- memcpy(pDestKey, pSrcKey, sizeof(CRYPTKEY));
+ *pDestKey = *pSrcKey;
copy_data_blob(&pDestKey->siSChannelInfo.blobServerRandom,
&pSrcKey->siSChannelInfo.blobServerRandom);
copy_data_blob(&pDestKey->siSChannelInfo.blobClientRandom,
@@ -2115,9 +2114,9 @@
}
if (pCryptKey->dwState == RSAENH_KEYSTATE_IDLE)
- pCryptKey->dwState = RSAENH_KEYSTATE_DECRYPTING;
-
- if (pCryptKey->dwState != RSAENH_KEYSTATE_DECRYPTING)
+ pCryptKey->dwState = RSAENH_KEYSTATE_ENCRYPTING;
+
+ if (pCryptKey->dwState != RSAENH_KEYSTATE_ENCRYPTING)
{
SetLastError(NTE_BAD_DATA);
return FALSE;
@@ -3028,11 +3027,11 @@
DWORD dwTemp;
HKEY hKey;
- /* This is for dwParam 41, which does not seem to be documented
- * on MSDN. IE6 SP1 asks for it in the 'About' dialog, however.
+ /* This is for dwParam PP_CRYPT_COUNT_KEY_USE.
+ * IE6 SP1 asks for it in the 'About' dialog.
* Returning this BLOB seems to satisfy IE. The marked 0x00 seem
* to be 'don't care's. If you know anything more specific about
- * provider parameter 41, please report to wine-devel(a)winehq.org */
+ * this provider parameter, please report to wine-devel(a)winehq.org */
static CONST BYTE abWTF[96] = {
0xb0, 0x25, 0x63, 0x86, 0x9c, 0xab, 0xb6, 0x37,
0xe8, 0x82, /**/0x00,/**/ 0x72, 0x06, 0xb2, /**/0x00,/**/ 0x3b,
@@ -3176,7 +3175,7 @@
sizeof(PROV_ENUMALGS_EX));
}
- case 41: /* Undocumented. Asked for by IE About dialog */
+ case PP_CRYPT_COUNT_KEY_USE: /* Asked for by IE About dialog */
return copy_param(pbData, pdwDataLen, abWTF, sizeof(abWTF));
default:
Modified: trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/rsaenh/rsaenh.rb…
==============================================================================
--- trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/rsaenh/rsaenh.rbuild [iso-8859-1] Fri Apr 4 09:27:55 2008
@@ -9,11 +9,6 @@
<define name="__WINESRC__" />
<define name="WINVER">0x600</define>
<define name="_WIN32_WINNT">0x600</define>
- <library>wine</library>
- <library>crypt32</library>
- <library>advapi32</library>
- <library>kernel32</library>
- <library>ntdll</library>
<file>aes.c</file>
<file>des.c</file>
<file>handle.c</file>
@@ -26,5 +21,10 @@
<file>rsaenh.c</file>
<file>version.rc</file>
<file>rsaenh.spec</file>
+ <library>wine</library>
+ <library>crypt32</library>
+ <library>advapi32</library>
+ <library>kernel32</library>
+ <library>ntdll</library>
</module>
</group>