@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
@@ -72,11 +72,9 @@ static int trust_compat(X509_TRUST *trust, X509 *x, int flags);
72
72
 
73
73
  static int obj_trust(int id, X509 *x, int flags);
74
74
 
75
- /*
76
- * WARNING: the following table should be kept in order of trust and without
77
- * any gaps so we can just subtract the minimum trust value to get an index
78
- * into the table
79
- */
75
+ // WARNING: the following table should be kept in order of trust and without
76
+ // any gaps so we can just subtract the minimum trust value to get an index
77
+ // into the table
80
78
 
81
79
  static X509_TRUST trstandard[] = {
82
80
  {X509_TRUST_COMPAT, 0, trust_compat, (char *)"compatible", 0, NULL},
@@ -93,230 +91,224 @@ static X509_TRUST trstandard[] = {
93
91
  {X509_TRUST_OCSP_REQUEST, 0, trust_1oid, (char *)"OCSP request",
94
92
  NID_ad_OCSP, NULL},
95
93
  {X509_TRUST_TSA, 0, trust_1oidany, (char *)"TSA server", NID_time_stamp,
96
- NULL}
97
- };
94
+ NULL}};
98
95
 
99
- #define X509_TRUST_COUNT (sizeof(trstandard)/sizeof(X509_TRUST))
96
+ #define X509_TRUST_COUNT (sizeof(trstandard) / sizeof(X509_TRUST))
100
97
 
101
98
  static STACK_OF(X509_TRUST) *trtable = NULL;
102
99
 
103
- static int tr_cmp(const X509_TRUST **a, const X509_TRUST **b)
104
- {
105
- return (*a)->trust - (*b)->trust;
100
+ static int tr_cmp(const X509_TRUST **a, const X509_TRUST **b) {
101
+ return (*a)->trust - (*b)->trust;
106
102
  }
107
103
 
108
- int X509_check_trust(X509 *x, int id, int flags)
109
- {
110
- X509_TRUST *pt;
111
- int idx;
112
- if (id == -1)
113
- return 1;
114
- /* We get this as a default value */
115
- if (id == 0) {
116
- int rv;
117
- rv = obj_trust(NID_anyExtendedKeyUsage, x, 0);
118
- if (rv != X509_TRUST_UNTRUSTED)
119
- return rv;
120
- return trust_compat(NULL, x, 0);
104
+ int X509_check_trust(X509 *x, int id, int flags) {
105
+ X509_TRUST *pt;
106
+ int idx;
107
+ if (id == -1) {
108
+ return 1;
109
+ }
110
+ // We get this as a default value
111
+ if (id == 0) {
112
+ int rv;
113
+ rv = obj_trust(NID_anyExtendedKeyUsage, x, 0);
114
+ if (rv != X509_TRUST_UNTRUSTED) {
115
+ return rv;
121
116
  }
122
- idx = X509_TRUST_get_by_id(id);
123
- if (idx == -1)
124
- return obj_trust(id, x, flags);
125
- pt = X509_TRUST_get0(idx);
126
- return pt->check_trust(pt, x, flags);
117
+ return trust_compat(NULL, x, 0);
118
+ }
119
+ idx = X509_TRUST_get_by_id(id);
120
+ if (idx == -1) {
121
+ return obj_trust(id, x, flags);
122
+ }
123
+ pt = X509_TRUST_get0(idx);
124
+ return pt->check_trust(pt, x, flags);
127
125
  }
128
126
 
129
- int X509_TRUST_get_count(void)
130
- {
131
- if (!trtable)
132
- return X509_TRUST_COUNT;
133
- return sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT;
127
+ int X509_TRUST_get_count(void) {
128
+ if (!trtable) {
129
+ return X509_TRUST_COUNT;
130
+ }
131
+ return sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT;
134
132
  }
135
133
 
136
- X509_TRUST *X509_TRUST_get0(int idx)
137
- {
138
- if (idx < 0)
139
- return NULL;
140
- if (idx < (int)X509_TRUST_COUNT)
141
- return trstandard + idx;
142
- return sk_X509_TRUST_value(trtable, idx - X509_TRUST_COUNT);
134
+ X509_TRUST *X509_TRUST_get0(int idx) {
135
+ if (idx < 0) {
136
+ return NULL;
137
+ }
138
+ if (idx < (int)X509_TRUST_COUNT) {
139
+ return trstandard + idx;
140
+ }
141
+ return sk_X509_TRUST_value(trtable, idx - X509_TRUST_COUNT);
143
142
  }
144
143
 
145
- int X509_TRUST_get_by_id(int id)
146
- {
147
- X509_TRUST tmp;
148
- size_t idx;
149
-
150
- if ((id >= X509_TRUST_MIN) && (id <= X509_TRUST_MAX))
151
- return id - X509_TRUST_MIN;
152
- tmp.trust = id;
153
- if (!trtable)
154
- return -1;
155
- sk_X509_TRUST_sort(trtable);
156
- if (!sk_X509_TRUST_find(trtable, &idx, &tmp)) {
157
- return -1;
158
- }
159
- return idx + X509_TRUST_COUNT;
144
+ int X509_TRUST_get_by_id(int id) {
145
+ X509_TRUST tmp;
146
+ size_t idx;
147
+
148
+ if ((id >= X509_TRUST_MIN) && (id <= X509_TRUST_MAX)) {
149
+ return id - X509_TRUST_MIN;
150
+ }
151
+ tmp.trust = id;
152
+ if (!trtable) {
153
+ return -1;
154
+ }
155
+ sk_X509_TRUST_sort(trtable);
156
+ if (!sk_X509_TRUST_find(trtable, &idx, &tmp)) {
157
+ return -1;
158
+ }
159
+ return idx + X509_TRUST_COUNT;
160
160
  }
161
161
 
162
- int X509_TRUST_set(int *t, int trust)
163
- {
164
- if (X509_TRUST_get_by_id(trust) == -1) {
165
- OPENSSL_PUT_ERROR(X509, X509_R_INVALID_TRUST);
166
- return 0;
167
- }
168
- *t = trust;
169
- return 1;
162
+ int X509_TRUST_set(int *t, int trust) {
163
+ if (X509_TRUST_get_by_id(trust) == -1) {
164
+ OPENSSL_PUT_ERROR(X509, X509_R_INVALID_TRUST);
165
+ return 0;
166
+ }
167
+ *t = trust;
168
+ return 1;
170
169
  }
171
170
 
172
- int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int),
173
- char *name, int arg1, void *arg2)
174
- {
175
- int idx;
176
- X509_TRUST *trtmp;
177
- char *name_dup;
178
-
179
- /*
180
- * This is set according to what we change: application can't set it
181
- */
182
- flags &= ~X509_TRUST_DYNAMIC;
183
- /* This will always be set for application modified trust entries */
184
- flags |= X509_TRUST_DYNAMIC_NAME;
185
- /* Get existing entry if any */
186
- idx = X509_TRUST_get_by_id(id);
187
- /* Need a new entry */
188
- if (idx == -1) {
189
- if (!(trtmp = OPENSSL_malloc(sizeof(X509_TRUST)))) {
190
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
191
- return 0;
192
- }
193
- trtmp->flags = X509_TRUST_DYNAMIC;
194
- } else
195
- trtmp = X509_TRUST_get0(idx);
196
-
197
- /* Duplicate the supplied name. */
198
- name_dup = OPENSSL_strdup(name);
199
- if (name_dup == NULL) {
200
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
201
- if (idx == -1)
202
- OPENSSL_free(trtmp);
203
- return 0;
171
+ int X509_TRUST_add(int id, int flags, int (*ck)(X509_TRUST *, X509 *, int),
172
+ char *name, int arg1, void *arg2) {
173
+ int idx;
174
+ X509_TRUST *trtmp;
175
+ char *name_dup;
176
+
177
+ // This is set according to what we change: application can't set it
178
+ flags &= ~X509_TRUST_DYNAMIC;
179
+ // This will always be set for application modified trust entries
180
+ flags |= X509_TRUST_DYNAMIC_NAME;
181
+ // Get existing entry if any
182
+ idx = X509_TRUST_get_by_id(id);
183
+ // Need a new entry
184
+ if (idx == -1) {
185
+ if (!(trtmp = OPENSSL_malloc(sizeof(X509_TRUST)))) {
186
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
187
+ return 0;
204
188
  }
205
-
206
- /* OPENSSL_free existing name if dynamic */
207
- if (trtmp->flags & X509_TRUST_DYNAMIC_NAME)
208
- OPENSSL_free(trtmp->name);
209
- trtmp->name = name_dup;
210
- /* Keep the dynamic flag of existing entry */
211
- trtmp->flags &= X509_TRUST_DYNAMIC;
212
- /* Set all other flags */
213
- trtmp->flags |= flags;
214
-
215
- trtmp->trust = id;
216
- trtmp->check_trust = ck;
217
- trtmp->arg1 = arg1;
218
- trtmp->arg2 = arg2;
219
-
220
- /* If its a new entry manage the dynamic table */
189
+ trtmp->flags = X509_TRUST_DYNAMIC;
190
+ } else {
191
+ trtmp = X509_TRUST_get0(idx);
192
+ }
193
+
194
+ // Duplicate the supplied name.
195
+ name_dup = OPENSSL_strdup(name);
196
+ if (name_dup == NULL) {
197
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
221
198
  if (idx == -1) {
222
- if (!trtable && !(trtable = sk_X509_TRUST_new(tr_cmp))) {
223
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
224
- trtable_free(trtmp);
225
- return 0;
226
- }
227
- if (!sk_X509_TRUST_push(trtable, trtmp)) {
228
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
229
- trtable_free(trtmp);
230
- return 0;
231
- }
199
+ OPENSSL_free(trtmp);
232
200
  }
233
- return 1;
201
+ return 0;
202
+ }
203
+
204
+ // OPENSSL_free existing name if dynamic
205
+ if (trtmp->flags & X509_TRUST_DYNAMIC_NAME) {
206
+ OPENSSL_free(trtmp->name);
207
+ }
208
+ trtmp->name = name_dup;
209
+ // Keep the dynamic flag of existing entry
210
+ trtmp->flags &= X509_TRUST_DYNAMIC;
211
+ // Set all other flags
212
+ trtmp->flags |= flags;
213
+
214
+ trtmp->trust = id;
215
+ trtmp->check_trust = ck;
216
+ trtmp->arg1 = arg1;
217
+ trtmp->arg2 = arg2;
218
+
219
+ // If its a new entry manage the dynamic table
220
+ if (idx == -1) {
221
+ if (!trtable && !(trtable = sk_X509_TRUST_new(tr_cmp))) {
222
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
223
+ trtable_free(trtmp);
224
+ return 0;
225
+ }
226
+ if (!sk_X509_TRUST_push(trtable, trtmp)) {
227
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
228
+ trtable_free(trtmp);
229
+ return 0;
230
+ }
231
+ }
232
+ return 1;
234
233
  }
235
234
 
236
- static void trtable_free(X509_TRUST *p)
237
- {
238
- if (!p)
239
- return;
240
- if (p->flags & X509_TRUST_DYNAMIC) {
241
- if (p->flags & X509_TRUST_DYNAMIC_NAME)
242
- OPENSSL_free(p->name);
243
- OPENSSL_free(p);
235
+ static void trtable_free(X509_TRUST *p) {
236
+ if (!p) {
237
+ return;
238
+ }
239
+ if (p->flags & X509_TRUST_DYNAMIC) {
240
+ if (p->flags & X509_TRUST_DYNAMIC_NAME) {
241
+ OPENSSL_free(p->name);
244
242
  }
243
+ OPENSSL_free(p);
244
+ }
245
245
  }
246
246
 
247
- void X509_TRUST_cleanup(void)
248
- {
249
- unsigned int i;
250
- for (i = 0; i < X509_TRUST_COUNT; i++)
251
- trtable_free(trstandard + i);
252
- sk_X509_TRUST_pop_free(trtable, trtable_free);
253
- trtable = NULL;
247
+ void X509_TRUST_cleanup(void) {
248
+ unsigned int i;
249
+ for (i = 0; i < X509_TRUST_COUNT; i++) {
250
+ trtable_free(trstandard + i);
251
+ }
252
+ sk_X509_TRUST_pop_free(trtable, trtable_free);
253
+ trtable = NULL;
254
254
  }
255
255
 
256
- int X509_TRUST_get_flags(const X509_TRUST *xp)
257
- {
258
- return xp->flags;
259
- }
256
+ int X509_TRUST_get_flags(const X509_TRUST *xp) { return xp->flags; }
260
257
 
261
- char *X509_TRUST_get0_name(const X509_TRUST *xp)
262
- {
263
- return xp->name;
264
- }
258
+ char *X509_TRUST_get0_name(const X509_TRUST *xp) { return xp->name; }
265
259
 
266
- int X509_TRUST_get_trust(const X509_TRUST *xp)
267
- {
268
- return xp->trust;
269
- }
260
+ int X509_TRUST_get_trust(const X509_TRUST *xp) { return xp->trust; }
270
261
 
271
- static int trust_1oidany(X509_TRUST *trust, X509 *x, int flags)
272
- {
273
- if (x->aux && (x->aux->trust || x->aux->reject))
274
- return obj_trust(trust->arg1, x, flags);
275
- /*
276
- * we don't have any trust settings: for compatibility we return trusted
277
- * if it is self signed
278
- */
279
- return trust_compat(trust, x, flags);
262
+ static int trust_1oidany(X509_TRUST *trust, X509 *x, int flags) {
263
+ if (x->aux && (x->aux->trust || x->aux->reject)) {
264
+ return obj_trust(trust->arg1, x, flags);
265
+ }
266
+ // we don't have any trust settings: for compatibility we return trusted
267
+ // if it is self signed
268
+ return trust_compat(trust, x, flags);
280
269
  }
281
270
 
282
- static int trust_1oid(X509_TRUST *trust, X509 *x, int flags)
283
- {
284
- if (x->aux)
285
- return obj_trust(trust->arg1, x, flags);
286
- return X509_TRUST_UNTRUSTED;
271
+ static int trust_1oid(X509_TRUST *trust, X509 *x, int flags) {
272
+ if (x->aux) {
273
+ return obj_trust(trust->arg1, x, flags);
274
+ }
275
+ return X509_TRUST_UNTRUSTED;
287
276
  }
288
277
 
289
- static int trust_compat(X509_TRUST *trust, X509 *x, int flags)
290
- {
291
- if (!x509v3_cache_extensions(x))
292
- return X509_TRUST_UNTRUSTED;
293
- if (x->ex_flags & EXFLAG_SS)
294
- return X509_TRUST_TRUSTED;
295
- else
296
- return X509_TRUST_UNTRUSTED;
278
+ static int trust_compat(X509_TRUST *trust, X509 *x, int flags) {
279
+ if (!x509v3_cache_extensions(x)) {
280
+ return X509_TRUST_UNTRUSTED;
281
+ }
282
+ if (x->ex_flags & EXFLAG_SS) {
283
+ return X509_TRUST_TRUSTED;
284
+ } else {
285
+ return X509_TRUST_UNTRUSTED;
286
+ }
297
287
  }
298
288
 
299
- static int obj_trust(int id, X509 *x, int flags)
300
- {
301
- ASN1_OBJECT *obj;
302
- size_t i;
303
- X509_CERT_AUX *ax;
304
- ax = x->aux;
305
- if (!ax)
306
- return X509_TRUST_UNTRUSTED;
307
- if (ax->reject) {
308
- for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
309
- obj = sk_ASN1_OBJECT_value(ax->reject, i);
310
- if (OBJ_obj2nid(obj) == id)
311
- return X509_TRUST_REJECTED;
312
- }
289
+ static int obj_trust(int id, X509 *x, int flags) {
290
+ ASN1_OBJECT *obj;
291
+ size_t i;
292
+ X509_CERT_AUX *ax;
293
+ ax = x->aux;
294
+ if (!ax) {
295
+ return X509_TRUST_UNTRUSTED;
296
+ }
297
+ if (ax->reject) {
298
+ for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
299
+ obj = sk_ASN1_OBJECT_value(ax->reject, i);
300
+ if (OBJ_obj2nid(obj) == id) {
301
+ return X509_TRUST_REJECTED;
302
+ }
313
303
  }
314
- if (ax->trust) {
315
- for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
316
- obj = sk_ASN1_OBJECT_value(ax->trust, i);
317
- if (OBJ_obj2nid(obj) == id)
318
- return X509_TRUST_TRUSTED;
319
- }
304
+ }
305
+ if (ax->trust) {
306
+ for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
307
+ obj = sk_ASN1_OBJECT_value(ax->trust, i);
308
+ if (OBJ_obj2nid(obj) == id) {
309
+ return X509_TRUST_TRUSTED;
310
+ }
320
311
  }
321
- return X509_TRUST_UNTRUSTED;
312
+ }
313
+ return X509_TRUST_UNTRUSTED;
322
314
  }
@@ -56,149 +56,147 @@
56
56
 
57
57
  #include <openssl/x509.h>
58
58
 
59
- const char *X509_verify_cert_error_string(long err)
60
- {
61
- switch (err) {
59
+ const char *X509_verify_cert_error_string(long err) {
60
+ switch (err) {
62
61
  case X509_V_OK:
63
- return "ok";
62
+ return "ok";
64
63
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
65
- return "unable to get issuer certificate";
64
+ return "unable to get issuer certificate";
66
65
  case X509_V_ERR_UNABLE_TO_GET_CRL:
67
- return "unable to get certificate CRL";
66
+ return "unable to get certificate CRL";
68
67
  case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
69
- return "unable to decrypt certificate's signature";
68
+ return "unable to decrypt certificate's signature";
70
69
  case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
71
- return "unable to decrypt CRL's signature";
70
+ return "unable to decrypt CRL's signature";
72
71
  case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
73
- return "unable to decode issuer public key";
72
+ return "unable to decode issuer public key";
74
73
  case X509_V_ERR_CERT_SIGNATURE_FAILURE:
75
- return "certificate signature failure";
74
+ return "certificate signature failure";
76
75
  case X509_V_ERR_CRL_SIGNATURE_FAILURE:
77
- return "CRL signature failure";
76
+ return "CRL signature failure";
78
77
  case X509_V_ERR_CERT_NOT_YET_VALID:
79
- return "certificate is not yet valid";
78
+ return "certificate is not yet valid";
80
79
  case X509_V_ERR_CRL_NOT_YET_VALID:
81
- return "CRL is not yet valid";
80
+ return "CRL is not yet valid";
82
81
  case X509_V_ERR_CERT_HAS_EXPIRED:
83
- return "certificate has expired";
82
+ return "certificate has expired";
84
83
  case X509_V_ERR_CRL_HAS_EXPIRED:
85
- return "CRL has expired";
84
+ return "CRL has expired";
86
85
  case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
87
- return "format error in certificate's notBefore field";
86
+ return "format error in certificate's notBefore field";
88
87
  case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
89
- return "format error in certificate's notAfter field";
88
+ return "format error in certificate's notAfter field";
90
89
  case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
91
- return "format error in CRL's lastUpdate field";
90
+ return "format error in CRL's lastUpdate field";
92
91
  case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
93
- return "format error in CRL's nextUpdate field";
92
+ return "format error in CRL's nextUpdate field";
94
93
  case X509_V_ERR_OUT_OF_MEM:
95
- return "out of memory";
94
+ return "out of memory";
96
95
  case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
97
- return "self signed certificate";
96
+ return "self signed certificate";
98
97
  case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
99
- return "self signed certificate in certificate chain";
98
+ return "self signed certificate in certificate chain";
100
99
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
101
- return "unable to get local issuer certificate";
100
+ return "unable to get local issuer certificate";
102
101
  case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
103
- return "unable to verify the first certificate";
102
+ return "unable to verify the first certificate";
104
103
  case X509_V_ERR_CERT_CHAIN_TOO_LONG:
105
- return "certificate chain too long";
104
+ return "certificate chain too long";
106
105
  case X509_V_ERR_CERT_REVOKED:
107
- return "certificate revoked";
106
+ return "certificate revoked";
108
107
  case X509_V_ERR_INVALID_CA:
109
- return "invalid CA certificate";
108
+ return "invalid CA certificate";
110
109
  case X509_V_ERR_INVALID_NON_CA:
111
- return "invalid non-CA certificate (has CA markings)";
110
+ return "invalid non-CA certificate (has CA markings)";
112
111
  case X509_V_ERR_PATH_LENGTH_EXCEEDED:
113
- return "path length constraint exceeded";
112
+ return "path length constraint exceeded";
114
113
  case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
115
- return "proxy path length constraint exceeded";
114
+ return "proxy path length constraint exceeded";
116
115
  case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:
117
- return
118
- "proxy certificates not allowed, please set the appropriate flag";
116
+ return "proxy certificates not allowed, please set the appropriate flag";
119
117
  case X509_V_ERR_INVALID_PURPOSE:
120
- return "unsupported certificate purpose";
118
+ return "unsupported certificate purpose";
121
119
  case X509_V_ERR_CERT_UNTRUSTED:
122
- return "certificate not trusted";
120
+ return "certificate not trusted";
123
121
  case X509_V_ERR_CERT_REJECTED:
124
- return "certificate rejected";
122
+ return "certificate rejected";
125
123
  case X509_V_ERR_APPLICATION_VERIFICATION:
126
- return "application verification failure";
124
+ return "application verification failure";
127
125
  case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
128
- return "subject issuer mismatch";
126
+ return "subject issuer mismatch";
129
127
  case X509_V_ERR_AKID_SKID_MISMATCH:
130
- return "authority and subject key identifier mismatch";
128
+ return "authority and subject key identifier mismatch";
131
129
  case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:
132
- return "authority and issuer serial number mismatch";
130
+ return "authority and issuer serial number mismatch";
133
131
  case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
134
- return "key usage does not include certificate signing";
132
+ return "key usage does not include certificate signing";
135
133
  case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
136
- return "unable to get CRL issuer certificate";
134
+ return "unable to get CRL issuer certificate";
137
135
  case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
138
- return "unhandled critical extension";
136
+ return "unhandled critical extension";
139
137
  case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
140
- return "key usage does not include CRL signing";
138
+ return "key usage does not include CRL signing";
141
139
  case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
142
- return "key usage does not include digital signature";
140
+ return "key usage does not include digital signature";
143
141
  case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
144
- return "unhandled critical CRL extension";
142
+ return "unhandled critical CRL extension";
145
143
  case X509_V_ERR_INVALID_EXTENSION:
146
- return "invalid or inconsistent certificate extension";
144
+ return "invalid or inconsistent certificate extension";
147
145
  case X509_V_ERR_INVALID_POLICY_EXTENSION:
148
- return "invalid or inconsistent certificate policy extension";
146
+ return "invalid or inconsistent certificate policy extension";
149
147
  case X509_V_ERR_NO_EXPLICIT_POLICY:
150
- return "no explicit policy";
148
+ return "no explicit policy";
151
149
  case X509_V_ERR_DIFFERENT_CRL_SCOPE:
152
- return "Different CRL scope";
150
+ return "Different CRL scope";
153
151
  case X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE:
154
- return "Unsupported extension feature";
152
+ return "Unsupported extension feature";
155
153
  case X509_V_ERR_UNNESTED_RESOURCE:
156
- return "RFC 3779 resource not subset of parent's resources";
154
+ return "RFC 3779 resource not subset of parent's resources";
157
155
 
158
156
  case X509_V_ERR_PERMITTED_VIOLATION:
159
- return "permitted subtree violation";
157
+ return "permitted subtree violation";
160
158
  case X509_V_ERR_EXCLUDED_VIOLATION:
161
- return "excluded subtree violation";
159
+ return "excluded subtree violation";
162
160
  case X509_V_ERR_SUBTREE_MINMAX:
163
- return "name constraints minimum and maximum not supported";
161
+ return "name constraints minimum and maximum not supported";
164
162
  case X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE:
165
- return "unsupported name constraint type";
163
+ return "unsupported name constraint type";
166
164
  case X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX:
167
- return "unsupported or invalid name constraint syntax";
165
+ return "unsupported or invalid name constraint syntax";
168
166
  case X509_V_ERR_UNSUPPORTED_NAME_SYNTAX:
169
- return "unsupported or invalid name syntax";
167
+ return "unsupported or invalid name syntax";
170
168
  case X509_V_ERR_CRL_PATH_VALIDATION_ERROR:
171
- return "CRL path validation error";
169
+ return "CRL path validation error";
172
170
 
173
171
  case X509_V_ERR_SUITE_B_INVALID_VERSION:
174
- return "Suite B: certificate version invalid";
172
+ return "Suite B: certificate version invalid";
175
173
  case X509_V_ERR_SUITE_B_INVALID_ALGORITHM:
176
- return "Suite B: invalid public key algorithm";
174
+ return "Suite B: invalid public key algorithm";
177
175
  case X509_V_ERR_SUITE_B_INVALID_CURVE:
178
- return "Suite B: invalid ECC curve";
176
+ return "Suite B: invalid ECC curve";
179
177
  case X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM:
180
- return "Suite B: invalid signature algorithm";
178
+ return "Suite B: invalid signature algorithm";
181
179
  case X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED:
182
- return "Suite B: curve not allowed for this LOS";
180
+ return "Suite B: curve not allowed for this LOS";
183
181
  case X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256:
184
- return "Suite B: cannot sign P-384 with P-256";
182
+ return "Suite B: cannot sign P-384 with P-256";
185
183
 
186
184
  case X509_V_ERR_HOSTNAME_MISMATCH:
187
- return "Hostname mismatch";
185
+ return "Hostname mismatch";
188
186
  case X509_V_ERR_EMAIL_MISMATCH:
189
- return "Email address mismatch";
187
+ return "Email address mismatch";
190
188
  case X509_V_ERR_IP_ADDRESS_MISMATCH:
191
- return "IP address mismatch";
189
+ return "IP address mismatch";
192
190
 
193
191
  case X509_V_ERR_INVALID_CALL:
194
- return "Invalid certificate verification context";
192
+ return "Invalid certificate verification context";
195
193
  case X509_V_ERR_STORE_LOOKUP:
196
- return "Issuer certificate lookup error";
194
+ return "Issuer certificate lookup error";
197
195
 
198
196
  case X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS:
199
- return "Issuer has name constraints but leaf has no SANs";
197
+ return "Issuer has name constraints but leaf has no SANs";
200
198
 
201
199
  default:
202
- return "unknown certificate verification error";
203
- }
200
+ return "unknown certificate verification error";
201
+ }
204
202
  }