@fails-components/webtransport 0.0.1-rc.0 → 0.0.1-rc.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.
- package/.github/workflows/npm-publish-packages.yml +0 -0
- package/CMakeLists.txt +2 -0
- package/package.json +1 -1
- package/readme.md +0 -0
- package/src/http3serversession.h +1 -1
- package/src/webtransport.js +4 -2
- package/third_party/boringssl/src/CMakeLists.txt +9 -12
- package/third_party/boringssl/src/crypto/CMakeLists.txt +2 -3
- package/third_party/boringssl/src/crypto/asn1/time_support.c +206 -206
- package/third_party/boringssl/src/crypto/bio/socket_helper.c +124 -122
- package/third_party/boringssl/src/crypto/evp/digestsign.c +268 -231
- package/third_party/boringssl/src/crypto/evp/p_ec.c +286 -286
- package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +246 -236
- package/third_party/boringssl/src/crypto/fipsmodule/aes/mode_wrappers.c +124 -122
- package/third_party/boringssl/src/crypto/fipsmodule/bcm.c +3 -0
- package/third_party/boringssl/src/crypto/fipsmodule/bn/bytes.c +246 -230
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +734 -715
- package/third_party/boringssl/src/crypto/fipsmodule/bn/random.c +349 -341
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c +670 -648
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +1504 -1472
- package/third_party/boringssl/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +435 -446
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_3des_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes128_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes192_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cavp_aes256_cmac_tests.txt +0 -0
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +318 -278
- package/third_party/boringssl/src/crypto/{cmac → fipsmodule/cmac}/cmac_test.cc +268 -267
- package/third_party/boringssl/src/crypto/fipsmodule/dh/dh.c +5 -1
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec.c +11 -17
- package/third_party/boringssl/src/crypto/fipsmodule/ec/ec_key.c +15 -4
- package/third_party/boringssl/src/crypto/fipsmodule/ec/internal.h +2 -6
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p224-64.c +1164 -1180
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +3 -3
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz_test.cc +2 -2
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256.c +44 -33
- package/third_party/boringssl/src/crypto/fipsmodule/ec/scalar.c +169 -175
- package/third_party/boringssl/src/crypto/fipsmodule/ec/simple.c +352 -357
- package/third_party/boringssl/src/crypto/fipsmodule/ecdh/ecdh.c +4 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ecdsa/ecdsa.c +14 -9
- package/third_party/boringssl/src/crypto/fipsmodule/hmac/hmac.c +256 -235
- package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +204 -202
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/padding.c +702 -695
- package/third_party/boringssl/src/crypto/fipsmodule/rsa/rsa_impl.c +7 -2
- package/third_party/boringssl/src/crypto/fipsmodule/self_check/self_check.c +7 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator.c +333 -0
- package/third_party/boringssl/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc +2410 -0
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c +359 -357
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha256.c +325 -321
- package/third_party/boringssl/src/crypto/fipsmodule/sha/sha512.c +510 -508
- package/third_party/boringssl/src/crypto/fipsmodule/tls/kdf.c +177 -165
- package/third_party/boringssl/src/crypto/internal.h +13 -0
- package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +884 -884
- package/third_party/boringssl/src/crypto/x509/internal.h +0 -2
- package/third_party/boringssl/src/crypto/x509/t_crl.c +148 -148
- package/third_party/boringssl/src/crypto/x509/t_req.c +249 -250
- package/third_party/boringssl/src/crypto/x509/t_x509.c +2 -3
- package/third_party/boringssl/src/crypto/x509/x509_req.c +262 -304
- package/third_party/boringssl/src/crypto/x509/x509_set.c +250 -240
- package/third_party/boringssl/src/crypto/x509/x509_test.cc +466 -4
- package/third_party/boringssl/src/crypto/x509/x509cset.c +292 -279
- package/third_party/boringssl/src/crypto/x509/x509rset.c +89 -86
- package/third_party/boringssl/src/crypto/x509/x_crl.c +37 -125
- package/third_party/boringssl/src/crypto/x509/x_req.c +114 -109
- package/third_party/boringssl/src/crypto/x509/x_x509.c +394 -394
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +11 -16
- package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +644 -642
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +130 -133
- package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +149 -144
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +496 -500
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +105 -106
- package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +126 -121
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +206 -218
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +97 -91
- package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +290 -289
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +161 -156
- package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +5 -3
- package/third_party/boringssl/src/include/openssl/aead.h +480 -480
- package/third_party/boringssl/src/include/openssl/asn1.h +2 -0
- package/third_party/boringssl/src/include/openssl/base.h +1 -1
- package/third_party/boringssl/src/include/openssl/service_indicator.h +96 -0
- package/third_party/boringssl/src/include/openssl/ssl.h +7 -0
- package/third_party/boringssl/src/include/openssl/x509.h +11 -33
- package/third_party/boringssl/src/include/openssl/x509v3.h +990 -1018
- package/third_party/boringssl/src/sources.cmake +4 -4
- package/third_party/boringssl/src/ssl/internal.h +10 -0
- package/third_party/boringssl/src/ssl/ssl_lib.cc +3081 -3072
- package/third_party/boringssl/src/ssl/ssl_test.cc +46 -0
- package/third_party/boringssl/src/ssl/tls13_server.cc +4 -6
- package/third_party/boringssl/src/util/bot/DEPS +14 -27
- package/third_party/boringssl/src/util/bot/UPDATING +3 -9
- package/third_party/boringssl/src/util/bot/update_clang.py +172 -172
- package/third_party/boringssl/src/util/bot/vs_toolchain.py +3 -3
- package/third_party/quiche/.bazelrc +8 -0
- package/third_party/quiche/BUILD.bazel +7 -0
- package/third_party/quiche/WHITESPACE +3 -1
- package/third_party/quiche/WORKSPACE.bazel +87 -0
- package/third_party/quiche/build/BUILD.bazel +7 -0
- package/third_party/quiche/build/source_list.bzl +1511 -0
- package/third_party/quiche/build/source_list.gni +1511 -0
- package/third_party/quiche/build/source_list.json +1511 -0
- package/third_party/quiche/build/test.bzl +26 -0
- package/third_party/quiche/build/zlib.BUILD +25 -0
- package/third_party/quiche/quiche/BUILD.bazel +270 -0
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.cc +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_enums.h +7 -7
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.cc +39 -18
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame.h +11 -10
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_frame_test.cc +67 -63
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.cc +13 -12
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers.h +16 -8
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_headers_test.cc +9 -9
- package/third_party/quiche/quiche/{common/balsa → balsa}/balsa_visitor_interface.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/framer_interface.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_api.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/header_properties_test.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/http_validation_policy.h +3 -3
- package/third_party/quiche/quiche/{common/balsa → balsa}/noop_balsa_visitor.h +4 -4
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.cc +22 -29
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer.h +18 -16
- package/third_party/quiche/quiche/{common/balsa → balsa}/simple_buffer_test.cc +79 -32
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.cc +1 -1
- package/third_party/quiche/quiche/{common/balsa → balsa}/standard_header_map.h +3 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_command_line_flags.h +6 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_flags.h +8 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_logging.h +0 -3
- package/third_party/quiche/quiche/common/platform/api/quiche_lower_case_string_test.cc +29 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_test.h +5 -7
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quic_flags_impl.h +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_bug_tracker_impl.h +3 -2
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.cc +41 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_command_line_flags_impl.h +33 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_expect_bug_impl.h +15 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_logging_impl.h +84 -50
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_lower_case_string_impl.h +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_stack_trace_impl.cc +1 -1
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +25 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +56 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_test_output_impl.h +27 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_thread_impl.h +26 -0
- package/third_party/quiche/quiche/common/platform/default/quiche_platform_impl/quiche_url_utils_impl.cc +1 -0
- package/third_party/quiche/quiche/common/quiche_buffer_allocator_test.cc +1 -1
- package/third_party/quiche/quiche/common/quiche_mem_slice_storage.h +2 -3
- package/third_party/quiche/quiche/common/structured_headers.cc +14 -12
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.cc +7 -5
- package/third_party/quiche/quiche/http2/adapter/event_forwarder.h +4 -2
- package/third_party/quiche/quiche/http2/adapter/event_forwarder_test.cc +14 -9
- package/third_party/quiche/quiche/http2/adapter/header_validator.cc +43 -19
- package/third_party/quiche/quiche/http2/adapter/header_validator.h +11 -40
- package/third_party/quiche/quiche/http2/adapter/header_validator_base.h +69 -0
- package/third_party/quiche/quiche/http2/adapter/header_validator_test.cc +73 -1
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +66 -0
- package/third_party/quiche/quiche/http2/adapter/nghttp2_session_test.cc +8 -5
- package/third_party/quiche/quiche/http2/adapter/nghttp2_test.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.cc +22 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator.h +25 -0
- package/third_party/quiche/quiche/http2/adapter/noop_header_validator_test.cc +523 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +186 -5
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +37 -43
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +22 -23
- package/third_party/quiche/quiche/http2/adapter/test_utils.cc +1 -1
- package/third_party/quiche/quiche/http2/adapter/window_manager_test.cc +11 -5
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.cc +13 -11
- package/third_party/quiche/quiche/http2/core/http2_trace_logging.h +5 -4
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler.h +42 -36
- package/third_party/quiche/quiche/http2/core/priority_write_scheduler_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/decode_buffer_test.cc +9 -9
- package/third_party/quiche/quiche/http2/decoder/decode_http2_structures_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/http2_frame_decoder_test.cc +14 -14
- package/third_party/quiche/quiche/http2/decoder/http2_structure_decoder_test.cc +17 -17
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc +8 -8
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc +4 -3
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc +17 -17
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_decoder_test.cc +25 -25
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc +7 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc +6 -6
- package/third_party/quiche/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc +2 -2
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc +1 -1
- package/third_party/quiche/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc +5 -5
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc +4 -4
- package/third_party/quiche/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_constants_test.cc +1 -1
- package/third_party/quiche/quiche/http2/http2_structures_test.cc +23 -22
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_decoder_state_test_util.h +1 -1
- package/third_party/quiche/quiche/http2/test_tools/frame_parts.cc +38 -38
- package/third_party/quiche/quiche/http2/test_tools/hpack_block_collector.cc +15 -15
- package/third_party/quiche/quiche/http2/test_tools/hpack_entry_collector.cc +24 -22
- package/third_party/quiche/quiche/http2/test_tools/hpack_string_collector.cc +5 -5
- package/third_party/quiche/quiche/http2/test_tools/http2_frame_builder_test.cc +70 -89
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.cc +1 -1
- package/third_party/quiche/quiche/http2/test_tools/payload_decoder_base_test_util.h +29 -26
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.cc → random_decoder_test_base.cc} +13 -10
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test.h → random_decoder_test_base.h} +15 -17
- package/third_party/quiche/quiche/http2/test_tools/{random_decoder_test_test.cc → random_decoder_test_base_test.cc} +1 -1
- package/third_party/quiche/quiche/http2/test_tools/verify_macros.h +32 -0
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_sender.cc +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr2_simulator_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/bbr_sender_test.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.cc +3 -2
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats.h +2 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/rtt_stats_test.cc +2 -13
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.cc +15 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view.h +7 -0
- package/third_party/quiche/quiche/quic/core/crypto/certificate_view_test.cc +16 -0
- package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -0
- package/third_party/quiche/quiche/quic/core/crypto/proof_source.h +2 -2
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.cc +3 -5
- package/third_party/quiche/quiche/quic/core/crypto/proof_source_x509.h +1 -2
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.cc +1 -1
- package/third_party/quiche/quiche/quic/core/crypto/quic_crypto_server_config.h +3 -3
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.cc +2 -8
- package/third_party/quiche/quiche/quic/core/frames/quic_blocked_frame.h +0 -1
- package/third_party/quiche/quiche/quic/core/frames/quic_crypto_frame.h +2 -0
- package/third_party/quiche/quiche/quic/core/frames/quic_frames_test.cc +2 -1
- package/third_party/quiche/quiche/quic/core/http/capsule.cc +2 -22
- package/third_party/quiche/quiche/quic/core/http/capsule.h +0 -2
- package/third_party/quiche/quiche/quic/core/http/capsule_test.cc +1 -2
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +148 -57
- package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -1
- package/third_party/quiche/quiche/quic/core/http/http_constants.h +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_header_list_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/http/quic_headers_stream_test.cc +18 -14
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/http/quic_send_control_stream_test.cc +3 -7
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.h +4 -0
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.cc +47 -65
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session.h +5 -17
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_session_test.cc +63 -54
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +34 -91
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +1 -9
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +27 -134
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.cc +0 -41
- package/third_party/quiche/quiche/quic/core/http/spdy_utils.h +0 -9
- package/third_party/quiche/quiche/quic/core/http/spdy_utils_test.cc +0 -32
- package/third_party/quiche/quiche/quic/core/http/web_transport_http3.cc +0 -1
- package/third_party/quiche/quiche/quic/core/packet_number_indexed_queue_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/qpack/qpack_header_table.cc +2 -1
- package/third_party/quiche/quiche/quic/core/qpack/qpack_send_stream.h +2 -1
- package/third_party/quiche/quiche/quic/core/quic_arena_scoped_ptr_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +68 -46
- package/third_party/quiche/quiche/quic/core/quic_connection.h +7 -6
- package/third_party/quiche/quiche/quic/core/quic_connection_context_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +45 -132
- package/third_party/quiche/quiche/quic/core/quic_constants.h +0 -7
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.cc +11 -3
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_control_frame_manager_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.cc +13 -1
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker.h +3 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_handshaker_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.cc +6 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_client_stream.h +8 -0
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.cc +26 -13
- package/third_party/quiche/quiche/quic/core/quic_crypto_server_stream.h +5 -2
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +55 -47
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.h +15 -10
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream_test.cc +34 -5
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +20 -11
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +37 -13
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +6 -10
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.cc +3 -3
- package/third_party/quiche/quiche/quic/core/quic_flow_controller.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_flow_controller_test.cc +15 -10
- package/third_party/quiche/quiche/quic/core/quic_framer.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena.h +3 -2
- package/third_party/quiche/quiche/quic/core/quic_one_block_arena_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +3 -11
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.h +0 -8
- package/third_party/quiche/quiche/quic/core/quic_ping_manager.cc +14 -14
- package/third_party/quiche/quiche/quic/core/quic_ping_manager_test.cc +48 -0
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager.cc +3 -18
- package/third_party/quiche/quiche/quic/core/quic_received_packet_manager_test.cc +4 -14
- package/third_party/quiche/quiche/quic/core/quic_server_id_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_session.cc +4 -4
- package/third_party/quiche/quiche/quic/core/quic_session.h +1 -1
- package/third_party/quiche/quiche/quic/core/quic_session_test.cc +21 -1
- package/third_party/quiche/quiche/quic/core/quic_stream.cc +4 -7
- package/third_party/quiche/quiche/quic/core/quic_stream_test.cc +2 -4
- package/third_party/quiche/quiche/quic/core/quic_trace_visitor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_types.h +3 -8
- package/third_party/quiche/quiche/quic/core/quic_udp_socket_posix.cc +5 -4
- package/third_party/quiche/quiche/quic/core/quic_unacked_packet_map_test.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.cc +1 -1
- package/third_party/quiche/quiche/quic/core/quic_utils.h +2 -2
- package/third_party/quiche/quiche/quic/core/quic_versions_test.cc +0 -1
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.cc +13 -0
- package/third_party/quiche/quiche/quic/core/tls_client_handshaker.h +2 -0
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.cc +17 -3
- package/third_party/quiche/quiche/quic/core/tls_server_handshaker.h +3 -1
- package/third_party/quiche/quiche/quic/core/uber_received_packet_manager_test.cc +18 -10
- package/third_party/quiche/quiche/quic/masque/masque_client_bin.cc +6 -4
- package/third_party/quiche/quiche/quic/masque/masque_client_session.cc +23 -7
- package/third_party/quiche/quiche/quic/masque/masque_client_session.h +1 -1
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.cc +13 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_backend.h +2 -0
- package/third_party/quiche/quiche/quic/masque/masque_server_bin.cc +5 -4
- package/third_party/quiche/quiche/quic/masque/masque_server_session.cc +30 -40
- package/third_party/quiche/quiche/quic/masque/masque_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_export.h +4 -4
- package/third_party/quiche/quiche/quic/platform/api/quic_flags.h +0 -1
- package/third_party/quiche/quiche/quic/platform/api/quic_logging.h +0 -6
- package/third_party/quiche/quiche/quic/platform/api/quic_test.h +6 -5
- package/third_party/quiche/quiche/quic/qbone/bonnet/icmp_reachable_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/mock_qbone_tunnel.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/qbone_tunnel_interface.h +2 -0
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_controller_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_packet_exchanger_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/bonnet/tun_device_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/netlink_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/platform/tcp_packet.cc +5 -4
- package/third_party/quiche/quiche/quic/qbone/qbone_client_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor.cc +2 -1
- package/third_party/quiche/quiche/quic/qbone/qbone_packet_processor_test.cc +2 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_server_session.cc +4 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_session_base.cc +3 -2
- package/third_party/quiche/quiche/quic/qbone/qbone_stream.cc +4 -4
- package/third_party/quiche/quiche/quic/test_tools/quic_connection_peer.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/index.html +63 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_http_response_cache_data/test.example.com/map.html +65 -0
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.cc +4 -3
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +18 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/simulator/simulator_test.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/test_tools/test_ticket_crypter.h +2 -2
- package/third_party/quiche/quiche/quic/{core/crypto → tools}/crypto_message_printer_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/{core/qpack → tools}/qpack_offline_decoder_bin.cc +0 -0
- package/third_party/quiche/quiche/quic/tools/quic_client_interop_test_bin.cc +4 -3
- package/third_party/quiche/quiche/quic/tools/quic_memory_cache_backend_test.cc +3 -31
- package/third_party/quiche/quiche/quic/tools/quic_packet_printer_bin.cc +2 -2
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session.h +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_simple_server_session_test.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/quic_toy_client.cc +52 -38
- package/third_party/quiche/quiche/quic/tools/quic_toy_server.cc +10 -7
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.cc +1 -1
- package/third_party/quiche/quiche/quic/tools/simple_ticket_crypter.h +1 -1
- package/third_party/quiche/quiche/quic/tools/web_transport_test_visitors.h +3 -2
- package/third_party/quiche/quiche/spdy/core/array_output_buffer.h +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_encoder_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_header_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_round_trip_test.cc +2 -1
- package/third_party/quiche/quiche/spdy/core/hpack/hpack_static_table_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.cc +8 -6
- package/third_party/quiche/quiche/spdy/core/http2_frame_decoder_adapter.h +17 -6
- package/third_party/quiche/quiche/spdy/core/metadata_extension.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/metadata_extension_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_framer_test.cc +21 -17
- package/third_party/quiche/quiche/spdy/core/spdy_intrusive_list_test.cc +3 -3
- package/third_party/quiche/quiche/spdy/core/spdy_no_op_visitor.h +6 -4
- package/third_party/quiche/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/core/spdy_protocol_test.cc +1 -1
- package/third_party/quiche/quiche/spdy/test_tools/mock_spdy_framer_visitor.h +5 -4
- package/third_party/boringssl/src/util/bot/cmake-win32.zip.sha1 +0 -1
- package/third_party/quiche/quiche/common/platform/api/quiche_mock_log.h +0 -18
- package/third_party/quiche/quiche/common/platform/api/quiche_test_helpers.h +0 -8
- package/third_party/quiche/quiche/quic/platform/api/quic_mock_log.h +0 -19
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.cc +0 -51
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_dispatcher.h +0 -41
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.cc +0 -168
- package/third_party/quiche/quiche/quic/tools/quic_transport_simple_server_session.h +0 -78
|
File without changes
|
package/CMakeLists.txt
CHANGED
|
@@ -141,6 +141,8 @@ third_party/quiche/quiche/http2/adapter/http2_session.h
|
|
|
141
141
|
third_party/quiche/quiche/http2/adapter/http2_util.cc
|
|
142
142
|
third_party/quiche/quiche/http2/adapter/http2_util.h
|
|
143
143
|
third_party/quiche/quiche/http2/adapter/http2_visitor_interface.h
|
|
144
|
+
third_party/quiche/quiche/http2/adapter/noop_header_validator.h
|
|
145
|
+
third_party/quiche/quiche/http2/adapter/noop_header_validator.cc
|
|
144
146
|
third_party/quiche/quiche/http2/adapter/oghttp2_adapter.cc
|
|
145
147
|
third_party/quiche/quiche/http2/adapter/oghttp2_adapter.h
|
|
146
148
|
third_party/quiche/quiche/http2/adapter/oghttp2_session.cc
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fails-components/webtransport",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.1",
|
|
4
4
|
"description": "A component to add webtransport support (server and client) to node.js using libquiche",
|
|
5
5
|
"main": "src/webtransport.js",
|
|
6
6
|
"module": "src/webtransport.js",
|
package/readme.md
CHANGED
|
File without changes
|
package/src/http3serversession.h
CHANGED
package/src/webtransport.js
CHANGED
|
@@ -52,6 +52,7 @@ class Http3WTStream {
|
|
|
52
52
|
})
|
|
53
53
|
this.readableclosed = true
|
|
54
54
|
this.objint.closeStream()
|
|
55
|
+
return promise
|
|
55
56
|
}
|
|
56
57
|
},
|
|
57
58
|
{ highWaterMark: 4 }
|
|
@@ -612,7 +613,7 @@ class Http3Client extends Http3WebTransport {
|
|
|
612
613
|
}
|
|
613
614
|
}, 2000)
|
|
614
615
|
} catch (error) {
|
|
615
|
-
|
|
616
|
+
console.log('Connecting failed for client:' + error)
|
|
616
617
|
}
|
|
617
618
|
}
|
|
618
619
|
|
|
@@ -727,7 +728,8 @@ export class WebTransport {
|
|
|
727
728
|
this.urlint.pathname
|
|
728
729
|
)
|
|
729
730
|
} catch (error) {
|
|
730
|
-
|
|
731
|
+
this.sessionint.readyReject(new Error('Establishing session failed ' + error))
|
|
732
|
+
console.log('Establishing session failed ' + error)
|
|
731
733
|
}
|
|
732
734
|
}
|
|
733
735
|
|
|
@@ -122,6 +122,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
|
|
122
122
|
set(EMSCRIPTEN 1)
|
|
123
123
|
endif()
|
|
124
124
|
|
|
125
|
+
set(CMAKE_CXX_STANDARD 14)
|
|
126
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
127
|
+
if(MSVC AND NOT CLANG)
|
|
128
|
+
set(CMAKE_C_STANDARD 11)
|
|
129
|
+
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
130
|
+
endif()
|
|
131
|
+
|
|
125
132
|
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
|
126
133
|
# Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
|
|
127
134
|
# primarily on our normal Clang one.
|
|
@@ -164,14 +171,8 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
|
|
164
171
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CXX_FLAGS} -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes")
|
|
165
172
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CXX_FLAGS} -Wmissing-declarations")
|
|
166
173
|
|
|
167
|
-
if(NOT MSVC)
|
|
168
|
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -
|
|
169
|
-
if(APPLE)
|
|
170
|
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
171
|
-
endif()
|
|
172
|
-
if(NOT BORINGSSL_ALLOW_CXX_RUNTIME)
|
|
173
|
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
|
174
|
-
endif()
|
|
174
|
+
if(NOT MSVC AND NOT BORINGSSL_ALLOW_CXX_RUNTIME)
|
|
175
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-rtti")
|
|
175
176
|
endif()
|
|
176
177
|
|
|
177
178
|
# In GCC, -Wmissing-declarations is the C++ spelling of -Wmissing-prototypes
|
|
@@ -261,10 +262,6 @@ if(WIN32)
|
|
|
261
262
|
add_definitions("-D_STL_EXTRA_DISABLED_WARNINGS=4774 4987")
|
|
262
263
|
endif()
|
|
263
264
|
|
|
264
|
-
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
265
|
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
|
|
266
|
-
endif()
|
|
267
|
-
|
|
268
265
|
# pthread_rwlock_t on Linux requires a feature flag. We limit this to Linux
|
|
269
266
|
# because, on Apple platforms, it instead disables APIs we use. See compat(5)
|
|
270
267
|
# and sys/cdefs.h. Reportedly, FreeBSD also breaks when this is set. See
|
|
@@ -253,7 +253,6 @@ add_library(
|
|
|
253
253
|
chacha/chacha.c
|
|
254
254
|
cipher_extra/cipher_extra.c
|
|
255
255
|
cipher_extra/derive_key.c
|
|
256
|
-
cipher_extra/e_aesccm.c
|
|
257
256
|
cipher_extra/e_aesctrhmac.c
|
|
258
257
|
cipher_extra/e_aesgcmsiv.c
|
|
259
258
|
cipher_extra/e_chacha20poly1305.c
|
|
@@ -263,7 +262,6 @@ add_library(
|
|
|
263
262
|
cipher_extra/e_rc4.c
|
|
264
263
|
cipher_extra/e_tls.c
|
|
265
264
|
cipher_extra/tls_cbc.c
|
|
266
|
-
cmac/cmac.c
|
|
267
265
|
conf/conf.c
|
|
268
266
|
cpu_aarch64_apple.c
|
|
269
267
|
cpu_aarch64_fuchsia.c
|
|
@@ -505,7 +503,6 @@ add_executable(
|
|
|
505
503
|
chacha/chacha_test.cc
|
|
506
504
|
cipher_extra/aead_test.cc
|
|
507
505
|
cipher_extra/cipher_test.cc
|
|
508
|
-
cmac/cmac_test.cc
|
|
509
506
|
compiler_test.cc
|
|
510
507
|
conf/conf_test.cc
|
|
511
508
|
constant_time_test.cc
|
|
@@ -525,6 +522,7 @@ add_executable(
|
|
|
525
522
|
evp/scrypt_test.cc
|
|
526
523
|
fipsmodule/aes/aes_test.cc
|
|
527
524
|
fipsmodule/bn/bn_test.cc
|
|
525
|
+
fipsmodule/cmac/cmac_test.cc
|
|
528
526
|
fipsmodule/ec/ec_test.cc
|
|
529
527
|
fipsmodule/ec/p256-nistz_test.cc
|
|
530
528
|
fipsmodule/ecdsa/ecdsa_test.cc
|
|
@@ -532,6 +530,7 @@ add_executable(
|
|
|
532
530
|
fipsmodule/modes/gcm_test.cc
|
|
533
531
|
fipsmodule/rand/ctrdrbg_test.cc
|
|
534
532
|
fipsmodule/rand/fork_detect_test.cc
|
|
533
|
+
fipsmodule/service_indicator/service_indicator_test.cc
|
|
535
534
|
fipsmodule/sha/sha_test.cc
|
|
536
535
|
hkdf/hkdf_test.cc
|
|
537
536
|
hpke/hpke_test.cc
|
|
@@ -1,206 +1,206 @@
|
|
|
1
|
-
/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
|
|
2
|
-
* project 2001.
|
|
3
|
-
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
|
4
|
-
* project 2008.
|
|
5
|
-
*/
|
|
6
|
-
/* ====================================================================
|
|
7
|
-
* Copyright (c) 2001 The OpenSSL Project. All rights reserved.
|
|
8
|
-
*
|
|
9
|
-
* Redistribution and use in source and binary forms, with or without
|
|
10
|
-
* modification, are permitted provided that the following conditions
|
|
11
|
-
* are met:
|
|
12
|
-
*
|
|
13
|
-
* 1. Redistributions of source code must retain the above copyright
|
|
14
|
-
* notice, this list of conditions and the following disclaimer.
|
|
15
|
-
*
|
|
16
|
-
* 2. Redistributions in binary form must reproduce the above copyright
|
|
17
|
-
* notice, this list of conditions and the following disclaimer in
|
|
18
|
-
* the documentation and/or other materials provided with the
|
|
19
|
-
* distribution.
|
|
20
|
-
*
|
|
21
|
-
* 3. All advertising materials mentioning features or use of this
|
|
22
|
-
* software must display the following acknowledgment:
|
|
23
|
-
* "This product includes software developed by the OpenSSL Project
|
|
24
|
-
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
|
25
|
-
*
|
|
26
|
-
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
|
27
|
-
* endorse or promote products derived from this software without
|
|
28
|
-
* prior written permission. For written permission, please contact
|
|
29
|
-
* licensing@OpenSSL.org.
|
|
30
|
-
*
|
|
31
|
-
* 5. Products derived from this software may not be called "OpenSSL"
|
|
32
|
-
* nor may "OpenSSL" appear in their names without prior written
|
|
33
|
-
* permission of the OpenSSL Project.
|
|
34
|
-
*
|
|
35
|
-
* 6. Redistributions of any form whatsoever must retain the following
|
|
36
|
-
* acknowledgment:
|
|
37
|
-
* "This product includes software developed by the OpenSSL Project
|
|
38
|
-
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
|
39
|
-
*
|
|
40
|
-
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
|
41
|
-
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
42
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
43
|
-
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
|
44
|
-
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
45
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
46
|
-
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
47
|
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
48
|
-
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
49
|
-
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
50
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
|
51
|
-
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
52
|
-
* ====================================================================
|
|
53
|
-
*
|
|
54
|
-
* This product includes cryptographic software written by Eric Young
|
|
55
|
-
* (eay@cryptsoft.com). This product includes software written by Tim
|
|
56
|
-
* Hudson (tjh@cryptsoft.com). */
|
|
57
|
-
|
|
58
|
-
#if !defined(_POSIX_C_SOURCE)
|
|
59
|
-
#define _POSIX_C_SOURCE 201410L /* for gmtime_r */
|
|
60
|
-
#endif
|
|
61
|
-
|
|
62
|
-
#include "internal.h"
|
|
63
|
-
|
|
64
|
-
#include <time.h>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
#define SECS_PER_DAY (24 * 60 * 60)
|
|
68
|
-
|
|
69
|
-
struct tm *OPENSSL_gmtime(const time_t *time, struct tm *result) {
|
|
70
|
-
#if defined(OPENSSL_WINDOWS)
|
|
71
|
-
if (gmtime_s(result, time)) {
|
|
72
|
-
return NULL;
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
#else
|
|
76
|
-
return gmtime_r(time, result);
|
|
77
|
-
#endif
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/* Convert date to and from julian day Uses Fliegel & Van Flandern algorithm */
|
|
81
|
-
static long date_to_julian(int y, int m, int d) {
|
|
82
|
-
return (1461 * (y + 4800 + (m - 14) / 12)) / 4 +
|
|
83
|
-
(367 * (m - 2 - 12 * ((m - 14) / 12))) / 12 -
|
|
84
|
-
(3 * ((y + 4900 + (m - 14) / 12) / 100)) / 4 + d - 32075;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
static void julian_to_date(long jd, int *y, int *m, int *d) {
|
|
88
|
-
long L = jd + 68569;
|
|
89
|
-
long n = (4 * L) / 146097;
|
|
90
|
-
long i, j;
|
|
91
|
-
|
|
92
|
-
L = L - (146097 * n + 3) / 4;
|
|
93
|
-
i = (4000 * (L + 1)) / 1461001;
|
|
94
|
-
L = L - (1461 * i) / 4 + 31;
|
|
95
|
-
j = (80 * L) / 2447;
|
|
96
|
-
*d = L - (2447 * j) / 80;
|
|
97
|
-
L = j / 11;
|
|
98
|
-
*m = j + 2 - (12 * L);
|
|
99
|
-
*y = 100 * (n - 49) + i + L;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/* Convert tm structure and offset into julian day and seconds */
|
|
103
|
-
static int julian_adj(const struct tm *tm, int off_day, long offset_sec,
|
|
104
|
-
long *pday, int *psec) {
|
|
105
|
-
int offset_hms, offset_day;
|
|
106
|
-
long time_jd;
|
|
107
|
-
int time_year, time_month, time_day;
|
|
108
|
-
/* split offset into days and day seconds */
|
|
109
|
-
offset_day = offset_sec / SECS_PER_DAY;
|
|
110
|
-
/* Avoid sign issues with % operator */
|
|
111
|
-
offset_hms = offset_sec - (offset_day * SECS_PER_DAY);
|
|
112
|
-
offset_day += off_day;
|
|
113
|
-
/* Add current time seconds to offset */
|
|
114
|
-
offset_hms += tm->tm_hour * 3600 + tm->tm_min * 60 + tm->tm_sec;
|
|
115
|
-
/* Adjust day seconds if overflow */
|
|
116
|
-
if (offset_hms >= SECS_PER_DAY) {
|
|
117
|
-
offset_day++;
|
|
118
|
-
offset_hms -= SECS_PER_DAY;
|
|
119
|
-
} else if (offset_hms < 0) {
|
|
120
|
-
offset_day--;
|
|
121
|
-
offset_hms += SECS_PER_DAY;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/* Convert date of time structure into a Julian day number. */
|
|
125
|
-
|
|
126
|
-
time_year = tm->tm_year + 1900;
|
|
127
|
-
time_month = tm->tm_mon + 1;
|
|
128
|
-
time_day = tm->tm_mday;
|
|
129
|
-
|
|
130
|
-
time_jd = date_to_julian(time_year, time_month, time_day);
|
|
131
|
-
|
|
132
|
-
/* Work out Julian day of new date */
|
|
133
|
-
time_jd += offset_day;
|
|
134
|
-
|
|
135
|
-
if (time_jd < 0) {
|
|
136
|
-
return 0;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
*pday = time_jd;
|
|
140
|
-
*psec = offset_hms;
|
|
141
|
-
return 1;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) {
|
|
145
|
-
int time_sec, time_year, time_month, time_day;
|
|
146
|
-
long time_jd;
|
|
147
|
-
|
|
148
|
-
/* Convert time and offset into julian day and seconds */
|
|
149
|
-
if (!julian_adj(tm, off_day, offset_sec, &time_jd, &time_sec)) {
|
|
150
|
-
return 0;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* Convert Julian day back to date */
|
|
154
|
-
|
|
155
|
-
julian_to_date(time_jd, &time_year, &time_month, &time_day);
|
|
156
|
-
|
|
157
|
-
if (time_year < 1900 || time_year > 9999) {
|
|
158
|
-
return 0;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/* Update tm structure */
|
|
162
|
-
|
|
163
|
-
tm->tm_year = time_year - 1900;
|
|
164
|
-
tm->tm_mon = time_month - 1;
|
|
165
|
-
tm->tm_mday = time_day;
|
|
166
|
-
|
|
167
|
-
tm->tm_hour = time_sec / 3600;
|
|
168
|
-
tm->tm_min = (time_sec / 60) % 60;
|
|
169
|
-
tm->tm_sec = time_sec % 60;
|
|
170
|
-
|
|
171
|
-
return 1;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
int OPENSSL_gmtime_diff(int *out_days, int *out_secs, const struct tm *from,
|
|
175
|
-
const struct tm *to) {
|
|
176
|
-
int from_sec, to_sec, diff_sec;
|
|
177
|
-
long from_jd, to_jd, diff_day;
|
|
178
|
-
|
|
179
|
-
if (!julian_adj(from, 0, 0, &from_jd, &from_sec)) {
|
|
180
|
-
return 0;
|
|
181
|
-
}
|
|
182
|
-
if (!julian_adj(to, 0, 0, &to_jd, &to_sec)) {
|
|
183
|
-
return 0;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
diff_day = to_jd - from_jd;
|
|
187
|
-
diff_sec = to_sec - from_sec;
|
|
188
|
-
/* Adjust differences so both positive or both negative */
|
|
189
|
-
if (diff_day > 0 && diff_sec < 0) {
|
|
190
|
-
diff_day--;
|
|
191
|
-
diff_sec += SECS_PER_DAY;
|
|
192
|
-
}
|
|
193
|
-
if (diff_day < 0 && diff_sec > 0) {
|
|
194
|
-
diff_day++;
|
|
195
|
-
diff_sec -= SECS_PER_DAY;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
if (out_days) {
|
|
199
|
-
*out_days = (int)diff_day;
|
|
200
|
-
}
|
|
201
|
-
if (out_secs) {
|
|
202
|
-
*out_secs = diff_sec;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return 1;
|
|
206
|
-
}
|
|
1
|
+
/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
|
|
2
|
+
* project 2001.
|
|
3
|
+
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
|
4
|
+
* project 2008.
|
|
5
|
+
*/
|
|
6
|
+
/* ====================================================================
|
|
7
|
+
* Copyright (c) 2001 The OpenSSL Project. All rights reserved.
|
|
8
|
+
*
|
|
9
|
+
* Redistribution and use in source and binary forms, with or without
|
|
10
|
+
* modification, are permitted provided that the following conditions
|
|
11
|
+
* are met:
|
|
12
|
+
*
|
|
13
|
+
* 1. Redistributions of source code must retain the above copyright
|
|
14
|
+
* notice, this list of conditions and the following disclaimer.
|
|
15
|
+
*
|
|
16
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
|
17
|
+
* notice, this list of conditions and the following disclaimer in
|
|
18
|
+
* the documentation and/or other materials provided with the
|
|
19
|
+
* distribution.
|
|
20
|
+
*
|
|
21
|
+
* 3. All advertising materials mentioning features or use of this
|
|
22
|
+
* software must display the following acknowledgment:
|
|
23
|
+
* "This product includes software developed by the OpenSSL Project
|
|
24
|
+
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
|
25
|
+
*
|
|
26
|
+
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
|
27
|
+
* endorse or promote products derived from this software without
|
|
28
|
+
* prior written permission. For written permission, please contact
|
|
29
|
+
* licensing@OpenSSL.org.
|
|
30
|
+
*
|
|
31
|
+
* 5. Products derived from this software may not be called "OpenSSL"
|
|
32
|
+
* nor may "OpenSSL" appear in their names without prior written
|
|
33
|
+
* permission of the OpenSSL Project.
|
|
34
|
+
*
|
|
35
|
+
* 6. Redistributions of any form whatsoever must retain the following
|
|
36
|
+
* acknowledgment:
|
|
37
|
+
* "This product includes software developed by the OpenSSL Project
|
|
38
|
+
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
|
39
|
+
*
|
|
40
|
+
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
|
41
|
+
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
42
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
43
|
+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
|
44
|
+
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
45
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
46
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
47
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
48
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
49
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
50
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
|
51
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
52
|
+
* ====================================================================
|
|
53
|
+
*
|
|
54
|
+
* This product includes cryptographic software written by Eric Young
|
|
55
|
+
* (eay@cryptsoft.com). This product includes software written by Tim
|
|
56
|
+
* Hudson (tjh@cryptsoft.com). */
|
|
57
|
+
|
|
58
|
+
#if defined(__linux__) && !defined(_POSIX_C_SOURCE)
|
|
59
|
+
#define _POSIX_C_SOURCE 201410L /* for gmtime_r */
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
#include "internal.h"
|
|
63
|
+
|
|
64
|
+
#include <time.h>
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
#define SECS_PER_DAY (24 * 60 * 60)
|
|
68
|
+
|
|
69
|
+
struct tm *OPENSSL_gmtime(const time_t *time, struct tm *result) {
|
|
70
|
+
#if defined(OPENSSL_WINDOWS)
|
|
71
|
+
if (gmtime_s(result, time)) {
|
|
72
|
+
return NULL;
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
#else
|
|
76
|
+
return gmtime_r(time, result);
|
|
77
|
+
#endif
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Convert date to and from julian day Uses Fliegel & Van Flandern algorithm */
|
|
81
|
+
static long date_to_julian(int y, int m, int d) {
|
|
82
|
+
return (1461 * (y + 4800 + (m - 14) / 12)) / 4 +
|
|
83
|
+
(367 * (m - 2 - 12 * ((m - 14) / 12))) / 12 -
|
|
84
|
+
(3 * ((y + 4900 + (m - 14) / 12) / 100)) / 4 + d - 32075;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static void julian_to_date(long jd, int *y, int *m, int *d) {
|
|
88
|
+
long L = jd + 68569;
|
|
89
|
+
long n = (4 * L) / 146097;
|
|
90
|
+
long i, j;
|
|
91
|
+
|
|
92
|
+
L = L - (146097 * n + 3) / 4;
|
|
93
|
+
i = (4000 * (L + 1)) / 1461001;
|
|
94
|
+
L = L - (1461 * i) / 4 + 31;
|
|
95
|
+
j = (80 * L) / 2447;
|
|
96
|
+
*d = L - (2447 * j) / 80;
|
|
97
|
+
L = j / 11;
|
|
98
|
+
*m = j + 2 - (12 * L);
|
|
99
|
+
*y = 100 * (n - 49) + i + L;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* Convert tm structure and offset into julian day and seconds */
|
|
103
|
+
static int julian_adj(const struct tm *tm, int off_day, long offset_sec,
|
|
104
|
+
long *pday, int *psec) {
|
|
105
|
+
int offset_hms, offset_day;
|
|
106
|
+
long time_jd;
|
|
107
|
+
int time_year, time_month, time_day;
|
|
108
|
+
/* split offset into days and day seconds */
|
|
109
|
+
offset_day = offset_sec / SECS_PER_DAY;
|
|
110
|
+
/* Avoid sign issues with % operator */
|
|
111
|
+
offset_hms = offset_sec - (offset_day * SECS_PER_DAY);
|
|
112
|
+
offset_day += off_day;
|
|
113
|
+
/* Add current time seconds to offset */
|
|
114
|
+
offset_hms += tm->tm_hour * 3600 + tm->tm_min * 60 + tm->tm_sec;
|
|
115
|
+
/* Adjust day seconds if overflow */
|
|
116
|
+
if (offset_hms >= SECS_PER_DAY) {
|
|
117
|
+
offset_day++;
|
|
118
|
+
offset_hms -= SECS_PER_DAY;
|
|
119
|
+
} else if (offset_hms < 0) {
|
|
120
|
+
offset_day--;
|
|
121
|
+
offset_hms += SECS_PER_DAY;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Convert date of time structure into a Julian day number. */
|
|
125
|
+
|
|
126
|
+
time_year = tm->tm_year + 1900;
|
|
127
|
+
time_month = tm->tm_mon + 1;
|
|
128
|
+
time_day = tm->tm_mday;
|
|
129
|
+
|
|
130
|
+
time_jd = date_to_julian(time_year, time_month, time_day);
|
|
131
|
+
|
|
132
|
+
/* Work out Julian day of new date */
|
|
133
|
+
time_jd += offset_day;
|
|
134
|
+
|
|
135
|
+
if (time_jd < 0) {
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
*pday = time_jd;
|
|
140
|
+
*psec = offset_hms;
|
|
141
|
+
return 1;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) {
|
|
145
|
+
int time_sec, time_year, time_month, time_day;
|
|
146
|
+
long time_jd;
|
|
147
|
+
|
|
148
|
+
/* Convert time and offset into julian day and seconds */
|
|
149
|
+
if (!julian_adj(tm, off_day, offset_sec, &time_jd, &time_sec)) {
|
|
150
|
+
return 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* Convert Julian day back to date */
|
|
154
|
+
|
|
155
|
+
julian_to_date(time_jd, &time_year, &time_month, &time_day);
|
|
156
|
+
|
|
157
|
+
if (time_year < 1900 || time_year > 9999) {
|
|
158
|
+
return 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Update tm structure */
|
|
162
|
+
|
|
163
|
+
tm->tm_year = time_year - 1900;
|
|
164
|
+
tm->tm_mon = time_month - 1;
|
|
165
|
+
tm->tm_mday = time_day;
|
|
166
|
+
|
|
167
|
+
tm->tm_hour = time_sec / 3600;
|
|
168
|
+
tm->tm_min = (time_sec / 60) % 60;
|
|
169
|
+
tm->tm_sec = time_sec % 60;
|
|
170
|
+
|
|
171
|
+
return 1;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
int OPENSSL_gmtime_diff(int *out_days, int *out_secs, const struct tm *from,
|
|
175
|
+
const struct tm *to) {
|
|
176
|
+
int from_sec, to_sec, diff_sec;
|
|
177
|
+
long from_jd, to_jd, diff_day;
|
|
178
|
+
|
|
179
|
+
if (!julian_adj(from, 0, 0, &from_jd, &from_sec)) {
|
|
180
|
+
return 0;
|
|
181
|
+
}
|
|
182
|
+
if (!julian_adj(to, 0, 0, &to_jd, &to_sec)) {
|
|
183
|
+
return 0;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
diff_day = to_jd - from_jd;
|
|
187
|
+
diff_sec = to_sec - from_sec;
|
|
188
|
+
/* Adjust differences so both positive or both negative */
|
|
189
|
+
if (diff_day > 0 && diff_sec < 0) {
|
|
190
|
+
diff_day--;
|
|
191
|
+
diff_sec += SECS_PER_DAY;
|
|
192
|
+
}
|
|
193
|
+
if (diff_day < 0 && diff_sec > 0) {
|
|
194
|
+
diff_day++;
|
|
195
|
+
diff_sec -= SECS_PER_DAY;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (out_days) {
|
|
199
|
+
*out_days = (int)diff_day;
|
|
200
|
+
}
|
|
201
|
+
if (out_secs) {
|
|
202
|
+
*out_secs = diff_sec;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return 1;
|
|
206
|
+
}
|