Add functions to allow the mocking of AES hw support for testing.

Bug: 586
Change-Id: I5bc8e6df3a5a14e6b218f41181d06406e835f9c1
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/58605
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/ssl/handshake_client.cc b/ssl/handshake_client.cc
index 3e63019..7fe2a2b 100644
--- a/ssl/handshake_client.cc
+++ b/ssl/handshake_client.cc
@@ -239,8 +239,12 @@
         TLS1_3_CK_CHACHA20_POLY1305_SHA256 & 0xffff,
         ssl->config->only_fips_cipher_suites_in_tls13);
 
-    if (!EVP_has_aes_hardware() &&  //
-        include_chacha20 &&         //
+    const bool has_aes_hw = ssl->config->aes_hw_override
+                                ? ssl->config->aes_hw_override_value
+                                : EVP_has_aes_hardware();
+
+    if (!has_aes_hw &&       //
+        include_chacha20 &&  //
         !CBB_add_u16(&child, TLS1_3_CK_CHACHA20_POLY1305_SHA256 & 0xffff)) {
       return false;
     }
@@ -248,8 +252,8 @@
         !CBB_add_u16(&child, TLS1_3_CK_AES_256_GCM_SHA384 & 0xffff)) {
       return false;
     }
-    if (EVP_has_aes_hardware() &&  //
-        include_chacha20 &&        //
+    if (has_aes_hw &&        //
+        include_chacha20 &&  //
         !CBB_add_u16(&child, TLS1_3_CK_CHACHA20_POLY1305_SHA256 & 0xffff)) {
       return false;
     }