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>
diff --git a/crypto/cipher/aead_test.cc b/crypto/cipher/aead_test.cc
index 03ffeeb..a4ddd3b 100644
--- a/crypto/cipher/aead_test.cc
+++ b/crypto/cipher/aead_test.cc
@@ -213,7 +213,7 @@
 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 e6a01b3..84da07b 100644
--- a/crypto/cipher/e_chacha20poly1305.c
+++ b/crypto/cipher/e_chacha20poly1305.c
@@ -245,7 +245,7 @@
     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 @@
 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 7415355..c3e0447 100644
--- a/include/openssl/aead.h
+++ b/include/openssl/aead.h
@@ -98,15 +98,23 @@
 /* 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 31c07ac..39bbadb 100644
--- a/tool/speed.cc
+++ b/tool/speed.cc
@@ -458,8 +458,8 @@
 
   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) ||