[PATCH] rsaenh: CALG_AES is not supported.
Huw Davies
huw at codeweavers.com
Thu Nov 16 06:03:29 CST 2017
This is the correct fix for what commit f5c687e3652004e4efebe9352aadd02d179603cf
was trying to fix.
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
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 f2f5960fee..fdf410a4ed 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 c9532b2bcc..bc8e798cdd 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.12.0
More information about the wine-devel
mailing list