@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
@@ -55,7 +55,7 @@
55
55
  * (eay@cryptsoft.com). This product includes software written by Tim
56
56
  * Hudson (tjh@cryptsoft.com). */
57
57
 
58
- /* extension creation utilities */
58
+ // extension creation utilities
59
59
 
60
60
  #include <ctype.h>
61
61
  #include <stdio.h>
@@ -79,390 +79,391 @@ static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,
79
79
  static X509_EXTENSION *v3_generic_extension(const char *ext, const char *value,
80
80
  int crit, int type,
81
81
  X509V3_CTX *ctx);
82
- static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,
83
- int ext_nid, int crit, void *ext_struc);
82
+ static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method, int ext_nid,
83
+ int crit, void *ext_struc);
84
84
  static unsigned char *generic_asn1(const char *value, X509V3_CTX *ctx,
85
85
  long *ext_len);
86
- /* CONF *conf: Config file */
87
- /* char *name: Name */
88
- /* char *value: Value */
86
+ // CONF *conf: Config file
87
+ // char *name: Name
88
+ // char *value: Value
89
89
  X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name,
90
- const char *value)
91
- {
92
- int crit;
93
- int ext_type;
94
- X509_EXTENSION *ret;
95
- crit = v3_check_critical(&value);
96
- if ((ext_type = v3_check_generic(&value)))
97
- return v3_generic_extension(name, value, crit, ext_type, ctx);
98
- ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value);
99
- if (!ret) {
100
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_IN_EXTENSION);
101
- ERR_add_error_data(4, "name=", name, ", value=", value);
102
- }
103
- return ret;
90
+ const char *value) {
91
+ int crit;
92
+ int ext_type;
93
+ X509_EXTENSION *ret;
94
+ crit = v3_check_critical(&value);
95
+ if ((ext_type = v3_check_generic(&value))) {
96
+ return v3_generic_extension(name, value, crit, ext_type, ctx);
97
+ }
98
+ ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value);
99
+ if (!ret) {
100
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_IN_EXTENSION);
101
+ ERR_add_error_data(4, "name=", name, ", value=", value);
102
+ }
103
+ return ret;
104
104
  }
105
105
 
106
- /* CONF *conf: Config file */
107
- /* char *value: Value */
106
+ // CONF *conf: Config file
107
+ // char *value: Value
108
108
  X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid,
109
- const char *value)
110
- {
111
- int crit;
112
- int ext_type;
113
- crit = v3_check_critical(&value);
114
- if ((ext_type = v3_check_generic(&value)))
115
- return v3_generic_extension(OBJ_nid2sn(ext_nid),
116
- value, crit, ext_type, ctx);
117
- return do_ext_nconf(conf, ctx, ext_nid, crit, value);
109
+ const char *value) {
110
+ int crit;
111
+ int ext_type;
112
+ crit = v3_check_critical(&value);
113
+ if ((ext_type = v3_check_generic(&value))) {
114
+ return v3_generic_extension(OBJ_nid2sn(ext_nid), value, crit, ext_type,
115
+ ctx);
116
+ }
117
+ return do_ext_nconf(conf, ctx, ext_nid, crit, value);
118
118
  }
119
119
 
120
- /* CONF *conf: Config file */
121
- /* char *value: Value */
120
+ // CONF *conf: Config file
121
+ // char *value: Value
122
122
  static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,
123
- int crit, const char *value)
124
- {
125
- const X509V3_EXT_METHOD *method;
126
- X509_EXTENSION *ext;
127
- STACK_OF(CONF_VALUE) *nval;
128
- void *ext_struc;
129
- if (ext_nid == NID_undef) {
130
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME);
131
- return NULL;
123
+ int crit, const char *value) {
124
+ const X509V3_EXT_METHOD *method;
125
+ X509_EXTENSION *ext;
126
+ STACK_OF(CONF_VALUE) *nval;
127
+ void *ext_struc;
128
+ if (ext_nid == NID_undef) {
129
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME);
130
+ return NULL;
131
+ }
132
+ if (!(method = X509V3_EXT_get_nid(ext_nid))) {
133
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
134
+ return NULL;
135
+ }
136
+ // Now get internal extension representation based on type
137
+ if (method->v2i) {
138
+ if (*value == '@') {
139
+ nval = NCONF_get_section(conf, value + 1);
140
+ } else {
141
+ nval = X509V3_parse_list(value);
132
142
  }
133
- if (!(method = X509V3_EXT_get_nid(ext_nid))) {
134
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
135
- return NULL;
143
+ if (nval == NULL || sk_CONF_VALUE_num(nval) <= 0) {
144
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_EXTENSION_STRING);
145
+ ERR_add_error_data(4, "name=", OBJ_nid2sn(ext_nid), ",section=", value);
146
+ if (*value != '@') {
147
+ sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
148
+ }
149
+ return NULL;
136
150
  }
137
- /* Now get internal extension representation based on type */
138
- if (method->v2i) {
139
- if (*value == '@')
140
- nval = NCONF_get_section(conf, value + 1);
141
- else
142
- nval = X509V3_parse_list(value);
143
- if (nval == NULL || sk_CONF_VALUE_num(nval) <= 0) {
144
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_EXTENSION_STRING);
145
- ERR_add_error_data(4, "name=", OBJ_nid2sn(ext_nid), ",section=",
146
- value);
147
- if (*value != '@')
148
- sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
149
- return NULL;
150
- }
151
- ext_struc = method->v2i(method, ctx, nval);
152
- if (*value != '@')
153
- sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
154
- if (!ext_struc)
155
- return NULL;
156
- } else if (method->s2i) {
157
- if (!(ext_struc = method->s2i(method, ctx, value)))
158
- return NULL;
159
- } else if (method->r2i) {
160
- if (!ctx->db || !ctx->db_meth) {
161
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_NO_CONFIG_DATABASE);
162
- return NULL;
163
- }
164
- if (!(ext_struc = method->r2i(method, ctx, value)))
165
- return NULL;
166
- } else {
167
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
168
- ERR_add_error_data(2, "name=", OBJ_nid2sn(ext_nid));
169
- return NULL;
151
+ ext_struc = method->v2i(method, ctx, nval);
152
+ if (*value != '@') {
153
+ sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
170
154
  }
171
-
172
- ext = do_ext_i2d(method, ext_nid, crit, ext_struc);
173
- if (method->it)
174
- ASN1_item_free(ext_struc, ASN1_ITEM_ptr(method->it));
175
- else
176
- method->ext_free(ext_struc);
177
- return ext;
178
-
179
- }
180
-
181
- static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,
182
- int ext_nid, int crit, void *ext_struc)
183
- {
184
- unsigned char *ext_der;
185
- int ext_len;
186
- ASN1_OCTET_STRING *ext_oct;
187
- X509_EXTENSION *ext;
188
- /* Convert internal representation to DER */
189
- if (method->it) {
190
- ext_der = NULL;
191
- ext_len =
192
- ASN1_item_i2d(ext_struc, &ext_der, ASN1_ITEM_ptr(method->it));
193
- if (ext_len < 0)
194
- goto merr;
195
- } else {
196
- unsigned char *p;
197
- ext_len = method->i2d(ext_struc, NULL);
198
- if (!(ext_der = OPENSSL_malloc(ext_len)))
199
- goto merr;
200
- p = ext_der;
201
- method->i2d(ext_struc, &p);
155
+ if (!ext_struc) {
156
+ return NULL;
202
157
  }
203
- if (!(ext_oct = ASN1_OCTET_STRING_new()))
204
- goto merr;
205
- ext_oct->data = ext_der;
206
- ext_oct->length = ext_len;
207
-
208
- ext = X509_EXTENSION_create_by_NID(NULL, ext_nid, crit, ext_oct);
209
- if (!ext)
210
- goto merr;
211
- ASN1_OCTET_STRING_free(ext_oct);
212
-
213
- return ext;
214
-
215
- merr:
216
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
158
+ } else if (method->s2i) {
159
+ if (!(ext_struc = method->s2i(method, ctx, value))) {
160
+ return NULL;
161
+ }
162
+ } else if (method->r2i) {
163
+ if (!ctx->db || !ctx->db_meth) {
164
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_NO_CONFIG_DATABASE);
165
+ return NULL;
166
+ }
167
+ if (!(ext_struc = method->r2i(method, ctx, value))) {
168
+ return NULL;
169
+ }
170
+ } else {
171
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
172
+ ERR_add_error_data(2, "name=", OBJ_nid2sn(ext_nid));
217
173
  return NULL;
174
+ }
175
+
176
+ ext = do_ext_i2d(method, ext_nid, crit, ext_struc);
177
+ if (method->it) {
178
+ ASN1_item_free(ext_struc, ASN1_ITEM_ptr(method->it));
179
+ } else {
180
+ method->ext_free(ext_struc);
181
+ }
182
+ return ext;
183
+ }
218
184
 
185
+ static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method, int ext_nid,
186
+ int crit, void *ext_struc) {
187
+ unsigned char *ext_der;
188
+ int ext_len;
189
+ ASN1_OCTET_STRING *ext_oct;
190
+ X509_EXTENSION *ext;
191
+ // Convert internal representation to DER
192
+ if (method->it) {
193
+ ext_der = NULL;
194
+ ext_len = ASN1_item_i2d(ext_struc, &ext_der, ASN1_ITEM_ptr(method->it));
195
+ if (ext_len < 0) {
196
+ goto merr;
197
+ }
198
+ } else {
199
+ unsigned char *p;
200
+ ext_len = method->i2d(ext_struc, NULL);
201
+ if (!(ext_der = OPENSSL_malloc(ext_len))) {
202
+ goto merr;
203
+ }
204
+ p = ext_der;
205
+ method->i2d(ext_struc, &p);
206
+ }
207
+ if (!(ext_oct = ASN1_OCTET_STRING_new())) {
208
+ goto merr;
209
+ }
210
+ ext_oct->data = ext_der;
211
+ ext_oct->length = ext_len;
212
+
213
+ ext = X509_EXTENSION_create_by_NID(NULL, ext_nid, crit, ext_oct);
214
+ if (!ext) {
215
+ goto merr;
216
+ }
217
+ ASN1_OCTET_STRING_free(ext_oct);
218
+
219
+ return ext;
220
+
221
+ merr:
222
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
223
+ return NULL;
219
224
  }
220
225
 
221
- /* Given an internal structure, nid and critical flag create an extension */
226
+ // Given an internal structure, nid and critical flag create an extension
222
227
 
223
- X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
224
- {
225
- const X509V3_EXT_METHOD *method;
226
- if (!(method = X509V3_EXT_get_nid(ext_nid))) {
227
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
228
- return NULL;
229
- }
230
- return do_ext_i2d(method, ext_nid, crit, ext_struc);
228
+ X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc) {
229
+ const X509V3_EXT_METHOD *method;
230
+ if (!(method = X509V3_EXT_get_nid(ext_nid))) {
231
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
232
+ return NULL;
233
+ }
234
+ return do_ext_i2d(method, ext_nid, crit, ext_struc);
231
235
  }
232
236
 
233
- /* Check the extension string for critical flag */
234
- static int v3_check_critical(const char **value)
235
- {
236
- const char *p = *value;
237
- if ((strlen(p) < 9) || strncmp(p, "critical,", 9))
238
- return 0;
239
- p += 9;
240
- while (isspace((unsigned char)*p))
241
- p++;
242
- *value = p;
243
- return 1;
237
+ // Check the extension string for critical flag
238
+ static int v3_check_critical(const char **value) {
239
+ const char *p = *value;
240
+ if ((strlen(p) < 9) || strncmp(p, "critical,", 9)) {
241
+ return 0;
242
+ }
243
+ p += 9;
244
+ while (isspace((unsigned char)*p)) {
245
+ p++;
246
+ }
247
+ *value = p;
248
+ return 1;
244
249
  }
245
250
 
246
- /* Check extension string for generic extension and return the type */
247
- static int v3_check_generic(const char **value)
248
- {
249
- int gen_type = 0;
250
- const char *p = *value;
251
- if ((strlen(p) >= 4) && !strncmp(p, "DER:", 4)) {
252
- p += 4;
253
- gen_type = 1;
254
- } else if ((strlen(p) >= 5) && !strncmp(p, "ASN1:", 5)) {
255
- p += 5;
256
- gen_type = 2;
257
- } else
258
- return 0;
259
-
260
- while (isspace((unsigned char)*p))
261
- p++;
262
- *value = p;
263
- return gen_type;
251
+ // Check extension string for generic extension and return the type
252
+ static int v3_check_generic(const char **value) {
253
+ int gen_type = 0;
254
+ const char *p = *value;
255
+ if ((strlen(p) >= 4) && !strncmp(p, "DER:", 4)) {
256
+ p += 4;
257
+ gen_type = 1;
258
+ } else if ((strlen(p) >= 5) && !strncmp(p, "ASN1:", 5)) {
259
+ p += 5;
260
+ gen_type = 2;
261
+ } else {
262
+ return 0;
263
+ }
264
+
265
+ while (isspace((unsigned char)*p)) {
266
+ p++;
267
+ }
268
+ *value = p;
269
+ return gen_type;
264
270
  }
265
271
 
266
- /* Create a generic extension: for now just handle DER type */
272
+ // Create a generic extension: for now just handle DER type
267
273
  static X509_EXTENSION *v3_generic_extension(const char *ext, const char *value,
268
274
  int crit, int gen_type,
269
- X509V3_CTX *ctx)
270
- {
271
- unsigned char *ext_der = NULL;
272
- long ext_len = 0;
273
- ASN1_OBJECT *obj = NULL;
274
- ASN1_OCTET_STRING *oct = NULL;
275
- X509_EXTENSION *extension = NULL;
276
- if (!(obj = OBJ_txt2obj(ext, 0))) {
277
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NAME_ERROR);
278
- ERR_add_error_data(2, "name=", ext);
279
- goto err;
280
- }
281
-
282
- if (gen_type == 1)
283
- ext_der = x509v3_hex_to_bytes(value, &ext_len);
284
- else if (gen_type == 2)
285
- ext_der = generic_asn1(value, ctx, &ext_len);
286
-
287
- if (ext_der == NULL) {
288
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_VALUE_ERROR);
289
- ERR_add_error_data(2, "value=", value);
290
- goto err;
291
- }
292
-
293
- if (!(oct = ASN1_OCTET_STRING_new())) {
294
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
295
- goto err;
296
- }
297
-
298
- oct->data = ext_der;
299
- oct->length = ext_len;
300
- ext_der = NULL;
301
-
302
- extension = X509_EXTENSION_create_by_OBJ(NULL, obj, crit, oct);
303
-
304
- err:
305
- ASN1_OBJECT_free(obj);
306
- ASN1_OCTET_STRING_free(oct);
307
- if (ext_der)
308
- OPENSSL_free(ext_der);
309
- return extension;
310
-
275
+ X509V3_CTX *ctx) {
276
+ unsigned char *ext_der = NULL;
277
+ long ext_len = 0;
278
+ ASN1_OBJECT *obj = NULL;
279
+ ASN1_OCTET_STRING *oct = NULL;
280
+ X509_EXTENSION *extension = NULL;
281
+ if (!(obj = OBJ_txt2obj(ext, 0))) {
282
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NAME_ERROR);
283
+ ERR_add_error_data(2, "name=", ext);
284
+ goto err;
285
+ }
286
+
287
+ if (gen_type == 1) {
288
+ ext_der = x509v3_hex_to_bytes(value, &ext_len);
289
+ } else if (gen_type == 2) {
290
+ ext_der = generic_asn1(value, ctx, &ext_len);
291
+ }
292
+
293
+ if (ext_der == NULL) {
294
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_VALUE_ERROR);
295
+ ERR_add_error_data(2, "value=", value);
296
+ goto err;
297
+ }
298
+
299
+ if (!(oct = ASN1_OCTET_STRING_new())) {
300
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
301
+ goto err;
302
+ }
303
+
304
+ oct->data = ext_der;
305
+ oct->length = ext_len;
306
+ ext_der = NULL;
307
+
308
+ extension = X509_EXTENSION_create_by_OBJ(NULL, obj, crit, oct);
309
+
310
+ err:
311
+ ASN1_OBJECT_free(obj);
312
+ ASN1_OCTET_STRING_free(oct);
313
+ if (ext_der) {
314
+ OPENSSL_free(ext_der);
315
+ }
316
+ return extension;
311
317
  }
312
318
 
313
319
  static unsigned char *generic_asn1(const char *value, X509V3_CTX *ctx,
314
- long *ext_len)
315
- {
316
- ASN1_TYPE *typ;
317
- unsigned char *ext_der = NULL;
318
- typ = ASN1_generate_v3(value, ctx);
319
- if (typ == NULL)
320
- return NULL;
321
- *ext_len = i2d_ASN1_TYPE(typ, &ext_der);
322
- ASN1_TYPE_free(typ);
323
- return ext_der;
320
+ long *ext_len) {
321
+ ASN1_TYPE *typ;
322
+ unsigned char *ext_der = NULL;
323
+ typ = ASN1_generate_v3(value, ctx);
324
+ if (typ == NULL) {
325
+ return NULL;
326
+ }
327
+ *ext_len = i2d_ASN1_TYPE(typ, &ext_der);
328
+ ASN1_TYPE_free(typ);
329
+ return ext_der;
324
330
  }
325
331
 
326
- /*
327
- * This is the main function: add a bunch of extensions based on a config
328
- * file section to an extension STACK.
329
- */
332
+ // This is the main function: add a bunch of extensions based on a config
333
+ // file section to an extension STACK.
330
334
 
331
335
  int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section,
332
- STACK_OF(X509_EXTENSION) **sk)
333
- {
334
- X509_EXTENSION *ext;
335
- STACK_OF(CONF_VALUE) *nval;
336
- CONF_VALUE *val;
337
- size_t i;
338
- if (!(nval = NCONF_get_section(conf, section)))
339
- return 0;
340
- for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
341
- val = sk_CONF_VALUE_value(nval, i);
342
- if (!(ext = X509V3_EXT_nconf(conf, ctx, val->name, val->value)))
343
- return 0;
344
- if (sk)
345
- X509v3_add_ext(sk, ext, -1);
346
- X509_EXTENSION_free(ext);
336
+ STACK_OF(X509_EXTENSION) **sk) {
337
+ X509_EXTENSION *ext;
338
+ STACK_OF(CONF_VALUE) *nval;
339
+ CONF_VALUE *val;
340
+ size_t i;
341
+ if (!(nval = NCONF_get_section(conf, section))) {
342
+ return 0;
343
+ }
344
+ for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
345
+ val = sk_CONF_VALUE_value(nval, i);
346
+ if (!(ext = X509V3_EXT_nconf(conf, ctx, val->name, val->value))) {
347
+ return 0;
348
+ }
349
+ if (sk) {
350
+ X509v3_add_ext(sk, ext, -1);
347
351
  }
348
- return 1;
352
+ X509_EXTENSION_free(ext);
353
+ }
354
+ return 1;
349
355
  }
350
356
 
351
- /*
352
- * Convenience functions to add extensions to a certificate, CRL and request
353
- */
357
+ // Convenience functions to add extensions to a certificate, CRL and request
354
358
 
355
359
  int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,
356
- X509 *cert)
357
- {
358
- STACK_OF(X509_EXTENSION) **sk = NULL;
359
- if (cert)
360
- sk = &cert->cert_info->extensions;
361
- return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
360
+ X509 *cert) {
361
+ STACK_OF(X509_EXTENSION) **sk = NULL;
362
+ if (cert) {
363
+ sk = &cert->cert_info->extensions;
364
+ }
365
+ return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
362
366
  }
363
367
 
364
- /* Same as above but for a CRL */
368
+ // Same as above but for a CRL
365
369
 
366
370
  int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,
367
- X509_CRL *crl)
368
- {
369
- STACK_OF(X509_EXTENSION) **sk = NULL;
370
- if (crl)
371
- sk = &crl->crl->extensions;
372
- return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
371
+ X509_CRL *crl) {
372
+ STACK_OF(X509_EXTENSION) **sk = NULL;
373
+ if (crl) {
374
+ sk = &crl->crl->extensions;
375
+ }
376
+ return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
373
377
  }
374
378
 
375
- /* Add extensions to certificate request */
379
+ // Add extensions to certificate request
376
380
 
377
381
  int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,
378
- X509_REQ *req)
379
- {
380
- STACK_OF(X509_EXTENSION) *extlist = NULL, **sk = NULL;
381
- int i;
382
- if (req)
383
- sk = &extlist;
384
- i = X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
385
- if (!i || !sk)
386
- return i;
387
- i = X509_REQ_add_extensions(req, extlist);
388
- sk_X509_EXTENSION_pop_free(extlist, X509_EXTENSION_free);
382
+ X509_REQ *req) {
383
+ STACK_OF(X509_EXTENSION) *extlist = NULL, **sk = NULL;
384
+ int i;
385
+ if (req) {
386
+ sk = &extlist;
387
+ }
388
+ i = X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
389
+ if (!i || !sk) {
389
390
  return i;
391
+ }
392
+ i = X509_REQ_add_extensions(req, extlist);
393
+ sk_X509_EXTENSION_pop_free(extlist, X509_EXTENSION_free);
394
+ return i;
390
395
  }
391
396
 
392
- /* Config database functions */
397
+ // Config database functions
393
398
 
394
- char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section)
395
- {
396
- if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string) {
397
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
398
- return NULL;
399
- }
400
- if (ctx->db_meth->get_string)
401
- return ctx->db_meth->get_string(ctx->db, name, section);
399
+ char *X509V3_get_string(X509V3_CTX *ctx, const char *name,
400
+ const char *section) {
401
+ if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string) {
402
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
402
403
  return NULL;
404
+ }
405
+ if (ctx->db_meth->get_string) {
406
+ return ctx->db_meth->get_string(ctx->db, name, section);
407
+ }
408
+ return NULL;
403
409
  }
404
410
 
405
- STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section)
406
- {
407
- if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section) {
408
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
409
- return NULL;
410
- }
411
- if (ctx->db_meth->get_section)
412
- return ctx->db_meth->get_section(ctx->db, section);
411
+ STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section) {
412
+ if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section) {
413
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
413
414
  return NULL;
415
+ }
416
+ if (ctx->db_meth->get_section) {
417
+ return ctx->db_meth->get_section(ctx->db, section);
418
+ }
419
+ return NULL;
414
420
  }
415
421
 
416
- void X509V3_string_free(X509V3_CTX *ctx, char *str)
417
- {
418
- if (!str)
419
- return;
420
- if (ctx->db_meth->free_string)
421
- ctx->db_meth->free_string(ctx->db, str);
422
+ void X509V3_string_free(X509V3_CTX *ctx, char *str) {
423
+ if (!str) {
424
+ return;
425
+ }
426
+ if (ctx->db_meth->free_string) {
427
+ ctx->db_meth->free_string(ctx->db, str);
428
+ }
422
429
  }
423
430
 
424
- void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section)
425
- {
426
- if (!section)
427
- return;
428
- if (ctx->db_meth->free_section)
429
- ctx->db_meth->free_section(ctx->db, section);
431
+ void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section) {
432
+ if (!section) {
433
+ return;
434
+ }
435
+ if (ctx->db_meth->free_section) {
436
+ ctx->db_meth->free_section(ctx->db, section);
437
+ }
430
438
  }
431
439
 
432
- static char *nconf_get_string(void *db, const char *section, const char *value)
433
- {
434
- /* TODO(fork): This returns a non-const pointer because |X509V3_CONF_METHOD|
435
- * allows |get_string| to return caller-owned pointers, provided they're
436
- * freed by |free_string|. |nconf_method| leaves |free_string| NULL, and
437
- * there are no other implementations of |X509V3_CONF_METHOD|, so this can
438
- * be simplified if we make it private. */
439
- return (char *)NCONF_get_string(db, section, value);
440
+ static char *nconf_get_string(void *db, const char *section,
441
+ const char *value) {
442
+ // TODO(fork): This returns a non-const pointer because |X509V3_CONF_METHOD|
443
+ // allows |get_string| to return caller-owned pointers, provided they're
444
+ // freed by |free_string|. |nconf_method| leaves |free_string| NULL, and
445
+ // there are no other implementations of |X509V3_CONF_METHOD|, so this can
446
+ // be simplified if we make it private.
447
+ return (char *)NCONF_get_string(db, section, value);
440
448
  }
441
449
 
442
- static STACK_OF(CONF_VALUE) *nconf_get_section(void *db, const char *section)
443
- {
444
- return NCONF_get_section(db, section);
450
+ static STACK_OF(CONF_VALUE) *nconf_get_section(void *db, const char *section) {
451
+ return NCONF_get_section(db, section);
445
452
  }
446
453
 
447
- static const X509V3_CONF_METHOD nconf_method = {
448
- nconf_get_string,
449
- nconf_get_section,
450
- NULL,
451
- NULL
452
- };
453
-
454
- void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
455
- {
456
- ctx->db_meth = &nconf_method;
457
- ctx->db = conf;
454
+ static const X509V3_CONF_METHOD nconf_method = {nconf_get_string,
455
+ nconf_get_section, NULL, NULL};
456
+
457
+ void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf) {
458
+ ctx->db_meth = &nconf_method;
459
+ ctx->db = conf;
458
460
  }
459
461
 
460
462
  void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subj, X509_REQ *req,
461
- X509_CRL *crl, int flags)
462
- {
463
- ctx->issuer_cert = issuer;
464
- ctx->subject_cert = subj;
465
- ctx->crl = crl;
466
- ctx->subject_req = req;
467
- ctx->flags = flags;
463
+ X509_CRL *crl, int flags) {
464
+ ctx->issuer_cert = issuer;
465
+ ctx->subject_cert = subj;
466
+ ctx->crl = crl;
467
+ ctx->subject_req = req;
468
+ ctx->flags = flags;
468
469
  }