The series LGTM, great to see chacha support! One nit here, and when you post v2 would you mind ccing crypto?
From TLS perspective I think this code is ready to be merged, but my crypto knowledge is close to none, so best if we give crypto folks a chance to take a look. On Sun, 22 Nov 2020 04:57:44 +0300 Vadim Fedorenko wrote: > + case TLS_CIPHER_CHACHA20_POLY1305: { > + nonce_size = 0; > + tag_size = TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE; > + iv_size = TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE; > + iv = ((struct tls12_crypto_info_chacha20_poly1305 > *)crypto_info)->iv; [1] > + rec_seq_size = TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE; > + rec_seq = > + ((struct tls12_crypto_info_chacha20_poly1305 > *)crypto_info)->rec_seq; [2] > + chacha20_poly1305_info = > + (struct tls12_crypto_info_chacha20_poly1305 *)crypto_info; Move this line up, and use it in [1] and [2]. You can also make it: chacha20_poly1305_info = (void *)crypto_info; > + keysize = TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE; > + key = chacha20_poly1305_info->key; > + salt = chacha20_poly1305_info->salt; > + salt_size = TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE; > + cipher_name = "rfc7539(chacha20,poly1305)"; > + break; > + }