Update fuzzer Packet/Proto Conversion to use 16B auth tags.

Virtually all packets (including all IETF QUIC packets) have 16B tags, so the fuzzer packet signature should match that.

Also, packets with very small payloads, once enabled, cannot work with short tags, so longer tags are a prerequisite.

The test was originally highly dependent on everything being a NullEncrypter, so that decryption would work even if things were out of sync. This now normalizes everything so that Initial packets are always sent with the version-appropriate encryption, which might involve the original Destination Connection ID, and all other encryption levels are sent with the TaggingEncrypter.

Some production code, when operating in fuzz mode, used the NullDecrypter for Forward Secure packets. This can't explicitly be replaced with TaggingDecrypter, since this is in the test namespace. So instead, this adds a singleton to ssl_global_data to refer to a factory in the test namespace.

PiperOrigin-RevId: 491481742
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index bcb09f9..2152a6f 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -8474,7 +8474,7 @@
   // that the encryption overhead is constant across versions.
   connection_.SetEncrypter(ENCRYPTION_INITIAL,
                            std::make_unique<TaggingEncrypter>(0x00));
-  QuicPacketLength expected_largest_payload = 1219;
+  QuicPacketLength expected_largest_payload = 1215;
   if (connection_.version().SendsVariableLengthPacketNumberInLongHeader()) {
     expected_largest_payload += 3;
   }
@@ -8509,7 +8509,7 @@
   // that the encryption overhead is constant across versions.
   connection_.SetEncrypter(ENCRYPTION_INITIAL,
                            std::make_unique<TaggingEncrypter>(0x00));
-  QuicPacketLength expected_largest_payload = 1219;
+  QuicPacketLength expected_largest_payload = 1215;
   if (connection_.version().HasLongHeaderLengths()) {
     expected_largest_payload -= 2;
   }
diff --git a/quiche/quic/test_tools/quic_test_utils.h b/quiche/quic/test_tools/quic_test_utils.h
index 0c0ab24..4c8c9b0 100644
--- a/quiche/quic/test_tools/quic_test_utils.h
+++ b/quiche/quic/test_tools/quic_test_utils.h
@@ -1721,7 +1721,7 @@
 
  private:
   enum {
-    kTagSize = 12,
+    kTagSize = 16,
   };
 
   const uint8_t tag_;
@@ -1784,7 +1784,7 @@
 
  private:
   enum {
-    kTagSize = 12,
+    kTagSize = 16,
   };
 
   bool CheckTag(absl::string_view ciphertext, uint8_t tag);