Commit 62d80660 authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

rsaenh: Implement CALG_SSL3_SHAMD5 hashing.

parent 71a9d138
...@@ -342,6 +342,7 @@ BOOL encrypt_block_impl(ALG_ID aiAlgid, DWORD dwKeySpec, KEY_CONTEXT *pKeyContex ...@@ -342,6 +342,7 @@ BOOL encrypt_block_impl(ALG_ID aiAlgid, DWORD dwKeySpec, KEY_CONTEXT *pKeyContex
case CALG_RSA_KEYX: case CALG_RSA_KEYX:
case CALG_RSA_SIGN: case CALG_RSA_SIGN:
case CALG_SSL3_SHAMD5:
outlen = inlen = (mp_count_bits(&pKeyContext->rsa.N)+7)/8; outlen = inlen = (mp_count_bits(&pKeyContext->rsa.N)+7)/8;
if (enc) { if (enc) {
if (rsa_exptmod(in, inlen, out, &outlen, dwKeySpec, &pKeyContext->rsa) != CRYPT_OK) { if (rsa_exptmod(in, inlen, out, &outlen, dwKeySpec, &pKeyContext->rsa) != CRYPT_OK) {
......
...@@ -1426,7 +1426,7 @@ static BOOL build_hash_signature(BYTE *pbSignature, DWORD dwLen, ALG_ID aiAlgid, ...@@ -1426,7 +1426,7 @@ static BOOL build_hash_signature(BYTE *pbSignature, DWORD dwLen, ALG_ID aiAlgid,
ALG_ID aiAlgid; ALG_ID aiAlgid;
DWORD dwLen; DWORD dwLen;
CONST BYTE abOID[19]; CONST BYTE abOID[19];
} aOIDDescriptor[8] = { } aOIDDescriptor[] = {
{ CALG_MD2, 18, { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, { CALG_MD2, 18, { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48,
0x86, 0xf7, 0x0d, 0x02, 0x02, 0x05, 0x00, 0x04, 0x10 } }, 0x86, 0xf7, 0x0d, 0x02, 0x02, 0x05, 0x00, 0x04, 0x10 } },
{ CALG_MD4, 18, { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, { CALG_MD4, 18, { 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48,
...@@ -1444,6 +1444,7 @@ static BOOL build_hash_signature(BYTE *pbSignature, DWORD dwLen, ALG_ID aiAlgid, ...@@ -1444,6 +1444,7 @@ static BOOL build_hash_signature(BYTE *pbSignature, DWORD dwLen, ALG_ID aiAlgid,
{ CALG_SHA_384, 19, { 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, { CALG_SHA_384, 19, { 0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86,
0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01,
0x05, 0x00, 0x04, 0x40 } }, 0x05, 0x00, 0x04, 0x40 } },
{ CALG_SSL3_SHAMD5, 0, { 0 } },
{ 0, 0, { 0 } } { 0, 0, { 0 } }
}; };
DWORD dwIdxOID, i, j; DWORD dwIdxOID, i, j;
......
...@@ -654,9 +654,7 @@ static void test_hashes(void) ...@@ -654,9 +654,7 @@ static void test_hashes(void)
ok(result, "%08x\n", GetLastError()); ok(result, "%08x\n", GetLastError());
ok(len == 128, "expected len 128, got %d\n", len); ok(len == 128, "expected len 128, got %d\n", len);
result = CryptSignHash(hHash, AT_KEYEXCHANGE, NULL, 0, pbSigValue, &len); result = CryptSignHash(hHash, AT_KEYEXCHANGE, NULL, 0, pbSigValue, &len);
todo_wine
ok(result, "%08x\n", GetLastError()); ok(result, "%08x\n", GetLastError());
todo_wine
ok(!memcmp(pbSigValue, signed_ssl3_shamd5_hash, len), "unexpected value\n"); ok(!memcmp(pbSigValue, signed_ssl3_shamd5_hash, len), "unexpected value\n");
if (len != 128 || memcmp(pbSigValue, signed_ssl3_shamd5_hash, len)) if (len != 128 || memcmp(pbSigValue, signed_ssl3_shamd5_hash, len))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment