@fails-components/webtransport 0.0.1-rc.2 → 0.0.1

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 (230) hide show
  1. package/CMakeLists.txt +5 -2
  2. package/package.json +1 -1
  3. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.h +1 -54
  4. package/platform/quiche_platform_impl/quic_flags_impl.h +1 -27
  5. package/platform/quiche_platform_impl/quiche_flag_utils_impl.h +1 -16
  6. package/platform/quiche_platform_impl/quiche_flags_impl.h +6 -1
  7. package/src/http3client.cc +14 -2
  8. package/src/http3client.h +10 -15
  9. package/src/webtransport.js +4 -1
  10. package/third_party/boringssl/src/.clang-format +11 -0
  11. package/third_party/boringssl/src/crypto/CMakeLists.txt +0 -1
  12. package/third_party/boringssl/src/crypto/asn1/a_strex.c +61 -95
  13. package/third_party/boringssl/src/crypto/asn1/asn1_par.c +31 -9
  14. package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +33 -19
  15. package/third_party/boringssl/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl +8 -8
  16. package/third_party/boringssl/src/crypto/cipher_extra/derive_key.c +4 -4
  17. package/third_party/boringssl/src/crypto/cipher_extra/e_des.c +1 -0
  18. package/third_party/boringssl/src/crypto/cipher_extra/e_null.c +1 -0
  19. package/third_party/boringssl/src/crypto/cipher_extra/e_rc2.c +1 -0
  20. package/third_party/boringssl/src/crypto/cipher_extra/e_rc4.c +2 -0
  21. package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +1 -0
  22. package/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl +0 -197
  23. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_test.cc +0 -9
  24. package/third_party/boringssl/src/crypto/fipsmodule/bn/bn_tests.txt +68 -0
  25. package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +45 -40
  26. package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +11 -8
  27. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.c +15 -106
  28. package/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h +5 -1
  29. package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +12 -32
  30. package/third_party/boringssl/src/crypto/fipsmodule/cipher/internal.h +39 -0
  31. package/third_party/boringssl/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +7 -9
  32. package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +1 -0
  33. package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +2 -1
  34. package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -0
  35. package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +1 -0
  36. package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +1 -0
  37. package/third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c +4 -4
  38. package/third_party/boringssl/src/crypto/x509/algorithm.c +18 -1
  39. package/third_party/boringssl/src/crypto/x509/x_algor.c +1 -1
  40. package/third_party/boringssl/src/crypto/x509/x_crl.c +3 -3
  41. package/third_party/boringssl/src/crypto/x509/x_exten.c +1 -1
  42. package/third_party/boringssl/src/crypto/x509/x_name.c +1 -1
  43. package/third_party/boringssl/src/crypto/x509/x_pubkey.c +1 -1
  44. package/third_party/boringssl/src/crypto/x509/x_req.c +2 -2
  45. package/third_party/boringssl/src/crypto/x509/x_sig.c +1 -1
  46. package/third_party/boringssl/src/crypto/x509/x_spki.c +2 -2
  47. package/third_party/boringssl/src/crypto/x509/x_val.c +1 -1
  48. package/third_party/boringssl/src/crypto/x509/x_x509.c +2 -2
  49. package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +1 -1
  50. package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +1 -1
  51. package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +2 -2
  52. package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +6 -6
  53. package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +6 -6
  54. package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +1 -1
  55. package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +2 -2
  56. package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +3 -3
  57. package/third_party/boringssl/src/crypto/x509v3/v3_info.c +3 -3
  58. package/third_party/boringssl/src/crypto/x509v3/v3_int.c +3 -3
  59. package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +2 -2
  60. package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +2 -2
  61. package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +1 -1
  62. package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +2 -2
  63. package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +1 -1
  64. package/third_party/boringssl/src/decrepit/blowfish/blowfish.c +1 -0
  65. package/third_party/boringssl/src/decrepit/cast/cast.c +1 -0
  66. package/third_party/boringssl/src/decrepit/cfb/cfb.c +1 -0
  67. package/third_party/boringssl/src/decrepit/xts/xts.c +2 -1
  68. package/third_party/boringssl/src/fuzz/CMakeLists.txt +1 -0
  69. package/third_party/boringssl/src/fuzz/der_roundtrip.cc +57 -0
  70. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/0461791e54b4840c109637952eab43d9b938cab8 +0 -0
  71. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/06e57a7b98a403a00822739739924b97ae6c74e9 +0 -0
  72. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/078c3c1199930781466871c8dda69bec379286a4 +0 -0
  73. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/082a991742f652549e4b207100ee521f474e0a99 +1 -0
  74. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/091e3389548686c5038d04e3d76b9c4d30502074 +0 -0
  75. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/13e484c406efe97dc9d91f8b80a27b0e597c34da +1 -0
  76. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/153d254254345b61e20e7b37637dd6f6fd71ba01 +0 -0
  77. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/163605136e22f5b5302fe60d1f17837bee6b6b2b +1 -0
  78. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1a96ec99b487b93052cd860c447e6d126dcc36d4 +1 -0
  79. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/1cc9ad96fcee279e8589b7071c7a0ccd111098f2 +1 -0
  80. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/229b8e1825512868e0e11a199ed71231dd41bb4f +1 -0
  81. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/236d820eadf7f84d70de7bb8be5f1c57a4005de2 +0 -0
  82. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/24fd9742dbdee3167509db4af245ad6f8c4c1e99 +0 -0
  83. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2896f8deb3c4e8bdfeab743b22c64c92316880f7 +0 -0
  84. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/29b6252fe9c4d1186394b1664c421cca795b61a5 +0 -0
  85. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2b4955132275314d1d377f37f93d8c1879a3519a +0 -0
  86. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/2e7112ac524a7a663632397cbb41f7dfd22e92c6 +0 -0
  87. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/396d197005432accf99bf0f483286e459eb24063 +1 -0
  88. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3c75fe79266cf639f2180722a3f03f8fc3e25685 +1 -0
  89. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/3fbb104fb0eb6cae4af34d8a516998336b3a6778 +1 -0
  90. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/422fa995b3fdfed572b68b292062c330d6d05272 +0 -0
  91. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/428b48fc494cee828f0c27f77aef477cb2e1fd80 +0 -0
  92. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4bd69e424b6fa38f9e63e58b8d0e95ac2d38d598 +1 -0
  93. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4be7e1f134e1c55aeadeead515200f6f1e6254ba +0 -0
  94. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/4de268400e174db2dc306f45c833cf968a6c6546 +0 -0
  95. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/52d2c7efcd7da0eb7463829e05a598e36729bfae +1 -0
  96. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53cf415eb9de49fb5a0cb46e745e413a99aa0779 +0 -0
  97. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/53ea84c48a5792281a46eb5a9c896d54ea3f1838 +1 -0
  98. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5ba93c9db0cff93f52b521d7420e43f6eda2784f +0 -0
  99. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d +1 -0
  100. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/5e5361730362736fe3e2804d8566e3c91454509b +0 -0
  101. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6654fedb1fc4b07095695b062b5af4c2f12d59ae +0 -0
  102. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6cad8b2a41194372ec897bece6512fe8331e274d +1 -0
  103. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/6f40330ec07e8e22f113f982b297ff7f86b8e485 +0 -0
  104. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/738f291e53e97c08dae378c71ef70a60e31ae900 +0 -0
  105. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7396791821e64fc9340249a4bcbd2198e9f237db +0 -0
  106. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7653595e28f23e62ea6707c99ca08c780a69335f +0 -0
  107. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/77de68daecd823babbb58edb1c8e14d7106e83bb +1 -0
  108. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/7cb5c71603a787032973d6ddc9c2c34638005784 +0 -0
  109. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/80a1e1ae75c1e5ef7bbde5f5877e3e5b26b3cf58 +0 -0
  110. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/872ba8af52a8c1380c388bab0e20bec2e729db80 +1 -0
  111. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8855f2d904cf1bbaffc54e68d98890fdc9ec14cc +0 -0
  112. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/8a22f56ee86cc2d67e9610a6b0ed59f21008a341 +0 -0
  113. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/935a69e9f3bfa1dd3bf058fa3e1b953e82195de6 +1 -0
  114. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/951ccb49640c8f9e81fb4e0d82730321f4e15bb3 +0 -0
  115. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/9af1f3ed10c7a54f6b57c344015141cc082db23b +0 -0
  116. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a0b7dd1684089c63a4aac2e4a832544df4d639d6 +0 -0
  117. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22d0d3565a509a4bfedce078090d8c6a908d950 +0 -0
  118. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a22f1185582f66227118c8e9002a5c29728f0650 +0 -0
  119. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a457945cb86ec812235f407ed70fe72fbaf694a1 +1 -0
  120. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4ee44c4e8728d4924642ef8765063262e8c4601 +0 -0
  121. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a4fc609a6546fc0061f499f0faed9054fd388c9a +1 -0
  122. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a7c13e6fe60eee08b9aac00a095a9301ea1a9824 +1 -0
  123. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/a98e22a5a8c2f5dda365d55e76536931010e1560 +0 -0
  124. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aca6ed86348b1176bfbe4ebf32b2d48a0aa42f9f +0 -0
  125. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/aeefb82d7f5cc69168aade3b196a84d0f5c14bf2 +0 -0
  126. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b37e0f6fa42840c773747c4cb608c278ab65021d +1 -0
  127. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b5d4e67f0ec5b1a90100d8ad424d77aea8e16353 +0 -0
  128. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b65ea16ba4dae8599ebbad7c4cb9fcd505edf485 +0 -0
  129. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/b95311782071c4d9182c0effe32487fc5cdbd33d +1 -0
  130. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bbcaf4d15f92bfc6d624eee967fade1a74329f30 +0 -0
  131. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc26b8c794ac0adf948cbca02e88b3901824ef17 +1 -0
  132. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bc7b23c2c68e4ad33ecea493ff6e60d423371cd0 +1 -0
  133. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/bd8daf3e78d8ba3a25838053b6993edc7a21c30e +0 -0
  134. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c4d94647e646f02da1736b3179804ad6083acde9 +0 -0
  135. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/c869b259f9f81bec8ed24a9bc2cef35a513fb9fc +0 -0
  136. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ceee46f04a09ef5d3342ef25d9f483e861727575 +1 -0
  137. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d05c069216b54f35bc7e3ee08371baee243c089a +0 -0
  138. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d18c30ba21e0d085dd983ad528f2c9001285d3d2 +1 -0
  139. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d2c00146b2f2bcb4c6cecb731d2062273523d8c8 +1 -0
  140. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/d9bc7157a485958a5fce35ce777f551fe3f7d94c +0 -0
  141. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/defce76f0d3c3e057bb623986bacee7bbd07d1a1 +1 -0
  142. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/df9b696736847e43672b7a99ca05655af8a81135 +0 -0
  143. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e5b420f71cf412bd9fdebdd46245fabd1f3462e5 +1 -0
  144. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/e7979b0e6e3e9cd64ceab99778c55205d6f92a73 +0 -0
  145. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/ee629f1935abc05fdc32ba314ec1f80f4bff2a17 +0 -0
  146. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/f944dcd635f9801f7ac90a407fbc479964dec024 +0 -0
  147. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fadcde7d914246ca04bd56e68fd4045b1cf1c5ef +0 -0
  148. package/third_party/boringssl/src/fuzz/der_roundtrip_corpus/fd8be6506a9995f626eef831b9c981a80b0e3640 +0 -0
  149. package/third_party/boringssl/src/include/openssl/cipher.h +21 -48
  150. package/third_party/boringssl/src/include/openssl/ssl.h +38 -0
  151. package/third_party/boringssl/src/ssl/handshake_client.cc +8 -2
  152. package/third_party/boringssl/src/ssl/internal.h +16 -3
  153. package/third_party/boringssl/src/ssl/s3_both.cc +23 -1
  154. package/third_party/boringssl/src/ssl/ssl_lib.cc +94 -1
  155. package/third_party/boringssl/src/ssl/test/runner/runner.go +192 -0
  156. package/third_party/boringssl/src/ssl/test/test_config.cc +6 -0
  157. package/third_party/boringssl/src/ssl/test/test_config.h +1 -0
  158. package/third_party/boringssl/src/ssl/tls13_client.cc +7 -3
  159. package/third_party/boringssl/src/ssl/tls13_server.cc +2 -1
  160. package/third_party/boringssl/src/util/convert_comments.go +23 -0
  161. package/third_party/boringssl/src/util/fipstools/acvp/acvptool/acvp/acvp.go +1 -1
  162. package/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +32 -21
  163. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +1 -1
  164. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +1 -1
  165. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +3 -2
  166. package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +2 -2
  167. package/third_party/quiche/quiche/http2/adapter/http2_protocol.h +5 -1
  168. package/third_party/quiche/quiche/http2/adapter/http2_util.cc +2 -0
  169. package/third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h +2 -0
  170. package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +119 -0
  171. package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +130 -0
  172. package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -12
  173. package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +6 -11
  174. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +0 -5
  175. package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.h +0 -2
  176. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.cc +0 -10
  177. package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender.h +0 -1
  178. package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_interface.h +0 -6
  179. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.cc +0 -2
  180. package/third_party/quiche/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes.h +0 -1
  181. package/third_party/quiche/quiche/quic/core/crypto/transport_parameters_test.cc +1 -3
  182. package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +19 -9
  183. package/third_party/quiche/quiche/quic/core/http/http_decoder_test.cc +6 -3
  184. package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -16
  185. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +6 -6
  186. package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +25 -15
  187. package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +6 -5
  188. package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +1 -2
  189. package/third_party/quiche/quiche/quic/core/quic_bandwidth_test.cc +12 -12
  190. package/third_party/quiche/quiche/quic/core/quic_connection.cc +5 -95
  191. package/third_party/quiche/quiche/quic/core/quic_connection.h +0 -35
  192. package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +80 -196
  193. package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +1 -1
  194. package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +29 -5
  195. package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +46 -0
  196. package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +17 -14
  197. package/third_party/quiche/quiche/quic/core/quic_flags_list.h +54 -54
  198. package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +8 -5
  199. package/third_party/quiche/quiche/quic/core/quic_framer_test.cc +8 -5
  200. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +1 -0
  201. package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +29 -0
  202. package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +1 -5
  203. package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +18 -11
  204. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +9 -28
  205. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +0 -13
  206. package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +1 -49
  207. package/third_party/quiche/quiche/quic/core/quic_session.cc +0 -8
  208. package/third_party/quiche/quiche/quic/core/quic_session.h +0 -1
  209. package/third_party/quiche/quiche/quic/core/quic_stream.cc +1 -1
  210. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.cc +5 -0
  211. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer.h +4 -0
  212. package/third_party/quiche/quiche/quic/core/quic_stream_sequencer_test.cc +12 -5
  213. package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +27 -12
  214. package/third_party/quiche/quiche/quic/core/quic_types.cc +0 -1
  215. package/third_party/quiche/quiche/quic/core/quic_types.h +0 -3
  216. package/third_party/quiche/quiche/quic/core/quic_utils.cc +0 -3
  217. package/third_party/quiche/quiche/quic/core/quic_utils_test.cc +0 -2
  218. package/third_party/quiche/quiche/quic/core/tls_client_handshaker_test.cc +16 -12
  219. package/third_party/quiche/quiche/quic/core/tls_handshaker.cc +18 -3
  220. package/third_party/quiche/quiche/quic/qbone/platform/internet_checksum.cc +7 -2
  221. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.cc +20 -12
  222. package/third_party/quiche/quiche/quic/test_tools/crypto_test_utils.h +10 -5
  223. package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +0 -2
  224. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.cc +0 -8
  225. package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +0 -1
  226. package/third_party/quiche/quiche/quic/tools/quic_simple_server_stream_test.cc +2 -1
  227. package/platform/net/quiche/common/platform/impl/quic_flags_list_add.h +0 -379
  228. package/platform/net/quiche/common/platform/impl/quiche_flags_impl.cc +0 -21
  229. package/third_party/boringssl/src/crypto/asn1/charmap.h +0 -15
  230. package/third_party/boringssl/src/crypto/asn1/charmap.pl +0 -135
@@ -64,6 +64,15 @@
64
64
 
65
65
  #include "internal.h"
66
66
 
67
+ /* Restrict the digests that are allowed in X509 certificates */
68
+ static int x509_digest_nid_ok(const int digest_nid) {
69
+ switch (digest_nid) {
70
+ case NID_md4:
71
+ case NID_md5:
72
+ return 0;
73
+ }
74
+ return 1;
75
+ }
67
76
 
68
77
  int x509_digest_sign_algorithm(EVP_MD_CTX *ctx, X509_ALGOR *algor) {
69
78
  EVP_PKEY *pkey = EVP_PKEY_CTX_get0_pkey(ctx->pctx);
@@ -95,8 +104,10 @@ int x509_digest_sign_algorithm(EVP_MD_CTX *ctx, X509_ALGOR *algor) {
95
104
  return 0;
96
105
  }
97
106
 
107
+ const int digest_nid = EVP_MD_type(digest);
98
108
  int sign_nid;
99
- if (!OBJ_find_sigid_by_algs(&sign_nid, EVP_MD_type(digest),
109
+ if (!x509_digest_nid_ok(digest_nid) ||
110
+ !OBJ_find_sigid_by_algs(&sign_nid, digest_nid,
100
111
  EVP_PKEY_id(pkey))) {
101
112
  OPENSSL_PUT_ERROR(ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
102
113
  return 0;
@@ -126,6 +137,12 @@ int x509_digest_verify_init(EVP_MD_CTX *ctx, const X509_ALGOR *sigalg,
126
137
  return 0;
127
138
  }
128
139
 
140
+ /* Check for permitted digest algorithms */
141
+ if (!x509_digest_nid_ok(digest_nid)) {
142
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
143
+ return 0;
144
+ }
145
+
129
146
  /* NID_undef signals that there are custom parameters to set. */
130
147
  if (digest_nid == NID_undef) {
131
148
  if (sigalg_nid == NID_rsassaPss) {
@@ -66,7 +66,7 @@
66
66
 
67
67
  ASN1_SEQUENCE(X509_ALGOR) = {
68
68
  ASN1_SIMPLE(X509_ALGOR, algorithm, ASN1_OBJECT),
69
- ASN1_OPT(X509_ALGOR, parameter, ASN1_ANY)
69
+ ASN1_OPT(X509_ALGOR, parameter, ASN1_ANY),
70
70
  } ASN1_SEQUENCE_END(X509_ALGOR)
71
71
 
72
72
  ASN1_ITEM_TEMPLATE(X509_ALGORS) =
@@ -74,7 +74,7 @@ static int setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp);
74
74
  ASN1_SEQUENCE(X509_REVOKED) = {
75
75
  ASN1_SIMPLE(X509_REVOKED,serialNumber, ASN1_INTEGER),
76
76
  ASN1_SIMPLE(X509_REVOKED,revocationDate, ASN1_TIME),
77
- ASN1_SEQUENCE_OF_OPT(X509_REVOKED,extensions, X509_EXTENSION)
77
+ ASN1_SEQUENCE_OF_OPT(X509_REVOKED,extensions, X509_EXTENSION),
78
78
  } ASN1_SEQUENCE_END(X509_REVOKED)
79
79
 
80
80
  static int crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial,
@@ -112,7 +112,7 @@ ASN1_SEQUENCE_enc(X509_CRL_INFO, enc, crl_inf_cb) = {
112
112
  ASN1_SIMPLE(X509_CRL_INFO, lastUpdate, ASN1_TIME),
113
113
  ASN1_OPT(X509_CRL_INFO, nextUpdate, ASN1_TIME),
114
114
  ASN1_SEQUENCE_OF_OPT(X509_CRL_INFO, revoked, X509_REVOKED),
115
- ASN1_EXP_SEQUENCE_OF_OPT(X509_CRL_INFO, extensions, X509_EXTENSION, 0)
115
+ ASN1_EXP_SEQUENCE_OF_OPT(X509_CRL_INFO, extensions, X509_EXTENSION, 0),
116
116
  } ASN1_SEQUENCE_END_enc(X509_CRL_INFO, X509_CRL_INFO)
117
117
 
118
118
  /*
@@ -356,7 +356,7 @@ static int setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
356
356
  ASN1_SEQUENCE_ref(X509_CRL, crl_cb) = {
357
357
  ASN1_SIMPLE(X509_CRL, crl, X509_CRL_INFO),
358
358
  ASN1_SIMPLE(X509_CRL, sig_alg, X509_ALGOR),
359
- ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING)
359
+ ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING),
360
360
  } ASN1_SEQUENCE_END_ref(X509_CRL, X509_CRL)
361
361
 
362
362
  IMPLEMENT_ASN1_FUNCTIONS(X509_REVOKED)
@@ -65,7 +65,7 @@
65
65
  ASN1_SEQUENCE(X509_EXTENSION) = {
66
66
  ASN1_SIMPLE(X509_EXTENSION, object, ASN1_OBJECT),
67
67
  ASN1_OPT(X509_EXTENSION, critical, ASN1_BOOLEAN),
68
- ASN1_SIMPLE(X509_EXTENSION, value, ASN1_OCTET_STRING)
68
+ ASN1_SIMPLE(X509_EXTENSION, value, ASN1_OCTET_STRING),
69
69
  } ASN1_SEQUENCE_END(X509_EXTENSION)
70
70
 
71
71
  ASN1_ITEM_TEMPLATE(X509_EXTENSIONS) =
@@ -99,7 +99,7 @@ static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) * intname,
99
99
 
100
100
  ASN1_SEQUENCE(X509_NAME_ENTRY) = {
101
101
  ASN1_SIMPLE(X509_NAME_ENTRY, object, ASN1_OBJECT),
102
- ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE)
102
+ ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE),
103
103
  } ASN1_SEQUENCE_END(X509_NAME_ENTRY)
104
104
 
105
105
  IMPLEMENT_ASN1_FUNCTIONS(X509_NAME_ENTRY)
@@ -83,7 +83,7 @@ static int pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
83
83
 
84
84
  ASN1_SEQUENCE_cb(X509_PUBKEY, pubkey_cb) = {
85
85
  ASN1_SIMPLE(X509_PUBKEY, algor, X509_ALGOR),
86
- ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING)
86
+ ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING),
87
87
  } ASN1_SEQUENCE_END_cb(X509_PUBKEY, X509_PUBKEY)
88
88
 
89
89
  IMPLEMENT_ASN1_FUNCTIONS(X509_PUBKEY)
@@ -98,7 +98,7 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = {
98
98
  ASN1_SIMPLE(X509_REQ_INFO, subject, X509_NAME),
99
99
  ASN1_SIMPLE(X509_REQ_INFO, pubkey, X509_PUBKEY),
100
100
  /* This isn't really OPTIONAL but it gets around invalid encodings. */
101
- ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0)
101
+ ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0),
102
102
  } ASN1_SEQUENCE_END_enc(X509_REQ_INFO, X509_REQ_INFO)
103
103
 
104
104
  IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO)
@@ -106,7 +106,7 @@ IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO)
106
106
  ASN1_SEQUENCE_ref(X509_REQ, 0) = {
107
107
  ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO),
108
108
  ASN1_SIMPLE(X509_REQ, sig_alg, X509_ALGOR),
109
- ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
109
+ ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING),
110
110
  } ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ)
111
111
 
112
112
  IMPLEMENT_ASN1_FUNCTIONS(X509_REQ)
@@ -68,7 +68,7 @@ struct X509_sig_st {
68
68
 
69
69
  ASN1_SEQUENCE(X509_SIG) = {
70
70
  ASN1_SIMPLE(X509_SIG, algor, X509_ALGOR),
71
- ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING)
71
+ ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING),
72
72
  } ASN1_SEQUENCE_END(X509_SIG)
73
73
 
74
74
  IMPLEMENT_ASN1_FUNCTIONS(X509_SIG)
@@ -66,7 +66,7 @@
66
66
 
67
67
  ASN1_SEQUENCE(NETSCAPE_SPKAC) = {
68
68
  ASN1_SIMPLE(NETSCAPE_SPKAC, pubkey, X509_PUBKEY),
69
- ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING)
69
+ ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING),
70
70
  } ASN1_SEQUENCE_END(NETSCAPE_SPKAC)
71
71
 
72
72
  IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKAC)
@@ -74,7 +74,7 @@ IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKAC)
74
74
  ASN1_SEQUENCE(NETSCAPE_SPKI) = {
75
75
  ASN1_SIMPLE(NETSCAPE_SPKI, spkac, NETSCAPE_SPKAC),
76
76
  ASN1_SIMPLE(NETSCAPE_SPKI, sig_algor, X509_ALGOR),
77
- ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING)
77
+ ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING),
78
78
  } ASN1_SEQUENCE_END(NETSCAPE_SPKI)
79
79
 
80
80
  IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKI)
@@ -65,7 +65,7 @@
65
65
 
66
66
  ASN1_SEQUENCE(X509_VAL) = {
67
67
  ASN1_SIMPLE(X509_VAL, notBefore, ASN1_TIME),
68
- ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME)
68
+ ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME),
69
69
  } ASN1_SEQUENCE_END(X509_VAL)
70
70
 
71
71
  IMPLEMENT_ASN1_FUNCTIONS(X509_VAL)
@@ -83,7 +83,7 @@ ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
83
83
  ASN1_SIMPLE(X509_CINF, key, X509_PUBKEY),
84
84
  ASN1_IMP_OPT(X509_CINF, issuerUID, ASN1_BIT_STRING, 1),
85
85
  ASN1_IMP_OPT(X509_CINF, subjectUID, ASN1_BIT_STRING, 2),
86
- ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3)
86
+ ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3),
87
87
  } ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF)
88
88
 
89
89
  IMPLEMENT_ASN1_FUNCTIONS(X509_CINF)
@@ -167,7 +167,7 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
167
167
  ASN1_SEQUENCE_ref(X509, x509_cb) = {
168
168
  ASN1_SIMPLE(X509, cert_info, X509_CINF),
169
169
  ASN1_SIMPLE(X509, sig_alg, X509_ALGOR),
170
- ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING)
170
+ ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING),
171
171
  } ASN1_SEQUENCE_END_ref(X509, X509)
172
172
 
173
173
  IMPLEMENT_ASN1_FUNCTIONS(X509)
@@ -82,7 +82,7 @@ const X509V3_EXT_METHOD v3_akey_id = {
82
82
  i2v_AUTHORITY_KEYID,
83
83
  v2i_AUTHORITY_KEYID,
84
84
  0, 0,
85
- NULL
85
+ NULL,
86
86
  };
87
87
 
88
88
  static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_KEYID(
@@ -66,7 +66,7 @@
66
66
  ASN1_SEQUENCE(AUTHORITY_KEYID) = {
67
67
  ASN1_IMP_OPT(AUTHORITY_KEYID, keyid, ASN1_OCTET_STRING, 0),
68
68
  ASN1_IMP_SEQUENCE_OF_OPT(AUTHORITY_KEYID, issuer, GENERAL_NAME, 1),
69
- ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
69
+ ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2),
70
70
  } ASN1_SEQUENCE_END(AUTHORITY_KEYID)
71
71
 
72
72
  IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID)
@@ -79,12 +79,12 @@ const X509V3_EXT_METHOD v3_bcons = {
79
79
  i2v_BASIC_CONSTRAINTS,
80
80
  v2i_BASIC_CONSTRAINTS,
81
81
  NULL, NULL,
82
- NULL
82
+ NULL,
83
83
  };
84
84
 
85
85
  ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
86
86
  ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN),
87
- ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
87
+ ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER),
88
88
  } ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
89
89
 
90
90
  IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
@@ -93,7 +93,7 @@ const X509V3_EXT_METHOD v3_cpols = {
93
93
  0, 0,
94
94
  i2r_certpol,
95
95
  r2i_certpol,
96
- NULL
96
+ NULL,
97
97
  };
98
98
 
99
99
  ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
@@ -104,7 +104,7 @@ IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
104
104
 
105
105
  ASN1_SEQUENCE(POLICYINFO) = {
106
106
  ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
107
- ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
107
+ ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO),
108
108
  } ASN1_SEQUENCE_END(POLICYINFO)
109
109
 
110
110
  IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO)
@@ -113,26 +113,26 @@ ASN1_ADB_TEMPLATE(policydefault) = ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY
113
113
 
114
114
  ASN1_ADB(POLICYQUALINFO) = {
115
115
  ADB_ENTRY(NID_id_qt_cps, ASN1_SIMPLE(POLICYQUALINFO, d.cpsuri, ASN1_IA5STRING)),
116
- ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE))
116
+ ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE)),
117
117
  } ASN1_ADB_END(POLICYQUALINFO, 0, pqualid, 0, &policydefault_tt, NULL);
118
118
 
119
119
  ASN1_SEQUENCE(POLICYQUALINFO) = {
120
120
  ASN1_SIMPLE(POLICYQUALINFO, pqualid, ASN1_OBJECT),
121
- ASN1_ADB_OBJECT(POLICYQUALINFO)
121
+ ASN1_ADB_OBJECT(POLICYQUALINFO),
122
122
  } ASN1_SEQUENCE_END(POLICYQUALINFO)
123
123
 
124
124
  IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO)
125
125
 
126
126
  ASN1_SEQUENCE(USERNOTICE) = {
127
127
  ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
128
- ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
128
+ ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT),
129
129
  } ASN1_SEQUENCE_END(USERNOTICE)
130
130
 
131
131
  IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE)
132
132
 
133
133
  ASN1_SEQUENCE(NOTICEREF) = {
134
134
  ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
135
- ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
135
+ ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER),
136
136
  } ASN1_SEQUENCE_END(NOTICEREF)
137
137
 
138
138
  IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF)
@@ -82,7 +82,7 @@ const X509V3_EXT_METHOD v3_crld = {
82
82
  0,
83
83
  v2i_crld,
84
84
  i2r_crldp, 0,
85
- NULL
85
+ NULL,
86
86
  };
87
87
 
88
88
  const X509V3_EXT_METHOD v3_freshest_crl = {
@@ -92,7 +92,7 @@ const X509V3_EXT_METHOD v3_freshest_crl = {
92
92
  0,
93
93
  v2i_crld,
94
94
  i2r_crldp, 0,
95
- NULL
95
+ NULL,
96
96
  };
97
97
 
98
98
  static STACK_OF(GENERAL_NAME) *gnames_from_sectname(X509V3_CTX *ctx,
@@ -366,7 +366,7 @@ static int dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
366
366
 
367
367
  ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
368
368
  ASN1_IMP_SEQUENCE_OF(DIST_POINT_NAME, name.fullname, GENERAL_NAME, 0),
369
- ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1)
369
+ ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1),
370
370
  } ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
371
371
 
372
372
 
@@ -375,7 +375,7 @@ IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME)
375
375
  ASN1_SEQUENCE(DIST_POINT) = {
376
376
  ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
377
377
  ASN1_IMP_OPT(DIST_POINT, reasons, ASN1_BIT_STRING, 1),
378
- ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
378
+ ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2),
379
379
  } ASN1_SEQUENCE_END(DIST_POINT)
380
380
 
381
381
  IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT)
@@ -392,7 +392,7 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
392
392
  ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyCA, ASN1_FBOOLEAN, 2),
393
393
  ASN1_IMP_OPT(ISSUING_DIST_POINT, onlysomereasons, ASN1_BIT_STRING, 3),
394
394
  ASN1_IMP_OPT(ISSUING_DIST_POINT, indirectCRL, ASN1_FBOOLEAN, 4),
395
- ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
395
+ ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5),
396
396
  } ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
397
397
 
398
398
  IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
@@ -410,7 +410,7 @@ const X509V3_EXT_METHOD v3_idp = {
410
410
  0,
411
411
  v2i_idp,
412
412
  i2r_idp, 0,
413
- NULL
413
+ NULL,
414
414
  };
415
415
 
416
416
  static void *v2i_idp(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
@@ -101,5 +101,5 @@ const X509V3_EXT_METHOD v3_crl_reason = {
101
101
  i2s_ASN1_ENUMERATED_TABLE,
102
102
  0,
103
103
  0, 0, 0, 0,
104
- (void *)crl_reasons
104
+ (void *)crl_reasons,
105
105
  };
@@ -78,7 +78,7 @@ const X509V3_EXT_METHOD v3_ext_ku = {
78
78
  i2v_EXTENDED_KEY_USAGE,
79
79
  v2i_EXTENDED_KEY_USAGE,
80
80
  0, 0,
81
- NULL
81
+ NULL,
82
82
  };
83
83
 
84
84
  /* NB OCSP acceptable responses also is a SEQUENCE OF OBJECT */
@@ -90,7 +90,7 @@ const X509V3_EXT_METHOD v3_ocsp_accresp = {
90
90
  i2v_EXTENDED_KEY_USAGE,
91
91
  v2i_EXTENDED_KEY_USAGE,
92
92
  0, 0,
93
- NULL
93
+ NULL,
94
94
  };
95
95
 
96
96
  ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
@@ -66,7 +66,7 @@
66
66
  ASN1_SEQUENCE(OTHERNAME) = {
67
67
  ASN1_SIMPLE(OTHERNAME, type_id, ASN1_OBJECT),
68
68
  /* Maybe have a true ANY DEFINED BY later */
69
- ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)
69
+ ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0),
70
70
  } ASN1_SEQUENCE_END(OTHERNAME)
71
71
 
72
72
  IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
@@ -74,7 +74,7 @@ IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
74
74
  ASN1_SEQUENCE(EDIPARTYNAME) = {
75
75
  /* DirectoryString is a CHOICE type, so use explicit tagging. */
76
76
  ASN1_EXP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),
77
- ASN1_EXP(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)
77
+ ASN1_EXP(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1),
78
78
  } ASN1_SEQUENCE_END(EDIPARTYNAME)
79
79
 
80
80
  IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME)
@@ -90,7 +90,7 @@ ASN1_CHOICE(GENERAL_NAME) = {
90
90
  ASN1_IMP(GENERAL_NAME, d.ediPartyName, EDIPARTYNAME, GEN_EDIPARTY),
91
91
  ASN1_IMP(GENERAL_NAME, d.uniformResourceIdentifier, ASN1_IA5STRING, GEN_URI),
92
92
  ASN1_IMP(GENERAL_NAME, d.iPAddress, ASN1_OCTET_STRING, GEN_IPADD),
93
- ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)
93
+ ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID),
94
94
  } ASN1_CHOICE_END(GENERAL_NAME)
95
95
 
96
96
  IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME)
@@ -81,7 +81,7 @@ const X509V3_EXT_METHOD v3_info = { NID_info_access, X509V3_EXT_MULTILINE,
81
81
  i2v_AUTHORITY_INFO_ACCESS,
82
82
  v2i_AUTHORITY_INFO_ACCESS,
83
83
  0, 0,
84
- NULL
84
+ NULL,
85
85
  };
86
86
 
87
87
  const X509V3_EXT_METHOD v3_sinfo = { NID_sinfo_access, X509V3_EXT_MULTILINE,
@@ -91,12 +91,12 @@ const X509V3_EXT_METHOD v3_sinfo = { NID_sinfo_access, X509V3_EXT_MULTILINE,
91
91
  i2v_AUTHORITY_INFO_ACCESS,
92
92
  v2i_AUTHORITY_INFO_ACCESS,
93
93
  0, 0,
94
- NULL
94
+ NULL,
95
95
  };
96
96
 
97
97
  ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
98
98
  ASN1_SIMPLE(ACCESS_DESCRIPTION, method, ASN1_OBJECT),
99
- ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
99
+ ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME),
100
100
  } ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
101
101
 
102
102
  IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
@@ -77,7 +77,7 @@ const X509V3_EXT_METHOD v3_crl_num = {
77
77
  0, 0, 0, 0,
78
78
  i2s_ASN1_INTEGER_cb,
79
79
  0,
80
- 0, 0, 0, 0, NULL
80
+ 0, 0, 0, 0, NULL,
81
81
  };
82
82
 
83
83
  const X509V3_EXT_METHOD v3_delta_crl = {
@@ -85,7 +85,7 @@ const X509V3_EXT_METHOD v3_delta_crl = {
85
85
  0, 0, 0, 0,
86
86
  i2s_ASN1_INTEGER_cb,
87
87
  0,
88
- 0, 0, 0, 0, NULL
88
+ 0, 0, 0, 0, NULL,
89
89
  };
90
90
 
91
91
  const X509V3_EXT_METHOD v3_inhibit_anyp = {
@@ -93,5 +93,5 @@ const X509V3_EXT_METHOD v3_inhibit_anyp = {
93
93
  0, 0, 0, 0,
94
94
  i2s_ASN1_INTEGER_cb,
95
95
  s2i_asn1_int,
96
- 0, 0, 0, 0, NULL
96
+ 0, 0, 0, 0, NULL,
97
97
  };
@@ -93,13 +93,13 @@ const X509V3_EXT_METHOD v3_name_constraints = {
93
93
  0, 0,
94
94
  0, v2i_NAME_CONSTRAINTS,
95
95
  i2r_NAME_CONSTRAINTS, 0,
96
- NULL
96
+ NULL,
97
97
  };
98
98
 
99
99
  ASN1_SEQUENCE(GENERAL_SUBTREE) = {
100
100
  ASN1_SIMPLE(GENERAL_SUBTREE, base, GENERAL_NAME),
101
101
  ASN1_IMP_OPT(GENERAL_SUBTREE, minimum, ASN1_INTEGER, 0),
102
- ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1)
102
+ ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1),
103
103
  } ASN1_SEQUENCE_END(GENERAL_SUBTREE)
104
104
 
105
105
  ASN1_SEQUENCE(NAME_CONSTRAINTS) = {
@@ -31,7 +31,7 @@ const X509V3_EXT_METHOD v3_crl_invdate = {
31
31
  0, 0,
32
32
  0, 0,
33
33
  i2r_ocsp_acutoff, 0,
34
- NULL
34
+ NULL,
35
35
  };
36
36
 
37
37
  const X509V3_EXT_METHOD v3_ocsp_nocheck = {
@@ -40,7 +40,7 @@ const X509V3_EXT_METHOD v3_ocsp_nocheck = {
40
40
  0, s2i_ocsp_nocheck,
41
41
  0, 0,
42
42
  i2r_ocsp_nocheck, 0,
43
- NULL
43
+ NULL,
44
44
  };
45
45
 
46
46
  static int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,
@@ -85,7 +85,7 @@ const X509V3_EXT_METHOD v3_policy_constraints = {
85
85
 
86
86
  ASN1_SEQUENCE(POLICY_CONSTRAINTS) = {
87
87
  ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, ASN1_INTEGER,0),
88
- ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER,1)
88
+ ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER,1),
89
89
  } ASN1_SEQUENCE_END(POLICY_CONSTRAINTS)
90
90
 
91
91
  IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
@@ -77,12 +77,12 @@ const X509V3_EXT_METHOD v3_policy_mappings = {
77
77
  i2v_POLICY_MAPPINGS,
78
78
  v2i_POLICY_MAPPINGS,
79
79
  0, 0,
80
- NULL
80
+ NULL,
81
81
  };
82
82
 
83
83
  ASN1_SEQUENCE(POLICY_MAPPING) = {
84
84
  ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT),
85
- ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT)
85
+ ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT),
86
86
  } ASN1_SEQUENCE_END(POLICY_MAPPING)
87
87
 
88
88
  ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) =
@@ -157,5 +157,5 @@ const X509V3_EXT_METHOD v3_skey_id = {
157
157
  i2s_ASN1_OCTET_STRING_cb,
158
158
  s2i_skey_id,
159
159
  0, 0, 0, 0,
160
- NULL
160
+ NULL,
161
161
  };
@@ -61,6 +61,7 @@
61
61
  #include <assert.h>
62
62
  #include <string.h>
63
63
 
64
+ #include "../../crypto/fipsmodule/cipher/internal.h"
64
65
  #include "../../crypto/internal.h"
65
66
  #include "../macros.h"
66
67
 
@@ -64,6 +64,7 @@ OPENSSL_MSVC_PRAGMA(warning(push, 3))
64
64
  OPENSSL_MSVC_PRAGMA(warning(pop))
65
65
  #endif
66
66
 
67
+ #include "../../crypto/fipsmodule/cipher/internal.h"
67
68
  #include "../../crypto/internal.h"
68
69
  #include "internal.h"
69
70
  #include "../macros.h"
@@ -19,6 +19,7 @@
19
19
  #include <openssl/aes.h>
20
20
  #include <openssl/obj.h>
21
21
 
22
+ #include "../../crypto/fipsmodule/cipher/internal.h"
22
23
  #include "../../crypto/internal.h"
23
24
 
24
25
  typedef struct {
@@ -53,7 +53,8 @@
53
53
  #include <openssl/aes.h>
54
54
  #include <openssl/cipher.h>
55
55
 
56
- #include "../crypto/fipsmodule/modes/internal.h"
56
+ #include "../../crypto/fipsmodule/cipher/internal.h"
57
+ #include "../../crypto/fipsmodule/modes/internal.h"
57
58
 
58
59
 
59
60
  typedef struct xts128_context {
@@ -30,3 +30,4 @@ fuzzer(dtls_client ssl)
30
30
  fuzzer(ssl_ctx_api ssl)
31
31
  fuzzer(session ssl)
32
32
  fuzzer(decode_client_hello_inner ssl)
33
+ fuzzer(der_roundtrip)
@@ -0,0 +1,57 @@
1
+ /* Copyright (c) 2022, Google Inc.
2
+ *
3
+ * Permission to use, copy, modify, and/or distribute this software for any
4
+ * purpose with or without fee is hereby granted, provided that the above
5
+ * copyright notice and this permission notice appear in all copies.
6
+ *
7
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
+
15
+ #include <stdlib.h>
16
+ #include <string.h>
17
+
18
+ #include <openssl/bytestring.h>
19
+ #include <openssl/ecdsa.h>
20
+ #include <openssl/mem.h>
21
+
22
+
23
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) {
24
+ CBS cbs, body;
25
+ unsigned tag;
26
+ CBS_init(&cbs, buf, len);
27
+ if (CBS_get_any_asn1(&cbs, &body, &tag)) {
28
+ // DER has a unique encoding, so any parsed input should round-trip
29
+ // correctly.
30
+ size_t consumed = len - CBS_len(&cbs);
31
+ bssl::ScopedCBB cbb;
32
+ CBB body_cbb;
33
+ if (!CBB_init(cbb.get(), consumed) ||
34
+ !CBB_add_asn1(cbb.get(), &body_cbb, tag) ||
35
+ !CBB_add_bytes(&body_cbb, CBS_data(&body), CBS_len(&body)) ||
36
+ !CBB_flush(cbb.get()) ||
37
+ CBB_len(cbb.get()) != consumed ||
38
+ memcmp(CBB_data(cbb.get()), buf, consumed) != 0) {
39
+ abort();
40
+ }
41
+ }
42
+
43
+ ECDSA_SIG *sig = ECDSA_SIG_from_bytes(buf, len);
44
+ if (sig != NULL) {
45
+ uint8_t *enc;
46
+ size_t enc_len;
47
+ if (!ECDSA_SIG_to_bytes(&enc, &enc_len, sig) ||
48
+ enc_len != len ||
49
+ memcmp(buf, enc, len) != 0) {
50
+ abort();
51
+ }
52
+ OPENSSL_free(enc);
53
+ ECDSA_SIG_free(sig);
54
+ }
55
+
56
+ return 0;
57
+ }