[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Support for SHA2 HMAC algorithms
[Thread Prev] | [Thread Next]
- Subject: Re: Support for SHA2 HMAC algorithms
- From: Aris Adamantiadis <aris@xxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Sun, 13 Apr 2014 17:08:15 +0200
- To: libssh@xxxxxxxxxx
Hi Dirkjan, Thanks a lot for your contribution, that's going to be very useful. Just a little remark: +unsigned char *packet_encrypt(ssh_session session, void *data, uint32_t len, enum ssh_hmac_e type) { Would it be possible to remove the "type" parameter and have packet_encrypt() function figure out by itself the type of hmac to use ? I also think the hmac code could win at being a little more OO-styled like we do for the ciphers (with function pointers instead of switch statements). If we could get rid of our horrible MD5()/SHA1()/SHA256()/... wrappers by using only EVP functions, it would help (but probably out of scope of your patch). Thanks, Aris Le 11/04/14 11:00, Dirkjan Bussink a écrit : > On 10 Apr 2014, at 19:24, Andreas Schneider <asn@xxxxxxxxxxxxxx> wrote: > >> I have to leave soon so I just did a quick scan. Here are some comments: >> >> >> crypto->digest_len is size_t >> >> so hmac_digest_len() should return size_t >> >> generate_one_key() should use 'size_t requested'. The name is not the best, >> maybe requested_size. > Updated it with these changes. > >> I don't have to fully go trough the while loop of generate_one_key() but I >> think we might need to check for an overflow here. > Not really sure what case you’re talking about here. requested_size is not user controlled here, so not sure how a really huge value could be passed in. > >> In generate_session_keys() for all see if-clause I would like to see two >> lines. It is easier to debug. >> >> int rc; >> >> rc = generate_one_key(); >> if (rc < 0) { >> ... >> } >> >> I know our CodingStyle is horrible but try to apply what you see in pki.c. > Updated these. > >> in ssh_packet_socket_callback() >> >> if(session->current_crypto) { >> >> please use session->current_crypto == NULL and current_macsize should be >> size_t. > I’ve used != NULL here, since == NULL would be the inverted clause. Or do you intend something else here? > >> In packet_send2() -> if (ssh_buffer_add_data() < 0) should be two lines, see >> above. > Updated. > >> These are only cosmetic things. I will do a in-depth review in the next days. >> >> >> It would be great if you could submit another patch with testcases! >> >> >> I think you can copy tests/client/torture_algorithms.c and modify it. > I’ve added test cases to this file for each algorithm tested there in combination with hmac-sha2-256 and hmac-sha2-512. > > Let me know if there’s further feedback if you dig in further. > > Thanks! > > — > Dirkjan >
Re: Support for SHA2 HMAC algorithms | Dirkjan Bussink <d.bussink@xxxxxxxxx> |
Support for SHA2 HMAC algorithms | Dirkjan Bussink <d.bussink@xxxxxxxxx> |
Re: Support for SHA2 HMAC algorithms | Andreas Schneider <asn@xxxxxxxxxxxxxx> |
Re: Support for SHA2 HMAC algorithms | Dirkjan Bussink <d.bussink@xxxxxxxxx> |