diff --git a/lib/modules/SSL.pmod/session.pike b/lib/modules/SSL.pmod/session.pike index 744b44680f6e1a7ea97011736d097b66e21b9fd3..21bf17d0f552dce6007cfb7349e812d987b47c22 100644 --- a/lib/modules/SSL.pmod/session.pike +++ b/lib/modules/SSL.pmod/session.pike @@ -127,6 +127,11 @@ array new_server_states(string client_random, string server_random) read_state->crypt->set_iv(keys[4]); write_state->crypt->set_iv(keys[5]); } + if (cipher_spec->cipher_type == CIPHER_BLOCK) + { /* Crypto.crypto takes care of splitting input into blocks */ + read_state->crypt = Crypto.crypto(read_state->crypt); + write_state->crypt = Crypto.crypto(write_state->crypt); + } } return ({ read_state, write_state }); } @@ -153,6 +158,11 @@ array new_client_states(string client_random, string server_random) read_state->crypt->set_iv(keys[5]); write_state->crypt->set_iv(keys[4]); } + if (cipher_spec->cipher_type == CIPHER_BLOCK) + { /* Crypto.crypto takes care of splitting input into blocks */ + read_state->crypt = Crypto.crypto(read_state->crypt); + write_state->crypt = Crypto.crypto(write_state->crypt); + } } return ({ read_state, write_state }); }