diff --git a/reactos/dll/win32/rsaenh/rsaenh.c b/reactos/dll/win32/rsaenh/rsaenh.c index e8c304f2514..f6ae5057e2e 100644 --- a/reactos/dll/win32/rsaenh/rsaenh.c +++ b/reactos/dll/win32/rsaenh/rsaenh.c @@ -3466,6 +3466,8 @@ BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam switch (pCryptKey->aiAlgid) { case CALG_RC2: case CALG_RC4: + { + KEYCONTAINER *pKeyContainer = get_key_container(pCryptKey->hProv); if (!pbData) { SetLastError(ERROR_INVALID_PARAMETER); @@ -3478,11 +3480,13 @@ BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam pbData, 11); pCryptKey->dwSaltLen = 11; setup_key(pCryptKey); - /* Strange but true: salt length reset to 0 after setting - * it via KP_SALT. - */ - pCryptKey->dwSaltLen = 0; + /* After setting the salt value if the provider is not base or + * strong the salt length will be reset. */ + if (pKeyContainer->dwPersonality != RSAENH_PERSONALITY_BASE && + pKeyContainer->dwPersonality != RSAENH_PERSONALITY_STRONG) + pCryptKey->dwSaltLen = 0; break; + } default: SetLastError(NTE_BAD_KEY); return FALSE; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index e6aa4701444..8e3c0a6265a 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -168,7 +168,7 @@ reactos/dll/win32/riched20 # Synced to WineStaging-1.7.37 reactos/dll/win32/riched32 # Synced to Wine-1.7.27 reactos/dll/win32/rpcrt4 # Synced to Wine-1.7.17 reactos/dll/win32/rsabase # Synced to Wine-1.7.27 -reactos/dll/win32/rsaenh # Synced to Wine-1.7.27 +reactos/dll/win32/rsaenh # Synced to WineStaging-1.7.37 reactos/dll/win32/sccbase # Synced to Wine-1.7.27 reactos/dll/win32/schannel # Synced to Wine-1.7.27 reactos/dll/win32/scrrun # Synced to Wine-1.7.27