grpc 1.9.1 → 1.10.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 +2654 -953
- data/etc/roots.pem +282 -683
- data/include/grpc/compression.h +9 -26
- data/include/grpc/grpc.h +10 -24
- data/include/grpc/grpc_security.h +7 -1
- data/include/grpc/impl/codegen/compression_types.h +5 -62
- data/include/grpc/impl/codegen/grpc_types.h +10 -6
- data/include/grpc/module.modulemap +1 -10
- data/include/grpc/support/alloc.h +3 -2
- data/include/grpc/support/log.h +1 -2
- data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
- data/src/boringssl/err_data.c +550 -496
- data/src/core/ext/census/grpc_context.cc +2 -1
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
- data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
- data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
- data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
- data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver.cc +6 -52
- data/src/core/ext/filters/client_channel/resolver.h +98 -55
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
- data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
- data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
- data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
- data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
- data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
- data/src/core/ext/filters/client_channel/subchannel.h +38 -45
- data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
- data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
- data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
- data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
- data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
- data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
- data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
- data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
- data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
- data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
- data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
- data/src/core/lib/{gpr → avl}/avl.cc +61 -57
- data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
- data/src/core/lib/backoff/backoff.cc +6 -5
- data/src/core/lib/channel/channel_args.cc +23 -109
- data/src/core/lib/channel/channel_args.h +5 -31
- data/src/core/lib/channel/channel_stack.cc +11 -8
- data/src/core/lib/channel/channel_stack_builder.cc +10 -7
- data/src/core/lib/channel/connected_channel.cc +18 -17
- data/src/core/lib/channel/handshaker.cc +8 -8
- data/src/core/lib/channel/handshaker_registry.cc +3 -2
- data/src/core/lib/compression/algorithm_metadata.h +13 -6
- data/src/core/lib/compression/compression.cc +72 -183
- data/src/core/lib/compression/compression_internal.cc +274 -0
- data/src/core/lib/compression/compression_internal.h +86 -0
- data/src/core/lib/compression/message_compress.cc +15 -15
- data/src/core/lib/compression/message_compress.h +4 -3
- data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
- data/src/core/lib/compression/stream_compression_identity.cc +1 -1
- data/src/core/lib/debug/stats.cc +10 -8
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/trace.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +7 -11
- data/src/core/lib/gpr/arena.cc +34 -12
- data/src/core/lib/gpr/atm.cc +2 -1
- data/src/core/lib/gpr/cpu_linux.cc +3 -3
- data/src/core/lib/gpr/cpu_posix.cc +2 -1
- data/src/core/lib/gpr/env.h +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -1
- data/src/core/lib/gpr/env_windows.cc +4 -4
- data/src/core/lib/gpr/fork.cc +16 -2
- data/src/core/lib/gpr/host_port.cc +5 -4
- data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
- data/src/core/lib/gpr/log.cc +5 -4
- data/src/core/lib/gpr/log_linux.cc +1 -1
- data/src/core/lib/gpr/mpscq.cc +1 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -4
- data/src/core/lib/gpr/string.cc +19 -16
- data/src/core/lib/gpr/string_posix.cc +3 -3
- data/src/core/lib/gpr/sync_posix.cc +5 -9
- data/src/core/lib/gpr/thd.cc +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
- data/src/core/lib/gpr/thd_posix.cc +6 -4
- data/src/core/lib/gpr/thd_windows.cc +3 -1
- data/src/core/lib/gpr/time.cc +6 -4
- data/src/core/lib/gpr/time_posix.cc +2 -2
- data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
- data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
- data/src/core/lib/gpr/tls_pthread.cc +1 -1
- data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
- data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
- data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
- data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
- data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
- data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
- data/src/core/lib/http/format_request.cc +3 -3
- data/src/core/lib/http/httpcli.cc +6 -7
- data/src/core/lib/http/httpcli_security_connector.cc +10 -10
- data/src/core/lib/http/parser.cc +16 -12
- data/src/core/lib/iomgr/call_combiner.cc +12 -13
- data/src/core/lib/iomgr/closure.h +4 -6
- data/src/core/lib/iomgr/combiner.cc +10 -21
- data/src/core/lib/iomgr/error.cc +50 -55
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
- data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
- data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
- data/src/core/lib/iomgr/ev_posix.cc +47 -6
- data/src/core/lib/iomgr/exec_ctx.cc +10 -10
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +16 -13
- data/src/core/lib/iomgr/fork_posix.cc +1 -3
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +1 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
- data/src/core/lib/iomgr/iomgr_uv.h +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
- data/src/core/lib/iomgr/load_file.cc +3 -3
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
- data/src/core/lib/iomgr/resource_quota.cc +36 -34
- data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_mutator.cc +7 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
- data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +47 -55
- data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
- data/src/core/lib/iomgr/tcp_windows.cc +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +16 -14
- data/src/core/lib/iomgr/timer_heap.cc +8 -7
- data/src/core/lib/iomgr/timer_manager.cc +4 -3
- data/src/core/lib/iomgr/udp_server.cc +24 -16
- data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
- data/src/core/lib/json/json.cc +1 -1
- data/src/core/lib/json/json_reader.cc +8 -6
- data/src/core/lib/json/json_string.cc +19 -18
- data/src/core/lib/json/json_writer.cc +10 -8
- data/src/core/lib/profiling/basic_timers.cc +1 -1
- data/src/core/lib/profiling/timers.h +3 -20
- data/src/core/lib/security/context/security_context.cc +16 -14
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
- data/src/core/lib/security/credentials/credentials.cc +9 -8
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
- data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
- data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
- data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
- data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
- data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
- data/src/core/lib/security/transport/security_handshaker.cc +19 -18
- data/src/core/lib/security/transport/security_handshaker.h +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
- data/src/core/lib/slice/b64.cc +19 -16
- data/src/core/lib/slice/percent_encoding.cc +5 -5
- data/src/core/lib/slice/slice.cc +35 -33
- data/src/core/lib/slice/slice_buffer.cc +16 -14
- data/src/core/lib/slice/slice_hash_table.cc +3 -2
- data/src/core/lib/slice/slice_intern.cc +21 -25
- data/src/core/lib/slice/slice_string_helpers.cc +45 -9
- data/src/core/lib/slice/slice_string_helpers.h +6 -0
- data/src/core/lib/surface/byte_buffer.cc +2 -2
- data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
- data/src/core/lib/surface/call.cc +171 -260
- data/src/core/lib/surface/call_test_only.h +1 -13
- data/src/core/lib/surface/channel.cc +20 -43
- data/src/core/lib/surface/channel_init.cc +7 -7
- data/src/core/lib/surface/channel_ping.cc +2 -2
- data/src/core/lib/surface/completion_queue.cc +69 -75
- data/src/core/lib/surface/init.cc +4 -5
- data/src/core/lib/surface/init_secure.cc +1 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/server.cc +64 -59
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -5
- data/src/core/lib/transport/byte_stream.cc +23 -14
- data/src/core/lib/transport/byte_stream.h +1 -1
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/error_utils.cc +10 -7
- data/src/core/lib/transport/metadata.cc +27 -26
- data/src/core/lib/transport/metadata.h +1 -1
- data/src/core/lib/transport/pid_controller.cc +2 -1
- data/src/core/lib/transport/service_config.cc +5 -5
- data/src/core/lib/transport/static_metadata.cc +225 -222
- data/src/core/lib/transport/static_metadata.h +77 -76
- data/src/core/lib/transport/timeout_encoding.cc +3 -2
- data/src/core/lib/transport/transport.cc +6 -5
- data/src/core/lib/transport/transport_op_string.cc +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
- data/src/core/tsi/alts_transport_security.cc +61 -0
- data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
- data/src/core/tsi/fake_transport_security.cc +59 -43
- data/src/core/tsi/ssl_transport_security.cc +122 -107
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_adapter.cc +16 -10
- data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +3 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
- data/src/ruby/ext/grpc/rb_server.c +52 -28
- data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/test/client.rb +1 -1
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +4 -2
- data/src/ruby/spec/generic/active_call_spec.rb +2 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
- data/src/ruby/spec/server_spec.rb +26 -7
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
- data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
- data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
- data/third_party/boringssl/crypto/base64/base64.c +65 -43
- data/third_party/boringssl/crypto/bio/bio.c +134 -110
- data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
- data/third_party/boringssl/crypto/bio/connect.c +17 -17
- data/third_party/boringssl/crypto/bio/fd.c +2 -1
- data/third_party/boringssl/crypto/bio/file.c +14 -14
- data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
- data/third_party/boringssl/crypto/bio/internal.h +14 -14
- data/third_party/boringssl/crypto/bio/pair.c +45 -45
- data/third_party/boringssl/crypto/bio/printf.c +6 -10
- data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
- data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
- data/third_party/boringssl/crypto/buf/buf.c +20 -44
- data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
- data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
- data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
- data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
- data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
- data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
- data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
- data/third_party/boringssl/crypto/conf/conf.c +32 -20
- data/third_party/boringssl/crypto/conf/internal.h +3 -3
- data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
- data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
- data/third_party/boringssl/crypto/cpu-intel.c +68 -43
- data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
- data/third_party/boringssl/crypto/crypto.c +54 -32
- data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
- data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
- data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
- data/third_party/boringssl/crypto/dh/check.c +33 -34
- data/third_party/boringssl/crypto/dh/dh.c +72 -36
- data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
- data/third_party/boringssl/crypto/dh/params.c +1 -161
- data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
- data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
- data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
- data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
- data/third_party/boringssl/crypto/engine/engine.c +6 -6
- data/third_party/boringssl/crypto/err/err.c +197 -106
- data/third_party/boringssl/crypto/err/internal.h +58 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
- data/third_party/boringssl/crypto/evp/evp.c +6 -11
- data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
- data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
- data/third_party/boringssl/crypto/evp/internal.h +66 -51
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
- data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
- data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
- data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
- data/third_party/boringssl/crypto/evp/print.c +5 -36
- data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
- data/third_party/boringssl/crypto/ex_data.c +15 -45
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
- data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
- data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
- data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
- data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
- data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
- data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
- data/third_party/boringssl/crypto/internal.h +301 -233
- data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
- data/third_party/boringssl/crypto/mem.c +76 -33
- data/third_party/boringssl/crypto/obj/obj.c +44 -28
- data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
- data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
- data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
- data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
- data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
- data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
- data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
- data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
- data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
- data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
- data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
- data/third_party/boringssl/crypto/pool/internal.h +2 -2
- data/third_party/boringssl/crypto/pool/pool.c +15 -15
- data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
- data/third_party/boringssl/crypto/refcount_c11.c +2 -2
- data/third_party/boringssl/crypto/refcount_lock.c +1 -1
- data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
- data/third_party/boringssl/crypto/stack/stack.c +13 -13
- data/third_party/boringssl/crypto/thread_none.c +1 -1
- data/third_party/boringssl/crypto/thread_pthread.c +1 -1
- data/third_party/boringssl/crypto/thread_win.c +40 -40
- data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
- data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
- data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
- data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
- data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
- data/third_party/boringssl/crypto/x509/by_file.c +2 -2
- data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
- data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
- data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
- data/third_party/boringssl/crypto/x509/x_name.c +13 -16
- data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
- data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
- data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
- data/third_party/boringssl/include/openssl/aead.h +280 -191
- data/third_party/boringssl/include/openssl/aes.h +50 -50
- data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
- data/third_party/boringssl/include/openssl/asn1.h +14 -77
- data/third_party/boringssl/include/openssl/asn1t.h +11 -15
- data/third_party/boringssl/include/openssl/base.h +78 -51
- data/third_party/boringssl/include/openssl/base64.h +68 -68
- data/third_party/boringssl/include/openssl/bio.h +472 -406
- data/third_party/boringssl/include/openssl/blowfish.h +1 -1
- data/third_party/boringssl/include/openssl/bn.h +454 -435
- data/third_party/boringssl/include/openssl/buf.h +27 -27
- data/third_party/boringssl/include/openssl/bytestring.h +282 -267
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/chacha.h +5 -5
- data/third_party/boringssl/include/openssl/cipher.h +209 -200
- data/third_party/boringssl/include/openssl/cmac.h +27 -27
- data/third_party/boringssl/include/openssl/conf.h +49 -46
- data/third_party/boringssl/include/openssl/cpu.h +60 -45
- data/third_party/boringssl/include/openssl/crypto.h +59 -35
- data/third_party/boringssl/include/openssl/curve25519.h +97 -92
- data/third_party/boringssl/include/openssl/des.h +25 -25
- data/third_party/boringssl/include/openssl/dh.h +98 -97
- data/third_party/boringssl/include/openssl/digest.h +143 -114
- data/third_party/boringssl/include/openssl/dsa.h +217 -202
- data/third_party/boringssl/include/openssl/ec.h +132 -131
- data/third_party/boringssl/include/openssl/ec_key.h +132 -128
- data/third_party/boringssl/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
- data/third_party/boringssl/include/openssl/engine.h +38 -38
- data/third_party/boringssl/include/openssl/err.h +189 -219
- data/third_party/boringssl/include/openssl/evp.h +473 -397
- data/third_party/boringssl/include/openssl/ex_data.h +46 -56
- data/third_party/boringssl/include/openssl/hkdf.h +17 -17
- data/third_party/boringssl/include/openssl/hmac.h +55 -43
- data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
- data/third_party/boringssl/include/openssl/lhash.h +67 -67
- data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
- data/third_party/boringssl/include/openssl/md4.h +14 -14
- data/third_party/boringssl/include/openssl/md5.h +14 -14
- data/third_party/boringssl/include/openssl/mem.h +39 -33
- data/third_party/boringssl/include/openssl/nid.h +43 -0
- data/third_party/boringssl/include/openssl/obj.h +93 -87
- data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
- data/third_party/boringssl/include/openssl/pem.h +2 -122
- data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
- data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
- data/third_party/boringssl/include/openssl/poly1305.h +11 -11
- data/third_party/boringssl/include/openssl/pool.h +29 -25
- data/third_party/boringssl/include/openssl/rand.h +48 -45
- data/third_party/boringssl/include/openssl/rc4.h +9 -9
- data/third_party/boringssl/include/openssl/ripemd.h +13 -13
- data/third_party/boringssl/include/openssl/rsa.h +371 -340
- data/third_party/boringssl/include/openssl/sha.h +71 -71
- data/third_party/boringssl/include/openssl/span.h +191 -0
- data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
- data/third_party/boringssl/include/openssl/ssl3.h +39 -122
- data/third_party/boringssl/include/openssl/stack.h +355 -164
- data/third_party/boringssl/include/openssl/thread.h +43 -43
- data/third_party/boringssl/include/openssl/tls1.h +60 -63
- data/third_party/boringssl/include/openssl/type_check.h +10 -14
- data/third_party/boringssl/include/openssl/x509.h +41 -116
- data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
- data/third_party/boringssl/include/openssl/x509v3.h +27 -21
- data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
- data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
- data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
- data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
- data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
- data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
- data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
- data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
- data/third_party/boringssl/ssl/handshake.cc +547 -0
- data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
- data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
- data/third_party/boringssl/ssl/internal.h +2027 -1280
- data/third_party/boringssl/ssl/s3_both.cc +603 -0
- data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
- data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
- data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
- data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
- data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
- data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
- data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
- data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
- data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
- data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
- data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
- data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
- data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
- data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
- data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
- data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
- data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
- data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
- data/third_party/boringssl/ssl/tls13_client.cc +842 -0
- data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
- data/third_party/boringssl/ssl/tls13_server.cc +967 -0
- data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
- data/third_party/boringssl/ssl/tls_record.cc +675 -0
- metadata +117 -168
- data/include/grpc/support/cmdline.h +0 -88
- data/include/grpc/support/subprocess.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
- data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
- data/src/core/lib/gpr/cmdline.cc +0 -330
- data/src/core/lib/gpr/subprocess_posix.cc +0 -99
- data/src/core/lib/gpr/subprocess_windows.cc +0 -126
- data/src/core/lib/surface/alarm.cc +0 -137
- data/src/core/lib/surface/alarm_internal.h +0 -40
- data/src/core/tsi/gts_transport_security.cc +0 -40
- data/third_party/boringssl/crypto/aes/aes.c +0 -1142
- data/third_party/boringssl/crypto/aes/internal.h +0 -87
- data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
- data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
- data/third_party/boringssl/crypto/bn/add.c +0 -377
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
- data/third_party/boringssl/crypto/bn/bn.c +0 -365
- data/third_party/boringssl/crypto/bn/cmp.c +0 -239
- data/third_party/boringssl/crypto/bn/ctx.c +0 -313
- data/third_party/boringssl/crypto/bn/div.c +0 -728
- data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
- data/third_party/boringssl/crypto/bn/gcd.c +0 -635
- data/third_party/boringssl/crypto/bn/generic.c +0 -707
- data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
- data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
- data/third_party/boringssl/crypto/bn/mul.c +0 -871
- data/third_party/boringssl/crypto/bn/prime.c +0 -861
- data/third_party/boringssl/crypto/bn/random.c +0 -343
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
- data/third_party/boringssl/crypto/bn/shift.c +0 -307
- data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
- data/third_party/boringssl/crypto/cipher/aead.c +0 -156
- data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
- data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
- data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
- data/third_party/boringssl/crypto/des/des.c +0 -771
- data/third_party/boringssl/crypto/digest/digest.c +0 -251
- data/third_party/boringssl/crypto/digest/digests.c +0 -358
- data/third_party/boringssl/crypto/ec/ec.c +0 -847
- data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
- data/third_party/boringssl/crypto/ec/oct.c +0 -416
- data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
- data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
- data/third_party/boringssl/crypto/ec/simple.c +0 -1118
- data/third_party/boringssl/crypto/ec/util-64.c +0 -109
- data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
- data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
- data/third_party/boringssl/crypto/md4/md4.c +0 -236
- data/third_party/boringssl/crypto/md5/md5.c +0 -285
- data/third_party/boringssl/crypto/modes/cbc.c +0 -212
- data/third_party/boringssl/crypto/modes/cfb.c +0 -230
- data/third_party/boringssl/crypto/modes/ctr.c +0 -219
- data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
- data/third_party/boringssl/crypto/modes/ofb.c +0 -95
- data/third_party/boringssl/crypto/modes/polyval.c +0 -94
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
- data/third_party/boringssl/crypto/rand/rand.c +0 -244
- data/third_party/boringssl/crypto/rand/urandom.c +0 -335
- data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
- data/third_party/boringssl/crypto/rsa/padding.c +0 -708
- data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
- data/third_party/boringssl/crypto/sha/sha1.c +0 -355
- data/third_party/boringssl/crypto/sha/sha256.c +0 -329
- data/third_party/boringssl/crypto/sha/sha512.c +0 -609
- data/third_party/boringssl/crypto/x509/x509type.c +0 -126
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
- data/third_party/boringssl/ssl/handshake_client.c +0 -1883
- data/third_party/boringssl/ssl/handshake_server.c +0 -1950
- data/third_party/boringssl/ssl/s3_both.c +0 -895
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
- data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
- data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
- data/third_party/boringssl/ssl/tls13_client.c +0 -712
- data/third_party/boringssl/ssl/tls13_server.c +0 -680
- data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -72,7 +72,7 @@ extern "C" {
|
|
72
72
|
|
73
73
|
typedef struct cast_key_st {
|
74
74
|
uint32_t data[32];
|
75
|
-
int short_key;
|
75
|
+
int short_key; // Use reduced rounds for short key
|
76
76
|
} CAST_KEY;
|
77
77
|
|
78
78
|
OPENSSL_EXPORT void CAST_set_key(CAST_KEY *key, size_t len,
|
@@ -93,4 +93,4 @@ OPENSSL_EXPORT void CAST_cfb64_encrypt(const uint8_t *in, uint8_t *out,
|
|
93
93
|
}
|
94
94
|
#endif
|
95
95
|
|
96
|
-
#endif
|
96
|
+
#endif // OPENSSL_HEADER_CAST_H
|
@@ -22,16 +22,16 @@ extern "C" {
|
|
22
22
|
#endif
|
23
23
|
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
// CRYPTO_chacha_20 encrypts |in_len| bytes from |in| with the given key and
|
26
|
+
// nonce and writes the result to |out|. If |in| and |out| alias, they must be
|
27
|
+
// equal. The initial block counter is specified by |counter|.
|
28
28
|
OPENSSL_EXPORT void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in,
|
29
29
|
size_t in_len, const uint8_t key[32],
|
30
30
|
const uint8_t nonce[12], uint32_t counter);
|
31
31
|
|
32
32
|
|
33
33
|
#if defined(__cplusplus)
|
34
|
-
}
|
34
|
+
} // extern C
|
35
35
|
#endif
|
36
36
|
|
37
|
-
#endif
|
37
|
+
#endif // OPENSSL_HEADER_CHACHA_H
|
@@ -64,19 +64,20 @@ extern "C" {
|
|
64
64
|
#endif
|
65
65
|
|
66
66
|
|
67
|
-
|
67
|
+
// Ciphers.
|
68
68
|
|
69
69
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
// Cipher primitives.
|
71
|
+
//
|
72
|
+
// The following functions return |EVP_CIPHER| objects that implement the named
|
73
|
+
// cipher algorithm.
|
74
74
|
|
75
75
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_rc4(void);
|
76
76
|
|
77
77
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_cbc(void);
|
78
78
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ecb(void);
|
79
79
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede(void);
|
80
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3(void);
|
80
81
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede_cbc(void);
|
81
82
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_cbc(void);
|
82
83
|
|
@@ -91,242 +92,246 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_ctr(void);
|
|
91
92
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_ofb(void);
|
92
93
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_xts(void);
|
93
94
|
|
94
|
-
|
95
|
-
|
95
|
+
// EVP_enc_null returns a 'cipher' that passes plaintext through as
|
96
|
+
// ciphertext.
|
96
97
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_enc_null(void);
|
97
98
|
|
98
|
-
|
99
|
+
// EVP_rc2_cbc returns a cipher that implements 128-bit RC2 in CBC mode.
|
99
100
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_rc2_cbc(void);
|
100
101
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
102
|
+
// EVP_rc2_40_cbc returns a cipher that implements 40-bit RC2 in CBC mode. This
|
103
|
+
// is obviously very, very weak and is included only in order to read PKCS#12
|
104
|
+
// files, which often encrypt the certificate chain using this cipher. It is
|
105
|
+
// deliberately not exported.
|
105
106
|
const EVP_CIPHER *EVP_rc2_40_cbc(void);
|
106
107
|
|
107
|
-
|
108
|
-
|
108
|
+
// EVP_get_cipherbynid returns the cipher corresponding to the given NID, or
|
109
|
+
// NULL if no such cipher is known.
|
109
110
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbynid(int nid);
|
110
111
|
|
111
112
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
// Cipher context allocation.
|
114
|
+
//
|
115
|
+
// An |EVP_CIPHER_CTX| represents the state of an encryption or decryption in
|
116
|
+
// progress.
|
116
117
|
|
117
|
-
|
118
|
+
// EVP_CIPHER_CTX_init initialises an, already allocated, |EVP_CIPHER_CTX|.
|
118
119
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx);
|
119
120
|
|
120
|
-
|
121
|
-
|
121
|
+
// EVP_CIPHER_CTX_new allocates a fresh |EVP_CIPHER_CTX|, calls
|
122
|
+
// |EVP_CIPHER_CTX_init| and returns it, or NULL on allocation failure.
|
122
123
|
OPENSSL_EXPORT EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
|
123
124
|
|
124
|
-
|
125
|
-
|
125
|
+
// EVP_CIPHER_CTX_cleanup frees any memory referenced by |ctx|. It returns
|
126
|
+
// one.
|
126
127
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx);
|
127
128
|
|
128
|
-
|
129
|
-
|
129
|
+
// EVP_CIPHER_CTX_free calls |EVP_CIPHER_CTX_cleanup| on |ctx| and then frees
|
130
|
+
// |ctx| itself.
|
130
131
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx);
|
131
132
|
|
132
|
-
|
133
|
-
|
133
|
+
// EVP_CIPHER_CTX_copy sets |out| to be a duplicate of the current state of
|
134
|
+
// |in|. The |out| argument must have been previously initialised.
|
134
135
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out,
|
135
136
|
const EVP_CIPHER_CTX *in);
|
136
137
|
|
138
|
+
// EVP_CIPHER_CTX_reset calls |EVP_CIPHER_CTX_cleanup| followed by
|
139
|
+
// |EVP_CIPHER_CTX_init|.
|
140
|
+
OPENSSL_EXPORT void EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
|
137
141
|
|
138
|
-
/* Cipher context configuration. */
|
139
142
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
143
|
+
// Cipher context configuration.
|
144
|
+
|
145
|
+
// EVP_CipherInit_ex configures |ctx| for a fresh encryption (or decryption, if
|
146
|
+
// |enc| is zero) operation using |cipher|. If |ctx| has been previously
|
147
|
+
// configured with a cipher then |cipher|, |key| and |iv| may be |NULL| and
|
148
|
+
// |enc| may be -1 to reuse the previous values. The operation will use |key|
|
149
|
+
// as the key and |iv| as the IV (if any). These should have the correct
|
150
|
+
// lengths given by |EVP_CIPHER_key_length| and |EVP_CIPHER_iv_length|. It
|
151
|
+
// returns one on success and zero on error.
|
147
152
|
OPENSSL_EXPORT int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,
|
148
153
|
const EVP_CIPHER *cipher, ENGINE *engine,
|
149
154
|
const uint8_t *key, const uint8_t *iv,
|
150
155
|
int enc);
|
151
156
|
|
152
|
-
|
157
|
+
// EVP_EncryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to one.
|
153
158
|
OPENSSL_EXPORT int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,
|
154
159
|
const EVP_CIPHER *cipher, ENGINE *impl,
|
155
160
|
const uint8_t *key, const uint8_t *iv);
|
156
161
|
|
157
|
-
|
162
|
+
// EVP_DecryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to zero.
|
158
163
|
OPENSSL_EXPORT int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,
|
159
164
|
const EVP_CIPHER *cipher, ENGINE *impl,
|
160
165
|
const uint8_t *key, const uint8_t *iv);
|
161
166
|
|
162
167
|
|
163
|
-
|
168
|
+
// Cipher operations.
|
164
169
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
170
|
+
// EVP_EncryptUpdate encrypts |in_len| bytes from |in| to |out|. The number
|
171
|
+
// of output bytes may be up to |in_len| plus the block length minus one and
|
172
|
+
// |out| must have sufficient space. The number of bytes actually output is
|
173
|
+
// written to |*out_len|. It returns one on success and zero otherwise.
|
169
174
|
OPENSSL_EXPORT int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
170
175
|
int *out_len, const uint8_t *in,
|
171
176
|
int in_len);
|
172
177
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
178
|
+
// EVP_EncryptFinal_ex writes at most a block of ciphertext to |out| and sets
|
179
|
+
// |*out_len| to the number of bytes written. If padding is enabled (the
|
180
|
+
// default) then standard padding is applied to create the final block. If
|
181
|
+
// padding is disabled (with |EVP_CIPHER_CTX_set_padding|) then any partial
|
182
|
+
// block remaining will cause an error. The function returns one on success and
|
183
|
+
// zero otherwise.
|
179
184
|
OPENSSL_EXPORT int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
180
185
|
int *out_len);
|
181
186
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
187
|
+
// EVP_DecryptUpdate decrypts |in_len| bytes from |in| to |out|. The number of
|
188
|
+
// output bytes may be up to |in_len| plus the block length minus one and |out|
|
189
|
+
// must have sufficient space. The number of bytes actually output is written
|
190
|
+
// to |*out_len|. It returns one on success and zero otherwise.
|
186
191
|
OPENSSL_EXPORT int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
187
192
|
int *out_len, const uint8_t *in,
|
188
193
|
int in_len);
|
189
194
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
195
|
+
// EVP_DecryptFinal_ex writes at most a block of ciphertext to |out| and sets
|
196
|
+
// |*out_len| to the number of bytes written. If padding is enabled (the
|
197
|
+
// default) then padding is removed from the final block.
|
198
|
+
//
|
199
|
+
// WARNING: it is unsafe to call this function with unauthenticated
|
200
|
+
// ciphertext if padding is enabled.
|
196
201
|
OPENSSL_EXPORT int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out,
|
197
202
|
int *out_len);
|
198
203
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
204
|
+
// EVP_Cipher performs a one-shot encryption/decryption operation. No partial
|
205
|
+
// blocks are maintained between calls. However, any internal cipher state is
|
206
|
+
// still updated. For CBC-mode ciphers, the IV is updated to the final
|
207
|
+
// ciphertext block. For stream ciphers, the stream is advanced past the bytes
|
208
|
+
// used. It returns one on success and zero otherwise, unless |EVP_CIPHER_flags|
|
209
|
+
// has |EVP_CIPH_FLAG_CUSTOM_CIPHER| set. Then it returns the number of bytes
|
210
|
+
// written or -1 on error.
|
211
|
+
//
|
212
|
+
// WARNING: this differs from the usual return value convention when using
|
213
|
+
// |EVP_CIPH_FLAG_CUSTOM_CIPHER|.
|
214
|
+
//
|
215
|
+
// TODO(davidben): The normal ciphers currently never fail, even if, e.g.,
|
216
|
+
// |in_len| is not a multiple of the block size for CBC-mode decryption. The
|
217
|
+
// input just gets rounded up while the output gets truncated. This should
|
218
|
+
// either be officially documented or fail.
|
214
219
|
OPENSSL_EXPORT int EVP_Cipher(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
215
220
|
const uint8_t *in, size_t in_len);
|
216
221
|
|
217
|
-
|
218
|
-
|
222
|
+
// EVP_CipherUpdate calls either |EVP_EncryptUpdate| or |EVP_DecryptUpdate|
|
223
|
+
// depending on how |ctx| has been setup.
|
219
224
|
OPENSSL_EXPORT int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
220
225
|
int *out_len, const uint8_t *in,
|
221
226
|
int in_len);
|
222
227
|
|
223
|
-
|
224
|
-
|
228
|
+
// EVP_CipherFinal_ex calls either |EVP_EncryptFinal_ex| or
|
229
|
+
// |EVP_DecryptFinal_ex| depending on how |ctx| has been setup.
|
225
230
|
OPENSSL_EXPORT int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
226
231
|
int *out_len);
|
227
232
|
|
228
233
|
|
229
|
-
|
234
|
+
// Cipher context accessors.
|
230
235
|
|
231
|
-
|
232
|
-
|
236
|
+
// EVP_CIPHER_CTX_cipher returns the |EVP_CIPHER| underlying |ctx|, or NULL if
|
237
|
+
// none has been set.
|
233
238
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_CIPHER_CTX_cipher(
|
234
239
|
const EVP_CIPHER_CTX *ctx);
|
235
240
|
|
236
|
-
|
237
|
-
|
238
|
-
|
241
|
+
// EVP_CIPHER_CTX_nid returns a NID identifying the |EVP_CIPHER| underlying
|
242
|
+
// |ctx| (e.g. |NID_aes_128_gcm|). It will crash if no cipher has been
|
243
|
+
// configured.
|
239
244
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
|
240
245
|
|
241
|
-
|
242
|
-
|
243
|
-
|
246
|
+
// EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
|
247
|
+
// underlying |ctx|, or one if the cipher is a stream cipher. It will crash if
|
248
|
+
// no cipher has been configured.
|
244
249
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
|
245
250
|
|
246
|
-
|
247
|
-
|
251
|
+
// EVP_CIPHER_CTX_key_length returns the key size, in bytes, of the cipher
|
252
|
+
// underlying |ctx| or zero if no cipher has been configured.
|
248
253
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
|
249
254
|
|
250
|
-
|
251
|
-
|
255
|
+
// EVP_CIPHER_CTX_iv_length returns the IV size, in bytes, of the cipher
|
256
|
+
// underlying |ctx|. It will crash if no cipher has been configured.
|
252
257
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
|
253
258
|
|
254
|
-
|
255
|
-
|
259
|
+
// EVP_CIPHER_CTX_get_app_data returns the opaque, application data pointer for
|
260
|
+
// |ctx|, or NULL if none has been set.
|
256
261
|
OPENSSL_EXPORT void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
|
257
262
|
|
258
|
-
|
259
|
-
|
263
|
+
// EVP_CIPHER_CTX_set_app_data sets the opaque, application data pointer for
|
264
|
+
// |ctx| to |data|.
|
260
265
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx,
|
261
266
|
void *data);
|
262
267
|
|
263
|
-
|
264
|
-
|
268
|
+
// EVP_CIPHER_CTX_flags returns a value which is the OR of zero or more
|
269
|
+
// |EVP_CIPH_*| flags. It will crash if no cipher has been configured.
|
265
270
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
|
266
271
|
|
267
|
-
|
268
|
-
|
272
|
+
// EVP_CIPHER_CTX_mode returns one of the |EVP_CIPH_*| cipher mode values
|
273
|
+
// enumerated below. It will crash if no cipher has been configured.
|
269
274
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_mode(const EVP_CIPHER_CTX *ctx);
|
270
275
|
|
271
|
-
|
272
|
-
|
273
|
-
|
276
|
+
// EVP_CIPHER_CTX_ctrl is an |ioctl| like function. The |command| argument
|
277
|
+
// should be one of the |EVP_CTRL_*| values. The |arg| and |ptr| arguments are
|
278
|
+
// specific to the command in question.
|
274
279
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int command,
|
275
280
|
int arg, void *ptr);
|
276
281
|
|
277
|
-
|
278
|
-
|
279
|
-
|
282
|
+
// EVP_CIPHER_CTX_set_padding sets whether padding is enabled for |ctx| and
|
283
|
+
// returns one. Pass a non-zero |pad| to enable padding (the default) or zero
|
284
|
+
// to disable.
|
280
285
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad);
|
281
286
|
|
282
|
-
|
283
|
-
|
284
|
-
|
287
|
+
// EVP_CIPHER_CTX_set_key_length sets the key length for |ctx|. This is only
|
288
|
+
// valid for ciphers that can take a variable length key. It returns one on
|
289
|
+
// success and zero on error.
|
285
290
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx,
|
286
291
|
unsigned key_len);
|
287
292
|
|
288
293
|
|
289
|
-
|
294
|
+
// Cipher accessors.
|
290
295
|
|
291
|
-
|
292
|
-
|
296
|
+
// EVP_CIPHER_nid returns a NID identifying |cipher|. (For example,
|
297
|
+
// |NID_aes_128_gcm|.)
|
293
298
|
OPENSSL_EXPORT int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
|
294
299
|
|
295
|
-
|
296
|
-
|
300
|
+
// EVP_CIPHER_block_size returns the block size, in bytes, for |cipher|, or one
|
301
|
+
// if |cipher| is a stream cipher.
|
297
302
|
OPENSSL_EXPORT unsigned EVP_CIPHER_block_size(const EVP_CIPHER *cipher);
|
298
303
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
304
|
+
// EVP_CIPHER_key_length returns the key size, in bytes, for |cipher|. If
|
305
|
+
// |cipher| can take a variable key length then this function returns the
|
306
|
+
// default key length and |EVP_CIPHER_flags| will return a value with
|
307
|
+
// |EVP_CIPH_VARIABLE_LENGTH| set.
|
303
308
|
OPENSSL_EXPORT unsigned EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
|
304
309
|
|
305
|
-
|
306
|
-
|
310
|
+
// EVP_CIPHER_iv_length returns the IV size, in bytes, of |cipher|, or zero if
|
311
|
+
// |cipher| doesn't take an IV.
|
307
312
|
OPENSSL_EXPORT unsigned EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
|
308
313
|
|
309
|
-
|
310
|
-
|
314
|
+
// EVP_CIPHER_flags returns a value which is the OR of zero or more
|
315
|
+
// |EVP_CIPH_*| flags.
|
311
316
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_flags(const EVP_CIPHER *cipher);
|
312
317
|
|
313
|
-
|
318
|
+
// EVP_CIPHER_mode returns one of the cipher mode values enumerated below.
|
314
319
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_mode(const EVP_CIPHER *cipher);
|
315
320
|
|
316
321
|
|
317
|
-
|
322
|
+
// Key derivation.
|
318
323
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
324
|
+
// EVP_BytesToKey generates a key and IV for the cipher |type| by iterating
|
325
|
+
// |md| |count| times using |data| and |salt|. On entry, the |key| and |iv|
|
326
|
+
// buffers must have enough space to hold a key and IV for |type|. It returns
|
327
|
+
// the length of the key on success or zero on error.
|
323
328
|
OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
324
329
|
const uint8_t *salt, const uint8_t *data,
|
325
330
|
size_t data_len, unsigned count, uint8_t *key,
|
326
331
|
uint8_t *iv);
|
327
332
|
|
328
333
|
|
329
|
-
|
334
|
+
// Cipher modes (for |EVP_CIPHER_mode|).
|
330
335
|
|
331
336
|
#define EVP_CIPH_STREAM_CIPHER 0x0
|
332
337
|
#define EVP_CIPH_ECB_MODE 0x1
|
@@ -338,84 +343,87 @@ OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
|
338
343
|
#define EVP_CIPH_XTS_MODE 0x7
|
339
344
|
|
340
345
|
|
341
|
-
|
346
|
+
// Cipher flags (for |EVP_CIPHER_flags|).
|
342
347
|
|
343
|
-
|
344
|
-
|
348
|
+
// EVP_CIPH_VARIABLE_LENGTH indicates that the cipher takes a variable length
|
349
|
+
// key.
|
345
350
|
#define EVP_CIPH_VARIABLE_LENGTH 0x40
|
346
351
|
|
347
|
-
|
348
|
-
|
349
|
-
|
352
|
+
// EVP_CIPH_ALWAYS_CALL_INIT indicates that the |init| function for the cipher
|
353
|
+
// should always be called when initialising a new operation, even if the key
|
354
|
+
// is NULL to indicate that the same key is being used.
|
350
355
|
#define EVP_CIPH_ALWAYS_CALL_INIT 0x80
|
351
356
|
|
352
|
-
|
353
|
-
|
357
|
+
// EVP_CIPH_CUSTOM_IV indicates that the cipher manages the IV itself rather
|
358
|
+
// than keeping it in the |iv| member of |EVP_CIPHER_CTX|.
|
354
359
|
#define EVP_CIPH_CUSTOM_IV 0x100
|
355
360
|
|
356
|
-
|
357
|
-
|
361
|
+
// EVP_CIPH_CTRL_INIT indicates that EVP_CTRL_INIT should be used when
|
362
|
+
// initialising an |EVP_CIPHER_CTX|.
|
358
363
|
#define EVP_CIPH_CTRL_INIT 0x200
|
359
364
|
|
360
|
-
|
361
|
-
|
365
|
+
// EVP_CIPH_FLAG_CUSTOM_CIPHER indicates that the cipher manages blocking
|
366
|
+
// itself. This causes EVP_(En|De)crypt_ex to be simple wrapper functions.
|
362
367
|
#define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x400
|
363
368
|
|
364
|
-
|
365
|
-
|
366
|
-
|
369
|
+
// EVP_CIPH_FLAG_AEAD_CIPHER specifies that the cipher is an AEAD. This is an
|
370
|
+
// older version of the proper AEAD interface. See aead.h for the current
|
371
|
+
// one.
|
367
372
|
#define EVP_CIPH_FLAG_AEAD_CIPHER 0x800
|
368
373
|
|
369
|
-
|
370
|
-
|
371
|
-
|
374
|
+
// EVP_CIPH_CUSTOM_COPY indicates that the |ctrl| callback should be called
|
375
|
+
// with |EVP_CTRL_COPY| at the end of normal |EVP_CIPHER_CTX_copy|
|
376
|
+
// processing.
|
372
377
|
#define EVP_CIPH_CUSTOM_COPY 0x1000
|
373
378
|
|
374
379
|
|
375
|
-
|
380
|
+
// Deprecated functions
|
376
381
|
|
377
|
-
|
378
|
-
|
382
|
+
// EVP_CipherInit acts like EVP_CipherInit_ex except that |EVP_CIPHER_CTX_init|
|
383
|
+
// is called on |cipher| first, if |cipher| is not NULL.
|
379
384
|
OPENSSL_EXPORT int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
380
385
|
const uint8_t *key, const uint8_t *iv,
|
381
386
|
int enc);
|
382
387
|
|
383
|
-
|
388
|
+
// EVP_EncryptInit calls |EVP_CipherInit| with |enc| equal to one.
|
384
389
|
OPENSSL_EXPORT int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,
|
385
390
|
const EVP_CIPHER *cipher, const uint8_t *key,
|
386
391
|
const uint8_t *iv);
|
387
392
|
|
388
|
-
|
393
|
+
// EVP_DecryptInit calls |EVP_CipherInit| with |enc| equal to zero.
|
389
394
|
OPENSSL_EXPORT int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,
|
390
395
|
const EVP_CIPHER *cipher, const uint8_t *key,
|
391
396
|
const uint8_t *iv);
|
392
397
|
|
393
|
-
|
398
|
+
// EVP_add_cipher_alias does nothing and returns one.
|
394
399
|
OPENSSL_EXPORT int EVP_add_cipher_alias(const char *a, const char *b);
|
395
400
|
|
396
|
-
|
397
|
-
|
401
|
+
// EVP_get_cipherbyname returns an |EVP_CIPHER| given a human readable name in
|
402
|
+
// |name|, or NULL if the name is unknown.
|
398
403
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
|
399
404
|
|
400
|
-
|
401
|
-
|
402
|
-
|
405
|
+
// These AEADs are deprecated AES-GCM implementations that set
|
406
|
+
// |EVP_CIPH_FLAG_CUSTOM_CIPHER|. Use |EVP_aead_aes_128_gcm| and
|
407
|
+
// |EVP_aead_aes_256_gcm| instead.
|
403
408
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_gcm(void);
|
404
409
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_gcm(void);
|
405
410
|
|
406
|
-
|
411
|
+
// These are deprecated, 192-bit version of AES.
|
407
412
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ecb(void);
|
408
413
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cbc(void);
|
409
414
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ctr(void);
|
410
415
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
411
416
|
|
417
|
+
// EVP_aes_128_cfb128 is only available in decrepit.
|
418
|
+
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
|
419
|
+
|
412
420
|
|
413
|
-
|
421
|
+
// Private functions.
|
414
422
|
|
415
|
-
|
423
|
+
// EVP_CIPH_NO_PADDING disables padding in block ciphers.
|
416
424
|
#define EVP_CIPH_NO_PADDING 0x800
|
417
425
|
|
418
|
-
|
426
|
+
// EVP_CIPHER_CTX_ctrl commands.
|
419
427
|
#define EVP_CTRL_INIT 0x0
|
420
428
|
#define EVP_CTRL_SET_KEY_LENGTH 0x1
|
421
429
|
#define EVP_CTRL_GET_RC2_KEY_BITS 0x2
|
@@ -431,15 +439,15 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
|
431
439
|
#define EVP_CTRL_GCM_SET_IV_FIXED 0x12
|
432
440
|
#define EVP_CTRL_GCM_IV_GEN 0x13
|
433
441
|
#define EVP_CTRL_AEAD_SET_MAC_KEY 0x17
|
434
|
-
|
442
|
+
// Set the GCM invocation field, decrypt only
|
435
443
|
#define EVP_CTRL_GCM_SET_IV_INV 0x18
|
436
444
|
|
437
|
-
|
438
|
-
|
445
|
+
// GCM TLS constants
|
446
|
+
// Length of fixed part of IV derived from PRF
|
439
447
|
#define EVP_GCM_TLS_FIXED_IV_LEN 4
|
440
|
-
|
448
|
+
// Length of explicit part of IV part of TLS records
|
441
449
|
#define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
|
442
|
-
|
450
|
+
// Length of tag for TLS
|
443
451
|
#define EVP_GCM_TLS_TAG_LEN 16
|
444
452
|
|
445
453
|
#define EVP_MAX_KEY_LENGTH 64
|
@@ -447,51 +455,51 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
|
447
455
|
#define EVP_MAX_BLOCK_LENGTH 32
|
448
456
|
|
449
457
|
struct evp_cipher_ctx_st {
|
450
|
-
|
458
|
+
// cipher contains the underlying cipher for this context.
|
451
459
|
const EVP_CIPHER *cipher;
|
452
460
|
|
453
|
-
|
454
|
-
void *app_data;
|
461
|
+
// app_data is a pointer to opaque, user data.
|
462
|
+
void *app_data; // application stuff
|
455
463
|
|
456
|
-
|
464
|
+
// cipher_data points to the |cipher| specific state.
|
457
465
|
void *cipher_data;
|
458
466
|
|
459
|
-
|
460
|
-
|
467
|
+
// key_len contains the length of the key, which may differ from
|
468
|
+
// |cipher->key_len| if the cipher can take a variable key length.
|
461
469
|
unsigned key_len;
|
462
470
|
|
463
|
-
|
471
|
+
// encrypt is one if encrypting and zero if decrypting.
|
464
472
|
int encrypt;
|
465
473
|
|
466
|
-
|
474
|
+
// flags contains the OR of zero or more |EVP_CIPH_*| flags, above.
|
467
475
|
uint32_t flags;
|
468
476
|
|
469
|
-
|
477
|
+
// oiv contains the original IV value.
|
470
478
|
uint8_t oiv[EVP_MAX_IV_LENGTH];
|
471
479
|
|
472
|
-
|
480
|
+
// iv contains the current IV value, which may have been updated.
|
473
481
|
uint8_t iv[EVP_MAX_IV_LENGTH];
|
474
482
|
|
475
|
-
|
476
|
-
|
483
|
+
// buf contains a partial block which is used by, for example, CTR mode to
|
484
|
+
// store unused keystream bytes.
|
477
485
|
uint8_t buf[EVP_MAX_BLOCK_LENGTH];
|
478
486
|
|
479
|
-
|
480
|
-
|
487
|
+
// buf_len contains the number of bytes of a partial block contained in
|
488
|
+
// |buf|.
|
481
489
|
int buf_len;
|
482
490
|
|
483
|
-
|
484
|
-
|
491
|
+
// num contains the number of bytes of |iv| which are valid for modes that
|
492
|
+
// manage partial blocks themselves.
|
485
493
|
unsigned num;
|
486
494
|
|
487
|
-
|
495
|
+
// final_used is non-zero if the |final| buffer contains plaintext.
|
488
496
|
int final_used;
|
489
497
|
|
490
|
-
|
491
|
-
|
498
|
+
// block_mask contains |cipher->block_size| minus one. (The block size
|
499
|
+
// assumed to be a power of two.)
|
492
500
|
int block_mask;
|
493
501
|
|
494
|
-
uint8_t final[EVP_MAX_BLOCK_LENGTH];
|
502
|
+
uint8_t final[EVP_MAX_BLOCK_LENGTH]; // possible final block
|
495
503
|
} /* EVP_CIPHER_CTX */;
|
496
504
|
|
497
505
|
typedef struct evp_cipher_info_st {
|
@@ -500,28 +508,28 @@ typedef struct evp_cipher_info_st {
|
|
500
508
|
} EVP_CIPHER_INFO;
|
501
509
|
|
502
510
|
struct evp_cipher_st {
|
503
|
-
|
511
|
+
// type contains a NID identifing the cipher. (e.g. NID_aes_128_gcm.)
|
504
512
|
int nid;
|
505
513
|
|
506
|
-
|
507
|
-
|
514
|
+
// block_size contains the block size, in bytes, of the cipher, or 1 for a
|
515
|
+
// stream cipher.
|
508
516
|
unsigned block_size;
|
509
517
|
|
510
|
-
|
511
|
-
|
518
|
+
// key_len contains the key size, in bytes, for the cipher. If the cipher
|
519
|
+
// takes a variable key size then this contains the default size.
|
512
520
|
unsigned key_len;
|
513
521
|
|
514
|
-
|
522
|
+
// iv_len contains the IV size, in bytes, or zero if inapplicable.
|
515
523
|
unsigned iv_len;
|
516
524
|
|
517
|
-
|
518
|
-
|
525
|
+
// ctx_size contains the size, in bytes, of the per-key context for this
|
526
|
+
// cipher.
|
519
527
|
unsigned ctx_size;
|
520
528
|
|
521
|
-
|
529
|
+
// flags contains the OR of a number of flags. See |EVP_CIPH_*|.
|
522
530
|
uint32_t flags;
|
523
531
|
|
524
|
-
|
532
|
+
// app_data is a pointer to opaque, user data.
|
525
533
|
void *app_data;
|
526
534
|
|
527
535
|
int (*init)(EVP_CIPHER_CTX *ctx, const uint8_t *key, const uint8_t *iv,
|
@@ -530,9 +538,9 @@ struct evp_cipher_st {
|
|
530
538
|
int (*cipher)(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in,
|
531
539
|
size_t inl);
|
532
540
|
|
533
|
-
|
534
|
-
|
535
|
-
|
541
|
+
// cleanup, if non-NULL, releases memory associated with the context. It is
|
542
|
+
// called if |EVP_CTRL_INIT| succeeds. Note that |init| may not have been
|
543
|
+
// called at this point.
|
536
544
|
void (*cleanup)(EVP_CIPHER_CTX *);
|
537
545
|
|
538
546
|
int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr);
|
@@ -540,7 +548,7 @@ struct evp_cipher_st {
|
|
540
548
|
|
541
549
|
|
542
550
|
#if defined(__cplusplus)
|
543
|
-
}
|
551
|
+
} // extern C
|
544
552
|
|
545
553
|
#if !defined(BORINGSSL_NO_CXX)
|
546
554
|
extern "C++" {
|
@@ -585,5 +593,6 @@ using ScopedEVP_CIPHER_CTX =
|
|
585
593
|
#define CIPHER_R_UNSUPPORTED_TAG_SIZE 122
|
586
594
|
#define CIPHER_R_WRONG_FINAL_BLOCK_LENGTH 123
|
587
595
|
#define CIPHER_R_NO_DIRECTION_SET 124
|
596
|
+
#define CIPHER_R_INVALID_NONCE 125
|
588
597
|
|
589
|
-
#endif
|
598
|
+
#endif // OPENSSL_HEADER_CIPHER_H
|