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
@@ -35,7 +35,10 @@ DECLARE_STACK_OF(X509_CRL)
|
|
35
35
|
|
36
36
|
// PKCS7_get_raw_certificates parses a PKCS#7, SignedData structure from |cbs|
|
37
37
|
// and appends the included certificates to |out_certs|. It returns one on
|
38
|
-
// success and zero on error.
|
38
|
+
// success and zero on error. |cbs| is advanced passed the structure.
|
39
|
+
//
|
40
|
+
// Note that a SignedData structure may contain no certificates, in which case
|
41
|
+
// this function succeeds but does not append any certificates.
|
39
42
|
OPENSSL_EXPORT int PKCS7_get_raw_certificates(
|
40
43
|
STACK_OF(CRYPTO_BUFFER) *out_certs, CBS *cbs, CRYPTO_BUFFER_POOL *pool);
|
41
44
|
|
@@ -49,8 +52,11 @@ OPENSSL_EXPORT int PKCS7_bundle_certificates(
|
|
49
52
|
CBB *out, const STACK_OF(X509) *certs);
|
50
53
|
|
51
54
|
// PKCS7_get_CRLs parses a PKCS#7, SignedData structure from |cbs| and appends
|
52
|
-
// the included CRLs to |out_crls|. It returns one on success and zero on
|
53
|
-
//
|
55
|
+
// the included CRLs to |out_crls|. It returns one on success and zero on error.
|
56
|
+
// |cbs| is advanced passed the structure.
|
57
|
+
//
|
58
|
+
// Note that a SignedData structure may contain no CRLs, in which case this
|
59
|
+
// function succeeds but does not append any CRLs.
|
54
60
|
OPENSSL_EXPORT int PKCS7_get_CRLs(STACK_OF(X509_CRL) *out_crls, CBS *cbs);
|
55
61
|
|
56
62
|
// PKCS7_bundle_CRLs appends a PKCS#7, SignedData structure containing
|
@@ -60,18 +66,145 @@ OPENSSL_EXPORT int PKCS7_bundle_CRLs(CBB *out, const STACK_OF(X509_CRL) *crls);
|
|
60
66
|
// PKCS7_get_PEM_certificates reads a PEM-encoded, PKCS#7, SignedData structure
|
61
67
|
// from |pem_bio| and appends the included certificates to |out_certs|. It
|
62
68
|
// returns one on success and zero on error.
|
69
|
+
//
|
70
|
+
// Note that a SignedData structure may contain no certificates, in which case
|
71
|
+
// this function succeeds but does not append any certificates.
|
63
72
|
OPENSSL_EXPORT int PKCS7_get_PEM_certificates(STACK_OF(X509) *out_certs,
|
64
73
|
BIO *pem_bio);
|
65
74
|
|
66
75
|
// PKCS7_get_PEM_CRLs reads a PEM-encoded, PKCS#7, SignedData structure from
|
67
76
|
// |pem_bio| and appends the included CRLs to |out_crls|. It returns one on
|
68
77
|
// success and zero on error.
|
78
|
+
//
|
79
|
+
// Note that a SignedData structure may contain no CRLs, in which case this
|
80
|
+
// function succeeds but does not append any CRLs.
|
69
81
|
OPENSSL_EXPORT int PKCS7_get_PEM_CRLs(STACK_OF(X509_CRL) *out_crls,
|
70
82
|
BIO *pem_bio);
|
71
83
|
|
72
84
|
|
85
|
+
// Deprecated functions.
|
86
|
+
//
|
87
|
+
// These functions are a compatibility layer over a subset of OpenSSL's PKCS#7
|
88
|
+
// API. It intentionally does not implement the whole thing, only the minimum
|
89
|
+
// needed to build cryptography.io.
|
90
|
+
|
91
|
+
typedef struct {
|
92
|
+
STACK_OF(X509) *cert;
|
93
|
+
STACK_OF(X509_CRL) *crl;
|
94
|
+
} PKCS7_SIGNED;
|
95
|
+
|
96
|
+
typedef struct {
|
97
|
+
STACK_OF(X509) *cert;
|
98
|
+
STACK_OF(X509_CRL) *crl;
|
99
|
+
} PKCS7_SIGN_ENVELOPE;
|
100
|
+
|
101
|
+
typedef void PKCS7_ENVELOPE;
|
102
|
+
typedef void PKCS7_DIGEST;
|
103
|
+
typedef void PKCS7_ENCRYPT;
|
104
|
+
|
105
|
+
typedef struct {
|
106
|
+
uint8_t *ber_bytes;
|
107
|
+
size_t ber_len;
|
108
|
+
|
109
|
+
// Unlike OpenSSL, the following fields are immutable. They filled in when the
|
110
|
+
// object is parsed and ignored in serialization.
|
111
|
+
ASN1_OBJECT *type;
|
112
|
+
union {
|
113
|
+
char *ptr;
|
114
|
+
ASN1_OCTET_STRING *data;
|
115
|
+
PKCS7_SIGNED *sign;
|
116
|
+
PKCS7_ENVELOPE *enveloped;
|
117
|
+
PKCS7_SIGN_ENVELOPE *signed_and_enveloped;
|
118
|
+
PKCS7_DIGEST *digest;
|
119
|
+
PKCS7_ENCRYPT *encrypted;
|
120
|
+
ASN1_TYPE *other;
|
121
|
+
} d;
|
122
|
+
} PKCS7;
|
123
|
+
|
124
|
+
// d2i_PKCS7 parses a BER-encoded, PKCS#7 signed data ContentInfo structure from
|
125
|
+
// |len| bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the
|
126
|
+
// result is in |*out|. Note that, even if |*out| is already non-NULL on entry,
|
127
|
+
// it will not be written to. Rather, a fresh |PKCS7| is allocated and the
|
128
|
+
// previous one is freed. On successful exit, |*inp| is advanced past the BER
|
129
|
+
// structure. It returns the result or NULL on error.
|
130
|
+
OPENSSL_EXPORT PKCS7 *d2i_PKCS7(PKCS7 **out, const uint8_t **inp,
|
131
|
+
size_t len);
|
132
|
+
|
133
|
+
// d2i_PKCS7_bio behaves like |d2i_PKCS7| but reads the input from |bio|. If
|
134
|
+
// the length of the object is indefinite the full contents of |bio| are read.
|
135
|
+
//
|
136
|
+
// If the function fails then some unknown amount of data may have been read
|
137
|
+
// from |bio|.
|
138
|
+
OPENSSL_EXPORT PKCS7 *d2i_PKCS7_bio(BIO *bio, PKCS7 **out);
|
139
|
+
|
140
|
+
// i2d_PKCS7 is a dummy function which copies the contents of |p7|. If |out| is
|
141
|
+
// not NULL then the result is written to |*out| and |*out| is advanced just
|
142
|
+
// past the output. It returns the number of bytes in the result, whether
|
143
|
+
// written or not, or a negative value on error.
|
144
|
+
OPENSSL_EXPORT int i2d_PKCS7(const PKCS7 *p7, uint8_t **out);
|
145
|
+
|
146
|
+
// i2d_PKCS7_bio writes |p7| to |bio|. It returns one on success and zero on
|
147
|
+
// error.
|
148
|
+
OPENSSL_EXPORT int i2d_PKCS7_bio(BIO *bio, const PKCS7 *p7);
|
149
|
+
|
150
|
+
// PKCS7_free releases memory associated with |p7|.
|
151
|
+
OPENSSL_EXPORT void PKCS7_free(PKCS7 *p7);
|
152
|
+
|
153
|
+
// PKCS7_type_is_data returns zero.
|
154
|
+
OPENSSL_EXPORT int PKCS7_type_is_data(const PKCS7 *p7);
|
155
|
+
|
156
|
+
// PKCS7_type_is_digest returns zero.
|
157
|
+
OPENSSL_EXPORT int PKCS7_type_is_digest(const PKCS7 *p7);
|
158
|
+
|
159
|
+
// PKCS7_type_is_encrypted returns zero.
|
160
|
+
OPENSSL_EXPORT int PKCS7_type_is_encrypted(const PKCS7 *p7);
|
161
|
+
|
162
|
+
// PKCS7_type_is_enveloped returns zero.
|
163
|
+
OPENSSL_EXPORT int PKCS7_type_is_enveloped(const PKCS7 *p7);
|
164
|
+
|
165
|
+
// PKCS7_type_is_signed returns one. (We only supporte signed data
|
166
|
+
// ContentInfos.)
|
167
|
+
OPENSSL_EXPORT int PKCS7_type_is_signed(const PKCS7 *p7);
|
168
|
+
|
169
|
+
// PKCS7_type_is_signedAndEnveloped returns zero.
|
170
|
+
OPENSSL_EXPORT int PKCS7_type_is_signedAndEnveloped(const PKCS7 *p7);
|
171
|
+
|
172
|
+
// PKCS7_DETACHED indicates that the PKCS#7 file specifies its data externally.
|
173
|
+
#define PKCS7_DETACHED 0x40
|
174
|
+
|
175
|
+
// The following flags cause |PKCS7_sign| to fail.
|
176
|
+
#define PKCS7_TEXT 0x1
|
177
|
+
#define PKCS7_NOCERTS 0x2
|
178
|
+
#define PKCS7_NOSIGS 0x4
|
179
|
+
#define PKCS7_NOCHAIN 0x8
|
180
|
+
#define PKCS7_NOINTERN 0x10
|
181
|
+
#define PKCS7_NOVERIFY 0x20
|
182
|
+
#define PKCS7_BINARY 0x80
|
183
|
+
#define PKCS7_NOATTR 0x100
|
184
|
+
#define PKCS7_NOSMIMECAP 0x200
|
185
|
+
#define PKCS7_STREAM 0x1000
|
186
|
+
|
187
|
+
// PKCS7_sign assembles |certs| into a PKCS#7 signed data ContentInfo with
|
188
|
+
// external data and no signatures. It returns a newly-allocated |PKCS7| on
|
189
|
+
// success or NULL on error. |sign_cert| and |pkey| must be NULL. |data| is
|
190
|
+
// ignored. |flags| must be equal to |PKCS7_DETACHED|.
|
191
|
+
//
|
192
|
+
// Note this function only implements a subset of the corresponding OpenSSL
|
193
|
+
// function. It is provided for backwards compatibility only.
|
194
|
+
OPENSSL_EXPORT PKCS7 *PKCS7_sign(X509 *sign_cert, EVP_PKEY *pkey,
|
195
|
+
STACK_OF(X509) *certs, BIO *data, int flags);
|
196
|
+
|
197
|
+
|
73
198
|
#if defined(__cplusplus)
|
74
199
|
} // extern C
|
200
|
+
|
201
|
+
extern "C++" {
|
202
|
+
BSSL_NAMESPACE_BEGIN
|
203
|
+
|
204
|
+
BORINGSSL_MAKE_DELETER(PKCS7, PKCS7_free)
|
205
|
+
|
206
|
+
BSSL_NAMESPACE_END
|
207
|
+
} // extern C++
|
75
208
|
#endif
|
76
209
|
|
77
210
|
#define PKCS7_R_BAD_PKCS7_VERSION 100
|
@@ -152,14 +152,34 @@ OPENSSL_EXPORT PKCS12* d2i_PKCS12_bio(BIO *bio, PKCS12 **out_p12);
|
|
152
152
|
// d2i_PKCS12_fp acts like |d2i_PKCS12| but reads from a |FILE|.
|
153
153
|
OPENSSL_EXPORT PKCS12* d2i_PKCS12_fp(FILE *fp, PKCS12 **out_p12);
|
154
154
|
|
155
|
+
// i2d_PKCS12 is a dummy function which copies the contents of |p12|. If |out|
|
156
|
+
// is not NULL then the result is written to |*out| and |*out| is advanced just
|
157
|
+
// past the output. It returns the number of bytes in the result, whether
|
158
|
+
// written or not, or a negative value on error.
|
159
|
+
OPENSSL_EXPORT int i2d_PKCS12(const PKCS12 *p12, uint8_t **out);
|
160
|
+
|
161
|
+
// i2d_PKCS12_bio writes the contents of |p12| to |bio|. It returns one on
|
162
|
+
// success and zero on error.
|
163
|
+
OPENSSL_EXPORT int i2d_PKCS12_bio(BIO *bio, const PKCS12 *p12);
|
164
|
+
|
165
|
+
// i2d_PKCS12_fp writes the contents of |p12| to |fp|. It returns one on
|
166
|
+
// success and zero on error.
|
167
|
+
OPENSSL_EXPORT int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12);
|
168
|
+
|
155
169
|
// PKCS12_parse calls |PKCS12_get_key_and_certs| on the ASN.1 data stored in
|
156
170
|
// |p12|. The |out_pkey| and |out_cert| arguments must not be NULL and, on
|
157
|
-
// successful exit, the private key and
|
171
|
+
// successful exit, the private key and matching certificate will be stored in
|
158
172
|
// them. The |out_ca_certs| argument may be NULL but, if not, then any extra
|
159
173
|
// certificates will be appended to |*out_ca_certs|. If |*out_ca_certs| is NULL
|
160
174
|
// then it will be set to a freshly allocated stack containing the extra certs.
|
161
175
|
//
|
176
|
+
// Note if |p12| does not contain a private key, both |*out_pkey| and
|
177
|
+
// |*out_cert| will be set to NULL and all certificates will be returned via
|
178
|
+
// |*out_ca_certs|.
|
179
|
+
//
|
162
180
|
// It returns one on success and zero on error.
|
181
|
+
//
|
182
|
+
// Use |PKCS12_get_key_and_certs| instead.
|
163
183
|
OPENSSL_EXPORT int PKCS12_parse(const PKCS12 *p12, const char *password,
|
164
184
|
EVP_PKEY **out_pkey, X509 **out_cert,
|
165
185
|
STACK_OF(X509) **out_ca_certs);
|
@@ -175,6 +195,23 @@ OPENSSL_EXPORT int PKCS12_parse(const PKCS12 *p12, const char *password,
|
|
175
195
|
OPENSSL_EXPORT int PKCS12_verify_mac(const PKCS12 *p12, const char *password,
|
176
196
|
int password_len);
|
177
197
|
|
198
|
+
// PKCS12_create returns a newly-allocated |PKCS12| object containing |pkey|,
|
199
|
+
// |cert|, and |chain|, encrypted with the specified password. |name|, if not
|
200
|
+
// NULL, specifies a user-friendly name to encode with the key and
|
201
|
+
// certificate. The key and certificates are encrypted with |key_nid| and
|
202
|
+
// |cert_nid|, respectively, using |iterations| iterations in the
|
203
|
+
// KDF. |mac_iterations| is the number of iterations when deriving the MAC
|
204
|
+
// key. |key_type| must be zero. |pkey| and |cert| may be NULL to omit them.
|
205
|
+
//
|
206
|
+
// Each of |key_nid|, |cert_nid|, |iterations|, and |mac_iterations| may be zero
|
207
|
+
// to use defaults, which are |NID_pbe_WithSHA1And3_Key_TripleDES_CBC|,
|
208
|
+
// |NID_pbe_WithSHA1And40BitRC2_CBC|, 2048, and one, respectively.
|
209
|
+
OPENSSL_EXPORT PKCS12 *PKCS12_create(const char *password, const char *name,
|
210
|
+
const EVP_PKEY *pkey, X509 *cert,
|
211
|
+
const STACK_OF(X509) *chain, int key_nid,
|
212
|
+
int cert_nid, int iterations,
|
213
|
+
int mac_iterations, int key_type);
|
214
|
+
|
178
215
|
// PKCS12_free frees |p12| and its contents.
|
179
216
|
OPENSSL_EXPORT void PKCS12_free(PKCS12 *p12);
|
180
217
|
|
@@ -184,12 +221,12 @@ OPENSSL_EXPORT void PKCS12_free(PKCS12 *p12);
|
|
184
221
|
|
185
222
|
extern "C++" {
|
186
223
|
|
187
|
-
|
224
|
+
BSSL_NAMESPACE_BEGIN
|
188
225
|
|
189
226
|
BORINGSSL_MAKE_DELETER(PKCS12, PKCS12_free)
|
190
227
|
BORINGSSL_MAKE_DELETER(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free)
|
191
228
|
|
192
|
-
|
229
|
+
BSSL_NAMESPACE_END
|
193
230
|
|
194
231
|
} // extern C++
|
195
232
|
|
@@ -226,5 +263,7 @@ BORINGSSL_MAKE_DELETER(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free)
|
|
226
263
|
#define PKCS8_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 128
|
227
264
|
#define PKCS8_R_BAD_ITERATION_COUNT 129
|
228
265
|
#define PKCS8_R_UNSUPPORTED_PRF 130
|
266
|
+
#define PKCS8_R_INVALID_CHARACTERS 131
|
267
|
+
#define PKCS8_R_UNSUPPORTED_OPTIONS 132
|
229
268
|
|
230
269
|
#endif // OPENSSL_HEADER_PKCS8_H
|
@@ -48,6 +48,16 @@ OPENSSL_EXPORT void CRYPTO_BUFFER_POOL_free(CRYPTO_BUFFER_POOL *pool);
|
|
48
48
|
OPENSSL_EXPORT CRYPTO_BUFFER *CRYPTO_BUFFER_new(const uint8_t *data, size_t len,
|
49
49
|
CRYPTO_BUFFER_POOL *pool);
|
50
50
|
|
51
|
+
// CRYPTO_BUFFER_alloc creates an unpooled |CRYPTO_BUFFER| of the given size and
|
52
|
+
// writes the underlying data pointer to |*out_data|. It returns NULL on error.
|
53
|
+
//
|
54
|
+
// After calling this function, |len| bytes of contents must be written to
|
55
|
+
// |out_data| before passing the returned pointer to any other BoringSSL
|
56
|
+
// functions. Once initialized, the |CRYPTO_BUFFER| should be treated as
|
57
|
+
// immutable.
|
58
|
+
OPENSSL_EXPORT CRYPTO_BUFFER *CRYPTO_BUFFER_alloc(uint8_t **out_data,
|
59
|
+
size_t len);
|
60
|
+
|
51
61
|
// CRYPTO_BUFFER_new_from_CBS acts the same as |CRYPTO_BUFFER_new|.
|
52
62
|
OPENSSL_EXPORT CRYPTO_BUFFER *CRYPTO_BUFFER_new_from_CBS(
|
53
63
|
CBS *cbs, CRYPTO_BUFFER_POOL *pool);
|
@@ -77,12 +87,13 @@ OPENSSL_EXPORT void CRYPTO_BUFFER_init_CBS(const CRYPTO_BUFFER *buf, CBS *out);
|
|
77
87
|
|
78
88
|
extern "C++" {
|
79
89
|
|
80
|
-
|
90
|
+
BSSL_NAMESPACE_BEGIN
|
81
91
|
|
82
92
|
BORINGSSL_MAKE_DELETER(CRYPTO_BUFFER_POOL, CRYPTO_BUFFER_POOL_free)
|
83
93
|
BORINGSSL_MAKE_DELETER(CRYPTO_BUFFER, CRYPTO_BUFFER_free)
|
94
|
+
BORINGSSL_MAKE_UP_REF(CRYPTO_BUFFER, CRYPTO_BUFFER_up_ref)
|
84
95
|
|
85
|
-
|
96
|
+
BSSL_NAMESPACE_END
|
86
97
|
|
87
98
|
} // extern C++
|
88
99
|
|
@@ -83,21 +83,22 @@ OPENSSL_EXPORT int RIPEMD160_Update(RIPEMD160_CTX *ctx, const void *data,
|
|
83
83
|
size_t len);
|
84
84
|
|
85
85
|
// RIPEMD160_Final adds the final padding to |ctx| and writes the resulting
|
86
|
-
// digest to |
|
86
|
+
// digest to |out|, which must have at least |RIPEMD160_DIGEST_LENGTH| bytes of
|
87
87
|
// space. It returns one.
|
88
|
-
OPENSSL_EXPORT int RIPEMD160_Final(uint8_t
|
88
|
+
OPENSSL_EXPORT int RIPEMD160_Final(uint8_t out[RIPEMD160_DIGEST_LENGTH],
|
89
|
+
RIPEMD160_CTX *ctx);
|
89
90
|
|
90
91
|
// RIPEMD160 writes the digest of |len| bytes from |data| to |out| and returns
|
91
92
|
// |out|. There must be at least |RIPEMD160_DIGEST_LENGTH| bytes of space in
|
92
93
|
// |out|.
|
93
94
|
OPENSSL_EXPORT uint8_t *RIPEMD160(const uint8_t *data, size_t len,
|
94
|
-
uint8_t
|
95
|
+
uint8_t out[RIPEMD160_DIGEST_LENGTH]);
|
95
96
|
|
96
97
|
// RIPEMD160_Transform is a low-level function that performs a single,
|
97
98
|
// RIPEMD160 block transformation using the state from |ctx| and 64 bytes from
|
98
99
|
// |block|.
|
99
100
|
OPENSSL_EXPORT void RIPEMD160_Transform(RIPEMD160_CTX *ctx,
|
100
|
-
const uint8_t
|
101
|
+
const uint8_t block[RIPEMD160_CBLOCK]);
|
101
102
|
|
102
103
|
|
103
104
|
#if defined(__cplusplus)
|
@@ -72,8 +72,14 @@ extern "C" {
|
|
72
72
|
|
73
73
|
|
74
74
|
// Allocation and destruction.
|
75
|
+
//
|
76
|
+
// An |RSA| object represents a public or private RSA key. A given object may be
|
77
|
+
// used concurrently on multiple threads by non-mutating functions, provided no
|
78
|
+
// other thread is concurrently calling a mutating function. Unless otherwise
|
79
|
+
// documented, functions which take a |const| pointer are non-mutating and
|
80
|
+
// functions which take a non-|const| pointer are mutating.
|
75
81
|
|
76
|
-
// RSA_new returns a new, empty RSA object or NULL on error.
|
82
|
+
// RSA_new returns a new, empty |RSA| object or NULL on error.
|
77
83
|
OPENSSL_EXPORT RSA *RSA_new(void);
|
78
84
|
|
79
85
|
// RSA_new_method acts the same as |RSA_new| but takes an explicit |ENGINE|.
|
@@ -83,7 +89,8 @@ OPENSSL_EXPORT RSA *RSA_new_method(const ENGINE *engine);
|
|
83
89
|
// reference count drops to zero.
|
84
90
|
OPENSSL_EXPORT void RSA_free(RSA *rsa);
|
85
91
|
|
86
|
-
// RSA_up_ref increments the reference count of |rsa| and returns one.
|
92
|
+
// RSA_up_ref increments the reference count of |rsa| and returns one. It does
|
93
|
+
// not mutate |rsa| for thread-safety purposes and may be used concurrently.
|
87
94
|
OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
|
88
95
|
|
89
96
|
|
@@ -154,7 +161,7 @@ OPENSSL_EXPORT int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1,
|
|
154
161
|
// with event=3 when a suitable value for |p| is found.
|
155
162
|
//
|
156
163
|
// It returns one on success or zero on error.
|
157
|
-
OPENSSL_EXPORT int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e,
|
164
|
+
OPENSSL_EXPORT int RSA_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,
|
158
165
|
BN_GENCB *cb);
|
159
166
|
|
160
167
|
// RSA_generate_key_fips behaves like |RSA_generate_key_ex| but performs
|
@@ -164,12 +171,23 @@ OPENSSL_EXPORT int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb);
|
|
164
171
|
|
165
172
|
|
166
173
|
// Encryption / Decryption
|
174
|
+
//
|
175
|
+
// These functions are considered non-mutating for thread-safety purposes and
|
176
|
+
// may be used concurrently.
|
167
177
|
|
168
|
-
//
|
178
|
+
// RSA_PKCS1_PADDING denotes PKCS#1 v1.5 padding. When used with encryption,
|
179
|
+
// this is RSAES-PKCS1-v1_5. When used with signing, this is RSASSA-PKCS1-v1_5.
|
169
180
|
#define RSA_PKCS1_PADDING 1
|
181
|
+
|
182
|
+
// RSA_NO_PADDING denotes a raw RSA operation.
|
170
183
|
#define RSA_NO_PADDING 3
|
184
|
+
|
185
|
+
// RSA_PKCS1_OAEP_PADDING denotes the RSAES-OAEP encryption scheme.
|
171
186
|
#define RSA_PKCS1_OAEP_PADDING 4
|
172
|
-
|
187
|
+
|
188
|
+
// RSA_PKCS1_PSS_PADDING denotes the RSASSA-PSS signature scheme. This value may
|
189
|
+
// not be passed into |RSA_sign_raw|, only |EVP_PKEY_CTX_set_rsa_padding|. See
|
190
|
+
// also |RSA_sign_pss_mgf1| and |RSA_verify_pss_mgf1|.
|
173
191
|
#define RSA_PKCS1_PSS_PADDING 6
|
174
192
|
|
175
193
|
// RSA_encrypt encrypts |in_len| bytes from |in| to the public key from |rsa|
|
@@ -231,6 +249,9 @@ OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
|
|
231
249
|
|
232
250
|
|
233
251
|
// Signing / Verification
|
252
|
+
//
|
253
|
+
// These functions are considered non-mutating for thread-safety purposes and
|
254
|
+
// may be used concurrently.
|
234
255
|
|
235
256
|
// RSA_sign signs |in_len| bytes of digest from |in| with |rsa| using
|
236
257
|
// RSASSA-PKCS1-v1_5. It writes, at most, |RSA_size(rsa)| bytes to |out|. On
|
@@ -272,7 +293,8 @@ OPENSSL_EXPORT int RSA_sign_pss_mgf1(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
272
293
|
//
|
273
294
|
// The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
274
295
|
// doubt, |RSA_PKCS1_PADDING| is the most common but |RSA_PKCS1_PSS_PADDING|
|
275
|
-
// (via the |EVP_PKEY| interface) is preferred for new
|
296
|
+
// (via |RSA_sign_pss_mgf1| or the |EVP_PKEY| interface) is preferred for new
|
297
|
+
// protocols.
|
276
298
|
OPENSSL_EXPORT int RSA_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
277
299
|
size_t max_out, const uint8_t *in,
|
278
300
|
size_t in_len, int padding);
|
@@ -317,7 +339,8 @@ OPENSSL_EXPORT int RSA_verify_pss_mgf1(RSA *rsa, const uint8_t *msg,
|
|
317
339
|
//
|
318
340
|
// The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
319
341
|
// doubt, |RSA_PKCS1_PADDING| is the most common but |RSA_PKCS1_PSS_PADDING|
|
320
|
-
// (via the |EVP_PKEY| interface) is preferred for new
|
342
|
+
// (via |RSA_verify_pss_mgf1| or the |EVP_PKEY| interface) is preferred for new
|
343
|
+
// protocols.
|
321
344
|
OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
322
345
|
size_t max_out, const uint8_t *in,
|
323
346
|
size_t in_len, int padding);
|
@@ -372,8 +395,9 @@ OPENSSL_EXPORT RSA *RSAPrivateKey_dup(const RSA *rsa);
|
|
372
395
|
// returns zero then a more detailed error is available on the error queue.
|
373
396
|
OPENSSL_EXPORT int RSA_check_key(const RSA *rsa);
|
374
397
|
|
375
|
-
// RSA_check_fips performs public key validity tests on |key|. It returns one
|
376
|
-
//
|
398
|
+
// RSA_check_fips performs public key validity tests on |key|. It returns one if
|
399
|
+
// they pass and zero otherwise. Opaque keys always fail. This function does not
|
400
|
+
// mutate |rsa| for thread-safety purposes and may be used concurrently.
|
377
401
|
OPENSSL_EXPORT int RSA_check_fips(RSA *key);
|
378
402
|
|
379
403
|
// RSA_verify_PKCS1_PSS_mgf1 verifies that |EM| is a correct PSS padding of
|
@@ -390,7 +414,8 @@ OPENSSL_EXPORT int RSA_check_fips(RSA *key);
|
|
390
414
|
//
|
391
415
|
// This function implements only the low-level padding logic. Use
|
392
416
|
// |RSA_verify_pss_mgf1| instead.
|
393
|
-
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa,
|
417
|
+
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(const RSA *rsa,
|
418
|
+
const uint8_t *mHash,
|
394
419
|
const EVP_MD *Hash,
|
395
420
|
const EVP_MD *mgf1Hash,
|
396
421
|
const uint8_t *EM, int sLen);
|
@@ -407,7 +432,7 @@ OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const uint8_t *mHash,
|
|
407
432
|
//
|
408
433
|
// This function implements only the low-level padding logic. Use
|
409
434
|
// |RSA_sign_pss_mgf1| instead.
|
410
|
-
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, uint8_t *EM,
|
435
|
+
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS_mgf1(const RSA *rsa, uint8_t *EM,
|
411
436
|
const uint8_t *mHash,
|
412
437
|
const EVP_MD *Hash,
|
413
438
|
const EVP_MD *mgf1Hash,
|
@@ -567,7 +592,7 @@ OPENSSL_EXPORT int i2d_RSAPrivateKey(const RSA *in, uint8_t **outp);
|
|
567
592
|
//
|
568
593
|
// This function implements only the low-level padding logic. Use
|
569
594
|
// |RSA_sign_pss_mgf1| instead.
|
570
|
-
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(RSA *rsa, uint8_t *EM,
|
595
|
+
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(const RSA *rsa, uint8_t *EM,
|
571
596
|
const uint8_t *mHash,
|
572
597
|
const EVP_MD *Hash, int sLen);
|
573
598
|
|
@@ -576,7 +601,7 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(RSA *rsa, uint8_t *EM,
|
|
576
601
|
//
|
577
602
|
// This function implements only the low-level padding logic. Use
|
578
603
|
// |RSA_verify_pss_mgf1| instead.
|
579
|
-
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS(RSA *rsa, const uint8_t *mHash,
|
604
|
+
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS(const RSA *rsa, const uint8_t *mHash,
|
580
605
|
const EVP_MD *Hash, const uint8_t *EM,
|
581
606
|
int sLen);
|
582
607
|
|
@@ -589,6 +614,10 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, size_t to_len,
|
|
589
614
|
const uint8_t *param,
|
590
615
|
size_t param_len);
|
591
616
|
|
617
|
+
// RSA_print prints a textual representation of |rsa| to |bio|. It returns one
|
618
|
+
// on success or zero otherwise.
|
619
|
+
OPENSSL_EXPORT int RSA_print(BIO *bio, const RSA *rsa, int indent);
|
620
|
+
|
592
621
|
|
593
622
|
struct rsa_meth_st {
|
594
623
|
struct openssl_method_common_st common;
|
@@ -694,11 +723,12 @@ struct rsa_st {
|
|
694
723
|
|
695
724
|
extern "C++" {
|
696
725
|
|
697
|
-
|
726
|
+
BSSL_NAMESPACE_BEGIN
|
698
727
|
|
699
728
|
BORINGSSL_MAKE_DELETER(RSA, RSA_free)
|
729
|
+
BORINGSSL_MAKE_UP_REF(RSA, RSA_up_ref)
|
700
730
|
|
701
|
-
|
731
|
+
BSSL_NAMESPACE_END
|
702
732
|
|
703
733
|
} // extern C++
|
704
734
|
|
@@ -752,5 +782,6 @@ BORINGSSL_MAKE_DELETER(RSA, RSA_free)
|
|
752
782
|
#define RSA_R_WRONG_SIGNATURE_LENGTH 145
|
753
783
|
#define RSA_R_PUBLIC_KEY_VALIDATION_FAILED 146
|
754
784
|
#define RSA_R_D_OUT_OF_RANGE 147
|
785
|
+
#define RSA_R_BLOCK_TYPE_IS_NOT_02 148
|
755
786
|
|
756
787
|
#endif // OPENSSL_HEADER_RSA_H
|