[core,rdp] adjust warning for RC4
RC4 is not supported by winpr_Cipher_New but only by explicitly calling winpr_RC4_New. Adjust the availability test to use the correct functions.
This commit is contained in:
parent
1eac8fa15e
commit
2b0b52be9e
@ -2967,14 +2967,27 @@ static void log_build_warn_cipher(rdpRdp* rdp, log_line_t* firstLine, WINPR_CIPH
|
|||||||
|
|
||||||
char key[WINPR_CIPHER_MAX_KEY_LENGTH] = { 0 };
|
char key[WINPR_CIPHER_MAX_KEY_LENGTH] = { 0 };
|
||||||
char iv[WINPR_CIPHER_MAX_IV_LENGTH] = { 0 };
|
char iv[WINPR_CIPHER_MAX_IV_LENGTH] = { 0 };
|
||||||
WINPR_CIPHER_CTX* enc = winpr_Cipher_New(md, WINPR_ENCRYPT, key, iv);
|
|
||||||
WINPR_CIPHER_CTX* dec = winpr_Cipher_New(md, WINPR_DECRYPT, key, iv);
|
/* RC4 only exists in the compatiblity functions winpr_RC4_*
|
||||||
if (enc && dec)
|
* winpr_Cipher_* does not support that. */
|
||||||
|
if (md == WINPR_CIPHER_ARC4_128)
|
||||||
{
|
{
|
||||||
haveCipher = TRUE;
|
WINPR_RC4_CTX* enc = winpr_RC4_New(key, sizeof(key));
|
||||||
|
haveCipher = enc != NULL;
|
||||||
|
winpr_RC4_Free(enc);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WINPR_CIPHER_CTX* enc =
|
||||||
|
winpr_Cipher_NewEx(md, WINPR_ENCRYPT, key, sizeof(key), iv, sizeof(iv));
|
||||||
|
WINPR_CIPHER_CTX* dec =
|
||||||
|
winpr_Cipher_NewEx(md, WINPR_DECRYPT, key, sizeof(key), iv, sizeof(iv));
|
||||||
|
if (enc && dec)
|
||||||
|
haveCipher = TRUE;
|
||||||
|
|
||||||
|
winpr_Cipher_Free(enc);
|
||||||
|
winpr_Cipher_Free(dec);
|
||||||
}
|
}
|
||||||
winpr_Cipher_Free(enc);
|
|
||||||
winpr_Cipher_Free(dec);
|
|
||||||
|
|
||||||
if (!haveCipher)
|
if (!haveCipher)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user