diff --git a/crypto/cipher/aead_test.cc b/crypto/cipher/aead_test.cc index 03ffeeb8..a4ddd3b5 100644 --- a/crypto/cipher/aead_test.cc +++ b/crypto/cipher/aead_test.cc @@ -213,7 +213,7 @@ struct AEADName { static const struct AEADName kAEADs[] = { { "aes-128-gcm", EVP_aead_aes_128_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 }, { "rc4-md5-tls", EVP_aead_rc4_md5_tls }, { "rc4-sha1-tls", EVP_aead_rc4_sha1_tls }, diff --git a/crypto/cipher/e_chacha20poly1305.c b/crypto/cipher/e_chacha20poly1305.c index e6a01b3b..84da07b6 100644 --- a/crypto/cipher/e_chacha20poly1305.c +++ b/crypto/cipher/e_chacha20poly1305.c @@ -245,7 +245,7 @@ static const EVP_AEAD aead_chacha20_poly1305 = { 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; } @@ -290,3 +290,7 @@ static const EVP_AEAD aead_chacha20_poly1305_old = { const EVP_AEAD *EVP_aead_chacha20_poly1305_old(void) { return &aead_chacha20_poly1305_old; } + +const EVP_AEAD *EVP_aead_chacha20_poly1305(void) { + return &aead_chacha20_poly1305_old; +} diff --git a/include/openssl/aead.h b/include/openssl/aead.h index 74153557..c3e04473 100644 --- a/include/openssl/aead.h +++ b/include/openssl/aead.h @@ -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. */ 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 * 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); +/* 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 * used except to interoperate with existing systems that use this mode. * diff --git a/tool/speed.cc b/tool/speed.cc index 31c07ac8..39bbadb9 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -458,8 +458,8 @@ bool Speed(const std::vector &args) { 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_chacha20_poly1305(), "ChaCha20-Poly1305", kTLSADLen, - selected) || + !SpeedAEAD(EVP_aead_chacha20_poly1305_rfc7539(), "ChaCha20-Poly1305", + kTLSADLen, selected) || !SpeedAEAD(EVP_aead_chacha20_poly1305_old(), "ChaCha20-Poly1305-Old", kTLSADLen, selected) || !SpeedAEAD(EVP_aead_rc4_md5_tls(), "RC4-MD5", kLegacyADLen, selected) ||