From d192e9a1995a1720f0dd0500fc34847cc9e157d6 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Thu, 16 Nov 2017 12:03:29 +0000 Subject: [PATCH] rsaenh: CALG_AES is not supported. This is the correct fix for what commit f5c687e3652004e4efebe9352aadd02d179603cf was trying to fix. Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/rsaenh/rsaenh.c | 13 +------------ dlls/rsaenh/tests/rsaenh.c | 9 +++++++++ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c index f2f5960fee9..fdf410a4ede 100644 --- a/dlls/rsaenh/rsaenh.c +++ b/dlls/rsaenh/rsaenh.c @@ -242,7 +242,6 @@ static const PROV_ENUMALGS_EX aProvEnumAlgsEx[5][RSAENH_MAX_ENUMALGS+1] = {CALG_DES, 56, 56, 56, 0, S("DES"), S("Data Encryption Standard (DES)")}, {CALG_3DES_112, 112, 112, 112, 0, S("3DES TWO KEY"), S("Two Key Triple DES")}, {CALG_3DES, 168, 168, 168, 0, S("3DES"), S("Three Key Triple DES")}, - {CALG_AES, 128, 128, 128, 0, S("AES"), S("Advanced Encryption Standard (AES)")}, {CALG_AES_128, 128, 128, 128, 0, S("AES-128"), S("Advanced Encryption Standard (AES-128)")}, {CALG_AES_192, 192, 192, 192, 0, S("AES-192"), S("Advanced Encryption Standard (AES-192)")}, {CALG_AES_256, 256, 256, 256, 0, S("AES-256"), S("Advanced Encryption Standard (AES-256)")}, @@ -791,7 +790,7 @@ static HCRYPTKEY new_key(HCRYPTPROV hProv, ALG_ID aiAlgid, DWORD dwFlags, CRYPTK { HCRYPTKEY hCryptKey; CRYPTKEY *pCryptKey; - DWORD dwKeyLen = HIWORD(dwFlags), bKeyLen = dwKeyLen; + DWORD dwKeyLen = HIWORD(dwFlags); const PROV_ENUMALGS_EX *peaAlgidInfo; *ppCryptKey = NULL; @@ -850,14 +849,6 @@ static HCRYPTKEY new_key(HCRYPTPROV hProv, ALG_ID aiAlgid, DWORD dwFlags, CRYPTK */ break; - case CALG_AES: - if (!bKeyLen) - { - TRACE("missing key len for CALG_AES\n"); - SetLastError(NTE_BAD_ALGID); - return (HCRYPTKEY)INVALID_HANDLE_VALUE; - } - /* fall through */ default: if (dwKeyLen % 8 || dwKeyLen > peaAlgidInfo->dwMaxLen || @@ -924,7 +915,6 @@ static HCRYPTKEY new_key(HCRYPTPROV hProv, ALG_ID aiAlgid, DWORD dwFlags, CRYPTK pCryptKey->dwMode = CRYPT_MODE_CBC; break; - case CALG_AES: case CALG_AES_128: case CALG_AES_192: case CALG_AES_256: @@ -3197,7 +3187,6 @@ BOOL WINAPI RSAENH_CPGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYP case CALG_DES: case CALG_3DES_112: case CALG_3DES: - case CALG_AES: case CALG_AES_128: case CALG_AES_192: case CALG_AES_256: diff --git a/dlls/rsaenh/tests/rsaenh.c b/dlls/rsaenh/tests/rsaenh.c index c9532b2bcc1..bc8e798cdd7 100644 --- a/dlls/rsaenh/tests/rsaenh.c +++ b/dlls/rsaenh/tests/rsaenh.c @@ -224,6 +224,15 @@ static BOOL init_aes_environment(void) result = CryptGenKey(hProv, AT_SIGNATURE, 0, &hKey); ok(result, "%08x\n", GetLastError()); if (result) CryptDestroyKey(hKey); + + /* CALG_AES is not supported, but CALG_AES_128 is */ + result = CryptGenKey(hProv, CALG_AES, 0, &hKey); + ok(!result && GetLastError() == NTE_BAD_ALGID, "%d %08x\n", result, GetLastError()); + result = CryptGenKey(hProv, CALG_AES, 128 << 16, &hKey); + ok(!result && GetLastError() == NTE_BAD_ALGID, "%d %08x\n", result, GetLastError()); + result = CryptGenKey(hProv, CALG_AES_128, 0, &hKey); + ok(result, "%08x\n", GetLastError()); + if (result) CryptDestroyKey(hKey); } return TRUE; } -- 2.11.4.GIT