external/boringssl: Sync to c596415ec62b501523d80f9afa26b135406da6bf.

This includes the following changes:

https://boringssl.googlesource.com/boringssl/+log/a63d0ad40dd621d5b9472dc9f1756692f969451e..c596415ec62b501523d80f9afa26b135406da6bf

Test: BoringSSL CTS Presubmits.
Change-Id: I2e7a311729800d6c16bdde42b82ebde8a8fa4e39
diff --git a/src/crypto/test/file_test.h b/src/crypto/test/file_test.h
index 002b350..52a2c3f 100644
--- a/src/crypto/test/file_test.h
+++ b/src/crypto/test/file_test.h
@@ -154,6 +154,9 @@
   // missing. It should only be used after a |HasAttribute| call.
   const std::string &GetAttributeOrDie(const std::string &key);
 
+  // IgnoreAttribute marks the attribute with key |key| as used.
+  void IgnoreAttribute(const std::string &key) { HasAttribute(key); }
+
   // GetBytes looks up the attribute with key |key| and decodes it as a byte
   // string. On success, it writes the result to |*out| and returns
   // true. Otherwise it returns false with an error to |stderr|. The value may
@@ -173,12 +176,19 @@
   // HasInstruction returns true if the current test has an instruction.
   bool HasInstruction(const std::string &key);
 
+  // IgnoreInstruction marks the instruction with key |key| as used.
+  void IgnoreInstruction(const std::string &key) { HasInstruction(key); }
+
   // GetInstruction looks up the instruction with key |key|. It sets
   // |*out_value| to the value (empty string if the instruction has no value)
   // and returns true if it exists and returns false with an error to |stderr|
   // otherwise.
   bool GetInstruction(std::string *out_value, const std::string &key);
 
+  // GetInstructionBytes behaves like GetBytes, but looks up the corresponding
+  // instruction.
+  bool GetInstructionBytes(std::vector<uint8_t> *out, const std::string &key);
+
   // CurrentTestToString returns the file content parsed for the current test.
   // If the current test was preceded by an instruction block, the return test
   // case is preceded by the instruction block and a single blank line. All
@@ -197,6 +207,7 @@
   void ClearInstructions();
   void OnKeyUsed(const std::string &key);
   void OnInstructionUsed(const std::string &key);
+  bool ConvertToBytes(std::vector<uint8_t> *out, const std::string &value);
 
   std::unique_ptr<LineReader> reader_;
   // line_ is the number of lines read.