@fails-components/webtransport 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/readme.md +1 -3
- package/src/http3eventloop.cc +83 -9
- package/src/http3eventloop.h +13 -3
- package/src/http3server.cc +22 -22
- package/src/http3server.h +7 -20
- package/src/http3wtstreamvisitor.cc +31 -10
- package/src/http3wtstreamvisitor.h +38 -11
- package/src/webtransport.js +91 -23
- package/test/echoserver.js +29 -5
- package/test/testsuite.js +242 -220
- package/third_party/boringssl/src/CMakeLists.txt +2 -0
- package/third_party/boringssl/src/crypto/CMakeLists.txt +1 -0
- package/third_party/boringssl/src/crypto/asn1/a_bitstr.c +174 -177
- package/third_party/boringssl/src/crypto/asn1/a_bool.c +46 -48
- package/third_party/boringssl/src/crypto/asn1/a_d2i_fp.c +21 -23
- package/third_party/boringssl/src/crypto/asn1/a_dup.c +21 -23
- package/third_party/boringssl/src/crypto/asn1/a_gentm.c +84 -187
- package/third_party/boringssl/src/crypto/asn1/a_i2d_fp.c +19 -21
- package/third_party/boringssl/src/crypto/asn1/a_int.c +305 -329
- package/third_party/boringssl/src/crypto/asn1/a_mbstr.c +190 -195
- package/third_party/boringssl/src/crypto/asn1/a_object.c +182 -189
- package/third_party/boringssl/src/crypto/asn1/a_octet.c +6 -9
- package/third_party/boringssl/src/crypto/asn1/a_print.c +15 -16
- package/third_party/boringssl/src/crypto/asn1/a_strex.c +386 -399
- package/third_party/boringssl/src/crypto/asn1/a_strnid.c +110 -131
- package/third_party/boringssl/src/crypto/asn1/a_time.c +118 -111
- package/third_party/boringssl/src/crypto/asn1/a_type.c +59 -60
- package/third_party/boringssl/src/crypto/asn1/a_utctm.c +114 -186
- package/third_party/boringssl/src/crypto/asn1/a_utf8.c +171 -159
- package/third_party/boringssl/src/crypto/asn1/asn1_lib.c +245 -260
- package/third_party/boringssl/src/crypto/asn1/asn1_par.c +41 -40
- package/third_party/boringssl/src/crypto/asn1/asn1_test.cc +31 -0
- package/third_party/boringssl/src/crypto/asn1/asn_pack.c +31 -33
- package/third_party/boringssl/src/crypto/asn1/f_int.c +36 -33
- package/third_party/boringssl/src/crypto/asn1/f_string.c +29 -26
- package/third_party/boringssl/src/crypto/asn1/internal.h +62 -61
- package/third_party/boringssl/src/crypto/asn1/tasn_dec.c +706 -702
- package/third_party/boringssl/src/crypto/asn1/tasn_enc.c +507 -524
- package/third_party/boringssl/src/crypto/asn1/tasn_fre.c +141 -133
- package/third_party/boringssl/src/crypto/asn1/tasn_new.c +207 -199
- package/third_party/boringssl/src/crypto/asn1/tasn_typ.c +19 -22
- package/third_party/boringssl/src/crypto/asn1/tasn_utl.c +24 -24
- package/third_party/boringssl/src/crypto/asn1/time_support.c +13 -13
- package/third_party/boringssl/src/crypto/bio/connect.c +9 -3
- package/third_party/boringssl/src/crypto/bytestring/bytestring_test.cc +125 -1
- package/third_party/boringssl/src/crypto/bytestring/cbb.c +4 -7
- package/third_party/boringssl/src/crypto/bytestring/cbs.c +167 -9
- package/third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c +0 -2
- package/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c +23 -54
- package/third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -2
- package/third_party/boringssl/src/crypto/cipher_extra/e_tls.c +0 -2
- package/third_party/boringssl/src/crypto/curve25519/curve25519.c +6 -8
- package/third_party/boringssl/src/crypto/evp/evp_ctx.c +25 -22
- package/third_party/boringssl/src/crypto/evp/internal.h +15 -9
- package/third_party/boringssl/src/crypto/evp/p_dsa_asn1.c +2 -0
- package/third_party/boringssl/src/crypto/evp/p_ec_asn1.c +2 -0
- package/third_party/boringssl/src/crypto/evp/p_ed25519.c +3 -3
- package/third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c +10 -7
- package/third_party/boringssl/src/crypto/evp/p_hkdf.c +241 -0
- package/third_party/boringssl/src/crypto/evp/p_rsa_asn1.c +2 -0
- package/third_party/boringssl/src/crypto/evp/p_x25519_asn1.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/aes/aes_nohw.c +9 -10
- package/third_party/boringssl/src/crypto/fipsmodule/aes/key_wrap.c +2 -6
- package/third_party/boringssl/src/crypto/fipsmodule/bn/exponentiation.c +5 -11
- package/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h +1 -1
- package/third_party/boringssl/src/crypto/fipsmodule/bn/prime.c +2 -0
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c +10 -26
- package/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aesccm.c +2 -3
- package/third_party/boringssl/src/crypto/fipsmodule/digestsign/digestsign.c +1 -0
- package/third_party/boringssl/src/crypto/fipsmodule/ec/p256-nistz.c +44 -43
- package/third_party/boringssl/src/crypto/fipsmodule/modes/cbc.c +5 -9
- package/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c +14 -21
- package/third_party/boringssl/src/crypto/fipsmodule/rand/ctrdrbg.c +8 -8
- package/third_party/boringssl/src/crypto/fipsmodule/rand/internal.h +1 -4
- package/third_party/boringssl/src/crypto/hkdf/hkdf_test.cc +104 -0
- package/third_party/boringssl/src/crypto/internal.h +18 -4
- package/third_party/boringssl/src/crypto/lhash/internal.h +13 -1
- package/third_party/boringssl/src/crypto/obj/obj_dat.h +4 -1
- package/third_party/boringssl/src/crypto/obj/obj_mac.num +1 -0
- package/third_party/boringssl/src/crypto/obj/objects.txt +2 -0
- package/third_party/boringssl/src/crypto/pem/pem_all.c +77 -86
- package/third_party/boringssl/src/crypto/pem/pem_info.c +221 -233
- package/third_party/boringssl/src/crypto/pem/pem_lib.c +639 -608
- package/third_party/boringssl/src/crypto/pem/pem_oth.c +17 -16
- package/third_party/boringssl/src/crypto/pem/pem_pk8.c +133 -142
- package/third_party/boringssl/src/crypto/pem/pem_pkey.c +96 -92
- package/third_party/boringssl/src/crypto/poly1305/poly1305_vec.c +12 -28
- package/third_party/boringssl/src/crypto/siphash/siphash.c +8 -11
- package/third_party/boringssl/src/crypto/siphash/siphash_test.cc +5 -7
- package/third_party/boringssl/src/crypto/stack/stack.c +33 -16
- package/third_party/boringssl/src/crypto/thread_pthread.c +0 -2
- package/third_party/boringssl/src/crypto/thread_win.c +0 -2
- package/third_party/boringssl/src/crypto/trust_token/internal.h +14 -0
- package/third_party/boringssl/src/crypto/trust_token/pmbtoken.c +127 -30
- package/third_party/boringssl/src/crypto/trust_token/trust_token.c +40 -0
- package/third_party/boringssl/src/crypto/trust_token/trust_token_test.cc +165 -0
- package/third_party/boringssl/src/crypto/trust_token/voprf.c +55 -6
- package/third_party/boringssl/src/crypto/x509/a_digest.c +23 -24
- package/third_party/boringssl/src/crypto/x509/a_sign.c +52 -55
- package/third_party/boringssl/src/crypto/x509/a_verify.c +33 -34
- package/third_party/boringssl/src/crypto/x509/algorithm.c +17 -18
- package/third_party/boringssl/src/crypto/x509/asn1_gen.c +618 -612
- package/third_party/boringssl/src/crypto/x509/by_dir.c +320 -337
- package/third_party/boringssl/src/crypto/x509/by_file.c +186 -186
- package/third_party/boringssl/src/crypto/x509/i2d_pr.c +11 -14
- package/third_party/boringssl/src/crypto/x509/internal.h +22 -22
- package/third_party/boringssl/src/crypto/x509/name_print.c +155 -150
- package/third_party/boringssl/src/crypto/x509/rsa_pss.c +27 -29
- package/third_party/boringssl/src/crypto/x509/t_crl.c +67 -70
- package/third_party/boringssl/src/crypto/x509/t_req.c +3 -5
- package/third_party/boringssl/src/crypto/x509/t_x509.c +280 -251
- package/third_party/boringssl/src/crypto/x509/t_x509a.c +52 -47
- package/third_party/boringssl/src/crypto/x509/x509.c +3 -4
- package/third_party/boringssl/src/crypto/x509/x509_att.c +234 -223
- package/third_party/boringssl/src/crypto/x509/x509_cmp.c +286 -296
- package/third_party/boringssl/src/crypto/x509/x509_d2.c +37 -32
- package/third_party/boringssl/src/crypto/x509/x509_def.c +14 -30
- package/third_party/boringssl/src/crypto/x509/x509_ext.c +55 -84
- package/third_party/boringssl/src/crypto/x509/x509_lu.c +545 -581
- package/third_party/boringssl/src/crypto/x509/x509_obj.c +131 -121
- package/third_party/boringssl/src/crypto/x509/x509_req.c +120 -139
- package/third_party/boringssl/src/crypto/x509/x509_set.c +128 -142
- package/third_party/boringssl/src/crypto/x509/x509_trs.c +185 -193
- package/third_party/boringssl/src/crypto/x509/x509_txt.c +70 -72
- package/third_party/boringssl/src/crypto/x509/x509_v3.c +172 -161
- package/third_party/boringssl/src/crypto/x509/x509_vfy.c +2041 -2053
- package/third_party/boringssl/src/crypto/x509/x509_vpm.c +441 -461
- package/third_party/boringssl/src/crypto/x509/x509cset.c +152 -170
- package/third_party/boringssl/src/crypto/x509/x509name.c +274 -260
- package/third_party/boringssl/src/crypto/x509/x509rset.c +43 -20
- package/third_party/boringssl/src/crypto/x509/x509spki.c +62 -63
- package/third_party/boringssl/src/crypto/x509/x_algor.c +64 -62
- package/third_party/boringssl/src/crypto/x509/x_all.c +103 -133
- package/third_party/boringssl/src/crypto/x509/x_attrib.c +23 -24
- package/third_party/boringssl/src/crypto/x509/x_crl.c +310 -321
- package/third_party/boringssl/src/crypto/x509/x_exten.c +6 -5
- package/third_party/boringssl/src/crypto/x509/x_info.c +31 -28
- package/third_party/boringssl/src/crypto/x509/x_name.c +361 -365
- package/third_party/boringssl/src/crypto/x509/x_pkey.c +38 -32
- package/third_party/boringssl/src/crypto/x509/x_pubkey.c +114 -117
- package/third_party/boringssl/src/crypto/x509/x_req.c +27 -29
- package/third_party/boringssl/src/crypto/x509/x_sig.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_spki.c +8 -10
- package/third_party/boringssl/src/crypto/x509/x_val.c +2 -2
- package/third_party/boringssl/src/crypto/x509/x_x509.c +212 -226
- package/third_party/boringssl/src/crypto/x509/x_x509a.c +112 -109
- package/third_party/boringssl/src/crypto/x509v3/ext_dat.h +10 -13
- package/third_party/boringssl/src/crypto/x509v3/internal.h +72 -87
- package/third_party/boringssl/src/crypto/x509v3/pcy_cache.c +184 -176
- package/third_party/boringssl/src/crypto/x509v3/pcy_data.c +58 -56
- package/third_party/boringssl/src/crypto/x509v3/pcy_lib.c +71 -70
- package/third_party/boringssl/src/crypto/x509v3/pcy_map.c +56 -58
- package/third_party/boringssl/src/crypto/x509v3/pcy_node.c +89 -91
- package/third_party/boringssl/src/crypto/x509v3/pcy_tree.c +585 -590
- package/third_party/boringssl/src/crypto/x509v3/v3_akey.c +118 -112
- package/third_party/boringssl/src/crypto/x509v3/v3_akeya.c +3 -3
- package/third_party/boringssl/src/crypto/x509v3/v3_alt.c +447 -451
- package/third_party/boringssl/src/crypto/x509v3/v3_bcons.c +44 -38
- package/third_party/boringssl/src/crypto/x509v3/v3_bitst.c +39 -43
- package/third_party/boringssl/src/crypto/x509v3/v3_conf.c +321 -320
- package/third_party/boringssl/src/crypto/x509v3/v3_cpols.c +352 -327
- package/third_party/boringssl/src/crypto/x509v3/v3_crld.c +437 -383
- package/third_party/boringssl/src/crypto/x509v3/v3_enum.c +23 -16
- package/third_party/boringssl/src/crypto/x509v3/v3_extku.c +62 -53
- package/third_party/boringssl/src/crypto/x509v3/v3_genn.c +118 -115
- package/third_party/boringssl/src/crypto/x509v3/v3_ia5.c +30 -31
- package/third_party/boringssl/src/crypto/x509v3/v3_info.c +112 -98
- package/third_party/boringssl/src/crypto/x509v3/v3_int.c +40 -15
- package/third_party/boringssl/src/crypto/x509v3/v3_lib.c +248 -252
- package/third_party/boringssl/src/crypto/x509v3/v3_ncons.c +390 -386
- package/third_party/boringssl/src/crypto/x509v3/v3_ocsp.c +45 -32
- package/third_party/boringssl/src/crypto/x509v3/v3_pci.c +206 -209
- package/third_party/boringssl/src/crypto/x509v3/v3_pcia.c +6 -8
- package/third_party/boringssl/src/crypto/x509v3/v3_pcons.c +54 -50
- package/third_party/boringssl/src/crypto/x509v3/v3_pmaps.c +66 -65
- package/third_party/boringssl/src/crypto/x509v3/v3_prn.c +144 -133
- package/third_party/boringssl/src/crypto/x509v3/v3_purp.c +695 -709
- package/third_party/boringssl/src/crypto/x509v3/v3_skey.c +75 -69
- package/third_party/boringssl/src/crypto/x509v3/v3_utl.c +1102 -1082
- package/third_party/boringssl/src/include/openssl/base.h +3 -1
- package/third_party/boringssl/src/include/openssl/bn.h +3 -0
- package/third_party/boringssl/src/include/openssl/bytestring.h +20 -0
- package/third_party/boringssl/src/include/openssl/evp.h +6 -5
- package/third_party/boringssl/src/include/openssl/kdf.h +91 -0
- package/third_party/boringssl/src/include/openssl/nid.h +4 -0
- package/third_party/boringssl/src/include/openssl/ssl.h +6 -1
- package/third_party/boringssl/src/include/openssl/stack.h +47 -32
- package/third_party/boringssl/src/include/openssl/trust_token.h +18 -3
- package/third_party/boringssl/src/include/openssl/x509.h +18 -0
- package/third_party/boringssl/src/ssl/ssl_file.cc +61 -99
- package/third_party/boringssl/src/ssl/ssl_test.cc +101 -0
- package/third_party/boringssl/src/util/doc.config +2 -1
- package/third_party/boringssl/src/util/fipstools/acvp/acvptool/subprocess/subprocess.go +8 -0
- package/third_party/googleurl/AUTHORS +16 -2
- package/third_party/googleurl/base/BUILD +1 -0
- package/third_party/googleurl/base/compiler_specific.h +16 -17
- package/third_party/googleurl/base/containers/contiguous_iterator.h +13 -9
- package/third_party/googleurl/base/containers/span.h +23 -8
- package/third_party/googleurl/base/memory/raw_ptr.h +17 -25
- package/third_party/googleurl/base/memory/raw_ptr_exclusion.h +21 -0
- package/third_party/googleurl/base/strings/escape.cc +14 -2
- package/third_party/googleurl/base/strings/safe_sprintf.h +1 -1
- package/third_party/googleurl/base/strings/string_number_conversions.cc +5 -3
- package/third_party/googleurl/base/strings/string_number_conversions_internal.h +5 -5
- package/third_party/googleurl/base/strings/string_piece.h +3 -3
- package/third_party/googleurl/base/strings/string_util.cc +4 -27
- package/third_party/googleurl/base/strings/string_util.h +43 -8
- package/third_party/googleurl/base/strings/string_util_internal.h +11 -12
- package/third_party/googleurl/base/strings/string_util_unittest.cc +33 -0
- package/third_party/googleurl/base/strings/string_util_win.cc +0 -5
- package/third_party/googleurl/base/strings/string_util_win.h +9 -1
- package/third_party/googleurl/base/strings/utf_offset_string_conversions.cc +1 -1
- package/third_party/googleurl/base/strings/utf_string_conversion_utils.cc +5 -8
- package/third_party/googleurl/base/strings/utf_string_conversion_utils.h +13 -10
- package/third_party/googleurl/base/strings/utf_string_conversions.cc +32 -25
- package/third_party/googleurl/base/template_util.h +23 -35
- package/third_party/googleurl/build/build_config.h +14 -3
- package/third_party/googleurl/copy.bara.sky +1 -1
- package/third_party/googleurl/url/gurl.cc +8 -4
- package/third_party/googleurl/url/gurl.h +1 -0
- package/third_party/googleurl/url/gurl_unittest.cc +1 -0
- package/third_party/googleurl/url/origin.h +36 -26
- package/third_party/googleurl/url/scheme_host_port.h +4 -1
- package/third_party/googleurl/url/url_canon.h +2 -1
- package/third_party/googleurl/url/url_canon_internal.cc +9 -7
- package/third_party/googleurl/url/url_canon_internal.h +16 -16
- package/third_party/googleurl/url/url_canon_stdstring.h +2 -1
- package/third_party/googleurl/url/url_util.cc +9 -8
- package/third_party/quiche/build/source_list.bzl +7 -0
- package/third_party/quiche/build/source_list.gni +7 -0
- package/third_party/quiche/build/source_list.json +7 -0
- package/third_party/quiche/quiche/common/platform/api/quiche_mem_slice.h +7 -3
- package/third_party/quiche/quiche/http2/adapter/nghttp2_adapter_test.cc +86 -2
- package/third_party/quiche/quiche/http2/adapter/oghttp2_adapter_test.cc +104 -2
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.cc +23 -0
- package/third_party/quiche/quiche/http2/adapter/oghttp2_session.h +6 -1
- package/third_party/quiche/quiche/quic/core/congestion_control/send_algorithm_test.cc +0 -16
- package/third_party/quiche/quiche/quic/core/crypto/crypto_protocol.h +1 -1
- package/third_party/quiche/quiche/quic/core/http/end_to_end_test.cc +56 -2
- package/third_party/quiche/quiche/quic/core/http/http_constants.cc +1 -0
- package/third_party/quiche/quiche/quic/core/http/http_constants.h +1 -0
- package/third_party/quiche/quiche/quic/core/http/http_encoder.cc +28 -17
- package/third_party/quiche/quiche/quic/core/http/http_encoder.h +5 -0
- package/third_party/quiche/quiche/quic/core/http/http_encoder_test.cc +26 -30
- package/third_party/quiche/quiche/quic/core/http/http_frames.h +1 -0
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base.cc +4 -4
- package/third_party/quiche/quiche/quic/core/http/quic_server_session_base_test.cc +1 -1
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_client_session.cc +5 -1
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.cc +6 -33
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream.h +0 -17
- package/third_party/quiche/quiche/quic/core/http/quic_spdy_stream_test.cc +5 -20
- package/third_party/quiche/quiche/quic/core/io/quic_event_loop.h +81 -0
- package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.cc +265 -0
- package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop.h +152 -0
- package/third_party/quiche/quiche/quic/core/io/quic_poll_event_loop_test.cc +341 -0
- package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.cc +3 -1
- package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store.h +7 -7
- package/third_party/quiche/quiche/quic/core/quic_buffered_packet_store_test.cc +4 -3
- package/third_party/quiche/quiche/quic/core/quic_connection.cc +69 -19
- package/third_party/quiche/quiche/quic/core/quic_connection.h +9 -3
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.cc +29 -10
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager.h +5 -3
- package/third_party/quiche/quiche/quic/core/quic_connection_id_manager_test.cc +85 -22
- package/third_party/quiche/quiche/quic/core/quic_connection_test.cc +186 -30
- package/third_party/quiche/quiche/quic/core/quic_crypto_stream.cc +2 -1
- package/third_party/quiche/quiche/quic/core/quic_default_clock.cc +31 -0
- package/third_party/quiche/quiche/quic/core/quic_default_clock.h +34 -0
- package/third_party/quiche/quiche/quic/core/quic_default_connection_helper.h +49 -0
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.cc +53 -37
- package/third_party/quiche/quiche/quic/core/quic_dispatcher.h +19 -11
- package/third_party/quiche/quiche/quic/core/quic_dispatcher_test.cc +15 -2
- package/third_party/quiche/quiche/quic/core/quic_flags_list.h +10 -4
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector.cc +2 -2
- package/third_party/quiche/quiche/quic/core/quic_idle_network_detector_test.cc +4 -4
- package/third_party/quiche/quiche/quic/core/quic_packet_creator.cc +14 -3
- package/third_party/quiche/quiche/quic/core/quic_packet_creator_test.cc +145 -2
- package/third_party/quiche/quiche/quic/core/quic_packets.cc +3 -1
- package/third_party/quiche/quiche/quic/core/quic_packets.h +4 -0
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.cc +13 -11
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager.h +9 -0
- package/third_party/quiche/quiche/quic/core/quic_sent_packet_manager_test.cc +6 -0
- package/third_party/quiche/quiche/quic/core/quic_session.cc +3 -2
- package/third_party/quiche/quiche/quic/core/quic_session.h +8 -3
- package/third_party/quiche/quiche/quic/core/quic_types.cc +18 -0
- package/third_party/quiche/quiche/quic/core/quic_types.h +3 -0
- package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.cc +3 -0
- package/third_party/quiche/quiche/quic/core/tls_chlo_extractor.h +10 -0
- package/third_party/quiche/quiche/quic/test_tools/mock_quic_session_visitor.h +1 -1
- package/third_party/quiche/quiche/quic/test_tools/quic_test_utils.h +1 -1
- package/third_party/quiche/quiche/quic/test_tools/server_thread.cc +3 -2
- package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.cc +7 -1
- package/third_party/quiche/quiche/quic/test_tools/simple_session_notifier.h +3 -0
- package/third_party/quiche/quiche/quic/test_tools/simulator/quic_endpoint.h +4 -2
- package/certs/ca.cnf +0 -69
- package/certs/generate_certs.sh +0 -53
- package/certs/generate_certs_leaf.sh +0 -53
- package/certs/leaf.cnf +0 -24
- package/certs/readme.txt +0 -2
- package/third_party/quiche/build/BUILD.bazel +0 -7
|
@@ -901,6 +901,31 @@ static std::string ASN1StringToStdString(const ASN1_STRING *str) {
|
|
|
901
901
|
ASN1_STRING_get0_data(str) + ASN1_STRING_length(str));
|
|
902
902
|
}
|
|
903
903
|
|
|
904
|
+
static bool ASN1Time_check_time_t(const ASN1_TIME *s, time_t t) {
|
|
905
|
+
struct tm stm, ttm;
|
|
906
|
+
int day, sec;
|
|
907
|
+
|
|
908
|
+
switch (ASN1_STRING_type(s)) {
|
|
909
|
+
case V_ASN1_GENERALIZEDTIME:
|
|
910
|
+
if (!asn1_generalizedtime_to_tm(&stm, s)) {
|
|
911
|
+
return false;
|
|
912
|
+
}
|
|
913
|
+
break;
|
|
914
|
+
case V_ASN1_UTCTIME:
|
|
915
|
+
if (!asn1_utctime_to_tm(&stm, s)) {
|
|
916
|
+
return false;
|
|
917
|
+
}
|
|
918
|
+
break;
|
|
919
|
+
default:
|
|
920
|
+
return 0;
|
|
921
|
+
}
|
|
922
|
+
if (!OPENSSL_gmtime(&t, &ttm) ||
|
|
923
|
+
!OPENSSL_gmtime_diff(&day, &sec, &ttm, &stm)) {
|
|
924
|
+
return false;
|
|
925
|
+
}
|
|
926
|
+
return day == 0 && sec ==0;
|
|
927
|
+
}
|
|
928
|
+
|
|
904
929
|
TEST(ASN1Test, SetTime) {
|
|
905
930
|
static const struct {
|
|
906
931
|
time_t time;
|
|
@@ -911,6 +936,7 @@ TEST(ASN1Test, SetTime) {
|
|
|
911
936
|
{-631152000, "19500101000000Z", "500101000000Z"},
|
|
912
937
|
{0, "19700101000000Z", "700101000000Z"},
|
|
913
938
|
{981173106, "20010203040506Z", "010203040506Z"},
|
|
939
|
+
{951804000, "20000229060000Z", "000229060000Z"},
|
|
914
940
|
#if defined(OPENSSL_64_BIT)
|
|
915
941
|
// TODO(https://crbug.com/boringssl/416): These cases overflow 32-bit
|
|
916
942
|
// |time_t| and do not consistently work on 32-bit platforms. For now,
|
|
@@ -939,6 +965,7 @@ TEST(ASN1Test, SetTime) {
|
|
|
939
965
|
ASSERT_TRUE(utc);
|
|
940
966
|
EXPECT_EQ(V_ASN1_UTCTIME, ASN1_STRING_type(utc.get()));
|
|
941
967
|
EXPECT_EQ(t.utc, ASN1StringToStdString(utc.get()));
|
|
968
|
+
EXPECT_TRUE(ASN1Time_check_time_t(utc.get(), t.time));
|
|
942
969
|
} else {
|
|
943
970
|
EXPECT_FALSE(utc);
|
|
944
971
|
}
|
|
@@ -949,6 +976,7 @@ TEST(ASN1Test, SetTime) {
|
|
|
949
976
|
ASSERT_TRUE(generalized);
|
|
950
977
|
EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(generalized.get()));
|
|
951
978
|
EXPECT_EQ(t.generalized, ASN1StringToStdString(generalized.get()));
|
|
979
|
+
EXPECT_TRUE(ASN1Time_check_time_t(generalized.get(), t.time));
|
|
952
980
|
} else {
|
|
953
981
|
EXPECT_FALSE(generalized);
|
|
954
982
|
}
|
|
@@ -963,6 +991,7 @@ TEST(ASN1Test, SetTime) {
|
|
|
963
991
|
EXPECT_EQ(V_ASN1_GENERALIZEDTIME, ASN1_STRING_type(choice.get()));
|
|
964
992
|
EXPECT_EQ(t.generalized, ASN1StringToStdString(choice.get()));
|
|
965
993
|
}
|
|
994
|
+
EXPECT_TRUE(ASN1Time_check_time_t(choice.get(), t.time));
|
|
966
995
|
} else {
|
|
967
996
|
EXPECT_FALSE(choice);
|
|
968
997
|
}
|
|
@@ -1042,6 +1071,8 @@ TEST(ASN1Test, StringPrintEx) {
|
|
|
1042
1071
|
// RFC 2253 only escapes spaces at the start and end of a string.
|
|
1043
1072
|
{V_ASN1_T61STRING, StringToVector(" "), 0, ASN1_STRFLGS_ESC_2253,
|
|
1044
1073
|
"\\ \\ "},
|
|
1074
|
+
{V_ASN1_T61STRING, StringToVector(" "), 0,
|
|
1075
|
+
ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_UTF8_CONVERT, "\\ \\ "},
|
|
1045
1076
|
{V_ASN1_T61STRING, StringToVector(" "), 0,
|
|
1046
1077
|
ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_QUOTE, "\" \""},
|
|
1047
1078
|
|
|
@@ -60,42 +60,40 @@
|
|
|
60
60
|
#include <openssl/mem.h>
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING **out)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
63
|
+
ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING **out) {
|
|
64
|
+
uint8_t *new_data = NULL;
|
|
65
|
+
int len = ASN1_item_i2d(obj, &new_data, it);
|
|
66
|
+
if (len <= 0) {
|
|
67
|
+
OPENSSL_PUT_ERROR(ASN1, ASN1_R_ENCODE_ERROR);
|
|
68
|
+
return NULL;
|
|
69
|
+
}
|
|
71
70
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
ret = *out;
|
|
71
|
+
ASN1_STRING *ret = NULL;
|
|
72
|
+
if (out == NULL || *out == NULL) {
|
|
73
|
+
ret = ASN1_STRING_new();
|
|
74
|
+
if (ret == NULL) {
|
|
75
|
+
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
|
76
|
+
OPENSSL_free(new_data);
|
|
77
|
+
return NULL;
|
|
82
78
|
}
|
|
79
|
+
} else {
|
|
80
|
+
ret = *out;
|
|
81
|
+
}
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
ASN1_STRING_set0(ret, new_data, len);
|
|
84
|
+
if (out != NULL) {
|
|
85
|
+
*out = ret;
|
|
86
|
+
}
|
|
87
|
+
return ret;
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return ret;
|
|
90
|
+
void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it) {
|
|
91
|
+
const unsigned char *p = oct->data;
|
|
92
|
+
void *ret = ASN1_item_d2i(NULL, &p, oct->length, it);
|
|
93
|
+
if (ret == NULL || p != oct->data + oct->length) {
|
|
94
|
+
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
|
|
95
|
+
ASN1_item_free(ret, it);
|
|
96
|
+
return NULL;
|
|
97
|
+
}
|
|
98
|
+
return ret;
|
|
101
99
|
}
|
|
@@ -58,45 +58,48 @@
|
|
|
58
58
|
|
|
59
59
|
#include <openssl/bio.h>
|
|
60
60
|
|
|
61
|
-
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
char buf[2];
|
|
61
|
+
int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a) {
|
|
62
|
+
int i, n = 0;
|
|
63
|
+
static const char *h = "0123456789ABCDEF";
|
|
64
|
+
char buf[2];
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
if (a == NULL) {
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
n = 1;
|
|
70
|
+
if (a->type & V_ASN1_NEG) {
|
|
71
|
+
if (BIO_write(bp, "-", 1) != 1) {
|
|
72
|
+
goto err;
|
|
74
73
|
}
|
|
74
|
+
n = 1;
|
|
75
|
+
}
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f];
|
|
88
|
-
buf[1] = h[((unsigned char)a->data[i]) & 0x0f];
|
|
89
|
-
if (BIO_write(bp, buf, 2) != 2)
|
|
90
|
-
goto err;
|
|
91
|
-
n += 2;
|
|
77
|
+
if (a->length == 0) {
|
|
78
|
+
if (BIO_write(bp, "00", 2) != 2) {
|
|
79
|
+
goto err;
|
|
80
|
+
}
|
|
81
|
+
n += 2;
|
|
82
|
+
} else {
|
|
83
|
+
for (i = 0; i < a->length; i++) {
|
|
84
|
+
if ((i != 0) && (i % 35 == 0)) {
|
|
85
|
+
if (BIO_write(bp, "\\\n", 2) != 2) {
|
|
86
|
+
goto err;
|
|
92
87
|
}
|
|
88
|
+
n += 2;
|
|
89
|
+
}
|
|
90
|
+
buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f];
|
|
91
|
+
buf[1] = h[((unsigned char)a->data[i]) & 0x0f];
|
|
92
|
+
if (BIO_write(bp, buf, 2) != 2) {
|
|
93
|
+
goto err;
|
|
94
|
+
}
|
|
95
|
+
n += 2;
|
|
93
96
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
}
|
|
98
|
+
return n;
|
|
99
|
+
err:
|
|
100
|
+
return -1;
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
|
|
100
|
-
|
|
101
|
-
return i2a_ASN1_INTEGER(bp, a);
|
|
103
|
+
int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a) {
|
|
104
|
+
return i2a_ASN1_INTEGER(bp, a);
|
|
102
105
|
}
|
|
@@ -58,34 +58,37 @@
|
|
|
58
58
|
|
|
59
59
|
#include <openssl/bio.h>
|
|
60
60
|
|
|
61
|
-
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
char buf[2];
|
|
61
|
+
int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type) {
|
|
62
|
+
int i, n = 0;
|
|
63
|
+
static const char *h = "0123456789ABCDEF";
|
|
64
|
+
char buf[2];
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
if (a == NULL) {
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f];
|
|
82
|
-
buf[1] = h[((unsigned char)a->data[i]) & 0x0f];
|
|
83
|
-
if (BIO_write(bp, buf, 2) != 2)
|
|
84
|
-
goto err;
|
|
85
|
-
n += 2;
|
|
70
|
+
if (a->length == 0) {
|
|
71
|
+
if (BIO_write(bp, "0", 1) != 1) {
|
|
72
|
+
goto err;
|
|
73
|
+
}
|
|
74
|
+
n = 1;
|
|
75
|
+
} else {
|
|
76
|
+
for (i = 0; i < a->length; i++) {
|
|
77
|
+
if ((i != 0) && (i % 35 == 0)) {
|
|
78
|
+
if (BIO_write(bp, "\\\n", 2) != 2) {
|
|
79
|
+
goto err;
|
|
86
80
|
}
|
|
81
|
+
n += 2;
|
|
82
|
+
}
|
|
83
|
+
buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f];
|
|
84
|
+
buf[1] = h[((unsigned char)a->data[i]) & 0x0f];
|
|
85
|
+
if (BIO_write(bp, buf, 2) != 2) {
|
|
86
|
+
goto err;
|
|
87
|
+
}
|
|
88
|
+
n += 2;
|
|
87
89
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
}
|
|
91
|
+
return n;
|
|
92
|
+
err:
|
|
93
|
+
return -1;
|
|
91
94
|
}
|
|
@@ -69,42 +69,42 @@ extern "C" {
|
|
|
69
69
|
#endif
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
// Wrapper functions for time functions.
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
struct tm *OPENSSL_gmtime(const time_t *time, struct tm *result);
|
|
74
|
+
// OPENSSL_gmtime wraps |gmtime_r|. See the manual page for that function.
|
|
75
|
+
OPENSSL_EXPORT struct tm *OPENSSL_gmtime(const time_t *time, struct tm *result);
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
// OPENSSL_gmtime_adj updates |tm| by adding |offset_day| days and |offset_sec|
|
|
78
|
+
// seconds.
|
|
79
79
|
int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec);
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
int OPENSSL_gmtime_diff(int *out_days, int *out_secs,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
#define ASN1_OBJECT_FLAG_DYNAMIC 0x01
|
|
93
|
-
#define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04
|
|
94
|
-
#define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
81
|
+
// OPENSSL_gmtime_diff calculates the difference between |from| and |to| and
|
|
82
|
+
// outputs the difference as a number of days and seconds in |*out_days| and
|
|
83
|
+
// |*out_secs|.
|
|
84
|
+
OPENSSL_EXPORT int OPENSSL_gmtime_diff(int *out_days, int *out_secs,
|
|
85
|
+
const struct tm *from,
|
|
86
|
+
const struct tm *to);
|
|
87
|
+
|
|
88
|
+
// Internal ASN1 structures and functions: not for application use
|
|
89
|
+
|
|
90
|
+
// These are used internally in the ASN1_OBJECT to keep track of
|
|
91
|
+
// whether the names and data need to be free()ed
|
|
92
|
+
#define ASN1_OBJECT_FLAG_DYNAMIC 0x01 // internal use
|
|
93
|
+
#define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04 // internal use
|
|
94
|
+
#define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08 // internal use
|
|
95
|
+
|
|
96
|
+
// An asn1_object_st (aka |ASN1_OBJECT|) represents an ASN.1 OBJECT IDENTIFIER.
|
|
97
|
+
// Note: Mutating an |ASN1_OBJECT| is only permitted when initializing it. The
|
|
98
|
+
// library maintains a table of static |ASN1_OBJECT|s, which may be referenced
|
|
99
|
+
// by non-const |ASN1_OBJECT| pointers. Code which receives an |ASN1_OBJECT|
|
|
100
|
+
// pointer externally must assume it is immutable, even if the pointer is not
|
|
101
|
+
// const.
|
|
102
102
|
struct asn1_object_st {
|
|
103
103
|
const char *sn, *ln;
|
|
104
104
|
int nid;
|
|
105
105
|
int length;
|
|
106
|
-
const unsigned char *data;
|
|
107
|
-
int flags;
|
|
106
|
+
const unsigned char *data; // data remains const after init
|
|
107
|
+
int flags; // Should we free this one
|
|
108
108
|
};
|
|
109
109
|
|
|
110
110
|
ASN1_OBJECT *ASN1_OBJECT_new(void);
|
|
@@ -126,8 +126,9 @@ typedef struct ASN1_ENCODING_st {
|
|
|
126
126
|
unsigned alias_only_on_next_parse : 1;
|
|
127
127
|
} ASN1_ENCODING;
|
|
128
128
|
|
|
129
|
-
int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d);
|
|
130
|
-
int asn1_generalizedtime_to_tm(struct tm *tm,
|
|
129
|
+
OPENSSL_EXPORT int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d);
|
|
130
|
+
OPENSSL_EXPORT int asn1_generalizedtime_to_tm(struct tm *tm,
|
|
131
|
+
const ASN1_GENERALIZEDTIME *d);
|
|
131
132
|
|
|
132
133
|
void asn1_item_combine_free(ASN1_VALUE **pval, const ASN1_ITEM *it,
|
|
133
134
|
int combine);
|
|
@@ -143,31 +144,31 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|
|
143
144
|
const ASN1_ITEM *it, int tag, int aclass, char opt,
|
|
144
145
|
ASN1_TLC *ctx);
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
// ASN1_item_ex_i2d encodes |*pval| as a value of type |it| to |out| under the
|
|
148
|
+
// i2d output convention. It returns a non-zero length on success and -1 on
|
|
149
|
+
// error. If |tag| is -1. the tag and class come from |it|. Otherwise, the tag
|
|
150
|
+
// number is |tag| and the class is |aclass|. This is used for implicit tagging.
|
|
151
|
+
// This function treats a missing value as an error, not an optional field.
|
|
151
152
|
int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out,
|
|
152
153
|
const ASN1_ITEM *it, int tag, int aclass);
|
|
153
154
|
|
|
154
155
|
void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
|
155
156
|
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
// asn1_get_choice_selector returns the CHOICE selector value for |*pval|, which
|
|
158
|
+
// must of type |it|.
|
|
158
159
|
int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
|
159
160
|
|
|
160
161
|
int asn1_set_choice_selector(ASN1_VALUE **pval, int value, const ASN1_ITEM *it);
|
|
161
162
|
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
// asn1_get_field_ptr returns a pointer to the field in |*pval| corresponding to
|
|
164
|
+
// |tt|.
|
|
164
165
|
ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
|
|
165
166
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
167
|
+
// asn1_do_adb returns the |ASN1_TEMPLATE| for the ANY DEFINED BY field |tt|,
|
|
168
|
+
// based on the selector INTEGER or OID in |*pval|. If |tt| is not an ADB field,
|
|
169
|
+
// it returns |tt|. If the selector does not match any value, it returns NULL.
|
|
170
|
+
// If |nullerr| is non-zero, it will additionally push an error to the error
|
|
171
|
+
// queue when there is no match.
|
|
171
172
|
const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,
|
|
172
173
|
int nullerr);
|
|
173
174
|
|
|
@@ -177,29 +178,29 @@ int asn1_refcount_dec_and_test_zero(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
|
|
177
178
|
void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
|
178
179
|
void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
|
|
179
180
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
// asn1_enc_restore, if |*pval| has a saved encoding, writes it to |out| under
|
|
182
|
+
// the i2d output convention, sets |*len| to the length, and returns one. If it
|
|
183
|
+
// has no saved encoding, it returns zero.
|
|
183
184
|
int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval,
|
|
184
185
|
const ASN1_ITEM *it);
|
|
185
186
|
|
|
186
187
|
int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen,
|
|
187
188
|
const ASN1_ITEM *it);
|
|
188
189
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
// asn1_type_value_as_pointer returns |a|'s value in pointer form. This is
|
|
191
|
+
// usually the value object but, for BOOLEAN values, is 0 or 0xff cast to
|
|
192
|
+
// a pointer.
|
|
192
193
|
const void *asn1_type_value_as_pointer(const ASN1_TYPE *a);
|
|
193
194
|
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
// asn1_is_printable returns one if |value| is a valid Unicode codepoint for an
|
|
196
|
+
// ASN.1 PrintableString, and zero otherwise.
|
|
196
197
|
int asn1_is_printable(uint32_t value);
|
|
197
198
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
// asn1_bit_string_length returns the number of bytes in |str| and sets
|
|
200
|
+
// |*out_padding_bits| to the number of padding bits.
|
|
201
|
+
//
|
|
202
|
+
// This function should be used instead of |ASN1_STRING_length| to correctly
|
|
203
|
+
// handle the non-|ASN1_STRING_FLAG_BITS_LEFT| case.
|
|
203
204
|
int asn1_bit_string_length(const ASN1_BIT_STRING *str,
|
|
204
205
|
uint8_t *out_padding_bits);
|
|
205
206
|
|
|
@@ -211,14 +212,14 @@ typedef struct {
|
|
|
211
212
|
unsigned long flags;
|
|
212
213
|
} ASN1_STRING_TABLE;
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
// asn1_get_string_table_for_testing sets |*out_ptr| and |*out_len| to the table
|
|
216
|
+
// of built-in |ASN1_STRING_TABLE| values. It is exported for testing.
|
|
216
217
|
OPENSSL_EXPORT void asn1_get_string_table_for_testing(
|
|
217
218
|
const ASN1_STRING_TABLE **out_ptr, size_t *out_len);
|
|
218
219
|
|
|
219
220
|
|
|
220
221
|
#if defined(__cplusplus)
|
|
221
|
-
}
|
|
222
|
+
} // extern C
|
|
222
223
|
#endif
|
|
223
224
|
|
|
224
|
-
#endif
|
|
225
|
+
#endif // OPENSSL_HEADER_ASN1_ASN1_LOCL_H
|