core: reset crypto key counters when the keys are initialized
authorMads Kiilerich <mads@kiilerich.com>
Sat, 24 Mar 2012 00:57:09 +0000 (01:57 +0100)
committerMads Kiilerich <mads@kiilerich.com>
Sat, 24 Mar 2012 00:57:09 +0000 (01:57 +0100)
This fixes --sec rdp --salted-checksum in combination with farm redirect.

The counters are implicitly set to 0 in rdp_new, but they also has to be reset
after redirects. Resetting the counters when the keys are reset seems like the
cleanest solution.

libfreerdp-core/security.c

index 5757cea..9571f00 100644 (file)
@@ -420,6 +420,10 @@ boolean security_establish_keys(uint8* client_random, rdpRdp* rdp)
 
        memcpy(rdp->decrypt_update_key, rdp->decrypt_key, 16);
        memcpy(rdp->encrypt_update_key, rdp->encrypt_key, 16);
+       rdp->decrypt_use_count = 0;
+       rdp->decrypt_checksum_use_count = 0;
+       rdp->encrypt_use_count =0;
+       rdp->encrypt_checksum_use_count =0;
 
        return true;
 }