@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
@@ -66,219 +66,216 @@
66
66
  #include "internal.h"
67
67
 
68
68
 
69
- int ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, const unsigned char *d, int len)
70
- {
71
- return ASN1_STRING_set(x, d, len);
69
+ int ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, const unsigned char *d, int len) {
70
+ return ASN1_STRING_set(x, d, len);
72
71
  }
73
72
 
74
73
  int asn1_bit_string_length(const ASN1_BIT_STRING *str,
75
74
  uint8_t *out_padding_bits) {
76
- int len = str->length;
77
- if (str->flags & ASN1_STRING_FLAG_BITS_LEFT) {
78
- // If the string is already empty, it cannot have padding bits.
79
- *out_padding_bits = len == 0 ? 0 : str->flags & 0x07;
80
- return len;
81
- }
75
+ int len = str->length;
76
+ if (str->flags & ASN1_STRING_FLAG_BITS_LEFT) {
77
+ // If the string is already empty, it cannot have padding bits.
78
+ *out_padding_bits = len == 0 ? 0 : str->flags & 0x07;
79
+ return len;
80
+ }
82
81
 
83
- // TODO(https://crbug.com/boringssl/447): If we move this logic to
84
- // |ASN1_BIT_STRING_set_bit|, can we remove this representation?
85
- while (len > 0 && str->data[len - 1] == 0) {
86
- len--;
87
- }
88
- uint8_t padding_bits = 0;
89
- if (len > 0) {
90
- uint8_t last = str->data[len - 1];
91
- assert(last != 0);
92
- for (; padding_bits < 7; padding_bits++) {
93
- if (last & (1 << padding_bits)) {
94
- break;
95
- }
96
- }
82
+ // TODO(https://crbug.com/boringssl/447): If we move this logic to
83
+ // |ASN1_BIT_STRING_set_bit|, can we remove this representation?
84
+ while (len > 0 && str->data[len - 1] == 0) {
85
+ len--;
86
+ }
87
+ uint8_t padding_bits = 0;
88
+ if (len > 0) {
89
+ uint8_t last = str->data[len - 1];
90
+ assert(last != 0);
91
+ for (; padding_bits < 7; padding_bits++) {
92
+ if (last & (1 << padding_bits)) {
93
+ break;
94
+ }
97
95
  }
98
- *out_padding_bits = padding_bits;
99
- return len;
96
+ }
97
+ *out_padding_bits = padding_bits;
98
+ return len;
100
99
  }
101
100
 
102
101
  int ASN1_BIT_STRING_num_bytes(const ASN1_BIT_STRING *str, size_t *out) {
103
- uint8_t padding_bits;
104
- int len = asn1_bit_string_length(str, &padding_bits);
105
- if (padding_bits != 0) {
106
- return 0;
107
- }
108
- *out = len;
109
- return 1;
102
+ uint8_t padding_bits;
103
+ int len = asn1_bit_string_length(str, &padding_bits);
104
+ if (padding_bits != 0) {
105
+ return 0;
106
+ }
107
+ *out = len;
108
+ return 1;
110
109
  }
111
110
 
112
- int i2c_ASN1_BIT_STRING(const ASN1_BIT_STRING *a, unsigned char **pp)
113
- {
114
- if (a == NULL) {
115
- return 0;
116
- }
111
+ int i2c_ASN1_BIT_STRING(const ASN1_BIT_STRING *a, unsigned char **pp) {
112
+ if (a == NULL) {
113
+ return 0;
114
+ }
117
115
 
118
- uint8_t bits;
119
- int len = asn1_bit_string_length(a, &bits);
120
- int ret = 1 + len;
121
- if (pp == NULL) {
122
- return ret;
123
- }
116
+ uint8_t bits;
117
+ int len = asn1_bit_string_length(a, &bits);
118
+ int ret = 1 + len;
119
+ if (pp == NULL) {
120
+ return ret;
121
+ }
124
122
 
125
- uint8_t *p = *pp;
126
- *(p++) = bits;
127
- OPENSSL_memcpy(p, a->data, len);
128
- if (len > 0) {
129
- p[len - 1] &= (0xff << bits);
130
- }
131
- p += len;
132
- *pp = p;
133
- return (ret);
123
+ uint8_t *p = *pp;
124
+ *(p++) = bits;
125
+ OPENSSL_memcpy(p, a->data, len);
126
+ if (len > 0) {
127
+ p[len - 1] &= (0xff << bits);
128
+ }
129
+ p += len;
130
+ *pp = p;
131
+ return ret;
134
132
  }
135
133
 
136
134
  ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,
137
- const unsigned char **pp, long len)
138
- {
139
- ASN1_BIT_STRING *ret = NULL;
140
- const unsigned char *p;
141
- unsigned char *s;
142
- int padding;
135
+ const unsigned char **pp, long len) {
136
+ ASN1_BIT_STRING *ret = NULL;
137
+ const unsigned char *p;
138
+ unsigned char *s;
139
+ int padding;
143
140
 
144
- if (len < 1) {
145
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_SHORT);
146
- goto err;
147
- }
141
+ if (len < 1) {
142
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_SHORT);
143
+ goto err;
144
+ }
148
145
 
149
- if (len > INT_MAX) {
150
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_LONG);
151
- goto err;
152
- }
146
+ if (len > INT_MAX) {
147
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_LONG);
148
+ goto err;
149
+ }
153
150
 
154
- if ((a == NULL) || ((*a) == NULL)) {
155
- if ((ret = ASN1_BIT_STRING_new()) == NULL)
156
- return (NULL);
157
- } else
158
- ret = (*a);
159
-
160
- p = *pp;
161
- padding = *(p++);
162
- len--;
163
- if (padding > 7) {
164
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT);
165
- goto err;
151
+ if ((a == NULL) || ((*a) == NULL)) {
152
+ if ((ret = ASN1_BIT_STRING_new()) == NULL) {
153
+ return NULL;
166
154
  }
155
+ } else {
156
+ ret = (*a);
157
+ }
167
158
 
168
- /* Unused bits in a BIT STRING must be zero. */
169
- uint8_t padding_mask = (1 << padding) - 1;
170
- if (padding != 0 &&
171
- (len < 1 || (p[len - 1] & padding_mask) != 0)) {
172
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BIT_STRING_PADDING);
173
- goto err;
174
- }
159
+ p = *pp;
160
+ padding = *(p++);
161
+ len--;
162
+ if (padding > 7) {
163
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT);
164
+ goto err;
165
+ }
175
166
 
176
- /*
177
- * We do this to preserve the settings. If we modify the settings, via
178
- * the _set_bit function, we will recalculate on output
179
- */
180
- ret->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); /* clear */
181
- ret->flags |= (ASN1_STRING_FLAG_BITS_LEFT | padding); /* set */
167
+ // Unused bits in a BIT STRING must be zero.
168
+ uint8_t padding_mask = (1 << padding) - 1;
169
+ if (padding != 0 && (len < 1 || (p[len - 1] & padding_mask) != 0)) {
170
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BIT_STRING_PADDING);
171
+ goto err;
172
+ }
182
173
 
183
- if (len > 0) {
184
- s = OPENSSL_memdup(p, len);
185
- if (s == NULL) {
186
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
187
- goto err;
188
- }
189
- p += len;
190
- } else {
191
- s = NULL;
174
+ // We do this to preserve the settings. If we modify the settings, via
175
+ // the _set_bit function, we will recalculate on output
176
+ ret->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); // clear
177
+ ret->flags |= (ASN1_STRING_FLAG_BITS_LEFT | padding); // set
178
+
179
+ if (len > 0) {
180
+ s = OPENSSL_memdup(p, len);
181
+ if (s == NULL) {
182
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
183
+ goto err;
192
184
  }
185
+ p += len;
186
+ } else {
187
+ s = NULL;
188
+ }
193
189
 
194
- ret->length = (int)len;
195
- OPENSSL_free(ret->data);
196
- ret->data = s;
197
- ret->type = V_ASN1_BIT_STRING;
198
- if (a != NULL)
199
- (*a) = ret;
200
- *pp = p;
201
- return (ret);
202
- err:
203
- if ((ret != NULL) && ((a == NULL) || (*a != ret)))
204
- ASN1_BIT_STRING_free(ret);
205
- return (NULL);
190
+ ret->length = (int)len;
191
+ OPENSSL_free(ret->data);
192
+ ret->data = s;
193
+ ret->type = V_ASN1_BIT_STRING;
194
+ if (a != NULL) {
195
+ (*a) = ret;
196
+ }
197
+ *pp = p;
198
+ return ret;
199
+ err:
200
+ if ((ret != NULL) && ((a == NULL) || (*a != ret))) {
201
+ ASN1_BIT_STRING_free(ret);
202
+ }
203
+ return NULL;
206
204
  }
207
205
 
208
- /*
209
- * These next 2 functions from Goetz Babin-Ebell <babinebell@trustcenter.de>
210
- */
211
- int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
212
- {
213
- int w, v, iv;
214
- unsigned char *c;
206
+ // These next 2 functions from Goetz Babin-Ebell <babinebell@trustcenter.de>
207
+ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value) {
208
+ int w, v, iv;
209
+ unsigned char *c;
215
210
 
216
- w = n / 8;
217
- v = 1 << (7 - (n & 0x07));
218
- iv = ~v;
219
- if (!value)
220
- v = 0;
211
+ w = n / 8;
212
+ v = 1 << (7 - (n & 0x07));
213
+ iv = ~v;
214
+ if (!value) {
215
+ v = 0;
216
+ }
221
217
 
222
- if (a == NULL)
223
- return 0;
218
+ if (a == NULL) {
219
+ return 0;
220
+ }
224
221
 
225
- a->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); /* clear, set on write */
222
+ a->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); // clear, set on write
226
223
 
227
- if ((a->length < (w + 1)) || (a->data == NULL)) {
228
- if (!value)
229
- return (1); /* Don't need to set */
230
- if (a->data == NULL)
231
- c = (unsigned char *)OPENSSL_malloc(w + 1);
232
- else
233
- c = (unsigned char *)OPENSSL_realloc(a->data, w + 1);
234
- if (c == NULL) {
235
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
236
- return 0;
237
- }
238
- if (w + 1 - a->length > 0)
239
- OPENSSL_memset(c + a->length, 0, w + 1 - a->length);
240
- a->data = c;
241
- a->length = w + 1;
224
+ if ((a->length < (w + 1)) || (a->data == NULL)) {
225
+ if (!value) {
226
+ return 1; // Don't need to set
242
227
  }
243
- a->data[w] = ((a->data[w]) & iv) | v;
244
- while ((a->length > 0) && (a->data[a->length - 1] == 0))
245
- a->length--;
246
- return (1);
228
+ if (a->data == NULL) {
229
+ c = (unsigned char *)OPENSSL_malloc(w + 1);
230
+ } else {
231
+ c = (unsigned char *)OPENSSL_realloc(a->data, w + 1);
232
+ }
233
+ if (c == NULL) {
234
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
235
+ return 0;
236
+ }
237
+ if (w + 1 - a->length > 0) {
238
+ OPENSSL_memset(c + a->length, 0, w + 1 - a->length);
239
+ }
240
+ a->data = c;
241
+ a->length = w + 1;
242
+ }
243
+ a->data[w] = ((a->data[w]) & iv) | v;
244
+ while ((a->length > 0) && (a->data[a->length - 1] == 0)) {
245
+ a->length--;
246
+ }
247
+ return 1;
247
248
  }
248
249
 
249
- int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
250
- {
251
- int w, v;
250
+ int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n) {
251
+ int w, v;
252
252
 
253
- w = n / 8;
254
- v = 1 << (7 - (n & 0x07));
255
- if ((a == NULL) || (a->length < (w + 1)) || (a->data == NULL))
256
- return (0);
257
- return ((a->data[w] & v) != 0);
253
+ w = n / 8;
254
+ v = 1 << (7 - (n & 0x07));
255
+ if ((a == NULL) || (a->length < (w + 1)) || (a->data == NULL)) {
256
+ return 0;
257
+ }
258
+ return ((a->data[w] & v) != 0);
258
259
  }
259
260
 
260
- /*
261
- * Checks if the given bit string contains only bits specified by
262
- * the flags vector. Returns 0 if there is at least one bit set in 'a'
263
- * which is not specified in 'flags', 1 otherwise.
264
- * 'len' is the length of 'flags'.
265
- */
266
- int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a,
267
- const unsigned char *flags, int flags_len)
268
- {
269
- int i, ok;
270
- /* Check if there is one bit set at all. */
271
- if (!a || !a->data)
272
- return 1;
261
+ // Checks if the given bit string contains only bits specified by
262
+ // the flags vector. Returns 0 if there is at least one bit set in 'a'
263
+ // which is not specified in 'flags', 1 otherwise.
264
+ // 'len' is the length of 'flags'.
265
+ int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, const unsigned char *flags,
266
+ int flags_len) {
267
+ int i, ok;
268
+ // Check if there is one bit set at all.
269
+ if (!a || !a->data) {
270
+ return 1;
271
+ }
273
272
 
274
- /*
275
- * Check each byte of the internal representation of the bit string.
276
- */
277
- ok = 1;
278
- for (i = 0; i < a->length && ok; ++i) {
279
- unsigned char mask = i < flags_len ? ~flags[i] : 0xff;
280
- /* We are done if there is an unneeded bit set. */
281
- ok = (a->data[i] & mask) == 0;
282
- }
283
- return ok;
273
+ // Check each byte of the internal representation of the bit string.
274
+ ok = 1;
275
+ for (i = 0; i < a->length && ok; ++i) {
276
+ unsigned char mask = i < flags_len ? ~flags[i] : 0xff;
277
+ // We are done if there is an unneeded bit set.
278
+ ok = (a->data[i] & mask) == 0;
279
+ }
280
+ return ok;
284
281
  }
@@ -59,64 +59,62 @@
59
59
  #include <openssl/err.h>
60
60
  #include <openssl/mem.h>
61
61
 
62
- int i2d_ASN1_BOOLEAN(ASN1_BOOLEAN a, unsigned char **pp)
63
- {
64
- int r;
65
- unsigned char *p, *allocated = NULL;
62
+ int i2d_ASN1_BOOLEAN(ASN1_BOOLEAN a, unsigned char **pp) {
63
+ int r;
64
+ unsigned char *p, *allocated = NULL;
66
65
 
67
- r = ASN1_object_size(0, 1, V_ASN1_BOOLEAN);
68
- if (pp == NULL)
69
- return (r);
66
+ r = ASN1_object_size(0, 1, V_ASN1_BOOLEAN);
67
+ if (pp == NULL) {
68
+ return r;
69
+ }
70
70
 
71
- if (*pp == NULL) {
72
- if ((p = allocated = OPENSSL_malloc(r)) == NULL) {
73
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
74
- return -1;
75
- }
76
- } else {
77
- p = *pp;
71
+ if (*pp == NULL) {
72
+ if ((p = allocated = OPENSSL_malloc(r)) == NULL) {
73
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
74
+ return -1;
78
75
  }
76
+ } else {
77
+ p = *pp;
78
+ }
79
79
 
80
- ASN1_put_object(&p, 0, 1, V_ASN1_BOOLEAN, V_ASN1_UNIVERSAL);
81
- *p = a ? 0xff : 0x00;
80
+ ASN1_put_object(&p, 0, 1, V_ASN1_BOOLEAN, V_ASN1_UNIVERSAL);
81
+ *p = a ? 0xff : 0x00;
82
82
 
83
- /*
84
- * If a new buffer was allocated, just return it back.
85
- * If not, return the incremented buffer pointer.
86
- */
87
- *pp = allocated != NULL ? allocated : p + 1;
88
- return r;
83
+ // If a new buffer was allocated, just return it back.
84
+ // If not, return the incremented buffer pointer.
85
+ *pp = allocated != NULL ? allocated : p + 1;
86
+ return r;
89
87
  }
90
88
 
91
89
  ASN1_BOOLEAN d2i_ASN1_BOOLEAN(ASN1_BOOLEAN *a, const unsigned char **pp,
92
90
  long length) {
93
- const unsigned char *p = *pp;
94
- long len;
95
- int inf, tag, xclass;
96
- inf = ASN1_get_object(&p, &len, &tag, &xclass, length);
97
- if (inf & 0x80) {
98
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
99
- return -1;
100
- }
91
+ const unsigned char *p = *pp;
92
+ long len;
93
+ int inf, tag, xclass;
94
+ inf = ASN1_get_object(&p, &len, &tag, &xclass, length);
95
+ if (inf & 0x80) {
96
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
97
+ return -1;
98
+ }
101
99
 
102
- if (inf & V_ASN1_CONSTRUCTED) {
103
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
104
- return -1;
105
- }
100
+ if (inf & V_ASN1_CONSTRUCTED) {
101
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
102
+ return -1;
103
+ }
106
104
 
107
- if (tag != V_ASN1_BOOLEAN || xclass != V_ASN1_UNIVERSAL) {
108
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPECTING_A_BOOLEAN);
109
- return -1;
110
- }
105
+ if (tag != V_ASN1_BOOLEAN || xclass != V_ASN1_UNIVERSAL) {
106
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPECTING_A_BOOLEAN);
107
+ return -1;
108
+ }
111
109
 
112
- if (len != 1) {
113
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH);
114
- return -1;
115
- }
116
- ASN1_BOOLEAN ret = (ASN1_BOOLEAN)*(p++);
117
- if (a != NULL) {
118
- (*a) = ret;
119
- }
120
- *pp = p;
121
- return ret;
110
+ if (len != 1) {
111
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH);
112
+ return -1;
113
+ }
114
+ ASN1_BOOLEAN ret = (ASN1_BOOLEAN) * (p++);
115
+ if (a != NULL) {
116
+ (*a) = ret;
117
+ }
118
+ *pp = p;
119
+ return ret;
122
120
  }
@@ -63,29 +63,27 @@
63
63
  #include <openssl/mem.h>
64
64
 
65
65
 
66
- void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
67
- {
68
- uint8_t *data;
69
- size_t len;
70
- // Historically, this function did not impose a limit in OpenSSL and is used
71
- // to read CRLs, so we leave this without an external bound.
72
- if (!BIO_read_asn1(in, &data, &len, INT_MAX)) {
73
- return NULL;
74
- }
75
- const uint8_t *ptr = data;
76
- void *ret = ASN1_item_d2i(x, &ptr, len, it);
77
- OPENSSL_free(data);
78
- return ret;
66
+ void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x) {
67
+ uint8_t *data;
68
+ size_t len;
69
+ // Historically, this function did not impose a limit in OpenSSL and is used
70
+ // to read CRLs, so we leave this without an external bound.
71
+ if (!BIO_read_asn1(in, &data, &len, INT_MAX)) {
72
+ return NULL;
73
+ }
74
+ const uint8_t *ptr = data;
75
+ void *ret = ASN1_item_d2i(x, &ptr, len, it);
76
+ OPENSSL_free(data);
77
+ return ret;
79
78
  }
80
79
 
81
- void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
82
- {
83
- BIO *b = BIO_new_fp(in, BIO_NOCLOSE);
84
- if (b == NULL) {
85
- OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
86
- return NULL;
87
- }
88
- void *ret = ASN1_item_d2i_bio(it, b, x);
89
- BIO_free(b);
90
- return ret;
80
+ void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x) {
81
+ BIO *b = BIO_new_fp(in, BIO_NOCLOSE);
82
+ if (b == NULL) {
83
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
84
+ return NULL;
85
+ }
86
+ void *ret = ASN1_item_d2i_bio(it, b, x);
87
+ BIO_free(b);
88
+ return ret;
91
89
  }
@@ -59,29 +59,27 @@
59
59
  #include <openssl/err.h>
60
60
  #include <openssl/mem.h>
61
61
 
62
- /*
63
- * ASN1_ITEM version of dup: this follows the model above except we don't
64
- * need to allocate the buffer. At some point this could be rewritten to
65
- * directly dup the underlying structure instead of doing and encode and
66
- * decode.
67
- */
68
- void *ASN1_item_dup(const ASN1_ITEM *it, void *x)
69
- {
70
- unsigned char *b = NULL;
71
- const unsigned char *p;
72
- long i;
73
- void *ret;
62
+ // ASN1_ITEM version of dup: this follows the model above except we don't
63
+ // need to allocate the buffer. At some point this could be rewritten to
64
+ // directly dup the underlying structure instead of doing and encode and
65
+ // decode.
66
+ void *ASN1_item_dup(const ASN1_ITEM *it, void *x) {
67
+ unsigned char *b = NULL;
68
+ const unsigned char *p;
69
+ long i;
70
+ void *ret;
74
71
 
75
- if (x == NULL)
76
- return (NULL);
72
+ if (x == NULL) {
73
+ return NULL;
74
+ }
77
75
 
78
- i = ASN1_item_i2d(x, &b, it);
79
- if (b == NULL) {
80
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
81
- return (NULL);
82
- }
83
- p = b;
84
- ret = ASN1_item_d2i(NULL, &p, i, it);
85
- OPENSSL_free(b);
86
- return (ret);
76
+ i = ASN1_item_i2d(x, &b, it);
77
+ if (b == NULL) {
78
+ OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
79
+ return NULL;
80
+ }
81
+ p = b;
82
+ ret = ASN1_item_d2i(NULL, &p, i, it);
83
+ OPENSSL_free(b);
84
+ return ret;
87
85
  }