bug: configuration for GREASE ECH parrot for Chrome 120 doesn't match BoringSSL #270
Closed
Description
I have read the part of code in BoringSSL which is for GREASE ECH, as BoringSSL is used by Chrome for it's TLS.
Candidate Cipher Suites
BoringSSL only selects AEAD between AEAD_AES_128_GCM
and AEAD_CHACHA20_POLY1305
based on hardware support according to code below.
const EVP_HPKE_AEAD *aead =
has_aes_hw ? EVP_hpke_aes_128_gcm() : EVP_hpke_chacha20_poly1305();
I'm wondering about why utls parrot also candidates AEAD_AES_256_GCM
. Is this an oversight or something I didn't notice?
{
KdfId: dicttls.HKDF_SHA256,
AeadId: dicttls.AEAD_AES_256_GCM,
},
Candidate Payload Lengths
BoringSSL pads payload not only from 128, 160
but 128, 160, 192, 224
according to code below.
const size_t payload_len =
32 * random_size(128 / 32, 224 / 32) + aead_overhead(aead);