From: Nikos Mavrogiannopoulos Date: Fri, 22 Jun 2001 21:19:04 +0000 (+0000) Subject: corrected bug in stream decryption.. X-Git-Tag: gnutls_0_1_9~77 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aebc6f135efffd23ccbfa54ab9191f50ffa8c37a;p=thirdparty%2Fgnutls.git corrected bug in stream decryption.. --- diff --git a/lib/gnutls_cipher.c b/lib/gnutls_cipher.c index 41b451d2c0..9f14cbfad4 100644 --- a/lib/gnutls_cipher.c +++ b/lib/gnutls_cipher.c @@ -310,11 +310,11 @@ int _gnutls_connection_state_init(GNUTLS_STATE state) } if (state->connection_state.mac_secret_size > 0) { - memmove(state->connection_state.read_mac_secret, + memcpy(state->connection_state.read_mac_secret, state-> cipher_specs.client_write_mac_secret, state->connection_state.mac_secret_size); - memmove(state->connection_state.write_mac_secret, + memcpy(state->connection_state.write_mac_secret, state->cipher_specs. server_write_mac_secret, state->connection_state.mac_secret_size); @@ -356,11 +356,11 @@ int _gnutls_connection_state_init(GNUTLS_STATE state) } if (state->connection_state.mac_secret_size > 0) { - memmove(state->connection_state.read_mac_secret, + memcpy(state->connection_state.read_mac_secret, state-> cipher_specs.server_write_mac_secret, state->connection_state.mac_secret_size); - memmove(state->connection_state.write_mac_secret, + memcpy(state->connection_state.write_mac_secret, state-> cipher_specs.client_write_mac_secret, state->connection_state.mac_secret_size); @@ -470,8 +470,8 @@ int _gnutls_compressed2TLSCiphertext(GNUTLS_STATE state, gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } - memmove(data, compressed.data, compressed.size); - memmove(&data[compressed.size], MAC, + memcpy(data, compressed.data, compressed.size); + memcpy(&data[compressed.size], MAC, state->security_parameters.hash_size); gnutls_cipher_encrypt(state->connection_state. @@ -510,8 +510,8 @@ int _gnutls_compressed2TLSCiphertext(GNUTLS_STATE state, return GNUTLS_E_MEMORY_ERROR; } memset(&data[length - pad], pad - 1, pad); - memmove(data, compressed.data, compressed.size); - memmove(&data[compressed.size], MAC, + memcpy(data, compressed.data, compressed.size); + memcpy(&data[compressed.size], MAC, state->security_parameters.hash_size); gnutls_cipher_encrypt(state->connection_state. @@ -587,7 +587,11 @@ int _gnutls_ciphertext2TLSCompressed(GNUTLS_STATE state, return GNUTLS_E_MEMORY_ERROR; } - memmove(data, ciphertext.data, length); + gnutls_cipher_decrypt(state->connection_state. + read_cipher_state, ciphertext.data, + ciphertext.size); + + memcpy(data, ciphertext.data, length); compress->data = data; compress->size = length; @@ -619,7 +623,7 @@ int _gnutls_ciphertext2TLSCompressed(GNUTLS_STATE state, return GNUTLS_E_MEMORY_ERROR; } - memmove(data, ciphertext.data, length); + memcpy(data, ciphertext.data, length); compress->data = data; compress->size = length; break; diff --git a/src/serv.c b/src/serv.c index 8d4540aad1..b1251d1985 100644 --- a/src/serv.c +++ b/src/serv.c @@ -87,7 +87,7 @@ GNUTLS_STATE initialize_state() * purposes. */ gnutls_set_cipher_priority(state, GNUTLS_NULL_CIPHER, - GNUTLS_RIJNDAEL_CBC, GNUTLS_3DES_CBC, 0); + GNUTLS_RIJNDAEL_CBC, GNUTLS_ARCFOUR, GNUTLS_3DES_CBC, 0); gnutls_set_compression_priority(state, GNUTLS_ZLIB, GNUTLS_NULL_COMPRESSION, 0); gnutls_set_kx_priority(state, GNUTLS_KX_DHE_RSA, GNUTLS_KX_RSA, GNUTLS_KX_SRP, GNUTLS_KX_DH_ANON, 0);