For now, give the unsuffixed ChaCha20 AEAD name to the old version.

QUIC has a complex relationship with BoringSSL owing to it living both
in Chromium and the Google-internal repository. In order for it to
handle the ChaCha20-Poly1305 AEAD switch more easily this change gives
the unsuffixed name to the old AEAD, for now.

Once QUIC has moved to the “_old” version the unsuffixed name can be
given to the new version.

Change-Id: Id8a77be6e3fe2358d78e022413fe088e5a274dca
Reviewed-on: https://boringssl-review.googlesource.com/6361
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <alangley@gmail.com>
This commit is contained in:
Adam Langley 2015-10-27 08:37:59 -07:00
parent f0523e9f20
commit 5dbdad9c33
4 changed files with 21 additions and 9 deletions

View File

@ -213,7 +213,7 @@ struct AEADName {
static const struct AEADName kAEADs[] = { static const struct AEADName kAEADs[] = {
{ "aes-128-gcm", EVP_aead_aes_128_gcm }, { "aes-128-gcm", EVP_aead_aes_128_gcm },
{ "aes-256-gcm", EVP_aead_aes_256_gcm }, { "aes-256-gcm", EVP_aead_aes_256_gcm },
{ "chacha20-poly1305", EVP_aead_chacha20_poly1305 }, { "chacha20-poly1305", EVP_aead_chacha20_poly1305_rfc7539 },
{ "chacha20-poly1305-old", EVP_aead_chacha20_poly1305_old }, { "chacha20-poly1305-old", EVP_aead_chacha20_poly1305_old },
{ "rc4-md5-tls", EVP_aead_rc4_md5_tls }, { "rc4-md5-tls", EVP_aead_rc4_md5_tls },
{ "rc4-sha1-tls", EVP_aead_rc4_sha1_tls }, { "rc4-sha1-tls", EVP_aead_rc4_sha1_tls },

View File

@ -245,7 +245,7 @@ static const EVP_AEAD aead_chacha20_poly1305 = {
NULL, /* get_rc4_state */ NULL, /* get_rc4_state */
}; };
const EVP_AEAD *EVP_aead_chacha20_poly1305(void) { const EVP_AEAD *EVP_aead_chacha20_poly1305_rfc7539(void) {
return &aead_chacha20_poly1305; return &aead_chacha20_poly1305;
} }
@ -290,3 +290,7 @@ static const EVP_AEAD aead_chacha20_poly1305_old = {
const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void) { const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void) {
return &aead_chacha20_poly1305_old; return &aead_chacha20_poly1305_old;
} }
const EVP_AEAD *EVP_aead_chacha20_poly1305(void) {
return &aead_chacha20_poly1305_old;
}

View File

@ -98,15 +98,23 @@ OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_128_gcm(void);
/* EVP_aead_aes_256_gcm is AES-256 in Galois Counter Mode. */ /* EVP_aead_aes_256_gcm is AES-256 in Galois Counter Mode. */
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_256_gcm(void); OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_256_gcm(void);
/* EVP_aead_chacha20_poly1305 is the AEAD built from ChaCha20 and
* Poly1305 as described in RFC 7539. */
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_chacha20_poly1305(void);
/* EVP_aead_chacha20_poly1305_old is an AEAD built from ChaCha20 and /* EVP_aead_chacha20_poly1305_old is an AEAD built from ChaCha20 and
* Poly1305 that is used in the experimental ChaCha20-Poly1305 TLS cipher * Poly1305 that is used in the experimental ChaCha20-Poly1305 TLS cipher
* suites. Use |EVP_aead_chacha20_poly1305| for everything else. */ * suites. */
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void); OPENSSL_EXPORT const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void);
/* EVP_aead_chacha20_poly1305 is currently an alias for
* |EVP_aead_chacha20_poly1305_old|. In the future, the RFC 7539 version will
* take this name. */
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void);
/* EVP_aead_chacha20_poly1305_rfc7539 is the AEAD built from ChaCha20 and
* Poly1305 as described in RFC 7539.
*
* WARNING: this function is not ready yet. It will be renamed in the future to
* drop the _rfc7539 suffix. */
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_chacha20_poly1305_rfc7539(void);
/* EVP_aead_aes_128_key_wrap is AES-128 Key Wrap mode. This should never be /* EVP_aead_aes_128_key_wrap is AES-128 Key Wrap mode. This should never be
* used except to interoperate with existing systems that use this mode. * used except to interoperate with existing systems that use this mode.
* *

View File

@ -458,8 +458,8 @@ bool Speed(const std::vector<std::string> &args) {
if (!SpeedAEAD(EVP_aead_aes_128_gcm(), "AES-128-GCM", kTLSADLen, selected) || if (!SpeedAEAD(EVP_aead_aes_128_gcm(), "AES-128-GCM", kTLSADLen, selected) ||
!SpeedAEAD(EVP_aead_aes_256_gcm(), "AES-256-GCM", kTLSADLen, selected) || !SpeedAEAD(EVP_aead_aes_256_gcm(), "AES-256-GCM", kTLSADLen, selected) ||
!SpeedAEAD(EVP_aead_chacha20_poly1305(), "ChaCha20-Poly1305", kTLSADLen, !SpeedAEAD(EVP_aead_chacha20_poly1305_rfc7539(), "ChaCha20-Poly1305",
selected) || kTLSADLen, selected) ||
!SpeedAEAD(EVP_aead_chacha20_poly1305_old(), "ChaCha20-Poly1305-Old", !SpeedAEAD(EVP_aead_chacha20_poly1305_old(), "ChaCha20-Poly1305-Old",
kTLSADLen, selected) || kTLSADLen, selected) ||
!SpeedAEAD(EVP_aead_rc4_md5_tls(), "RC4-MD5", kLegacyADLen, selected) || !SpeedAEAD(EVP_aead_rc4_md5_tls(), "RC4-MD5", kLegacyADLen, selected) ||