grpc 1.24.0 → 1.25.0.pre1
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/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 +71 -43
- 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
@@ -81,9 +81,9 @@ OPENSSL_EXPORT void BF_decrypt(uint32_t *data, const BF_KEY *key);
|
|
81
81
|
|
82
82
|
OPENSSL_EXPORT void BF_ecb_encrypt(const uint8_t *in, uint8_t *out,
|
83
83
|
const BF_KEY *key, int enc);
|
84
|
-
OPENSSL_EXPORT void BF_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
85
|
-
const BF_KEY *schedule,
|
86
|
-
int enc);
|
84
|
+
OPENSSL_EXPORT void BF_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
85
|
+
size_t length, const BF_KEY *schedule,
|
86
|
+
uint8_t *ivec, int enc);
|
87
87
|
|
88
88
|
|
89
89
|
#ifdef __cplusplus
|
@@ -142,9 +142,11 @@ extern "C" {
|
|
142
142
|
// BN_ULONG is the native word size when working with big integers.
|
143
143
|
//
|
144
144
|
// Note: on some platforms, inttypes.h does not define print format macros in
|
145
|
-
// C++ unless |__STDC_FORMAT_MACROS| defined.
|
146
|
-
//
|
147
|
-
//
|
145
|
+
// C++ unless |__STDC_FORMAT_MACROS| defined. This is due to text in C99 which
|
146
|
+
// was never adopted in any C++ standard and explicitly overruled in C++11. As
|
147
|
+
// this is a public header, bn.h does not define |__STDC_FORMAT_MACROS| itself.
|
148
|
+
// Projects which use |BN_*_FMT*| with outdated C headers may need to define it
|
149
|
+
// externally.
|
148
150
|
#if defined(OPENSSL_64_BIT)
|
149
151
|
#define BN_ULONG uint64_t
|
150
152
|
#define BN_BITS2 64
|
@@ -158,7 +160,7 @@ extern "C" {
|
|
158
160
|
#define BN_DEC_FMT1 "%" PRIu32
|
159
161
|
#define BN_DEC_FMT2 "%09" PRIu32
|
160
162
|
#define BN_HEX_FMT1 "%" PRIx32
|
161
|
-
#define BN_HEX_FMT2 "%08"
|
163
|
+
#define BN_HEX_FMT2 "%08" PRIx32
|
162
164
|
#else
|
163
165
|
#error "Must define either OPENSSL_32_BIT or OPENSSL_64_BIT"
|
164
166
|
#endif
|
@@ -630,9 +632,12 @@ OPENSSL_EXPORT int BN_rand_range_ex(BIGNUM *r, BN_ULONG min_inclusive,
|
|
630
632
|
// BN_pseudo_rand_range is an alias for BN_rand_range.
|
631
633
|
OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
|
632
634
|
|
633
|
-
|
634
|
-
|
635
|
-
|
635
|
+
#define BN_GENCB_GENERATED 0
|
636
|
+
#define BN_GENCB_PRIME_TEST 1
|
637
|
+
|
638
|
+
// bn_gencb_st, or |BN_GENCB|, holds a callback function that is used by
|
639
|
+
// generation functions that can take a very long time to complete. Use
|
640
|
+
// |BN_GENCB_set| to initialise a |BN_GENCB| structure.
|
636
641
|
//
|
637
642
|
// The callback receives the address of that |BN_GENCB| structure as its last
|
638
643
|
// argument and the user is free to put an arbitrary pointer in |arg|. The other
|
@@ -648,9 +653,6 @@ OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
|
|
648
653
|
//
|
649
654
|
// When other code needs to call a BN generation function it will often take a
|
650
655
|
// BN_GENCB argument and may call the function with other argument values.
|
651
|
-
#define BN_GENCB_GENERATED 0
|
652
|
-
#define BN_GENCB_PRIME_TEST 1
|
653
|
-
|
654
656
|
struct bn_gencb_st {
|
655
657
|
void *arg; // callback-specific data
|
656
658
|
int (*callback)(int event, int n, struct bn_gencb_st *);
|
@@ -659,8 +661,7 @@ struct bn_gencb_st {
|
|
659
661
|
// BN_GENCB_set configures |callback| to call |f| and sets |callout->arg| to
|
660
662
|
// |arg|.
|
661
663
|
OPENSSL_EXPORT void BN_GENCB_set(BN_GENCB *callback,
|
662
|
-
int (*f)(int event, int n,
|
663
|
-
struct bn_gencb_st *),
|
664
|
+
int (*f)(int event, int n, BN_GENCB *),
|
664
665
|
void *arg);
|
665
666
|
|
666
667
|
// BN_GENCB_call calls |callback|, if not NULL, and returns the return value of
|
@@ -701,11 +702,14 @@ enum bn_primality_result_t {
|
|
701
702
|
// Miller-Rabin tests primality for odd integers greater than 3, returning
|
702
703
|
// |bn_probably_prime| if the number is probably prime,
|
703
704
|
// |bn_non_prime_power_composite| if the number is a composite that is not the
|
704
|
-
// power of a single prime, and |bn_composite| otherwise.
|
705
|
-
// |BN_prime_checks|, then a value that results in a false positive rate lower
|
706
|
-
// than the number-field sieve security level of |w| is used. It returns one on
|
705
|
+
// power of a single prime, and |bn_composite| otherwise. It returns one on
|
707
706
|
// success and zero on failure. If |cb| is not NULL, then it is called during
|
708
707
|
// each iteration of the primality test.
|
708
|
+
//
|
709
|
+
// If |iterations| is |BN_prime_checks|, then a value that results in a false
|
710
|
+
// positive rate lower than the number-field sieve security level of |w| is
|
711
|
+
// used, provided |w| was generated randomly. |BN_prime_checks| is not suitable
|
712
|
+
// for inputs potentially crafted by an adversary.
|
709
713
|
OPENSSL_EXPORT int BN_enhanced_miller_rabin_primality_test(
|
710
714
|
enum bn_primality_result_t *out_result, const BIGNUM *w, int iterations,
|
711
715
|
BN_CTX *ctx, BN_GENCB *cb);
|
@@ -718,13 +722,14 @@ OPENSSL_EXPORT int BN_enhanced_miller_rabin_primality_test(
|
|
718
722
|
// list of small primes before Miller-Rabin tests. The probability of this
|
719
723
|
// function returning a false positive is 2^{2*checks}. If |checks| is
|
720
724
|
// |BN_prime_checks| then a value that results in a false positive rate lower
|
721
|
-
// than the number-field sieve security level of |candidate| is used
|
722
|
-
//
|
723
|
-
//
|
725
|
+
// than the number-field sieve security level of |candidate| is used, provided
|
726
|
+
// |candidate| was generated randomly. |BN_prime_checks| is not suitable for
|
727
|
+
// inputs potentially crafted by an adversary.
|
724
728
|
//
|
725
|
-
//
|
729
|
+
// If |cb| is not NULL then it is called during the checking process. See the
|
730
|
+
// comment above |BN_GENCB|.
|
726
731
|
//
|
727
|
-
//
|
732
|
+
// The function returns one on success and zero on error.
|
728
733
|
OPENSSL_EXPORT int BN_primality_test(int *is_probably_prime,
|
729
734
|
const BIGNUM *candidate, int checks,
|
730
735
|
BN_CTX *ctx, int do_trial_division,
|
@@ -737,7 +742,10 @@ OPENSSL_EXPORT int BN_primality_test(int *is_probably_prime,
|
|
737
742
|
// list of small primes before Miller-Rabin tests. The probability of this
|
738
743
|
// function returning one when |candidate| is composite is 2^{2*checks}. If
|
739
744
|
// |checks| is |BN_prime_checks| then a value that results in a false positive
|
740
|
-
// rate lower than the number-field sieve security level of |candidate| is used
|
745
|
+
// rate lower than the number-field sieve security level of |candidate| is used,
|
746
|
+
// provided |candidate| was generated randomly. |BN_prime_checks| is not
|
747
|
+
// suitable for inputs potentially crafted by an adversary.
|
748
|
+
//
|
741
749
|
// If |cb| is not NULL then it is called during the checking process. See the
|
742
750
|
// comment above |BN_GENCB|.
|
743
751
|
//
|
@@ -805,10 +813,15 @@ int BN_mod_inverse_odd(BIGNUM *out, int *out_no_inverse, const BIGNUM *a,
|
|
805
813
|
// Montgomery domain.
|
806
814
|
|
807
815
|
// BN_MONT_CTX_new_for_modulus returns a fresh |BN_MONT_CTX| given the modulus,
|
808
|
-
// |mod| or NULL on error.
|
816
|
+
// |mod| or NULL on error. Note this function assumes |mod| is public.
|
809
817
|
OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new_for_modulus(const BIGNUM *mod,
|
810
818
|
BN_CTX *ctx);
|
811
819
|
|
820
|
+
// BN_MONT_CTX_new_consttime behaves like |BN_MONT_CTX_new_for_modulus| but
|
821
|
+
// treats |mod| as secret.
|
822
|
+
OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new_consttime(const BIGNUM *mod,
|
823
|
+
BN_CTX *ctx);
|
824
|
+
|
812
825
|
// BN_MONT_CTX_free frees memory associated with |mont|.
|
813
826
|
OPENSSL_EXPORT void BN_MONT_CTX_free(BN_MONT_CTX *mont);
|
814
827
|
|
@@ -819,7 +832,8 @@ OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to,
|
|
819
832
|
|
820
833
|
// BN_MONT_CTX_set_locked takes |lock| and checks whether |*pmont| is NULL. If
|
821
834
|
// so, it creates a new |BN_MONT_CTX| and sets the modulus for it to |mod|. It
|
822
|
-
// then stores it as |*pmont|. It returns one on success and zero on error.
|
835
|
+
// then stores it as |*pmont|. It returns one on success and zero on error. Note
|
836
|
+
// this function assumes |mod| is public.
|
823
837
|
//
|
824
838
|
// If |*pmont| is already non-NULL then it does nothing and returns one.
|
825
839
|
int BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_MUTEX *lock,
|
@@ -832,8 +846,9 @@ OPENSSL_EXPORT int BN_to_montgomery(BIGNUM *ret, const BIGNUM *a,
|
|
832
846
|
const BN_MONT_CTX *mont, BN_CTX *ctx);
|
833
847
|
|
834
848
|
// BN_from_montgomery sets |ret| equal to |a| * R^-1, i.e. translates values out
|
835
|
-
// of the Montgomery domain. |a| is assumed to be in the range [0, n), where
|
836
|
-
// is the Montgomery modulus.
|
849
|
+
// of the Montgomery domain. |a| is assumed to be in the range [0, n*R), where
|
850
|
+
// |n| is the Montgomery modulus. Note n < R, so inputs in the range [0, n*n)
|
851
|
+
// are valid. This function returns one on success or zero on error.
|
837
852
|
OPENSSL_EXPORT int BN_from_montgomery(BIGNUM *ret, const BIGNUM *a,
|
838
853
|
const BN_MONT_CTX *mont, BN_CTX *ctx);
|
839
854
|
|
@@ -862,10 +877,14 @@ OPENSSL_EXPORT int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
|
|
862
877
|
OPENSSL_EXPORT int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
|
863
878
|
const BIGNUM *m, BN_CTX *ctx);
|
864
879
|
|
880
|
+
// BN_mod_exp_mont behaves like |BN_mod_exp| but treats |a| as secret and
|
881
|
+
// requires 0 <= |a| < |m|.
|
865
882
|
OPENSSL_EXPORT int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
|
866
883
|
const BIGNUM *m, BN_CTX *ctx,
|
867
884
|
const BN_MONT_CTX *mont);
|
868
885
|
|
886
|
+
// BN_mod_exp_mont_consttime behaves like |BN_mod_exp| but treats |a|, |p|, and
|
887
|
+
// |m| as secret and requires 0 <= |a| < |m|.
|
869
888
|
OPENSSL_EXPORT int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a,
|
870
889
|
const BIGNUM *p, const BIGNUM *m,
|
871
890
|
BN_CTX *ctx,
|
@@ -914,6 +933,12 @@ OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new(void);
|
|
914
933
|
OPENSSL_EXPORT int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod,
|
915
934
|
BN_CTX *ctx);
|
916
935
|
|
936
|
+
// BN_bn2binpad behaves like |BN_bn2bin_padded|, but it returns |len| on success
|
937
|
+
// and -1 on error.
|
938
|
+
//
|
939
|
+
// Use |BN_bn2bin_padded| instead. It is |size_t|-clean.
|
940
|
+
OPENSSL_EXPORT int BN_bn2binpad(const BIGNUM *in, uint8_t *out, int len);
|
941
|
+
|
917
942
|
|
918
943
|
// Private functions
|
919
944
|
|
@@ -945,9 +970,10 @@ struct bignum_st {
|
|
945
970
|
};
|
946
971
|
|
947
972
|
struct bn_mont_ctx_st {
|
948
|
-
// RR is R^2, reduced modulo |N|. It is used to convert to Montgomery form.
|
973
|
+
// RR is R^2, reduced modulo |N|. It is used to convert to Montgomery form. It
|
974
|
+
// is guaranteed to have the same width as |N|.
|
949
975
|
BIGNUM RR;
|
950
|
-
// N is the modulus. It is always stored in minimal form, so |N.
|
976
|
+
// N is the modulus. It is always stored in minimal form, so |N.width|
|
951
977
|
// determines R.
|
952
978
|
BIGNUM N;
|
953
979
|
BN_ULONG n0[2]; // least significant words of (R*Ri-1)/N
|
@@ -970,7 +996,7 @@ OPENSSL_EXPORT unsigned BN_num_bits_word(BN_ULONG l);
|
|
970
996
|
#if !defined(BORINGSSL_NO_CXX)
|
971
997
|
extern "C++" {
|
972
998
|
|
973
|
-
|
999
|
+
BSSL_NAMESPACE_BEGIN
|
974
1000
|
|
975
1001
|
BORINGSSL_MAKE_DELETER(BIGNUM, BN_free)
|
976
1002
|
BORINGSSL_MAKE_DELETER(BN_CTX, BN_CTX_free)
|
@@ -988,7 +1014,7 @@ class BN_CTXScope {
|
|
988
1014
|
BN_CTXScope &operator=(BN_CTXScope &) = delete;
|
989
1015
|
};
|
990
1016
|
|
991
|
-
|
1017
|
+
BSSL_NAMESPACE_END
|
992
1018
|
|
993
1019
|
} // extern C++
|
994
1020
|
#endif
|
@@ -124,11 +124,11 @@ OPENSSL_EXPORT size_t BUF_strlcat(char *dst, const char *src, size_t dst_size);
|
|
124
124
|
|
125
125
|
extern "C++" {
|
126
126
|
|
127
|
-
|
127
|
+
BSSL_NAMESPACE_BEGIN
|
128
128
|
|
129
129
|
BORINGSSL_MAKE_DELETER(BUF_MEM, BUF_MEM_free)
|
130
130
|
|
131
|
-
|
131
|
+
BSSL_NAMESPACE_END
|
132
132
|
|
133
133
|
} // extern C++
|
134
134
|
|
@@ -110,6 +110,10 @@ OPENSSL_EXPORT int CBS_get_u24(CBS *cbs, uint32_t *out);
|
|
110
110
|
// and advances |cbs|. It returns one on success and zero on error.
|
111
111
|
OPENSSL_EXPORT int CBS_get_u32(CBS *cbs, uint32_t *out);
|
112
112
|
|
113
|
+
// CBS_get_u64 sets |*out| to the next, big-endian uint64_t value from |cbs|
|
114
|
+
// and advances |cbs|. It returns one on success and zero on error.
|
115
|
+
OPENSSL_EXPORT int CBS_get_u64(CBS *cbs, uint64_t *out);
|
116
|
+
|
113
117
|
// CBS_get_last_u8 sets |*out| to the last uint8_t from |cbs| and shortens
|
114
118
|
// |cbs|. It returns one on success and zero on error.
|
115
119
|
OPENSSL_EXPORT int CBS_get_last_u8(CBS *cbs, uint8_t *out);
|
@@ -139,8 +143,48 @@ OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
|
|
139
143
|
|
140
144
|
|
141
145
|
// Parsing ASN.1
|
146
|
+
//
|
147
|
+
// |CBS| may be used to parse DER structures. Rather than using a schema
|
148
|
+
// compiler, the following functions act on tag-length-value elements in the
|
149
|
+
// serialization itself. Thus the caller is responsible for looping over a
|
150
|
+
// SEQUENCE, branching on CHOICEs or OPTIONAL fields, checking for trailing
|
151
|
+
// data, and handling explict vs. implicit tagging.
|
152
|
+
//
|
153
|
+
// Tags are represented as |unsigned| values in memory. The upper few bits store
|
154
|
+
// the class and constructed bit, and the remaining bits store the tag
|
155
|
+
// number. Note this differs from the DER serialization, to support tag numbers
|
156
|
+
// beyond 31. Consumers must use the constants defined below to decompose or
|
157
|
+
// assemble tags.
|
158
|
+
//
|
159
|
+
// This library treats an element's constructed bit as part of its tag. In DER,
|
160
|
+
// the constructed bit is computable from the type. The constants for universal
|
161
|
+
// types have the bit set. Callers must set it correctly for tagged types.
|
162
|
+
// Explicitly-tagged types are always constructed, and implicitly-tagged types
|
163
|
+
// inherit the underlying type's bit.
|
164
|
+
|
165
|
+
// CBS_ASN1_TAG_SHIFT is how much the in-memory representation shifts the class
|
166
|
+
// and constructed bits from the DER serialization.
|
167
|
+
#define CBS_ASN1_TAG_SHIFT 24
|
168
|
+
|
169
|
+
// CBS_ASN1_CONSTRUCTED may be ORed into a tag to set the constructed bit.
|
170
|
+
#define CBS_ASN1_CONSTRUCTED (0x20u << CBS_ASN1_TAG_SHIFT)
|
171
|
+
|
172
|
+
// The following values specify the tag class and may be ORed into a tag number
|
173
|
+
// to produce the final tag. If none is used, the tag will be UNIVERSAL.
|
174
|
+
#define CBS_ASN1_UNIVERSAL (0u << CBS_ASN1_TAG_SHIFT)
|
175
|
+
#define CBS_ASN1_APPLICATION (0x40u << CBS_ASN1_TAG_SHIFT)
|
176
|
+
#define CBS_ASN1_CONTEXT_SPECIFIC (0x80u << CBS_ASN1_TAG_SHIFT)
|
177
|
+
#define CBS_ASN1_PRIVATE (0xc0u << CBS_ASN1_TAG_SHIFT)
|
178
|
+
|
179
|
+
// CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class. This will
|
180
|
+
// give one of the four values above.
|
181
|
+
#define CBS_ASN1_CLASS_MASK (0xc0u << CBS_ASN1_TAG_SHIFT)
|
182
|
+
|
183
|
+
// CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number.
|
184
|
+
#define CBS_ASN1_TAG_NUMBER_MASK ((1u << (5 + CBS_ASN1_TAG_SHIFT)) - 1)
|
142
185
|
|
143
|
-
// The following values are
|
186
|
+
// The following values are constants for UNIVERSAL tags. Note these constants
|
187
|
+
// include the constructed bit.
|
144
188
|
#define CBS_ASN1_BOOLEAN 0x1u
|
145
189
|
#define CBS_ASN1_INTEGER 0x2u
|
146
190
|
#define CBS_ASN1_BITSTRING 0x3u
|
@@ -164,32 +208,6 @@ OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
|
|
164
208
|
#define CBS_ASN1_UNIVERSALSTRING 0x1cu
|
165
209
|
#define CBS_ASN1_BMPSTRING 0x1eu
|
166
210
|
|
167
|
-
// CBS_ASN1_TAG_SHIFT is how much the in-memory representation shifts the class
|
168
|
-
// and constructed bits from the DER serialization. This allows representing tag
|
169
|
-
// numbers beyond 31.
|
170
|
-
//
|
171
|
-
// Consumers must use the following constants to decompose or assemble tags.
|
172
|
-
#define CBS_ASN1_TAG_SHIFT 24
|
173
|
-
|
174
|
-
// CBS_ASN1_CONSTRUCTED may be ORed into a tag to toggle the constructed
|
175
|
-
// bit. |CBS| and |CBB| APIs consider the constructed bit to be part of the
|
176
|
-
// tag.
|
177
|
-
#define CBS_ASN1_CONSTRUCTED (0x20u << CBS_ASN1_TAG_SHIFT)
|
178
|
-
|
179
|
-
// The following values specify the tag class and may be ORed into a tag number
|
180
|
-
// to produce the final tag. If none is used, the tag will be UNIVERSAL.
|
181
|
-
#define CBS_ASN1_UNIVERSAL (0u << CBS_ASN1_TAG_SHIFT)
|
182
|
-
#define CBS_ASN1_APPLICATION (0x40u << CBS_ASN1_TAG_SHIFT)
|
183
|
-
#define CBS_ASN1_CONTEXT_SPECIFIC (0x80u << CBS_ASN1_TAG_SHIFT)
|
184
|
-
#define CBS_ASN1_PRIVATE (0xc0u << CBS_ASN1_TAG_SHIFT)
|
185
|
-
|
186
|
-
// CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class. This will
|
187
|
-
// give one of the four values above.
|
188
|
-
#define CBS_ASN1_CLASS_MASK (0xc0u << CBS_ASN1_TAG_SHIFT)
|
189
|
-
|
190
|
-
// CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number.
|
191
|
-
#define CBS_ASN1_TAG_NUMBER_MASK ((1u << (5 + CBS_ASN1_TAG_SHIFT)) - 1)
|
192
|
-
|
193
211
|
// CBS_get_asn1 sets |*out| to the contents of DER-encoded, ASN.1 element (not
|
194
212
|
// including tag and length bytes) and advances |cbs| over it. The ASN.1
|
195
213
|
// element must match |tag_value|. It returns one on success and zero
|
@@ -327,9 +345,9 @@ struct cbb_st {
|
|
327
345
|
// length-prefix, or zero if no length-prefix is pending.
|
328
346
|
uint8_t pending_len_len;
|
329
347
|
char pending_is_asn1;
|
330
|
-
//
|
348
|
+
// is_child is true iff this is a child |CBB| (as opposed to a top-level
|
331
349
|
// |CBB|). Top-level objects are valid arguments for |CBB_finish|.
|
332
|
-
char
|
350
|
+
char is_child;
|
333
351
|
};
|
334
352
|
|
335
353
|
// CBB_zero sets an uninitialised |cbb| to the zero state. It must be
|
@@ -340,7 +358,7 @@ OPENSSL_EXPORT void CBB_zero(CBB *cbb);
|
|
340
358
|
|
341
359
|
// CBB_init initialises |cbb| with |initial_capacity|. Since a |CBB| grows as
|
342
360
|
// needed, the |initial_capacity| is just a hint. It returns one on success or
|
343
|
-
// zero on
|
361
|
+
// zero on allocation failure.
|
344
362
|
OPENSSL_EXPORT int CBB_init(CBB *cbb, size_t initial_capacity);
|
345
363
|
|
346
364
|
// CBB_init_fixed initialises |cbb| to write to |len| bytes at |buf|. Since
|
@@ -445,6 +463,10 @@ OPENSSL_EXPORT int CBB_add_u24(CBB *cbb, uint32_t value);
|
|
445
463
|
// returns one on success and zero otherwise.
|
446
464
|
OPENSSL_EXPORT int CBB_add_u32(CBB *cbb, uint32_t value);
|
447
465
|
|
466
|
+
// CBB_add_u64 appends a 64-bit, big-endian number from |value| to |cbb|. It
|
467
|
+
// returns one on success and zero otherwise.
|
468
|
+
OPENSSL_EXPORT int CBB_add_u64(CBB *cbb, uint64_t value);
|
469
|
+
|
448
470
|
// CBB_discard_child discards the current unflushed child of |cbb|. Neither the
|
449
471
|
// child's contents nor the length prefix will be included in the output.
|
450
472
|
OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
|
@@ -491,11 +513,11 @@ OPENSSL_EXPORT int CBB_flush_asn1_set_of(CBB *cbb);
|
|
491
513
|
#if !defined(BORINGSSL_NO_CXX)
|
492
514
|
extern "C++" {
|
493
515
|
|
494
|
-
|
516
|
+
BSSL_NAMESPACE_BEGIN
|
495
517
|
|
496
518
|
using ScopedCBB = internal::StackAllocated<CBB, void, CBB_zero, CBB_cleanup>;
|
497
519
|
|
498
|
-
|
520
|
+
BSSL_NAMESPACE_END
|
499
521
|
|
500
522
|
} // extern C++
|
501
523
|
#endif
|
@@ -82,11 +82,11 @@ OPENSSL_EXPORT void CAST_ecb_encrypt(const uint8_t *in, uint8_t *out,
|
|
82
82
|
OPENSSL_EXPORT void CAST_encrypt(uint32_t *data, const CAST_KEY *key);
|
83
83
|
OPENSSL_EXPORT void CAST_decrypt(uint32_t *data, const CAST_KEY *key);
|
84
84
|
OPENSSL_EXPORT void CAST_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
85
|
-
|
85
|
+
size_t length, const CAST_KEY *ks,
|
86
86
|
uint8_t *iv, int enc);
|
87
87
|
|
88
88
|
OPENSSL_EXPORT void CAST_cfb64_encrypt(const uint8_t *in, uint8_t *out,
|
89
|
-
|
89
|
+
size_t length, const CAST_KEY *schedule,
|
90
90
|
uint8_t *ivec, int *num, int enc);
|
91
91
|
|
92
92
|
#ifdef __cplusplus
|
@@ -136,8 +136,8 @@ OPENSSL_EXPORT int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out,
|
|
136
136
|
const EVP_CIPHER_CTX *in);
|
137
137
|
|
138
138
|
// EVP_CIPHER_CTX_reset calls |EVP_CIPHER_CTX_cleanup| followed by
|
139
|
-
// |EVP_CIPHER_CTX_init
|
140
|
-
OPENSSL_EXPORT
|
139
|
+
// |EVP_CIPHER_CTX_init| and returns one.
|
140
|
+
OPENSSL_EXPORT int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
|
141
141
|
|
142
142
|
|
143
143
|
// Cipher context configuration.
|
@@ -243,6 +243,10 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_CIPHER_CTX_cipher(
|
|
243
243
|
// configured.
|
244
244
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
|
245
245
|
|
246
|
+
// EVP_CIPHER_CTX_encrypting returns one if |ctx| is configured for encryption
|
247
|
+
// and zero otherwise.
|
248
|
+
OPENSSL_EXPORT int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx);
|
249
|
+
|
246
250
|
// EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
|
247
251
|
// underlying |ctx|, or one if the cipher is a stream cipher. It will crash if
|
248
252
|
// no cipher has been configured.
|
@@ -413,14 +417,37 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ecb(void);
|
|
413
417
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cbc(void);
|
414
418
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ctr(void);
|
415
419
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
420
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ofb(void);
|
421
|
+
|
422
|
+
// EVP_des_ede3_ecb is an alias for |EVP_des_ede3|. Use the former instead.
|
423
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);
|
416
424
|
|
417
425
|
// EVP_aes_128_cfb128 is only available in decrepit.
|
418
426
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
|
419
427
|
|
428
|
+
// EVP_aes_256_cfb128 is only available in decrepit.
|
429
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_cfb128(void);
|
430
|
+
|
431
|
+
// EVP_bf_ecb is Blowfish in ECB mode and is only available in decrepit.
|
432
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_ecb(void);
|
433
|
+
|
434
|
+
// EVP_bf_cbc is Blowfish in CBC mode and is only available in decrepit.
|
435
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_cbc(void);
|
436
|
+
|
437
|
+
// EVP_bf_cfb is Blowfish in 64-bit CFB mode and is only available in decrepit.
|
438
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_cfb(void);
|
439
|
+
|
440
|
+
// EVP_cast5_ecb is CAST5 in ECB mode and is only available in decrepit.
|
441
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_cast5_ecb(void);
|
442
|
+
|
443
|
+
// EVP_cast5_cbc is CAST5 in CBC mode and is only available in decrepit.
|
444
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_cast5_cbc(void);
|
445
|
+
|
420
446
|
// The following flags do nothing and are included only to make it easier to
|
421
447
|
// compile code with BoringSSL.
|
422
|
-
#define EVP_CIPH_CCM_MODE
|
423
|
-
#define
|
448
|
+
#define EVP_CIPH_CCM_MODE (-1)
|
449
|
+
#define EVP_CIPH_OCB_MODE (-2)
|
450
|
+
#define EVP_CIPH_WRAP_MODE (-3)
|
424
451
|
#define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0
|
425
452
|
|
426
453
|
// EVP_CIPHER_CTX_set_flags does nothing.
|
@@ -433,7 +460,7 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
|
|
433
460
|
// EVP_CIPH_NO_PADDING disables padding in block ciphers.
|
434
461
|
#define EVP_CIPH_NO_PADDING 0x800
|
435
462
|
|
436
|
-
// EVP_CIPHER_CTX_ctrl commands.
|
463
|
+
// The following are |EVP_CIPHER_CTX_ctrl| commands.
|
437
464
|
#define EVP_CTRL_INIT 0x0
|
438
465
|
#define EVP_CTRL_SET_KEY_LENGTH 0x1
|
439
466
|
#define EVP_CTRL_GET_RC2_KEY_BITS 0x2
|
@@ -443,23 +470,26 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
|
|
443
470
|
#define EVP_CTRL_RAND_KEY 0x6
|
444
471
|
#define EVP_CTRL_PBE_PRF_NID 0x7
|
445
472
|
#define EVP_CTRL_COPY 0x8
|
446
|
-
#define
|
447
|
-
#define
|
448
|
-
#define
|
449
|
-
#define
|
473
|
+
#define EVP_CTRL_AEAD_SET_IVLEN 0x9
|
474
|
+
#define EVP_CTRL_AEAD_GET_TAG 0x10
|
475
|
+
#define EVP_CTRL_AEAD_SET_TAG 0x11
|
476
|
+
#define EVP_CTRL_AEAD_SET_IV_FIXED 0x12
|
450
477
|
#define EVP_CTRL_GCM_IV_GEN 0x13
|
451
478
|
#define EVP_CTRL_AEAD_SET_MAC_KEY 0x17
|
452
|
-
//
|
479
|
+
// EVP_CTRL_GCM_SET_IV_INV sets the GCM invocation field, decrypt only
|
453
480
|
#define EVP_CTRL_GCM_SET_IV_INV 0x18
|
454
481
|
|
455
|
-
//
|
456
|
-
// Length of fixed part of IV derived from PRF
|
482
|
+
// The following constants are unused.
|
457
483
|
#define EVP_GCM_TLS_FIXED_IV_LEN 4
|
458
|
-
// Length of explicit part of IV part of TLS records
|
459
484
|
#define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
|
460
|
-
// Length of tag for TLS
|
461
485
|
#define EVP_GCM_TLS_TAG_LEN 16
|
462
486
|
|
487
|
+
// The following are legacy aliases for AEAD |EVP_CIPHER_CTX_ctrl| values.
|
488
|
+
#define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
|
489
|
+
#define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
|
490
|
+
#define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
|
491
|
+
#define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED
|
492
|
+
|
463
493
|
#define EVP_MAX_KEY_LENGTH 64
|
464
494
|
#define EVP_MAX_IV_LENGTH 16
|
465
495
|
#define EVP_MAX_BLOCK_LENGTH 32
|
@@ -563,7 +593,7 @@ struct evp_cipher_st {
|
|
563
593
|
#if !defined(BORINGSSL_NO_CXX)
|
564
594
|
extern "C++" {
|
565
595
|
|
566
|
-
|
596
|
+
BSSL_NAMESPACE_BEGIN
|
567
597
|
|
568
598
|
BORINGSSL_MAKE_DELETER(EVP_CIPHER_CTX, EVP_CIPHER_CTX_free)
|
569
599
|
|
@@ -571,7 +601,7 @@ using ScopedEVP_CIPHER_CTX =
|
|
571
601
|
internal::StackAllocated<EVP_CIPHER_CTX, int, EVP_CIPHER_CTX_init,
|
572
602
|
EVP_CIPHER_CTX_cleanup>;
|
573
603
|
|
574
|
-
|
604
|
+
BSSL_NAMESPACE_END
|
575
605
|
|
576
606
|
} // extern C++
|
577
607
|
#endif
|