diff --git a/common-kex.c b/common-kex.c index a7fbb70bb4121bb08cf355fe3cf2cc46661c57e1..56b206d3b4e36bc76a38ae7cedbab57ea11c1104 100644 --- a/common-kex.c +++ b/common-kex.c @@ -354,17 +354,17 @@ void gen_new_keys() { } } - /* MAC keys */ if (ses.newkeys->trans.algo_mac->hashdesc != NULL) { hashkeys(ses.newkeys->trans.mackey, ses.newkeys->trans.algo_mac->keysize, &hs, mactransletter); + ses.newkeys->trans.hash_index = find_hash(ses.newkeys->trans.algo_mac->hashdesc->name); } + if (ses.newkeys->recv.algo_mac->hashdesc != NULL) { hashkeys(ses.newkeys->recv.mackey, ses.newkeys->recv.algo_mac->keysize, &hs, macrecvletter); + ses.newkeys->recv.hash_index = find_hash(ses.newkeys->recv.algo_mac->hashdesc->name); } - ses.newkeys->trans.hash_index = find_hash(ses.newkeys->trans.algo_mac->hashdesc->name), - ses.newkeys->recv.hash_index = find_hash(ses.newkeys->recv.algo_mac->hashdesc->name), #ifndef DISABLE_ZLIB gen_new_zstreams(); diff --git a/session.h b/session.h index e9695fe022ea0852e20c4a8d9c89a3eb11c2c794..4669a8e4f044d6bab9dc1c734441fba18a47ea58 100644 --- a/session.h +++ b/session.h @@ -63,9 +63,9 @@ void cleantext(unsigned char* dirtytext); /* crypto parameters that are stored individually for transmit and receive */ struct key_context_directional { - const struct dropbear_cipher *algo_crypt; /* NULL for none */ + const struct dropbear_cipher *algo_crypt; const struct dropbear_cipher_mode *crypt_mode; - const struct dropbear_hash *algo_mac; /* NULL for none */ + const struct dropbear_hash *algo_mac; int hash_index; /* lookup for libtomcrypt */ char algo_comp; /* compression */ #ifndef DISABLE_ZLIB