From 6a7fe3e5200646fd33577fdc7ff8dfcb9c159b8c Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sun, 15 Jan 2012 20:52:27 +0100 Subject: [PATCH] If we are server, our encryption key is client's decryption key and vice-versa. --- libfreerdp-core/security.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libfreerdp-core/security.c b/libfreerdp-core/security.c index 77879da..0b17d7d 100644 --- a/libfreerdp-core/security.c +++ b/libfreerdp-core/security.c @@ -347,8 +347,17 @@ boolean security_establish_keys(uint8* client_random, rdpRdp* rdp) memcpy(rdp->sign_key, session_key_blob, 16); - security_md5_16_32_32(&session_key_blob[16], client_random, server_random, rdp->decrypt_key); - security_md5_16_32_32(&session_key_blob[32], client_random, server_random, rdp->encrypt_key); + if (rdp->settings->server_mode) { + security_md5_16_32_32(&session_key_blob[16], client_random, + server_random, rdp->encrypt_key); + security_md5_16_32_32(&session_key_blob[32], client_random, + server_random, rdp->decrypt_key); + } else { + security_md5_16_32_32(&session_key_blob[16], client_random, + server_random, rdp->decrypt_key); + security_md5_16_32_32(&session_key_blob[32], client_random, + server_random, rdp->encrypt_key); + } if (settings->encryption_method == 1) /* 40 and 56 bit */ { -- 2.7.4