@fails-components/webtransport 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/package.json +1 -1
  2. package/readme.md +1 -3
  3. package/src/http3eventloop.cc +83 -9
  4. package/src/http3eventloop.h +13 -3
  5. package/src/http3server.cc +22 -22
  6. package/src/http3server.h +7 -20
  7. package/src/http3wtstreamvisitor.cc +31 -10
  8. package/src/http3wtstreamvisitor.h +38 -11
  9. package/src/webtransport.js +91 -23
  10. package/test/echoserver.js +29 -5
  11. package/test/testsuite.js +242 -220
  12. package/third_party/boringssl/src/CMakeLists.txt +2 -0
  13. package/third_party/boringssl/src/crypto/CMakeLists.txt +1 -0
  14. package/third_party/boringssl/src/crypto/asn1/a_bitstr.c +174 -177
  15. package/third_party/boringssl/src/crypto/asn1/a_bool.c +46 -48
  16. package/third_party/boringssl/src/crypto/asn1/a_d2i_fp.c +21 -23
  17. package/third_party/boringssl/src/crypto/asn1/a_dup.c +21 -23
  18. package/third_party/boringssl/src/crypto/asn1/a_gentm.c +84 -187
  19. package/third_party/boringssl/src/crypto/asn1/a_i2d_fp.c +19 -21
  20. package/third_party/boringssl/src/crypto/asn1/a_int.c +305 -329
  21. package/third_party/boringssl/src/crypto/asn1/a_mbstr.c +190 -195
  22. package/third_party/boringssl/src/crypto/asn1/a_object.c +182 -189
  23. package/third_party/boringssl/src/crypto/asn1/a_octet.c +6 -9
  24. package/third_party/boringssl/src/crypto/asn1/a_print.c +15 -16
  25. package/third_party/boringssl/src/crypto/asn1/a_strex.c +386 -399
  26. package/third_party/boringssl/src/crypto/asn1/a_strnid.c +110 -131
  27. package/third_party/boringssl/src/crypto/asn1/a_time.c +118 -111
  28. package/third_party/boringssl/src/crypto/asn1/a_type.c +59 -60
  29. package/third_party/boringssl/src/crypto/asn1/a_utctm.c +114 -186
  30. package/third_party/boringssl/src/crypto/asn1/a_utf8.c +171 -159
  31. package/third_party/boringssl/src/crypto/asn1/asn1_lib.c +245 -260
  32. package/third_party/boringssl/src/crypto/asn1/asn1_par.c +41 -40
  33. package/third_party/boringssl/src/crypto/asn1/asn1_test.cc +31 -0
  34. package/third_party/boringssl/src/crypto/asn1/asn_pack.c +31 -33
  35. package/third_party/boringssl/src/crypto/asn1/f_int.c +36 -33
  36. package/third_party/boringssl/src/crypto/asn1/f_string.c +29 -26
  37. package/third_party/boringssl/src/crypto/asn1/internal.h +62 -61
  38. package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +706 -702
  39. package/third_party/boringssl/src/crypto/asn1/tasn_enc.c +507 -524
  40. package/third_party/boringssl/src/crypto/asn1/tasn_fre.c +141 -133
  41. package/third_party/boringssl/src/crypto/asn1/tasn_new.c +207 -199
  42. package/third_party/boringssl/src/crypto/asn1/tasn_typ.c +19 -22
  43. package/third_party/boringssl/src/crypto/asn1/tasn_utl.c +24 -24
  44. package/third_party/boringssl/src/crypto/asn1/time_support.c +13 -13
  45. package/third_party/boringssl/src/crypto/bio/connect.c +9 -3
  46. package/third_party/boringssl/src/crypto/bytestring/bytestring_test.cc +125 -1
  47. package/third_party/boringssl/src/crypto/bytestring/cbb.c +4 -7
  48. package/third_party/boringssl/src/crypto/bytestring/cbs.c +167 -9
  49. package/third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c +0 -2
  50. package/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c +23 -54
  51. package/third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -2
  52. package/third_party/boringssl/src/crypto/cipher_extra/e_tls.c +0 -2
  53. package/third_party/boringssl/src/crypto/curve25519/curve25519.c +6 -8
  54. package/third_party/boringssl/src/crypto/evp/evp_ctx.c +25 -22
  55. package/third_party/boringssl/src/crypto/evp/internal.h +15 -9
  56. package/third_party/boringssl/src/crypto/evp/p_dsa_asn1.c +2 -0
  57. package/third_party/boringssl/src/crypto/evp/p_ec_asn1.c +2 -0
  58. package/third_party/boringssl/src/crypto/evp/p_ed25519.c +3 -3
  59. package/third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c +10 -7
  60. package/third_party/boringssl/src/crypto/evp/p_hkdf.c +241 -0
  61. package/third_party/boringssl/src/crypto/evp/p_rsa_asn1.c +2 -0
  62. package/third_party/boringssl/src/crypto/evp/p_x25519_asn1.c +1 -0
  63. package/third_party/boringssl/src/crypto/fipsmodule/aes/aes_nohw.c +9 -10
  64. package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +2 -6
  65. package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +5 -11
  66. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +1 -1
  67. package/third_party/boringssl/src/crypto/fipsmodule/bn/prime.c +2 -0
  68. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +10 -26
  69. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aesccm.c +2 -3
  70. package/third_party/boringssl/src/crypto/fipsmodule/digestsign/digestsign.c +1 -0
  71. package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +44 -43
  72. package/third_party/boringssl/src/crypto/fipsmodule/modes/cbc.c +5 -9
  73. package/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c +14 -21
  74. package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +8 -8
  75. package/third_party/boringssl/src/crypto/fipsmodule/rand/internal.h +1 -4
  76. package/third_party/boringssl/src/crypto/hkdf/hkdf_test.cc +104 -0
  77. package/third_party/boringssl/src/crypto/internal.h +18 -4
  78. package/third_party/boringssl/src/crypto/lhash/internal.h +13 -1
  79. package/third_party/boringssl/src/crypto/obj/obj_dat.h +4 -1
  80. package/third_party/boringssl/src/crypto/obj/obj_mac.num +1 -0
  81. package/third_party/boringssl/src/crypto/obj/objects.txt +2 -0
  82. package/third_party/boringssl/src/crypto/pem/pem_all.c +77 -86
  83. package/third_party/boringssl/src/crypto/pem/pem_info.c +221 -233
  84. package/third_party/boringssl/src/crypto/pem/pem_lib.c +639 -608
  85. package/third_party/boringssl/src/crypto/pem/pem_oth.c +17 -16
  86. package/third_party/boringssl/src/crypto/pem/pem_pk8.c +133 -142
  87. package/third_party/boringssl/src/crypto/pem/pem_pkey.c +96 -92
  88. package/third_party/boringssl/src/crypto/poly1305/poly1305_vec.c +12 -28
  89. package/third_party/boringssl/src/crypto/siphash/siphash.c +8 -11
  90. package/third_party/boringssl/src/crypto/siphash/siphash_test.cc +5 -7
  91. package/third_party/boringssl/src/crypto/stack/stack.c +33 -16
  92. package/third_party/boringssl/src/crypto/thread_pthread.c +0 -2
  93. package/third_party/boringssl/src/crypto/thread_win.c +0 -2
  94. package/third_party/boringssl/src/crypto/trust_token/internal.h +14 -0
  95. package/third_party/boringssl/src/crypto/trust_token/pmbtoken.c +127 -30
  96. package/third_party/boringssl/src/crypto/trust_token/trust_token.c +40 -0
  97. package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +165 -0
  98. package/third_party/boringssl/src/crypto/trust_token/voprf.c +55 -6
  99. package/third_party/boringssl/src/crypto/x509/a_digest.c +23 -24
  100. package/third_party/boringssl/src/crypto/x509/a_sign.c +52 -55
  101. package/third_party/boringssl/src/crypto/x509/a_verify.c +33 -34
  102. package/third_party/boringssl/src/crypto/x509/algorithm.c +17 -18
  103. package/third_party/boringssl/src/crypto/x509/asn1_gen.c +618 -612
  104. package/third_party/boringssl/src/crypto/x509/by_dir.c +320 -337
  105. package/third_party/boringssl/src/crypto/x509/by_file.c +186 -186
  106. package/third_party/boringssl/src/crypto/x509/i2d_pr.c +11 -14
  107. package/third_party/boringssl/src/crypto/x509/internal.h +22 -22
  108. package/third_party/boringssl/src/crypto/x509/name_print.c +155 -150
  109. package/third_party/boringssl/src/crypto/x509/rsa_pss.c +27 -29
  110. package/third_party/boringssl/src/crypto/x509/t_crl.c +67 -70
  111. package/third_party/boringssl/src/crypto/x509/t_req.c +3 -5
  112. package/third_party/boringssl/src/crypto/x509/t_x509.c +280 -251
  113. package/third_party/boringssl/src/crypto/x509/t_x509a.c +52 -47
  114. package/third_party/boringssl/src/crypto/x509/x509.c +3 -4
  115. package/third_party/boringssl/src/crypto/x509/x509_att.c +234 -223
  116. package/third_party/boringssl/src/crypto/x509/x509_cmp.c +286 -296
  117. package/third_party/boringssl/src/crypto/x509/x509_d2.c +37 -32
  118. package/third_party/boringssl/src/crypto/x509/x509_def.c +14 -30
  119. package/third_party/boringssl/src/crypto/x509/x509_ext.c +55 -84
  120. package/third_party/boringssl/src/crypto/x509/x509_lu.c +545 -581
  121. package/third_party/boringssl/src/crypto/x509/x509_obj.c +131 -121
  122. package/third_party/boringssl/src/crypto/x509/x509_req.c +120 -139
  123. package/third_party/boringssl/src/crypto/x509/x509_set.c +128 -142
  124. package/third_party/boringssl/src/crypto/x509/x509_trs.c +185 -193
  125. package/third_party/boringssl/src/crypto/x509/x509_txt.c +70 -72
  126. package/third_party/boringssl/src/crypto/x509/x509_v3.c +172 -161
  127. package/third_party/boringssl/src/crypto/x509/x509_vfy.c +2041 -2053
  128. package/third_party/boringssl/src/crypto/x509/x509_vpm.c +441 -461
  129. package/third_party/boringssl/src/crypto/x509/x509cset.c +152 -170
  130. package/third_party/boringssl/src/crypto/x509/x509name.c +274 -260
  131. package/third_party/boringssl/src/crypto/x509/x509rset.c +43 -20
  132. package/third_party/boringssl/src/crypto/x509/x509spki.c +62 -63
  133. package/third_party/boringssl/src/crypto/x509/x_algor.c +64 -62
  134. package/third_party/boringssl/src/crypto/x509/x_all.c +103 -133
  135. package/third_party/boringssl/src/crypto/x509/x_attrib.c +23 -24
  136. package/third_party/boringssl/src/crypto/x509/x_crl.c +310 -321
  137. package/third_party/boringssl/src/crypto/x509/x_exten.c +6 -5
  138. package/third_party/boringssl/src/crypto/x509/x_info.c +31 -28
  139. package/third_party/boringssl/src/crypto/x509/x_name.c +361 -365
  140. package/third_party/boringssl/src/crypto/x509/x_pkey.c +38 -32
  141. package/third_party/boringssl/src/crypto/x509/x_pubkey.c +114 -117
  142. package/third_party/boringssl/src/crypto/x509/x_req.c +27 -29
  143. package/third_party/boringssl/src/crypto/x509/x_sig.c +2 -2
  144. package/third_party/boringssl/src/crypto/x509/x_spki.c +8 -10
  145. package/third_party/boringssl/src/crypto/x509/x_val.c +2 -2
  146. package/third_party/boringssl/src/crypto/x509/x_x509.c +212 -226
  147. package/third_party/boringssl/src/crypto/x509/x_x509a.c +112 -109
  148. package/third_party/boringssl/src/crypto/x509v3/ext_dat.h +10 -13
  149. package/third_party/boringssl/src/crypto/x509v3/internal.h +72 -87
  150. package/third_party/boringssl/src/crypto/x509v3/pcy_cache.c +184 -176
  151. package/third_party/boringssl/src/crypto/x509v3/pcy_data.c +58 -56
  152. package/third_party/boringssl/src/crypto/x509v3/pcy_lib.c +71 -70
  153. package/third_party/boringssl/src/crypto/x509v3/pcy_map.c +56 -58
  154. package/third_party/boringssl/src/crypto/x509v3/pcy_node.c +89 -91
  155. package/third_party/boringssl/src/crypto/x509v3/pcy_tree.c +585 -590
  156. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +118 -112
  157. package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +3 -3
  158. package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +447 -451
  159. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +44 -38
  160. package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +39 -43
  161. package/third_party/boringssl/src/crypto/x509v3/v3_conf.c +321 -320
  162. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +352 -327
  163. package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +437 -383
  164. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +23 -16
  165. package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +62 -53
  166. package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +118 -115
  167. package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +30 -31
  168. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +112 -98
  169. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +40 -15
  170. package/third_party/boringssl/src/crypto/x509v3/v3_lib.c +248 -252
  171. package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +390 -386
  172. package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +45 -32
  173. package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +206 -209
  174. package/third_party/boringssl/src/crypto/x509v3/v3_pcia.c +6 -8
  175. package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +54 -50
  176. package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +66 -65
  177. package/third_party/boringssl/src/crypto/x509v3/v3_prn.c +144 -133
  178. package/third_party/boringssl/src/crypto/x509v3/v3_purp.c +695 -709
  179. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +75 -69
  180. package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +1102 -1082
  181. package/third_party/boringssl/src/include/openssl/base.h +3 -1
  182. package/third_party/boringssl/src/include/openssl/bn.h +3 -0
  183. package/third_party/boringssl/src/include/openssl/bytestring.h +20 -0
  184. package/third_party/boringssl/src/include/openssl/evp.h +6 -5
  185. package/third_party/boringssl/src/include/openssl/kdf.h +91 -0
  186. package/third_party/boringssl/src/include/openssl/nid.h +4 -0
  187. package/third_party/boringssl/src/include/openssl/ssl.h +6 -1
  188. package/third_party/boringssl/src/include/openssl/stack.h +47 -32
  189. package/third_party/boringssl/src/include/openssl/trust_token.h +18 -3
  190. package/third_party/boringssl/src/include/openssl/x509.h +18 -0
  191. package/third_party/boringssl/src/ssl/ssl_file.cc +61 -99
  192. package/third_party/boringssl/src/ssl/ssl_test.cc +101 -0
  193. package/third_party/boringssl/src/util/doc.config +2 -1
  194. package/third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/subprocess.go +8 -0
  195. package/third_party/googleurl/AUTHORS +16 -2
  196. package/third_party/googleurl/base/BUILD +1 -0
  197. package/third_party/googleurl/base/compiler_specific.h +16 -17
  198. package/third_party/googleurl/base/containers/contiguous_iterator.h +13 -9
  199. package/third_party/googleurl/base/containers/span.h +23 -8
  200. package/third_party/googleurl/base/memory/raw_ptr.h +17 -25
  201. package/third_party/googleurl/base/memory/raw_ptr_exclusion.h +21 -0
  202. package/third_party/googleurl/base/strings/escape.cc +14 -2
  203. package/third_party/googleurl/base/strings/safe_sprintf.h +1 -1
  204. package/third_party/googleurl/base/strings/string_number_conversions.cc +5 -3
  205. package/third_party/googleurl/base/strings/string_number_conversions_internal.h +5 -5
  206. package/third_party/googleurl/base/strings/string_piece.h +3 -3
  207. package/third_party/googleurl/base/strings/string_util.cc +4 -27
  208. package/third_party/googleurl/base/strings/string_util.h +43 -8
  209. package/third_party/googleurl/base/strings/string_util_internal.h +11 -12
  210. package/third_party/googleurl/base/strings/string_util_unittest.cc +33 -0
  211. package/third_party/googleurl/base/strings/string_util_win.cc +0 -5
  212. package/third_party/googleurl/base/strings/string_util_win.h +9 -1
  213. package/third_party/googleurl/base/strings/utf_offset_string_conversions.cc +1 -1
  214. package/third_party/googleurl/base/strings/utf_string_conversion_utils.cc +5 -8
  215. package/third_party/googleurl/base/strings/utf_string_conversion_utils.h +13 -10
  216. package/third_party/googleurl/base/strings/utf_string_conversions.cc +32 -25
  217. package/third_party/googleurl/base/template_util.h +23 -35
  218. package/third_party/googleurl/build/build_config.h +14 -3
  219. package/third_party/googleurl/copy.bara.sky +1 -1
  220. package/third_party/googleurl/url/gurl.cc +8 -4
  221. package/third_party/googleurl/url/gurl.h +1 -0
  222. package/third_party/googleurl/url/gurl_unittest.cc +1 -0
  223. package/third_party/googleurl/url/origin.h +36 -26
  224. package/third_party/googleurl/url/scheme_host_port.h +4 -1
  225. package/third_party/googleurl/url/url_canon.h +2 -1
  226. package/third_party/googleurl/url/url_canon_internal.cc +9 -7
  227. package/third_party/googleurl/url/url_canon_internal.h +16 -16
  228. package/third_party/googleurl/url/url_canon_stdstring.h +2 -1
  229. package/third_party/googleurl/url/url_util.cc +9 -8
  230. package/third_party/quiche/build/source_list.bzl +7 -0
  231. package/third_party/quiche/build/source_list.gni +7 -0
  232. package/third_party/quiche/build/source_list.json +7 -0
  233. package/third_party/quiche/quiche/common/platform/api/quiche_mem_slice.h +7 -3
  234. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +86 -2
  235. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +104 -2
  236. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -0
  237. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +6 -1
  238. package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_test.cc +0 -16
  239. package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -1
  240. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +56 -2
  241. package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -0
  242. package/third_party/quiche/quiche/quic/core/http/http_constants.h +1 -0
  243. package/third_party/quiche/quiche/quic/core/http/http_encoder.cc +28 -17
  244. package/third_party/quiche/quiche/quic/core/http/http_encoder.h +5 -0
  245. package/third_party/quiche/quiche/quic/core/http/http_encoder_test.cc +26 -30
  246. package/third_party/quiche/quiche/quic/core/http/http_frames.h +1 -0
  247. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -4
  248. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base_test.cc +1 -1
  249. package/third_party/quiche/quiche/quic/core/http/quic_spdy_client_session.cc +5 -1
  250. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +6 -33
  251. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +0 -17
  252. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +5 -20
  253. package/third_party/quiche/quiche/quic/core/io/quic_event_loop.h +81 -0
  254. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.cc +265 -0
  255. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.h +152 -0
  256. package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop_test.cc +341 -0
  257. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.cc +3 -1
  258. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.h +7 -7
  259. package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store_test.cc +4 -3
  260. package/third_party/quiche/quiche/quic/core/quic_connection.cc +69 -19
  261. package/third_party/quiche/quiche/quic/core/quic_connection.h +9 -3
  262. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.cc +29 -10
  263. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.h +5 -3
  264. package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +85 -22
  265. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +186 -30
  266. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +2 -1
  267. package/third_party/quiche/quiche/quic/core/quic_default_clock.cc +31 -0
  268. package/third_party/quiche/quiche/quic/core/quic_default_clock.h +34 -0
  269. package/third_party/quiche/quiche/quic/core/quic_default_connection_helper.h +49 -0
  270. package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +53 -37
  271. package/third_party/quiche/quiche/quic/core/quic_dispatcher.h +19 -11
  272. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +15 -2
  273. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +10 -4
  274. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +2 -2
  275. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +4 -4
  276. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +14 -3
  277. package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +145 -2
  278. package/third_party/quiche/quiche/quic/core/quic_packets.cc +3 -1
  279. package/third_party/quiche/quiche/quic/core/quic_packets.h +4 -0
  280. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +13 -11
  281. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +9 -0
  282. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +6 -0
  283. package/third_party/quiche/quiche/quic/core/quic_session.cc +3 -2
  284. package/third_party/quiche/quiche/quic/core/quic_session.h +8 -3
  285. package/third_party/quiche/quiche/quic/core/quic_types.cc +18 -0
  286. package/third_party/quiche/quiche/quic/core/quic_types.h +3 -0
  287. package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.cc +3 -0
  288. package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.h +10 -0
  289. package/third_party/quiche/quiche/quic/test_tools/mock_quic_session_visitor.h +1 -1
  290. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +1 -1
  291. package/third_party/quiche/quiche/quic/test_tools/server_thread.cc +3 -2
  292. package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.cc +7 -1
  293. package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.h +3 -0
  294. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +4 -2
  295. package/certs/ca.cnf +0 -69
  296. package/certs/generate_certs.sh +0 -53
  297. package/certs/generate_certs_leaf.sh +0 -53
  298. package/certs/leaf.cnf +0 -24
  299. package/certs/readme.txt +0 -2
  300. package/third_party/quiche/build/BUILD.bazel +0 -7
@@ -67,19 +67,17 @@
67
67
  #include "internal.h"
68
68
 
69
69
 
70
- /* Cross-module errors from crypto/x509/i2d_pr.c. */
70
+ // Cross-module errors from crypto/x509/i2d_pr.c.
71
71
  OPENSSL_DECLARE_ERROR_REASON(ASN1, UNSUPPORTED_PUBLIC_KEY_TYPE)
72
72
 
73
- /* Cross-module errors from crypto/x509/algorithm.c. */
73
+ // Cross-module errors from crypto/x509/algorithm.c.
74
74
  OPENSSL_DECLARE_ERROR_REASON(ASN1, CONTEXT_NOT_INITIALISED)
75
75
  OPENSSL_DECLARE_ERROR_REASON(ASN1, DIGEST_AND_KEY_TYPE_NOT_SUPPORTED)
76
76
  OPENSSL_DECLARE_ERROR_REASON(ASN1, UNKNOWN_MESSAGE_DIGEST_ALGORITHM)
77
77
  OPENSSL_DECLARE_ERROR_REASON(ASN1, UNKNOWN_SIGNATURE_ALGORITHM)
78
78
  OPENSSL_DECLARE_ERROR_REASON(ASN1, WRONG_PUBLIC_KEY_TYPE)
79
- /*
80
- * Cross-module errors from crypto/x509/asn1_gen.c. TODO(davidben): Remove
81
- * these once asn1_gen.c is gone.
82
- */
79
+ // Cross-module errors from crypto/x509/asn1_gen.c. TODO(davidben): Remove
80
+ // these once asn1_gen.c is gone.
83
81
  OPENSSL_DECLARE_ERROR_REASON(ASN1, DEPTH_EXCEEDED)
84
82
  OPENSSL_DECLARE_ERROR_REASON(ASN1, ILLEGAL_BITSTRING_FORMAT)
85
83
  OPENSSL_DECLARE_ERROR_REASON(ASN1, ILLEGAL_BOOLEAN)
@@ -107,299 +105,286 @@ OPENSSL_DECLARE_ERROR_REASON(ASN1, UNSUPPORTED_TYPE)
107
105
  static void asn1_put_length(unsigned char **pp, int length);
108
106
 
109
107
  int ASN1_get_object(const unsigned char **inp, long *out_len, int *out_tag,
110
- int *out_class, long in_len)
111
- {
112
- if (in_len < 0) {
113
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
114
- return 0x80;
115
- }
116
-
117
- /* TODO(https://crbug.com/boringssl/354): This should use |CBS_get_asn1| to
118
- * reject non-minimal lengths, which are only allowed in BER. However,
119
- * Android sometimes needs allow a non-minimal length in certificate
120
- * signature fields (see b/18228011). Make this only apply to that field,
121
- * while requiring DER elsewhere. Better yet, it should be limited to an
122
- * preprocessing step in that part of Android. */
123
- unsigned tag;
124
- size_t header_len;
125
- int indefinite;
126
- CBS cbs, body;
127
- CBS_init(&cbs, *inp, (size_t)in_len);
128
- if (!CBS_get_any_ber_asn1_element(&cbs, &body, &tag, &header_len,
129
- /*out_ber_found=*/NULL, &indefinite) ||
130
- indefinite ||
131
- !CBS_skip(&body, header_len) ||
132
- /* Bound the length to comfortably fit in an int. Lengths in this
133
- * module often switch between int and long without overflow checks. */
134
- CBS_len(&body) > INT_MAX / 2) {
135
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
136
- return 0x80;
137
- }
138
-
139
- /* Convert between tag representations. */
140
- int tag_class = (tag & CBS_ASN1_CLASS_MASK) >> CBS_ASN1_TAG_SHIFT;
141
- int constructed = (tag & CBS_ASN1_CONSTRUCTED) >> CBS_ASN1_TAG_SHIFT;
142
- int tag_number = tag & CBS_ASN1_TAG_NUMBER_MASK;
143
-
144
- /* To avoid ambiguity with V_ASN1_NEG, impose a limit on universal tags. */
145
- if (tag_class == V_ASN1_UNIVERSAL && tag_number > V_ASN1_MAX_UNIVERSAL) {
146
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
147
- return 0x80;
148
- }
149
-
150
- *inp = CBS_data(&body);
151
- *out_len = CBS_len(&body);
152
- *out_tag = tag_number;
153
- *out_class = tag_class;
154
- return constructed;
108
+ int *out_class, long in_len) {
109
+ if (in_len < 0) {
110
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
111
+ return 0x80;
112
+ }
113
+
114
+ // TODO(https://crbug.com/boringssl/354): This should use |CBS_get_asn1| to
115
+ // reject non-minimal lengths, which are only allowed in BER. However,
116
+ // Android sometimes needs allow a non-minimal length in certificate
117
+ // signature fields (see b/18228011). Make this only apply to that field,
118
+ // while requiring DER elsewhere. Better yet, it should be limited to an
119
+ // preprocessing step in that part of Android.
120
+ unsigned tag;
121
+ size_t header_len;
122
+ int indefinite;
123
+ CBS cbs, body;
124
+ CBS_init(&cbs, *inp, (size_t)in_len);
125
+ if (!CBS_get_any_ber_asn1_element(&cbs, &body, &tag, &header_len,
126
+ /*out_ber_found=*/NULL, &indefinite) ||
127
+ indefinite || !CBS_skip(&body, header_len) ||
128
+ // Bound the length to comfortably fit in an int. Lengths in this
129
+ // module often switch between int and long without overflow checks.
130
+ CBS_len(&body) > INT_MAX / 2) {
131
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
132
+ return 0x80;
133
+ }
134
+
135
+ // Convert between tag representations.
136
+ int tag_class = (tag & CBS_ASN1_CLASS_MASK) >> CBS_ASN1_TAG_SHIFT;
137
+ int constructed = (tag & CBS_ASN1_CONSTRUCTED) >> CBS_ASN1_TAG_SHIFT;
138
+ int tag_number = tag & CBS_ASN1_TAG_NUMBER_MASK;
139
+
140
+ // To avoid ambiguity with V_ASN1_NEG, impose a limit on universal tags.
141
+ if (tag_class == V_ASN1_UNIVERSAL && tag_number > V_ASN1_MAX_UNIVERSAL) {
142
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
143
+ return 0x80;
144
+ }
145
+
146
+ *inp = CBS_data(&body);
147
+ *out_len = CBS_len(&body);
148
+ *out_tag = tag_number;
149
+ *out_class = tag_class;
150
+ return constructed;
155
151
  }
156
152
 
157
- /*
158
- * class 0 is constructed constructed == 2 for indefinite length constructed
159
- */
153
+ // class 0 is constructed constructed == 2 for indefinite length constructed
160
154
  void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag,
161
- int xclass)
162
- {
163
- unsigned char *p = *pp;
164
- int i, ttag;
165
-
166
- i = (constructed) ? V_ASN1_CONSTRUCTED : 0;
167
- i |= (xclass & V_ASN1_PRIVATE);
168
- if (tag < 31)
169
- *(p++) = i | (tag & V_ASN1_PRIMITIVE_TAG);
170
- else {
171
- *(p++) = i | V_ASN1_PRIMITIVE_TAG;
172
- for (i = 0, ttag = tag; ttag > 0; i++)
173
- ttag >>= 7;
174
- ttag = i;
175
- while (i-- > 0) {
176
- p[i] = tag & 0x7f;
177
- if (i != (ttag - 1))
178
- p[i] |= 0x80;
179
- tag >>= 7;
180
- }
181
- p += ttag;
155
+ int xclass) {
156
+ unsigned char *p = *pp;
157
+ int i, ttag;
158
+
159
+ i = (constructed) ? V_ASN1_CONSTRUCTED : 0;
160
+ i |= (xclass & V_ASN1_PRIVATE);
161
+ if (tag < 31) {
162
+ *(p++) = i | (tag & V_ASN1_PRIMITIVE_TAG);
163
+ } else {
164
+ *(p++) = i | V_ASN1_PRIMITIVE_TAG;
165
+ for (i = 0, ttag = tag; ttag > 0; i++) {
166
+ ttag >>= 7;
167
+ }
168
+ ttag = i;
169
+ while (i-- > 0) {
170
+ p[i] = tag & 0x7f;
171
+ if (i != (ttag - 1)) {
172
+ p[i] |= 0x80;
173
+ }
174
+ tag >>= 7;
182
175
  }
183
- if (constructed == 2)
184
- *(p++) = 0x80;
185
- else
186
- asn1_put_length(&p, length);
187
- *pp = p;
176
+ p += ttag;
177
+ }
178
+ if (constructed == 2) {
179
+ *(p++) = 0x80;
180
+ } else {
181
+ asn1_put_length(&p, length);
182
+ }
183
+ *pp = p;
188
184
  }
189
185
 
190
- int ASN1_put_eoc(unsigned char **pp)
191
- {
192
- /* This function is no longer used in the library, but some external code
193
- * uses it. */
194
- unsigned char *p = *pp;
195
- *p++ = 0;
196
- *p++ = 0;
197
- *pp = p;
198
- return 2;
186
+ int ASN1_put_eoc(unsigned char **pp) {
187
+ // This function is no longer used in the library, but some external code
188
+ // uses it.
189
+ unsigned char *p = *pp;
190
+ *p++ = 0;
191
+ *p++ = 0;
192
+ *pp = p;
193
+ return 2;
199
194
  }
200
195
 
201
- static void asn1_put_length(unsigned char **pp, int length)
202
- {
203
- unsigned char *p = *pp;
204
- int i, l;
205
- if (length <= 127)
206
- *(p++) = (unsigned char)length;
207
- else {
208
- l = length;
209
- for (i = 0; l > 0; i++)
210
- l >>= 8;
211
- *(p++) = i | 0x80;
212
- l = i;
213
- while (i-- > 0) {
214
- p[i] = length & 0xff;
215
- length >>= 8;
216
- }
217
- p += l;
196
+ static void asn1_put_length(unsigned char **pp, int length) {
197
+ unsigned char *p = *pp;
198
+ int i, l;
199
+ if (length <= 127) {
200
+ *(p++) = (unsigned char)length;
201
+ } else {
202
+ l = length;
203
+ for (i = 0; l > 0; i++) {
204
+ l >>= 8;
218
205
  }
219
- *pp = p;
206
+ *(p++) = i | 0x80;
207
+ l = i;
208
+ while (i-- > 0) {
209
+ p[i] = length & 0xff;
210
+ length >>= 8;
211
+ }
212
+ p += l;
213
+ }
214
+ *pp = p;
220
215
  }
221
216
 
222
- int ASN1_object_size(int constructed, int length, int tag)
223
- {
224
- int ret = 1;
225
- if (length < 0)
226
- return -1;
227
- if (tag >= 31) {
228
- while (tag > 0) {
229
- tag >>= 7;
230
- ret++;
231
- }
217
+ int ASN1_object_size(int constructed, int length, int tag) {
218
+ int ret = 1;
219
+ if (length < 0) {
220
+ return -1;
221
+ }
222
+ if (tag >= 31) {
223
+ while (tag > 0) {
224
+ tag >>= 7;
225
+ ret++;
232
226
  }
233
- if (constructed == 2) {
234
- ret += 3;
235
- } else {
227
+ }
228
+ if (constructed == 2) {
229
+ ret += 3;
230
+ } else {
231
+ ret++;
232
+ if (length > 127) {
233
+ int tmplen = length;
234
+ while (tmplen > 0) {
235
+ tmplen >>= 8;
236
236
  ret++;
237
- if (length > 127) {
238
- int tmplen = length;
239
- while (tmplen > 0) {
240
- tmplen >>= 8;
241
- ret++;
242
- }
243
- }
237
+ }
244
238
  }
245
- if (ret >= INT_MAX - length)
246
- return -1;
247
- return ret + length;
239
+ }
240
+ if (ret >= INT_MAX - length) {
241
+ return -1;
242
+ }
243
+ return ret + length;
248
244
  }
249
245
 
250
- int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
251
- {
252
- if (str == NULL)
253
- return 0;
254
- if (!ASN1_STRING_set(dst, str->data, str->length))
255
- return 0;
256
- dst->type = str->type;
257
- dst->flags = str->flags;
258
- return 1;
246
+ int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str) {
247
+ if (str == NULL) {
248
+ return 0;
249
+ }
250
+ if (!ASN1_STRING_set(dst, str->data, str->length)) {
251
+ return 0;
252
+ }
253
+ dst->type = str->type;
254
+ dst->flags = str->flags;
255
+ return 1;
259
256
  }
260
257
 
261
- ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *str)
262
- {
263
- ASN1_STRING *ret;
264
- if (!str)
265
- return NULL;
266
- ret = ASN1_STRING_new();
267
- if (!ret)
268
- return NULL;
269
- if (!ASN1_STRING_copy(ret, str)) {
270
- ASN1_STRING_free(ret);
271
- return NULL;
272
- }
273
- return ret;
258
+ ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *str) {
259
+ ASN1_STRING *ret;
260
+ if (!str) {
261
+ return NULL;
262
+ }
263
+ ret = ASN1_STRING_new();
264
+ if (!ret) {
265
+ return NULL;
266
+ }
267
+ if (!ASN1_STRING_copy(ret, str)) {
268
+ ASN1_STRING_free(ret);
269
+ return NULL;
270
+ }
271
+ return ret;
274
272
  }
275
273
 
276
- int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len)
277
- {
278
- unsigned char *c;
279
- const char *data = _data;
274
+ int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len) {
275
+ unsigned char *c;
276
+ const char *data = _data;
280
277
 
281
- if (len < 0) {
282
- if (data == NULL)
283
- return (0);
284
- else
285
- len = strlen(data);
278
+ if (len < 0) {
279
+ if (data == NULL) {
280
+ return 0;
281
+ } else {
282
+ len = strlen(data);
286
283
  }
287
- if ((str->length <= len) || (str->data == NULL)) {
288
- c = str->data;
289
- if (c == NULL)
290
- str->data = OPENSSL_malloc(len + 1);
291
- else
292
- str->data = OPENSSL_realloc(c, len + 1);
293
-
294
- if (str->data == NULL) {
295
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
296
- str->data = c;
297
- return (0);
298
- }
284
+ }
285
+ if ((str->length <= len) || (str->data == NULL)) {
286
+ c = str->data;
287
+ if (c == NULL) {
288
+ str->data = OPENSSL_malloc(len + 1);
289
+ } else {
290
+ str->data = OPENSSL_realloc(c, len + 1);
299
291
  }
300
- str->length = len;
301
- if (data != NULL) {
302
- OPENSSL_memcpy(str->data, data, len);
303
- /* an allowance for strings :-) */
304
- str->data[len] = '\0';
292
+
293
+ if (str->data == NULL) {
294
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
295
+ str->data = c;
296
+ return 0;
305
297
  }
306
- return (1);
298
+ }
299
+ str->length = len;
300
+ if (data != NULL) {
301
+ OPENSSL_memcpy(str->data, data, len);
302
+ // an allowance for strings :-)
303
+ str->data[len] = '\0';
304
+ }
305
+ return 1;
307
306
  }
308
307
 
309
- void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
310
- {
311
- OPENSSL_free(str->data);
312
- str->data = data;
313
- str->length = len;
308
+ void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len) {
309
+ OPENSSL_free(str->data);
310
+ str->data = data;
311
+ str->length = len;
314
312
  }
315
313
 
316
- ASN1_STRING *ASN1_STRING_new(void)
317
- {
318
- return (ASN1_STRING_type_new(V_ASN1_OCTET_STRING));
314
+ ASN1_STRING *ASN1_STRING_new(void) {
315
+ return (ASN1_STRING_type_new(V_ASN1_OCTET_STRING));
319
316
  }
320
317
 
321
- ASN1_STRING *ASN1_STRING_type_new(int type)
322
- {
323
- ASN1_STRING *ret;
324
-
325
- ret = (ASN1_STRING *)OPENSSL_malloc(sizeof(ASN1_STRING));
326
- if (ret == NULL) {
327
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
328
- return (NULL);
329
- }
330
- ret->length = 0;
331
- ret->type = type;
332
- ret->data = NULL;
333
- ret->flags = 0;
334
- return (ret);
318
+ ASN1_STRING *ASN1_STRING_type_new(int type) {
319
+ ASN1_STRING *ret;
320
+
321
+ ret = (ASN1_STRING *)OPENSSL_malloc(sizeof(ASN1_STRING));
322
+ if (ret == NULL) {
323
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
324
+ return NULL;
325
+ }
326
+ ret->length = 0;
327
+ ret->type = type;
328
+ ret->data = NULL;
329
+ ret->flags = 0;
330
+ return ret;
335
331
  }
336
332
 
337
- void ASN1_STRING_free(ASN1_STRING *str)
338
- {
339
- if (str == NULL)
340
- return;
341
- OPENSSL_free(str->data);
342
- OPENSSL_free(str);
333
+ void ASN1_STRING_free(ASN1_STRING *str) {
334
+ if (str == NULL) {
335
+ return;
336
+ }
337
+ OPENSSL_free(str->data);
338
+ OPENSSL_free(str);
343
339
  }
344
340
 
345
- int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
346
- {
347
- /* Capture padding bits and implicit truncation in BIT STRINGs. */
348
- int a_length = a->length, b_length = b->length;
349
- uint8_t a_padding = 0, b_padding = 0;
350
- if (a->type == V_ASN1_BIT_STRING) {
351
- a_length = asn1_bit_string_length(a, &a_padding);
352
- }
353
- if (b->type == V_ASN1_BIT_STRING) {
354
- b_length = asn1_bit_string_length(b, &b_padding);
355
- }
356
-
357
- if (a_length < b_length) {
358
- return -1;
359
- }
360
- if (a_length > b_length) {
361
- return 1;
362
- }
363
- /* In a BIT STRING, the number of bits is 8 * length - padding. Invert this
364
- * comparison so we compare by lengths. */
365
- if (a_padding > b_padding) {
366
- return -1;
367
- }
368
- if (a_padding < b_padding) {
369
- return 1;
370
- }
341
+ int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b) {
342
+ // Capture padding bits and implicit truncation in BIT STRINGs.
343
+ int a_length = a->length, b_length = b->length;
344
+ uint8_t a_padding = 0, b_padding = 0;
345
+ if (a->type == V_ASN1_BIT_STRING) {
346
+ a_length = asn1_bit_string_length(a, &a_padding);
347
+ }
348
+ if (b->type == V_ASN1_BIT_STRING) {
349
+ b_length = asn1_bit_string_length(b, &b_padding);
350
+ }
351
+
352
+ if (a_length < b_length) {
353
+ return -1;
354
+ }
355
+ if (a_length > b_length) {
356
+ return 1;
357
+ }
358
+ // In a BIT STRING, the number of bits is 8 * length - padding. Invert this
359
+ // comparison so we compare by lengths.
360
+ if (a_padding > b_padding) {
361
+ return -1;
362
+ }
363
+ if (a_padding < b_padding) {
364
+ return 1;
365
+ }
371
366
 
372
- int ret = OPENSSL_memcmp(a->data, b->data, a_length);
373
- if (ret != 0) {
374
- return ret;
375
- }
367
+ int ret = OPENSSL_memcmp(a->data, b->data, a_length);
368
+ if (ret != 0) {
369
+ return ret;
370
+ }
376
371
 
377
- /* Comparing the type first is more natural, but this matches OpenSSL. */
378
- if (a->type < b->type) {
379
- return -1;
380
- }
381
- if (a->type > b->type) {
382
- return 1;
383
- }
384
- return 0;
372
+ // Comparing the type first is more natural, but this matches OpenSSL.
373
+ if (a->type < b->type) {
374
+ return -1;
375
+ }
376
+ if (a->type > b->type) {
377
+ return 1;
378
+ }
379
+ return 0;
385
380
  }
386
381
 
387
- int ASN1_STRING_length(const ASN1_STRING *str)
388
- {
389
- return str->length;
390
- }
382
+ int ASN1_STRING_length(const ASN1_STRING *str) { return str->length; }
391
383
 
392
- int ASN1_STRING_type(const ASN1_STRING *str)
393
- {
394
- return str->type;
395
- }
384
+ int ASN1_STRING_type(const ASN1_STRING *str) { return str->type; }
396
385
 
397
- unsigned char *ASN1_STRING_data(ASN1_STRING *str)
398
- {
399
- return str->data;
400
- }
386
+ unsigned char *ASN1_STRING_data(ASN1_STRING *str) { return str->data; }
401
387
 
402
- const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *str)
403
- {
404
- return str->data;
388
+ const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *str) {
389
+ return str->data;
405
390
  }
@@ -57,46 +57,47 @@
57
57
  #include <openssl/asn1.h>
58
58
 
59
59
 
60
- const char *ASN1_tag2str(int tag)
61
- {
62
- static const char *const tag2str[] = {
63
- "EOC",
64
- "BOOLEAN",
65
- "INTEGER",
66
- "BIT STRING",
67
- "OCTET STRING",
68
- "NULL",
69
- "OBJECT",
70
- "OBJECT DESCRIPTOR",
71
- "EXTERNAL",
72
- "REAL",
73
- "ENUMERATED",
74
- "<ASN1 11>",
75
- "UTF8STRING",
76
- "<ASN1 13>",
77
- "<ASN1 14>",
78
- "<ASN1 15>",
79
- "SEQUENCE",
80
- "SET",
81
- "NUMERICSTRING",
82
- "PRINTABLESTRING",
83
- "T61STRING",
84
- "VIDEOTEXSTRING",
85
- "IA5STRING",
86
- "UTCTIME",
87
- "GENERALIZEDTIME",
88
- "GRAPHICSTRING",
89
- "VISIBLESTRING",
90
- "GENERALSTRING",
91
- "UNIVERSALSTRING",
92
- "<ASN1 29>",
93
- "BMPSTRING",
94
- };
60
+ const char *ASN1_tag2str(int tag) {
61
+ static const char *const tag2str[] = {
62
+ "EOC",
63
+ "BOOLEAN",
64
+ "INTEGER",
65
+ "BIT STRING",
66
+ "OCTET STRING",
67
+ "NULL",
68
+ "OBJECT",
69
+ "OBJECT DESCRIPTOR",
70
+ "EXTERNAL",
71
+ "REAL",
72
+ "ENUMERATED",
73
+ "<ASN1 11>",
74
+ "UTF8STRING",
75
+ "<ASN1 13>",
76
+ "<ASN1 14>",
77
+ "<ASN1 15>",
78
+ "SEQUENCE",
79
+ "SET",
80
+ "NUMERICSTRING",
81
+ "PRINTABLESTRING",
82
+ "T61STRING",
83
+ "VIDEOTEXSTRING",
84
+ "IA5STRING",
85
+ "UTCTIME",
86
+ "GENERALIZEDTIME",
87
+ "GRAPHICSTRING",
88
+ "VISIBLESTRING",
89
+ "GENERALSTRING",
90
+ "UNIVERSALSTRING",
91
+ "<ASN1 29>",
92
+ "BMPSTRING",
93
+ };
95
94
 
96
- if ((tag == V_ASN1_NEG_INTEGER) || (tag == V_ASN1_NEG_ENUMERATED))
97
- tag &= ~V_ASN1_NEG;
95
+ if ((tag == V_ASN1_NEG_INTEGER) || (tag == V_ASN1_NEG_ENUMERATED)) {
96
+ tag &= ~V_ASN1_NEG;
97
+ }
98
98
 
99
- if (tag < 0 || tag > 30)
100
- return "(unknown)";
101
- return tag2str[tag];
99
+ if (tag < 0 || tag > 30) {
100
+ return "(unknown)";
101
+ }
102
+ return tag2str[tag];
102
103
  }