grpc 1.24.0 → 1.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +306 -243
- data/etc/roots.pem +0 -100
- data/include/grpc/grpc_security.h +44 -18
- data/include/grpc/impl/codegen/grpc_types.h +15 -0
- data/include/grpc/impl/codegen/port_platform.h +27 -11
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/src/boringssl/err_data.c +695 -650
- data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
- data/src/core/ext/filters/client_channel/client_channel.h +24 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
- data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
- data/src/core/ext/filters/client_channel/resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver.h +8 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
- data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
- data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
- data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
- data/src/core/ext/filters/client_channel/service_config.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
- data/src/core/ext/filters/client_channel/subchannel.h +7 -9
- data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
- data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
- data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
- data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
- data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
- data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
- data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
- data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
- data/src/core/lib/channel/channel_args.cc +16 -0
- data/src/core/lib/channel/channel_args.h +22 -0
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +20 -20
- data/src/core/lib/channel/handshaker.h +3 -4
- data/src/core/lib/channel/handshaker_factory.h +1 -3
- data/src/core/lib/debug/trace.h +3 -2
- data/src/core/lib/gprpp/arena.cc +3 -3
- data/src/core/lib/gprpp/arena.h +2 -3
- data/src/core/lib/gprpp/inlined_vector.h +9 -0
- data/src/core/lib/gprpp/map.h +3 -501
- data/src/core/lib/gprpp/memory.h +45 -41
- data/src/core/lib/gprpp/mpscq.cc +108 -0
- data/src/core/lib/gprpp/mpscq.h +98 -0
- data/src/core/lib/gprpp/orphanable.h +6 -11
- data/src/core/lib/gprpp/ref_counted.h +25 -19
- data/src/core/lib/gprpp/set.h +33 -0
- data/src/core/lib/gprpp/thd.h +2 -4
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli_security_connector.cc +15 -11
- data/src/core/lib/http/parser.cc +1 -1
- data/src/core/lib/iomgr/buffer_list.cc +4 -5
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +4 -5
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/cfstream_handle.h +3 -5
- data/src/core/lib/iomgr/closure.h +8 -3
- data/src/core/lib/iomgr/combiner.cc +45 -82
- data/src/core/lib/iomgr/combiner.h +32 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -1
- data/src/core/lib/iomgr/exec_ctx.h +4 -3
- data/src/core/lib/iomgr/executor.cc +4 -2
- data/src/core/lib/iomgr/executor.h +3 -0
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
- data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
- data/src/core/lib/iomgr/executor/threadpool.h +7 -11
- data/src/core/lib/iomgr/resource_quota.cc +55 -51
- data/src/core/lib/iomgr/resource_quota.h +13 -9
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
- data/src/core/lib/iomgr/tcp_custom.cc +9 -7
- data/src/core/lib/iomgr/tcp_posix.cc +20 -16
- data/src/core/lib/iomgr/tcp_server.h +1 -4
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +3 -2
- data/src/core/lib/iomgr/udp_server.h +6 -12
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_string.cc +2 -2
- data/src/core/lib/profiling/basic_timers.cc +2 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/lib/security/credentials/credentials.h +4 -20
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/security_connector.h +19 -17
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.cc +29 -13
- data/src/core/lib/security/transport/security_handshaker.h +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
- data/src/core/lib/slice/slice.cc +2 -10
- data/src/core/lib/slice/slice_hash_table.h +4 -6
- data/src/core/lib/slice/slice_intern.cc +42 -39
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_utils.h +21 -4
- data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
- data/src/core/lib/surface/call.cc +3 -3
- data/src/core/lib/surface/channel.cc +7 -0
- data/src/core/lib/surface/completion_queue.cc +12 -11
- data/src/core/lib/surface/completion_queue.h +4 -2
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/lame_client.cc +33 -18
- data/src/core/lib/surface/server.cc +77 -76
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -7
- data/src/core/lib/transport/connectivity_state.cc +112 -98
- data/src/core/lib/transport/connectivity_state.h +100 -50
- data/src/core/lib/transport/static_metadata.cc +276 -288
- data/src/core/lib/transport/static_metadata.h +73 -76
- data/src/core/lib/transport/status_conversion.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +1 -1
- data/src/core/lib/transport/transport.cc +2 -2
- data/src/core/lib/transport/transport.h +12 -4
- data/src/core/lib/transport/transport_op_string.cc +14 -11
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
- data/src/core/tsi/fake_transport_security.cc +7 -5
- data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
- data/src/core/tsi/local_transport_security.cc +8 -6
- data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +12 -12
- data/src/core/tsi/ssl_transport_security.h +2 -2
- data/src/core/tsi/transport_security_grpc.cc +7 -0
- data/src/core/tsi/transport_security_grpc.h +6 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
- data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
- data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
- data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
- data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
- data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
- data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
- data/third_party/boringssl/crypto/base64/base64.c +2 -2
- data/third_party/boringssl/crypto/bio/bio.c +73 -9
- data/third_party/boringssl/crypto/bio/connect.c +4 -0
- data/third_party/boringssl/crypto/bio/fd.c +4 -0
- data/third_party/boringssl/crypto/bio/file.c +5 -2
- data/third_party/boringssl/crypto/bio/socket.c +4 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
- data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
- data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
- data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
- data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
- data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
- data/third_party/boringssl/crypto/chacha/internal.h +45 -0
- data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
- data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
- data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
- data/third_party/boringssl/crypto/conf/conf.c +7 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
- data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
- data/third_party/boringssl/crypto/cpu-intel.c +45 -51
- data/third_party/boringssl/crypto/crypto.c +39 -22
- data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
- data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
- data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
- data/third_party/boringssl/crypto/engine/engine.c +2 -1
- data/third_party/boringssl/crypto/err/err.c +2 -0
- data/third_party/boringssl/crypto/err/internal.h +2 -2
- data/third_party/boringssl/crypto/evp/evp.c +89 -8
- data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
- data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
- data/third_party/boringssl/crypto/evp/internal.h +18 -1
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
- data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
- data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
- data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
- data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
- data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
- data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
- data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
- data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
- data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
- data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
- data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
- data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
- data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
- data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
- data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
- data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
- data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
- data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
- data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
- data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
- data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
- data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
- data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
- data/third_party/boringssl/crypto/hrss/internal.h +62 -0
- data/third_party/boringssl/crypto/internal.h +95 -20
- data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
- data/third_party/boringssl/crypto/mem.c +39 -2
- data/third_party/boringssl/crypto/obj/obj.c +4 -4
- data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
- data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
- data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
- data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
- data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
- data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
- data/third_party/boringssl/crypto/pool/internal.h +1 -1
- data/third_party/boringssl/crypto/pool/pool.c +21 -0
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
- data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
- data/third_party/boringssl/crypto/refcount_lock.c +2 -2
- data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
- data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
- data/third_party/boringssl/crypto/stack/stack.c +83 -32
- data/third_party/boringssl/crypto/thread_none.c +2 -2
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +38 -19
- data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
- data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
- data/third_party/boringssl/crypto/x509/by_file.c +12 -10
- data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
- data/third_party/boringssl/crypto/x509/t_req.c +1 -3
- data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
- data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
- data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
- data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
- data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
- data/third_party/boringssl/crypto/x509/x509name.c +2 -3
- data/third_party/boringssl/crypto/x509/x_all.c +109 -210
- data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
- data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
- data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
- data/third_party/boringssl/include/openssl/aead.h +45 -19
- data/third_party/boringssl/include/openssl/aes.h +32 -7
- data/third_party/boringssl/include/openssl/asn1.h +7 -77
- data/third_party/boringssl/include/openssl/base.h +120 -6
- data/third_party/boringssl/include/openssl/base64.h +4 -1
- data/third_party/boringssl/include/openssl/bio.h +112 -81
- data/third_party/boringssl/include/openssl/blowfish.h +3 -3
- data/third_party/boringssl/include/openssl/bn.h +55 -29
- data/third_party/boringssl/include/openssl/buf.h +2 -2
- data/third_party/boringssl/include/openssl/bytestring.h +54 -32
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/cipher.h +46 -16
- data/third_party/boringssl/include/openssl/cmac.h +6 -2
- data/third_party/boringssl/include/openssl/conf.h +3 -6
- data/third_party/boringssl/include/openssl/cpu.h +25 -9
- data/third_party/boringssl/include/openssl/crypto.h +32 -10
- data/third_party/boringssl/include/openssl/curve25519.h +4 -4
- data/third_party/boringssl/include/openssl/dh.h +3 -2
- data/third_party/boringssl/include/openssl/digest.h +21 -7
- data/third_party/boringssl/include/openssl/dsa.h +8 -2
- data/third_party/boringssl/include/openssl/e_os2.h +18 -0
- data/third_party/boringssl/include/openssl/ec.h +25 -21
- data/third_party/boringssl/include/openssl/ec_key.h +36 -8
- data/third_party/boringssl/include/openssl/ecdh.h +17 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
- data/third_party/boringssl/include/openssl/engine.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -0
- data/third_party/boringssl/include/openssl/evp.h +199 -42
- data/third_party/boringssl/include/openssl/hmac.h +4 -4
- data/third_party/boringssl/include/openssl/hrss.h +100 -0
- data/third_party/boringssl/include/openssl/lhash.h +131 -23
- data/third_party/boringssl/include/openssl/md4.h +6 -4
- data/third_party/boringssl/include/openssl/md5.h +6 -4
- data/third_party/boringssl/include/openssl/mem.h +6 -2
- data/third_party/boringssl/include/openssl/nid.h +3 -0
- data/third_party/boringssl/include/openssl/obj.h +3 -0
- data/third_party/boringssl/include/openssl/pem.h +102 -64
- data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
- data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
- data/third_party/boringssl/include/openssl/pool.h +13 -2
- data/third_party/boringssl/include/openssl/ripemd.h +5 -4
- data/third_party/boringssl/include/openssl/rsa.h +46 -15
- data/third_party/boringssl/include/openssl/sha.h +40 -28
- data/third_party/boringssl/include/openssl/siphash.h +37 -0
- data/third_party/boringssl/include/openssl/span.h +17 -9
- data/third_party/boringssl/include/openssl/ssl.h +766 -393
- data/third_party/boringssl/include/openssl/ssl3.h +4 -3
- data/third_party/boringssl/include/openssl/stack.h +134 -77
- data/third_party/boringssl/include/openssl/thread.h +1 -1
- data/third_party/boringssl/include/openssl/tls1.h +25 -9
- data/third_party/boringssl/include/openssl/type_check.h +14 -15
- data/third_party/boringssl/include/openssl/x509.h +28 -3
- data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
- data/third_party/boringssl/include/openssl/x509v3.h +17 -13
- data/third_party/boringssl/ssl/d1_both.cc +9 -18
- data/third_party/boringssl/ssl/d1_lib.cc +4 -3
- data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
- data/third_party/boringssl/ssl/dtls_method.cc +0 -1
- data/third_party/boringssl/ssl/dtls_record.cc +28 -28
- data/third_party/boringssl/ssl/handoff.cc +295 -91
- data/third_party/boringssl/ssl/handshake.cc +133 -72
- data/third_party/boringssl/ssl/handshake_client.cc +218 -189
- data/third_party/boringssl/ssl/handshake_server.cc +399 -272
- data/third_party/boringssl/ssl/internal.h +1413 -928
- data/third_party/boringssl/ssl/s3_both.cc +175 -36
- data/third_party/boringssl/ssl/s3_lib.cc +9 -13
- data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
- data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
- data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
- data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
- data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
- data/third_party/boringssl/ssl/ssl_file.cc +2 -0
- data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
- data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
- data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
- data/third_party/boringssl/ssl/ssl_session.cc +230 -178
- data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
- data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
- data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
- data/third_party/boringssl/ssl/t1_enc.cc +5 -96
- data/third_party/boringssl/ssl/t1_lib.cc +931 -678
- data/third_party/boringssl/ssl/tls13_both.cc +251 -121
- data/third_party/boringssl/ssl/tls13_client.cc +129 -73
- data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
- data/third_party/boringssl/ssl/tls13_server.cc +259 -192
- data/third_party/boringssl/ssl/tls_method.cc +26 -21
- data/third_party/boringssl/ssl/tls_record.cc +42 -47
- data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
- data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
- data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
- data/third_party/boringssl/third_party/fiat/p256.c +238 -999
- data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
- data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +2 -1
- metadata +72 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
- data/src/core/lib/gpr/mpscq.cc +0 -117
- data/src/core/lib/gpr/mpscq.h +0 -88
- data/src/core/lib/gprpp/abstract.h +0 -47
- data/src/core/lib/gprpp/pair.h +0 -38
- data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
- data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
- data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
- data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -6,7 +6,7 @@
|
|
6
6
|
* are met:
|
7
7
|
*
|
8
8
|
* 1. Redistributions of source code must retain the above copyright
|
9
|
-
* notice, this list of conditions and the following disclaimer.
|
9
|
+
* notice, this list of conditions and the following disclaimer.
|
10
10
|
*
|
11
11
|
* 2. Redistributions in binary form must reproduce the above copyright
|
12
12
|
* notice, this list of conditions and the following disclaimer in
|
@@ -65,6 +65,10 @@
|
|
65
65
|
#include <stdio.h>
|
66
66
|
#endif
|
67
67
|
|
68
|
+
#if defined(__APPLE__)
|
69
|
+
#include <TargetConditionals.h>
|
70
|
+
#endif
|
71
|
+
|
68
72
|
// Include a BoringSSL-only header so consumers including this header without
|
69
73
|
// setting up include paths do not accidentally pick up the system
|
70
74
|
// opensslconf.h.
|
@@ -120,6 +124,14 @@ extern "C" {
|
|
120
124
|
|
121
125
|
#if defined(__APPLE__)
|
122
126
|
#define OPENSSL_APPLE
|
127
|
+
// Note |TARGET_OS_MAC| is set for all Apple OS variants. |TARGET_OS_OSX|
|
128
|
+
// targets macOS specifically.
|
129
|
+
#if defined(TARGET_OS_OSX) && TARGET_OS_OSX
|
130
|
+
#define OPENSSL_MACOS
|
131
|
+
#endif
|
132
|
+
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
|
133
|
+
#define OPENSSL_IOS
|
134
|
+
#endif
|
123
135
|
#endif
|
124
136
|
|
125
137
|
#if defined(_WIN32)
|
@@ -136,10 +148,27 @@ extern "C" {
|
|
136
148
|
|
137
149
|
#if defined(TRUSTY)
|
138
150
|
#define OPENSSL_TRUSTY
|
139
|
-
#define
|
151
|
+
#define OPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED
|
152
|
+
#endif
|
153
|
+
|
154
|
+
#if defined(__ANDROID_API__)
|
155
|
+
#define OPENSSL_ANDROID
|
140
156
|
#endif
|
141
157
|
|
142
|
-
|
158
|
+
// BoringSSL requires platform's locking APIs to make internal global state
|
159
|
+
// thread-safe, including the PRNG. On some single-threaded embedded platforms,
|
160
|
+
// locking APIs may not exist, so this dependency may be disabled with the
|
161
|
+
// following build flag.
|
162
|
+
//
|
163
|
+
// IMPORTANT: Doing so means the consumer promises the library will never be
|
164
|
+
// used in any multi-threaded context. It causes BoringSSL to be globally
|
165
|
+
// thread-unsafe. Setting it inappropriately will subtly and unpredictably
|
166
|
+
// corrupt memory and leak secret keys.
|
167
|
+
//
|
168
|
+
// Do not set this flag on any platform where threads are possible. BoringSSL
|
169
|
+
// maintainers will not provide support for any consumers that do so. Changes
|
170
|
+
// which break such unsupported configurations will not be reverted.
|
171
|
+
#if !defined(OPENSSL_NO_THREADS_CORRUPT_MEMORY_AND_LEAK_SECRETS_IF_THREADED)
|
143
172
|
#define OPENSSL_THREADS
|
144
173
|
#endif
|
145
174
|
|
@@ -155,7 +184,7 @@ extern "C" {
|
|
155
184
|
// A consumer may use this symbol in the preprocessor to temporarily build
|
156
185
|
// against multiple revisions of BoringSSL at the same time. It is not
|
157
186
|
// recommended to do so for longer than is necessary.
|
158
|
-
#define BORINGSSL_API_VERSION
|
187
|
+
#define BORINGSSL_API_VERSION 9
|
159
188
|
|
160
189
|
#if defined(BORINGSSL_SHARED_LIBRARY)
|
161
190
|
|
@@ -213,6 +242,35 @@ extern "C" {
|
|
213
242
|
#define OPENSSL_UNUSED
|
214
243
|
#endif
|
215
244
|
|
245
|
+
// C and C++ handle inline functions differently. In C++, an inline function is
|
246
|
+
// defined in just the header file, potentially emitted in multiple compilation
|
247
|
+
// units (in cases the compiler did not inline), but each copy must be identical
|
248
|
+
// to satsify ODR. In C, a non-static inline must be manually emitted in exactly
|
249
|
+
// one compilation unit with a separate extern inline declaration.
|
250
|
+
//
|
251
|
+
// In both languages, exported inline functions referencing file-local symbols
|
252
|
+
// are problematic. C forbids this altogether (though GCC and Clang seem not to
|
253
|
+
// enforce it). It works in C++, but ODR requires the definitions be identical,
|
254
|
+
// including all names in the definitions resolving to the "same entity". In
|
255
|
+
// practice, this is unlikely to be a problem, but an inline function that
|
256
|
+
// returns a pointer to a file-local symbol
|
257
|
+
// could compile oddly.
|
258
|
+
//
|
259
|
+
// Historically, we used static inline in headers. However, to satisfy ODR, use
|
260
|
+
// plain inline in C++, to allow inline consumer functions to call our header
|
261
|
+
// functions. Plain inline would also work better with C99 inline, but that is
|
262
|
+
// not used much in practice, extern inline is tedious, and there are conflicts
|
263
|
+
// with the old gnu89 model:
|
264
|
+
// https://stackoverflow.com/questions/216510/extern-inline
|
265
|
+
#if defined(__cplusplus)
|
266
|
+
#define OPENSSL_INLINE inline
|
267
|
+
#else
|
268
|
+
// Add OPENSSL_UNUSED so that, should an inline function be emitted via macro
|
269
|
+
// (e.g. a |STACK_OF(T)| implementation) in a source file without tripping
|
270
|
+
// clang's -Wunused-function.
|
271
|
+
#define OPENSSL_INLINE static inline OPENSSL_UNUSED
|
272
|
+
#endif
|
273
|
+
|
216
274
|
#if defined(BORINGSSL_UNSAFE_FUZZER_MODE) && \
|
217
275
|
!defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE)
|
218
276
|
#define BORINGSSL_UNSAFE_DETERMINISTIC_MODE
|
@@ -222,9 +280,38 @@ extern "C" {
|
|
222
280
|
#if __has_feature(address_sanitizer)
|
223
281
|
#define OPENSSL_ASAN
|
224
282
|
#endif
|
283
|
+
#if __has_feature(thread_sanitizer)
|
284
|
+
#define OPENSSL_TSAN
|
285
|
+
#endif
|
225
286
|
#if __has_feature(memory_sanitizer)
|
226
287
|
#define OPENSSL_MSAN
|
288
|
+
#define OPENSSL_ASM_INCOMPATIBLE
|
289
|
+
#endif
|
290
|
+
#endif
|
291
|
+
|
292
|
+
#if defined(OPENSSL_ASM_INCOMPATIBLE)
|
293
|
+
#undef OPENSSL_ASM_INCOMPATIBLE
|
294
|
+
#if !defined(OPENSSL_NO_ASM)
|
295
|
+
#define OPENSSL_NO_ASM
|
227
296
|
#endif
|
297
|
+
#endif // OPENSSL_ASM_INCOMPATIBLE
|
298
|
+
|
299
|
+
#if defined(__cplusplus)
|
300
|
+
// enums can be predeclared, but only in C++ and only if given an explicit type.
|
301
|
+
// C doesn't support setting an explicit type for enums thus a #define is used
|
302
|
+
// to do this only for C++. However, the ABI type between C and C++ need to have
|
303
|
+
// equal sizes, which is confirmed in a unittest.
|
304
|
+
#define BORINGSSL_ENUM_INT : int
|
305
|
+
enum ssl_early_data_reason_t BORINGSSL_ENUM_INT;
|
306
|
+
enum ssl_encryption_level_t BORINGSSL_ENUM_INT;
|
307
|
+
enum ssl_private_key_result_t BORINGSSL_ENUM_INT;
|
308
|
+
enum ssl_renegotiate_mode_t BORINGSSL_ENUM_INT;
|
309
|
+
enum ssl_select_cert_result_t BORINGSSL_ENUM_INT;
|
310
|
+
enum ssl_select_cert_result_t BORINGSSL_ENUM_INT;
|
311
|
+
enum ssl_ticket_aead_result_t BORINGSSL_ENUM_INT;
|
312
|
+
enum ssl_verify_result_t BORINGSSL_ENUM_INT;
|
313
|
+
#else
|
314
|
+
#define BORINGSSL_ENUM_INT
|
228
315
|
#endif
|
229
316
|
|
230
317
|
// CRYPTO_THREADID is a dummy value.
|
@@ -330,6 +417,7 @@ typedef struct ssl_cipher_st SSL_CIPHER;
|
|
330
417
|
typedef struct ssl_ctx_st SSL_CTX;
|
331
418
|
typedef struct ssl_method_st SSL_METHOD;
|
332
419
|
typedef struct ssl_private_key_method_st SSL_PRIVATE_KEY_METHOD;
|
420
|
+
typedef struct ssl_quic_method_st SSL_QUIC_METHOD;
|
333
421
|
typedef struct ssl_session_st SSL_SESSION;
|
334
422
|
typedef struct ssl_st SSL;
|
335
423
|
typedef struct ssl_ticket_aead_method_st SSL_TICKET_AEAD_METHOD;
|
@@ -355,6 +443,18 @@ typedef void *OPENSSL_BLOCK;
|
|
355
443
|
#define BORINGSSL_NO_CXX
|
356
444
|
#endif
|
357
445
|
|
446
|
+
#if defined(BORINGSSL_PREFIX)
|
447
|
+
#define BSSL_NAMESPACE_BEGIN \
|
448
|
+
namespace bssl { \
|
449
|
+
inline namespace BORINGSSL_PREFIX {
|
450
|
+
#define BSSL_NAMESPACE_END \
|
451
|
+
} \
|
452
|
+
}
|
453
|
+
#else
|
454
|
+
#define BSSL_NAMESPACE_BEGIN namespace bssl {
|
455
|
+
#define BSSL_NAMESPACE_END }
|
456
|
+
#endif
|
457
|
+
|
358
458
|
// MSVC doesn't set __cplusplus to 201103 to indicate C++11 support (see
|
359
459
|
// https://connect.microsoft.com/VisualStudio/feedback/details/763051/a-value-of-predefined-macro-cplusplus-is-still-199711l)
|
360
460
|
// so MSVC is just assumed to support C++11.
|
@@ -363,6 +463,7 @@ typedef void *OPENSSL_BLOCK;
|
|
363
463
|
#endif
|
364
464
|
|
365
465
|
#if !defined(BORINGSSL_NO_CXX)
|
466
|
+
|
366
467
|
extern "C++" {
|
367
468
|
|
368
469
|
#include <memory>
|
@@ -378,12 +479,13 @@ extern "C++" {
|
|
378
479
|
#if defined(BORINGSSL_NO_CXX)
|
379
480
|
|
380
481
|
#define BORINGSSL_MAKE_DELETER(type, deleter)
|
482
|
+
#define BORINGSSL_MAKE_UP_REF(type, up_ref_func)
|
381
483
|
|
382
484
|
#else
|
383
485
|
|
384
486
|
extern "C++" {
|
385
487
|
|
386
|
-
|
488
|
+
BSSL_NAMESPACE_BEGIN
|
387
489
|
|
388
490
|
namespace internal {
|
389
491
|
|
@@ -448,7 +550,19 @@ class StackAllocated {
|
|
448
550
|
template <typename T>
|
449
551
|
using UniquePtr = std::unique_ptr<T, internal::Deleter<T>>;
|
450
552
|
|
451
|
-
|
553
|
+
#define BORINGSSL_MAKE_UP_REF(type, up_ref_func) \
|
554
|
+
inline UniquePtr<type> UpRef(type *v) { \
|
555
|
+
if (v != nullptr) { \
|
556
|
+
up_ref_func(v); \
|
557
|
+
} \
|
558
|
+
return UniquePtr<type>(v); \
|
559
|
+
} \
|
560
|
+
\
|
561
|
+
inline UniquePtr<type> UpRef(const UniquePtr<type> &ptr) { \
|
562
|
+
return UpRef(ptr.get()); \
|
563
|
+
}
|
564
|
+
|
565
|
+
BSSL_NAMESPACE_END
|
452
566
|
|
453
567
|
} // extern C++
|
454
568
|
|
@@ -67,7 +67,10 @@ extern "C" {
|
|
67
67
|
// base64 functions.
|
68
68
|
//
|
69
69
|
// For historical reasons, these functions have the EVP_ prefix but just do
|
70
|
-
// base64 encoding and decoding.
|
70
|
+
// base64 encoding and decoding. Note that BoringSSL is a cryptography library,
|
71
|
+
// so these functions are implemented with side channel protections, at a
|
72
|
+
// performance cost. For other base64 uses, use a general-purpose base64
|
73
|
+
// implementation.
|
71
74
|
|
72
75
|
|
73
76
|
// Encoding
|
@@ -117,10 +117,14 @@ OPENSSL_EXPORT int BIO_read(BIO *bio, void *data, int len);
|
|
117
117
|
// return a line for this call, remove the warning above.
|
118
118
|
OPENSSL_EXPORT int BIO_gets(BIO *bio, char *buf, int size);
|
119
119
|
|
120
|
-
// BIO_write writes |len| bytes from |data| to
|
120
|
+
// BIO_write writes |len| bytes from |data| to |bio|. It returns the number of
|
121
121
|
// bytes written or a negative number on error.
|
122
122
|
OPENSSL_EXPORT int BIO_write(BIO *bio, const void *data, int len);
|
123
123
|
|
124
|
+
// BIO_write_all writes |len| bytes from |data| to |bio|, looping as necessary.
|
125
|
+
// It returns one if all bytes were successfully written and zero on error.
|
126
|
+
OPENSSL_EXPORT int BIO_write_all(BIO *bio, const void *data, size_t len);
|
127
|
+
|
124
128
|
// BIO_puts writes a NUL terminated string from |buf| to |bio|. It returns the
|
125
129
|
// number of bytes written or a negative number on error.
|
126
130
|
OPENSSL_EXPORT int BIO_puts(BIO *bio, const char *buf);
|
@@ -677,26 +681,49 @@ OPENSSL_EXPORT void BIO_set_init(BIO *bio, int init);
|
|
677
681
|
OPENSSL_EXPORT int BIO_get_init(BIO *bio);
|
678
682
|
|
679
683
|
// These are values of the |cmd| argument to |BIO_ctrl|.
|
680
|
-
|
681
|
-
|
682
|
-
#define
|
683
|
-
|
684
|
-
|
685
|
-
#define
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
#define
|
691
|
-
|
692
|
-
//
|
693
|
-
|
694
|
-
#define
|
695
|
-
|
696
|
-
|
697
|
-
//
|
698
|
-
|
699
|
-
|
684
|
+
|
685
|
+
// BIO_CTRL_RESET implements |BIO_reset|. The arguments are unused.
|
686
|
+
#define BIO_CTRL_RESET 1
|
687
|
+
|
688
|
+
// BIO_CTRL_EOF implements |BIO_eof|. The arguments are unused.
|
689
|
+
#define BIO_CTRL_EOF 2
|
690
|
+
|
691
|
+
// BIO_CTRL_INFO is a legacy command that returns information specific to the
|
692
|
+
// type of |BIO|. It is not safe to call generically and should not be
|
693
|
+
// implemented in new |BIO| types.
|
694
|
+
#define BIO_CTRL_INFO 3
|
695
|
+
|
696
|
+
// BIO_CTRL_GET_CLOSE returns the close flag set by |BIO_CTRL_SET_CLOSE|. The
|
697
|
+
// arguments are unused.
|
698
|
+
#define BIO_CTRL_GET_CLOSE 8
|
699
|
+
|
700
|
+
// BIO_CTRL_SET_CLOSE implements |BIO_set_close|. The |larg| argument is the
|
701
|
+
// close flag.
|
702
|
+
#define BIO_CTRL_SET_CLOSE 9
|
703
|
+
|
704
|
+
// BIO_CTRL_PENDING implements |BIO_pending|. The arguments are unused.
|
705
|
+
#define BIO_CTRL_PENDING 10
|
706
|
+
|
707
|
+
// BIO_CTRL_FLUSH implements |BIO_flush|. The arguments are unused.
|
708
|
+
#define BIO_CTRL_FLUSH 11
|
709
|
+
|
710
|
+
// BIO_CTRL_WPENDING implements |BIO_wpending|. The arguments are unused.
|
711
|
+
#define BIO_CTRL_WPENDING 13
|
712
|
+
|
713
|
+
// BIO_CTRL_SET_CALLBACK sets an informational callback of type
|
714
|
+
// int cb(BIO *bio, int state, int ret)
|
715
|
+
#define BIO_CTRL_SET_CALLBACK 14
|
716
|
+
|
717
|
+
// BIO_CTRL_GET_CALLBACK returns the callback set by |BIO_CTRL_SET_CALLBACK|.
|
718
|
+
#define BIO_CTRL_GET_CALLBACK 15
|
719
|
+
|
720
|
+
// The following are never used, but are defined to aid porting existing code.
|
721
|
+
#define BIO_CTRL_SET 4
|
722
|
+
#define BIO_CTRL_GET 5
|
723
|
+
#define BIO_CTRL_PUSH 6
|
724
|
+
#define BIO_CTRL_POP 7
|
725
|
+
#define BIO_CTRL_DUP 12
|
726
|
+
#define BIO_CTRL_SET_FILENAME 30
|
700
727
|
|
701
728
|
|
702
729
|
// Deprecated functions.
|
@@ -706,6 +733,8 @@ OPENSSL_EXPORT int BIO_get_init(BIO *bio);
|
|
706
733
|
// |BIO_flush| when done writing, to signal that no more data are to be
|
707
734
|
// encoded. The flag |BIO_FLAGS_BASE64_NO_NL| may be set to encode all the data
|
708
735
|
// on one line.
|
736
|
+
//
|
737
|
+
// Use |EVP_EncodeBlock| and |EVP_DecodeBase64| instead.
|
709
738
|
OPENSSL_EXPORT const BIO_METHOD *BIO_f_base64(void);
|
710
739
|
|
711
740
|
OPENSSL_EXPORT void BIO_set_retry_special(BIO *bio);
|
@@ -733,8 +762,8 @@ OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
|
|
733
762
|
#define BIO_FLAGS_RWS (BIO_FLAGS_READ | BIO_FLAGS_WRITE | BIO_FLAGS_IO_SPECIAL)
|
734
763
|
#define BIO_FLAGS_SHOULD_RETRY 0x08
|
735
764
|
#define BIO_FLAGS_BASE64_NO_NL 0x100
|
736
|
-
//
|
737
|
-
// data in any way.
|
765
|
+
// BIO_FLAGS_MEM_RDONLY is used with memory BIOs. It means we shouldn't free up
|
766
|
+
// or change the data in any way.
|
738
767
|
#define BIO_FLAGS_MEM_RDONLY 0x200
|
739
768
|
|
740
769
|
// These are the 'types' of BIOs
|
@@ -762,7 +791,7 @@ OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
|
|
762
791
|
#define BIO_TYPE_ASN1 (22 | 0x0200) // filter
|
763
792
|
#define BIO_TYPE_COMP (23 | 0x0200) // filter
|
764
793
|
|
765
|
-
//
|
794
|
+
// BIO_TYPE_DESCRIPTOR denotes that the |BIO| responds to the |BIO_C_SET_FD|
|
766
795
|
// (|BIO_set_fd|) and |BIO_C_GET_FD| (|BIO_get_fd|) control hooks.
|
767
796
|
#define BIO_TYPE_DESCRIPTOR 0x0100 // socket, fd, connect or accept
|
768
797
|
#define BIO_TYPE_FILTER 0x0200
|
@@ -809,61 +838,61 @@ struct bio_st {
|
|
809
838
|
size_t num_read, num_write;
|
810
839
|
};
|
811
840
|
|
812
|
-
#define BIO_C_SET_CONNECT
|
813
|
-
#define BIO_C_DO_STATE_MACHINE
|
814
|
-
#define BIO_C_SET_NBIO
|
815
|
-
#define BIO_C_SET_PROXY_PARAM
|
816
|
-
#define BIO_C_SET_FD
|
817
|
-
#define BIO_C_GET_FD
|
818
|
-
#define BIO_C_SET_FILE_PTR
|
819
|
-
#define BIO_C_GET_FILE_PTR
|
820
|
-
#define BIO_C_SET_FILENAME
|
821
|
-
#define BIO_C_SET_SSL
|
822
|
-
#define BIO_C_GET_SSL
|
823
|
-
#define BIO_C_SET_MD
|
824
|
-
#define BIO_C_GET_MD
|
825
|
-
#define BIO_C_GET_CIPHER_STATUS
|
826
|
-
#define BIO_C_SET_BUF_MEM
|
827
|
-
#define BIO_C_GET_BUF_MEM_PTR
|
828
|
-
#define BIO_C_GET_BUFF_NUM_LINES
|
829
|
-
#define BIO_C_SET_BUFF_SIZE
|
830
|
-
#define BIO_C_SET_ACCEPT
|
831
|
-
#define BIO_C_SSL_MODE
|
832
|
-
#define BIO_C_GET_MD_CTX
|
833
|
-
#define BIO_C_GET_PROXY_PARAM
|
834
|
-
#define BIO_C_SET_BUFF_READ_DATA
|
835
|
-
#define BIO_C_GET_ACCEPT
|
836
|
-
#define BIO_C_SET_SSL_RENEGOTIATE_BYTES
|
837
|
-
#define BIO_C_GET_SSL_NUM_RENEGOTIATES
|
838
|
-
#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT
|
839
|
-
#define BIO_C_FILE_SEEK
|
840
|
-
#define BIO_C_GET_CIPHER_CTX
|
841
|
-
#define BIO_C_SET_BUF_MEM_EOF_RETURN
|
842
|
-
#define BIO_C_SET_BIND_MODE
|
843
|
-
#define BIO_C_GET_BIND_MODE
|
844
|
-
#define BIO_C_FILE_TELL
|
845
|
-
#define BIO_C_GET_SOCKS
|
846
|
-
#define BIO_C_SET_SOCKS
|
847
|
-
|
848
|
-
#define BIO_C_SET_WRITE_BUF_SIZE
|
849
|
-
#define BIO_C_GET_WRITE_BUF_SIZE
|
850
|
-
#define BIO_C_GET_WRITE_GUARANTEE
|
851
|
-
#define BIO_C_GET_READ_REQUEST
|
852
|
-
#define BIO_C_SHUTDOWN_WR
|
853
|
-
#define BIO_C_NREAD0
|
854
|
-
#define BIO_C_NREAD
|
855
|
-
#define BIO_C_NWRITE0
|
856
|
-
#define BIO_C_NWRITE
|
857
|
-
#define BIO_C_RESET_READ_REQUEST
|
858
|
-
#define BIO_C_SET_MD_CTX
|
859
|
-
|
860
|
-
#define BIO_C_SET_PREFIX
|
861
|
-
#define BIO_C_GET_PREFIX
|
862
|
-
#define BIO_C_SET_SUFFIX
|
863
|
-
#define BIO_C_GET_SUFFIX
|
864
|
-
|
865
|
-
#define BIO_C_SET_EX_ARG
|
866
|
-
#define BIO_C_GET_EX_ARG
|
841
|
+
#define BIO_C_SET_CONNECT 100
|
842
|
+
#define BIO_C_DO_STATE_MACHINE 101
|
843
|
+
#define BIO_C_SET_NBIO 102
|
844
|
+
#define BIO_C_SET_PROXY_PARAM 103
|
845
|
+
#define BIO_C_SET_FD 104
|
846
|
+
#define BIO_C_GET_FD 105
|
847
|
+
#define BIO_C_SET_FILE_PTR 106
|
848
|
+
#define BIO_C_GET_FILE_PTR 107
|
849
|
+
#define BIO_C_SET_FILENAME 108
|
850
|
+
#define BIO_C_SET_SSL 109
|
851
|
+
#define BIO_C_GET_SSL 110
|
852
|
+
#define BIO_C_SET_MD 111
|
853
|
+
#define BIO_C_GET_MD 112
|
854
|
+
#define BIO_C_GET_CIPHER_STATUS 113
|
855
|
+
#define BIO_C_SET_BUF_MEM 114
|
856
|
+
#define BIO_C_GET_BUF_MEM_PTR 115
|
857
|
+
#define BIO_C_GET_BUFF_NUM_LINES 116
|
858
|
+
#define BIO_C_SET_BUFF_SIZE 117
|
859
|
+
#define BIO_C_SET_ACCEPT 118
|
860
|
+
#define BIO_C_SSL_MODE 119
|
861
|
+
#define BIO_C_GET_MD_CTX 120
|
862
|
+
#define BIO_C_GET_PROXY_PARAM 121
|
863
|
+
#define BIO_C_SET_BUFF_READ_DATA 122 // data to read first
|
864
|
+
#define BIO_C_GET_ACCEPT 124
|
865
|
+
#define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125
|
866
|
+
#define BIO_C_GET_SSL_NUM_RENEGOTIATES 126
|
867
|
+
#define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127
|
868
|
+
#define BIO_C_FILE_SEEK 128
|
869
|
+
#define BIO_C_GET_CIPHER_CTX 129
|
870
|
+
#define BIO_C_SET_BUF_MEM_EOF_RETURN 130 // return end of input value
|
871
|
+
#define BIO_C_SET_BIND_MODE 131
|
872
|
+
#define BIO_C_GET_BIND_MODE 132
|
873
|
+
#define BIO_C_FILE_TELL 133
|
874
|
+
#define BIO_C_GET_SOCKS 134
|
875
|
+
#define BIO_C_SET_SOCKS 135
|
876
|
+
|
877
|
+
#define BIO_C_SET_WRITE_BUF_SIZE 136 // for BIO_s_bio
|
878
|
+
#define BIO_C_GET_WRITE_BUF_SIZE 137
|
879
|
+
#define BIO_C_GET_WRITE_GUARANTEE 140
|
880
|
+
#define BIO_C_GET_READ_REQUEST 141
|
881
|
+
#define BIO_C_SHUTDOWN_WR 142
|
882
|
+
#define BIO_C_NREAD0 143
|
883
|
+
#define BIO_C_NREAD 144
|
884
|
+
#define BIO_C_NWRITE0 145
|
885
|
+
#define BIO_C_NWRITE 146
|
886
|
+
#define BIO_C_RESET_READ_REQUEST 147
|
887
|
+
#define BIO_C_SET_MD_CTX 148
|
888
|
+
|
889
|
+
#define BIO_C_SET_PREFIX 149
|
890
|
+
#define BIO_C_GET_PREFIX 150
|
891
|
+
#define BIO_C_SET_SUFFIX 151
|
892
|
+
#define BIO_C_GET_SUFFIX 152
|
893
|
+
|
894
|
+
#define BIO_C_SET_EX_ARG 153
|
895
|
+
#define BIO_C_GET_EX_ARG 154
|
867
896
|
|
868
897
|
|
869
898
|
#if defined(__cplusplus)
|
@@ -871,11 +900,13 @@ struct bio_st {
|
|
871
900
|
|
872
901
|
extern "C++" {
|
873
902
|
|
874
|
-
|
903
|
+
BSSL_NAMESPACE_BEGIN
|
875
904
|
|
876
905
|
BORINGSSL_MAKE_DELETER(BIO, BIO_free)
|
906
|
+
BORINGSSL_MAKE_UP_REF(BIO, BIO_up_ref)
|
907
|
+
BORINGSSL_MAKE_DELETER(BIO_METHOD, BIO_meth_free)
|
877
908
|
|
878
|
-
|
909
|
+
BSSL_NAMESPACE_END
|
879
910
|
|
880
911
|
} // extern C++
|
881
912
|
|