grpc 1.4.5 → 1.6.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 +1235 -1100
- data/etc/roots.pem +0 -412
- data/include/grpc/byte_buffer.h +10 -25
- data/include/grpc/byte_buffer_reader.h +10 -25
- data/include/grpc/census.h +10 -25
- data/include/grpc/compression.h +10 -25
- data/include/grpc/grpc.h +15 -26
- data/include/grpc/grpc_cronet.h +10 -25
- data/include/grpc/grpc_posix.h +10 -25
- data/include/grpc/grpc_security.h +10 -25
- data/include/grpc/grpc_security_constants.h +10 -25
- data/include/grpc/impl/codegen/atm.h +11 -25
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +10 -25
- data/include/grpc/impl/codegen/atm_gcc_sync.h +10 -25
- data/include/grpc/impl/codegen/atm_windows.h +10 -25
- data/include/grpc/impl/codegen/byte_buffer_reader.h +11 -26
- data/include/grpc/impl/codegen/compression_types.h +12 -27
- data/include/grpc/impl/codegen/connectivity_state.h +10 -25
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +10 -25
- data/include/grpc/impl/codegen/gpr_slice.h +10 -25
- data/include/grpc/impl/codegen/gpr_types.h +10 -25
- data/include/grpc/impl/codegen/grpc_types.h +42 -43
- data/include/grpc/impl/codegen/port_platform.h +10 -25
- data/include/grpc/impl/codegen/propagation_bits.h +10 -25
- data/include/grpc/impl/codegen/slice.h +13 -28
- data/include/grpc/impl/codegen/status.h +10 -25
- data/include/grpc/impl/codegen/sync.h +10 -25
- data/include/grpc/impl/codegen/sync_generic.h +10 -25
- data/include/grpc/impl/codegen/sync_posix.h +10 -25
- data/include/grpc/impl/codegen/sync_windows.h +10 -25
- data/include/grpc/load_reporting.h +10 -25
- data/include/grpc/slice.h +10 -25
- data/include/grpc/slice_buffer.h +10 -25
- data/include/grpc/status.h +10 -25
- data/include/grpc/support/alloc.h +10 -25
- data/include/grpc/support/atm.h +10 -25
- data/include/grpc/support/atm_gcc_atomic.h +10 -25
- data/include/grpc/support/atm_gcc_sync.h +10 -25
- data/include/grpc/support/atm_windows.h +10 -25
- data/include/grpc/support/avl.h +46 -49
- data/include/grpc/support/cmdline.h +10 -25
- data/include/grpc/support/cpu.h +10 -25
- data/include/grpc/support/histogram.h +10 -25
- data/include/grpc/support/host_port.h +10 -25
- data/include/grpc/support/log.h +10 -25
- data/include/grpc/support/log_windows.h +10 -25
- data/include/grpc/support/port_platform.h +10 -25
- data/include/grpc/support/string_util.h +10 -25
- data/include/grpc/support/subprocess.h +10 -25
- data/include/grpc/support/sync.h +10 -25
- data/include/grpc/support/sync_generic.h +10 -25
- data/include/grpc/support/sync_posix.h +10 -25
- data/include/grpc/support/sync_windows.h +10 -25
- data/include/grpc/support/thd.h +10 -25
- data/include/grpc/support/time.h +10 -25
- data/include/grpc/support/tls.h +10 -25
- data/include/grpc/support/tls_gcc.h +10 -25
- data/include/grpc/support/tls_msvc.h +10 -25
- data/include/grpc/support/tls_pthread.h +10 -25
- data/include/grpc/support/useful.h +10 -25
- data/include/grpc/support/workaround_list.h +11 -26
- data/src/boringssl/err_data.c +277 -259
- data/src/core/ext/census/aggregation.h +10 -25
- data/src/core/ext/census/base_resources.c +10 -25
- data/src/core/ext/census/base_resources.h +10 -25
- data/src/core/ext/census/census_interface.h +10 -25
- data/src/core/ext/census/census_rpc_stats.h +10 -25
- data/src/core/ext/census/context.c +10 -25
- data/src/core/ext/census/gen/census.pb.c +10 -25
- data/src/core/ext/census/gen/census.pb.h +10 -25
- data/src/core/ext/census/gen/trace_context.pb.c +10 -25
- data/src/core/ext/census/gen/trace_context.pb.h +10 -25
- data/src/core/ext/census/grpc_context.c +10 -25
- data/src/core/ext/census/grpc_filter.c +11 -26
- data/src/core/ext/census/grpc_filter.h +10 -25
- data/src/core/ext/census/grpc_plugin.c +10 -25
- data/src/core/ext/census/initialize.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.h +10 -25
- data/src/core/ext/census/intrusive_hash_map_internal.h +10 -25
- data/src/core/ext/census/mlog.c +10 -25
- data/src/core/ext/census/mlog.h +10 -25
- data/src/core/ext/census/operation.c +10 -25
- data/src/core/ext/census/placeholders.c +10 -25
- data/src/core/ext/census/resource.c +10 -25
- data/src/core/ext/census/resource.h +10 -25
- data/src/core/ext/census/rpc_metric_id.h +10 -25
- data/src/core/ext/census/trace_context.c +10 -25
- data/src/core/ext/census/trace_context.h +10 -25
- data/src/core/ext/census/trace_label.h +10 -25
- data/src/core/ext/census/trace_propagation.h +10 -25
- data/src/core/ext/census/trace_status.h +10 -25
- data/src/core/ext/census/trace_string.h +10 -25
- data/src/core/ext/census/tracing.c +10 -26
- data/src/core/ext/census/tracing.h +10 -25
- data/src/core/ext/filters/client_channel/channel_connectivity.c +20 -33
- data/src/core/ext/filters/client_channel/client_channel.c +617 -520
- data/src/core/ext/filters/client_channel/client_channel.h +15 -28
- data/src/core/ext/filters/client_channel/client_channel_factory.c +13 -31
- data/src/core/ext/filters/client_channel/client_channel_factory.h +10 -25
- data/src/core/ext/filters/client_channel/client_channel_plugin.c +16 -29
- data/src/core/ext/filters/client_channel/connector.c +10 -25
- data/src/core/ext/filters/client_channel/connector.h +10 -25
- data/src/core/ext/filters/client_channel/http_connect_handshaker.c +15 -30
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -25
- data/src/core/ext/filters/client_channel/http_proxy.c +112 -38
- data/src/core/ext/filters/client_channel/http_proxy.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy.c +32 -36
- data/src/core/ext/filters/client_channel/lb_policy.h +24 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.c +14 -30
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +464 -279
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +15 -28
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +40 -48
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.c +65 -49
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +31 -31
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +47 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +11 -26
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +13 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +27 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +373 -136
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +504 -279
- data/src/core/ext/filters/client_channel/lb_policy_factory.c +12 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +12 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.c +10 -25
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -25
- data/src/core/ext/filters/client_channel/parse_address.c +10 -25
- data/src/core/ext/filters/client_channel/parse_address.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +10 -25
- data/src/core/ext/filters/client_channel/resolver.c +33 -38
- data/src/core/ext/filters/client_channel/resolver.h +19 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +153 -50
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +14 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +33 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +326 -116
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +35 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +19 -34
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.c +254 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +60 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +16 -28
- data/src/core/ext/filters/client_channel/resolver_factory.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_factory.h +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.h +10 -25
- data/src/core/ext/filters/client_channel/retry_throttle.c +23 -34
- data/src/core/ext/filters/client_channel/retry_throttle.h +10 -25
- data/src/core/ext/filters/client_channel/subchannel.c +33 -55
- data/src/core/ext/filters/client_channel/subchannel.h +16 -26
- data/src/core/ext/filters/client_channel/subchannel_index.c +55 -92
- data/src/core/ext/filters/client_channel/subchannel_index.h +26 -29
- data/src/core/ext/filters/client_channel/uri_parser.c +10 -25
- data/src/core/ext/filters/client_channel/uri_parser.h +10 -25
- data/src/core/ext/filters/deadline/deadline_filter.c +30 -45
- data/src/core/ext/filters/deadline/deadline_filter.h +10 -25
- data/src/core/ext/filters/http/client/http_client_filter.c +255 -294
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -25
- data/src/core/ext/filters/http/http_filters_plugin.c +11 -26
- data/src/core/ext/filters/http/message_compress/message_compress_filter.c +133 -105
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +10 -25
- data/src/core/ext/filters/http/server/http_server_filter.c +17 -32
- data/src/core/ext/filters/http/server/http_server_filter.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting.c +11 -30
- data/src/core/ext/filters/load_reporting/load_reporting.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting_filter.c +11 -26
- data/src/core/ext/filters/load_reporting/load_reporting_filter.h +10 -25
- data/src/core/ext/filters/max_age/max_age_filter.c +28 -43
- data/src/core/ext/filters/max_age/max_age_filter.h +10 -25
- data/src/core/ext/filters/message_size/message_size_filter.c +24 -37
- data/src/core/ext/filters/message_size/message_size_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +16 -31
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_utils.c +12 -26
- data/src/core/ext/filters/workarounds/workaround_utils.h +11 -26
- data/src/core/ext/transport/chttp2/alpn/alpn.c +10 -25
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.c +13 -28
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +10 -25
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +12 -29
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +11 -26
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +10 -25
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +11 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +15 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +421 -443
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -25
- data/src/core/ext/transport/chttp2/transport/flow_control.c +500 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_data.c +20 -28
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +16 -29
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +17 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +18 -31
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +12 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +15 -30
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.c +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +10 -25
- data/src/core/ext/transport/chttp2/transport/internal.h +191 -179
- data/src/core/ext/transport/chttp2/transport/parsing.c +33 -102
- data/src/core/ext/transport/chttp2/transport/stream_lists.c +26 -28
- data/src/core/ext/transport/chttp2/transport/stream_map.c +10 -25
- data/src/core/ext/transport/chttp2/transport/stream_map.h +10 -25
- data/src/core/ext/transport/chttp2/transport/varint.c +14 -25
- data/src/core/ext/transport/chttp2/transport/varint.h +10 -25
- data/src/core/ext/transport/chttp2/transport/writing.c +164 -106
- data/src/core/ext/transport/inproc/inproc_plugin.c +29 -0
- data/src/core/ext/transport/inproc/inproc_transport.c +1303 -0
- data/src/core/ext/transport/inproc/inproc_transport.h +41 -0
- data/src/core/lib/channel/channel_args.c +52 -27
- data/src/core/lib/channel/channel_args.h +18 -27
- data/src/core/lib/channel/channel_stack.c +11 -26
- data/src/core/lib/channel/channel_stack.h +12 -27
- data/src/core/lib/channel/channel_stack_builder.c +11 -26
- data/src/core/lib/channel/channel_stack_builder.h +10 -25
- data/src/core/lib/channel/connected_channel.c +10 -25
- data/src/core/lib/channel/connected_channel.h +10 -25
- data/src/core/lib/channel/context.h +10 -25
- data/src/core/lib/channel/handshaker.c +14 -29
- data/src/core/lib/channel/handshaker.h +10 -25
- data/src/core/lib/channel/handshaker_factory.c +10 -25
- data/src/core/lib/channel/handshaker_factory.h +10 -25
- data/src/core/lib/channel/handshaker_registry.c +10 -25
- data/src/core/lib/channel/handshaker_registry.h +10 -25
- data/src/core/lib/compression/algorithm_metadata.h +10 -25
- data/src/core/lib/compression/compression.c +10 -25
- data/src/core/lib/compression/message_compress.c +10 -25
- data/src/core/lib/compression/message_compress.h +10 -25
- data/src/core/lib/compression/stream_compression.c +191 -0
- data/src/core/lib/compression/stream_compression.h +90 -0
- data/src/core/lib/debug/trace.c +28 -29
- data/src/core/lib/debug/trace.h +16 -30
- data/src/core/lib/http/format_request.c +10 -25
- data/src/core/lib/http/format_request.h +10 -25
- data/src/core/lib/http/httpcli.c +19 -35
- data/src/core/lib/http/httpcli.h +10 -25
- data/src/core/lib/http/httpcli_security_connector.c +17 -30
- data/src/core/lib/http/parser.c +11 -26
- data/src/core/lib/http/parser.h +10 -25
- data/src/core/lib/iomgr/closure.c +62 -25
- data/src/core/lib/iomgr/closure.h +81 -26
- data/src/core/lib/iomgr/combiner.c +103 -200
- data/src/core/lib/iomgr/combiner.h +14 -32
- data/src/core/lib/iomgr/endpoint.c +10 -29
- data/src/core/lib/iomgr/endpoint.h +10 -29
- data/src/core/lib/iomgr/endpoint_pair.h +10 -25
- data/src/core/lib/iomgr/endpoint_pair_posix.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_uv.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_windows.c +10 -25
- data/src/core/lib/iomgr/error.c +45 -46
- data/src/core/lib/iomgr/error.h +21 -34
- data/src/core/lib/iomgr/error_internal.h +10 -25
- data/src/core/lib/iomgr/ev_epoll1_linux.c +279 -179
- data/src/core/lib/iomgr/ev_epoll1_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.c +75 -264
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +44 -199
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollex_linux.c +184 -247
- data/src/core/lib/iomgr/ev_epollex_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollsig_linux.c +116 -323
- data/src/core/lib/iomgr/ev_epollsig_linux.h +10 -25
- data/src/core/lib/iomgr/ev_poll_posix.c +328 -184
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -25
- data/src/core/lib/iomgr/ev_posix.c +25 -56
- data/src/core/lib/iomgr/ev_posix.h +15 -44
- data/src/core/lib/iomgr/ev_windows.c +11 -26
- data/src/core/lib/iomgr/exec_ctx.c +36 -45
- data/src/core/lib/iomgr/exec_ctx.h +10 -25
- data/src/core/lib/iomgr/executor.c +152 -127
- data/src/core/lib/iomgr/executor.h +18 -26
- data/src/core/lib/iomgr/gethostname.h +26 -0
- data/src/core/lib/iomgr/gethostname_fallback.c +27 -0
- data/src/core/lib/iomgr/gethostname_host_name_max.c +37 -0
- data/src/core/lib/iomgr/gethostname_sysconf.c +37 -0
- data/src/core/lib/iomgr/iocp_windows.c +10 -25
- data/src/core/lib/iomgr/iocp_windows.h +10 -25
- data/src/core/lib/iomgr/iomgr.c +17 -28
- data/src/core/lib/iomgr/iomgr.h +12 -27
- data/src/core/lib/iomgr/iomgr_internal.h +10 -25
- data/src/core/lib/iomgr/iomgr_posix.c +11 -26
- data/src/core/lib/iomgr/iomgr_posix.h +10 -25
- data/src/core/lib/iomgr/iomgr_uv.c +19 -26
- data/src/core/lib/iomgr/iomgr_uv.h +37 -0
- data/src/core/lib/iomgr/iomgr_windows.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.h +10 -25
- data/src/core/lib/iomgr/load_file.c +10 -25
- data/src/core/lib/iomgr/load_file.h +10 -25
- data/src/core/lib/iomgr/lockfree_event.c +22 -35
- data/src/core/lib/iomgr/lockfree_event.h +13 -27
- data/src/core/lib/iomgr/nameser.h +104 -0
- data/src/core/lib/iomgr/network_status_tracker.c +10 -25
- data/src/core/lib/iomgr/network_status_tracker.h +10 -25
- data/src/core/lib/iomgr/polling_entity.c +10 -25
- data/src/core/lib/iomgr/polling_entity.h +14 -34
- data/src/core/lib/iomgr/pollset.h +14 -25
- data/src/core/lib/iomgr/pollset_set.h +10 -25
- data/src/core/lib/iomgr/pollset_set_uv.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.h +10 -25
- data/src/core/lib/iomgr/pollset_uv.c +25 -26
- data/src/core/lib/iomgr/pollset_uv.h +10 -25
- data/src/core/lib/iomgr/pollset_windows.c +17 -27
- data/src/core/lib/iomgr/pollset_windows.h +10 -25
- data/src/core/lib/iomgr/port.h +24 -25
- data/src/core/lib/iomgr/resolve_address.h +10 -25
- data/src/core/lib/iomgr/resolve_address_posix.c +13 -28
- data/src/core/lib/iomgr/resolve_address_uv.c +31 -35
- data/src/core/lib/iomgr/resolve_address_windows.c +13 -28
- data/src/core/lib/iomgr/resource_quota.c +52 -67
- data/src/core/lib/iomgr/resource_quota.h +10 -25
- data/src/core/lib/iomgr/sockaddr.h +10 -25
- data/src/core/lib/iomgr/sockaddr_posix.h +10 -25
- data/src/core/lib/iomgr/sockaddr_utils.c +15 -25
- data/src/core/lib/iomgr/sockaddr_utils.h +12 -25
- data/src/core/lib/iomgr/sockaddr_windows.h +10 -25
- data/src/core/lib/iomgr/socket_factory_posix.c +13 -31
- data/src/core/lib/iomgr/socket_factory_posix.h +10 -25
- data/src/core/lib/iomgr/socket_mutator.c +14 -31
- data/src/core/lib/iomgr/socket_mutator.h +10 -25
- data/src/core/lib/iomgr/socket_utils.h +10 -25
- data/src/core/lib/iomgr/socket_utils_common_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_linux.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.h +10 -25
- data/src/core/lib/iomgr/socket_utils_uv.c +10 -25
- data/src/core/lib/iomgr/socket_utils_windows.c +10 -25
- data/src/core/lib/iomgr/socket_windows.c +12 -27
- data/src/core/lib/iomgr/socket_windows.h +10 -25
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +10 -25
- data/src/core/lib/iomgr/tcp_client.h +10 -25
- data/src/core/lib/iomgr/tcp_client_posix.c +21 -34
- data/src/core/lib/iomgr/tcp_client_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_client_uv.c +18 -27
- data/src/core/lib/iomgr/tcp_client_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_posix.c +36 -55
- data/src/core/lib/iomgr/tcp_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server.h +10 -25
- data/src/core/lib/iomgr/tcp_server_posix.c +16 -31
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +11 -26
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_uv.c +103 -64
- data/src/core/lib/iomgr/tcp_server_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_uv.c +41 -45
- data/src/core/lib/iomgr/tcp_uv.h +10 -25
- data/src/core/lib/iomgr/tcp_windows.c +39 -53
- data/src/core/lib/iomgr/tcp_windows.h +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.c +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.h +10 -25
- data/src/core/lib/iomgr/timer.h +18 -27
- data/src/core/lib/iomgr/timer_generic.c +91 -87
- data/src/core/lib/iomgr/timer_generic.h +10 -25
- data/src/core/lib/iomgr/timer_heap.c +10 -25
- data/src/core/lib/iomgr/timer_heap.h +10 -25
- data/src/core/lib/iomgr/timer_manager.c +178 -100
- data/src/core/lib/iomgr/timer_manager.h +10 -25
- data/src/core/lib/iomgr/timer_uv.c +23 -33
- data/src/core/lib/iomgr/timer_uv.h +10 -25
- data/src/core/lib/iomgr/udp_server.c +17 -32
- data/src/core/lib/iomgr/udp_server.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.c +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.h +13 -28
- data/src/core/lib/iomgr/wakeup_fd_eventfd.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_nospecial.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.h +10 -25
- data/src/core/lib/json/json.c +10 -25
- data/src/core/lib/json/json.h +10 -25
- data/src/core/lib/json/json_common.h +10 -25
- data/src/core/lib/json/json_reader.c +11 -25
- data/src/core/lib/json/json_reader.h +10 -25
- data/src/core/lib/json/json_string.c +10 -25
- data/src/core/lib/json/json_writer.c +10 -25
- data/src/core/lib/json/json_writer.h +10 -25
- data/src/core/lib/profiling/basic_timers.c +10 -25
- data/src/core/lib/profiling/stap_timers.c +10 -25
- data/src/core/lib/profiling/timers.h +10 -25
- data/src/core/lib/security/context/security_context.c +32 -40
- data/src/core/lib/security/context/security_context.h +15 -26
- data/src/core/lib/security/credentials/composite/composite_credentials.c +76 -81
- data/src/core/lib/security/credentials/composite/composite_credentials.h +10 -25
- data/src/core/lib/security/credentials/credentials.c +29 -49
- data/src/core/lib/security/credentials/credentials.h +48 -61
- data/src/core/lib/security/credentials/credentials_metadata.c +34 -78
- data/src/core/lib/security/credentials/fake/fake_credentials.c +33 -56
- data/src/core/lib/security/credentials/fake/fake_credentials.h +12 -27
- data/src/core/lib/security/credentials/google_default/credentials_generic.c +10 -25
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +12 -27
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -25
- data/src/core/lib/security/credentials/iam/iam_credentials.c +40 -40
- data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/json_token.c +10 -25
- data/src/core/lib/security/credentials/jwt/json_token.h +10 -25
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +45 -48
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/jwt_verifier.c +53 -33
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +10 -25
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +155 -87
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.c +118 -82
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +13 -32
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -25
- data/src/core/lib/security/transport/auth_filters.h +10 -25
- data/src/core/lib/security/transport/client_auth_filter.c +217 -112
- data/src/core/lib/security/transport/lb_targets_info.c +16 -32
- data/src/core/lib/security/transport/lb_targets_info.h +10 -25
- data/src/core/lib/security/transport/secure_endpoint.c +29 -43
- data/src/core/lib/security/transport/secure_endpoint.h +10 -25
- data/src/core/lib/security/transport/security_connector.c +80 -61
- data/src/core/lib/security/transport/security_connector.h +35 -35
- data/src/core/lib/security/transport/security_handshaker.c +18 -33
- data/src/core/lib/security/transport/security_handshaker.h +10 -25
- data/src/core/lib/security/transport/server_auth_filter.c +62 -116
- data/src/core/lib/security/transport/tsi_error.c +10 -25
- data/src/core/lib/security/transport/tsi_error.h +10 -25
- data/src/core/lib/security/util/json_util.c +10 -25
- data/src/core/lib/security/util/json_util.h +10 -25
- data/src/core/lib/slice/b64.c +10 -25
- data/src/core/lib/slice/b64.h +10 -25
- data/src/core/lib/slice/percent_encoding.c +10 -25
- data/src/core/lib/slice/percent_encoding.h +10 -25
- data/src/core/lib/slice/slice.c +10 -25
- data/src/core/lib/slice/slice_buffer.c +10 -25
- data/src/core/lib/slice/slice_hash_table.c +48 -26
- data/src/core/lib/slice/slice_hash_table.h +26 -28
- data/src/core/lib/slice/slice_intern.c +10 -25
- data/src/core/lib/slice/slice_internal.h +10 -25
- data/src/core/lib/slice/slice_string_helpers.c +10 -25
- data/src/core/lib/slice/slice_string_helpers.h +10 -25
- data/src/core/lib/support/alloc.c +10 -25
- data/src/core/lib/support/arena.c +12 -27
- data/src/core/lib/support/arena.h +10 -25
- data/src/core/lib/support/atm.c +17 -32
- data/src/core/lib/support/atomic.h +10 -25
- data/src/core/lib/support/atomic_with_atm.h +10 -25
- data/src/core/lib/support/atomic_with_std.h +10 -25
- data/src/core/lib/support/avl.c +101 -101
- data/src/core/lib/support/backoff.c +10 -25
- data/src/core/lib/support/backoff.h +10 -25
- data/src/core/lib/support/block_annotate.h +10 -25
- data/src/core/lib/support/cmdline.c +10 -25
- data/src/core/lib/support/cpu_iphone.c +10 -25
- data/src/core/lib/support/cpu_linux.c +10 -25
- data/src/core/lib/support/cpu_posix.c +10 -25
- data/src/core/lib/support/cpu_windows.c +10 -25
- data/src/core/lib/support/env.h +16 -25
- data/src/core/lib/support/env_linux.c +30 -37
- data/src/core/lib/support/env_posix.c +15 -25
- data/src/core/lib/support/env_windows.c +15 -25
- data/src/core/lib/support/histogram.c +10 -25
- data/src/core/lib/support/host_port.c +10 -25
- data/src/core/lib/support/log.c +20 -29
- data/src/core/lib/support/log_android.c +10 -25
- data/src/core/lib/support/log_linux.c +13 -26
- data/src/core/lib/support/log_posix.c +10 -25
- data/src/core/lib/support/log_windows.c +10 -25
- data/src/core/lib/support/memory.h +10 -25
- data/src/core/lib/support/mpscq.c +11 -49
- data/src/core/lib/support/mpscq.h +11 -50
- data/src/core/lib/support/murmur_hash.c +12 -25
- data/src/core/lib/support/murmur_hash.h +10 -25
- data/src/core/lib/support/spinlock.h +10 -25
- data/src/core/lib/support/stack_lockfree.c +10 -25
- data/src/core/lib/support/stack_lockfree.h +10 -25
- data/src/core/lib/support/string.c +10 -25
- data/src/core/lib/support/string.h +10 -25
- data/src/core/lib/support/string_posix.c +10 -25
- data/src/core/lib/support/string_util_windows.c +10 -25
- data/src/core/lib/support/string_windows.c +10 -25
- data/src/core/lib/support/string_windows.h +10 -25
- data/src/core/lib/support/subprocess_posix.c +10 -25
- data/src/core/lib/support/subprocess_windows.c +10 -25
- data/src/core/lib/support/sync.c +10 -25
- data/src/core/lib/support/sync_posix.c +10 -25
- data/src/core/lib/support/sync_windows.c +10 -25
- data/src/core/lib/support/thd.c +10 -25
- data/src/core/lib/support/thd_internal.h +10 -25
- data/src/core/lib/support/thd_posix.c +10 -25
- data/src/core/lib/support/thd_windows.c +10 -25
- data/src/core/lib/support/time.c +10 -25
- data/src/core/lib/support/time_posix.c +10 -25
- data/src/core/lib/support/time_precise.c +18 -33
- data/src/core/lib/support/time_precise.h +10 -25
- data/src/core/lib/support/time_windows.c +10 -25
- data/src/core/lib/support/tls_pthread.c +10 -25
- data/src/core/lib/support/tmpfile.h +10 -25
- data/src/core/lib/support/tmpfile_msys.c +10 -25
- data/src/core/lib/support/tmpfile_posix.c +10 -25
- data/src/core/lib/support/tmpfile_windows.c +10 -25
- data/src/core/lib/support/wrap_memcpy.c +10 -25
- data/src/core/lib/surface/alarm.c +78 -35
- data/src/core/lib/surface/alarm_internal.h +40 -0
- data/src/core/lib/surface/api_trace.c +11 -26
- data/src/core/lib/surface/api_trace.h +10 -25
- data/src/core/lib/surface/byte_buffer.c +10 -25
- data/src/core/lib/surface/byte_buffer_reader.c +10 -25
- data/src/core/lib/surface/call.c +64 -84
- data/src/core/lib/surface/call.h +11 -26
- data/src/core/lib/surface/call_details.c +10 -25
- data/src/core/lib/surface/call_log_batch.c +10 -25
- data/src/core/lib/surface/call_test_only.h +10 -25
- data/src/core/lib/surface/channel.c +11 -26
- data/src/core/lib/surface/channel.h +11 -26
- data/src/core/lib/surface/channel_init.c +10 -25
- data/src/core/lib/surface/channel_init.h +10 -25
- data/src/core/lib/surface/channel_ping.c +12 -27
- data/src/core/lib/surface/channel_stack_type.c +10 -25
- data/src/core/lib/surface/channel_stack_type.h +10 -25
- data/src/core/lib/surface/completion_queue.c +442 -331
- data/src/core/lib/surface/completion_queue.h +16 -33
- data/src/core/lib/surface/completion_queue_factory.c +10 -25
- data/src/core/lib/surface/completion_queue_factory.h +10 -25
- data/src/core/lib/surface/event_string.c +10 -25
- data/src/core/lib/surface/event_string.h +10 -25
- data/src/core/lib/surface/init.c +38 -47
- data/src/core/lib/surface/init.h +10 -25
- data/src/core/lib/surface/init_secure.c +20 -27
- data/src/core/lib/surface/lame_client.cc +14 -29
- data/src/core/lib/surface/lame_client.h +10 -25
- data/src/core/lib/surface/metadata_array.c +10 -25
- data/src/core/lib/surface/server.c +128 -81
- data/src/core/lib/surface/server.h +10 -25
- data/src/core/lib/surface/validate_metadata.c +10 -25
- data/src/core/lib/surface/validate_metadata.h +10 -25
- data/src/core/lib/surface/version.c +11 -26
- data/src/core/lib/transport/bdp_estimator.c +19 -29
- data/src/core/lib/transport/bdp_estimator.h +16 -29
- data/src/core/lib/transport/byte_stream.c +127 -36
- data/src/core/lib/transport/byte_stream.h +88 -46
- data/src/core/lib/transport/connectivity_state.c +17 -31
- data/src/core/lib/transport/connectivity_state.h +10 -25
- data/src/core/lib/transport/error_utils.c +10 -25
- data/src/core/lib/transport/error_utils.h +10 -25
- data/src/core/lib/transport/http2_errors.h +10 -25
- data/src/core/lib/transport/metadata.c +87 -85
- data/src/core/lib/transport/metadata.h +15 -28
- data/src/core/lib/transport/metadata_batch.c +10 -25
- data/src/core/lib/transport/metadata_batch.h +10 -25
- data/src/core/lib/transport/pid_controller.c +10 -25
- data/src/core/lib/transport/pid_controller.h +10 -25
- data/src/core/lib/transport/service_config.c +11 -26
- data/src/core/lib/transport/service_config.h +10 -25
- data/src/core/lib/transport/static_metadata.c +12 -26
- data/src/core/lib/transport/static_metadata.h +10 -25
- data/src/core/lib/transport/status_conversion.c +10 -25
- data/src/core/lib/transport/status_conversion.h +10 -25
- data/src/core/lib/transport/timeout_encoding.c +10 -25
- data/src/core/lib/transport/timeout_encoding.h +10 -25
- data/src/core/lib/transport/transport.c +60 -53
- data/src/core/lib/transport/transport.h +36 -34
- data/src/core/lib/transport/transport_impl.h +10 -25
- data/src/core/lib/transport/transport_op_string.c +10 -28
- data/src/core/plugin_registry/grpc_plugin_registry.c +22 -25
- data/src/core/tsi/fake_transport_security.c +199 -94
- data/src/core/tsi/fake_transport_security.h +11 -26
- data/src/core/tsi/gts_transport_security.c +40 -0
- data/src/core/tsi/gts_transport_security.h +37 -0
- data/src/core/tsi/ssl_transport_security.c +13 -32
- data/src/core/tsi/ssl_transport_security.h +10 -25
- data/src/core/tsi/ssl_types.h +10 -25
- data/src/core/tsi/transport_security.c +48 -78
- data/src/core/tsi/transport_security.h +18 -27
- data/src/core/tsi/transport_security_adapter.c +17 -29
- data/src/core/tsi/transport_security_adapter.h +10 -25
- data/src/core/tsi/transport_security_grpc.c +64 -0
- data/src/core/tsi/transport_security_grpc.h +80 -0
- data/src/core/tsi/transport_security_interface.h +21 -27
- data/src/ruby/bin/apis/google/protobuf/empty.rb +10 -25
- data/src/ruby/bin/apis/pubsub_demo.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +10 -25
- data/src/ruby/bin/math_client.rb +10 -25
- data/src/ruby/bin/math_server.rb +10 -25
- data/src/ruby/bin/math_services_pb.rb +10 -25
- data/src/ruby/bin/noproto_client.rb +10 -25
- data/src/ruby/bin/noproto_server.rb +10 -25
- data/src/ruby/ext/grpc/extconf.rb +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.c +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.h +10 -25
- data/src/ruby/ext/grpc/rb_call.c +44 -25
- data/src/ruby/ext/grpc/rb_call.h +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_channel.c +10 -25
- data/src/ruby/ext/grpc/rb_channel.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.c +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.h +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.c +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.h +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.c +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +16 -31
- data/src/ruby/ext/grpc/rb_loader.c +10 -25
- data/src/ruby/ext/grpc/rb_loader.h +10 -25
- data/src/ruby/ext/grpc/rb_server.c +10 -25
- data/src/ruby/ext/grpc/rb_server.h +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.h +10 -25
- data/src/ruby/lib/grpc.rb +10 -25
- data/src/ruby/lib/grpc/core/time_consts.rb +10 -25
- data/src/ruby/lib/grpc/errors.rb +16 -30
- data/src/ruby/lib/grpc/generic/active_call.rb +25 -27
- data/src/ruby/lib/grpc/generic/bidi_call.rb +17 -27
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_server.rb +10 -25
- data/src/ruby/lib/grpc/generic/service.rb +10 -25
- data/src/ruby/lib/grpc/grpc.rb +10 -25
- data/src/ruby/lib/grpc/logconfig.rb +10 -25
- data/src/ruby/lib/grpc/notifier.rb +10 -25
- data/src/ruby/lib/grpc/version.rb +11 -26
- data/src/ruby/pb/generate_proto_ruby.sh +10 -25
- data/src/ruby/pb/grpc/health/checker.rb +10 -25
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +10 -25
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +10 -25
- data/src/ruby/pb/test/client.rb +10 -25
- data/src/ruby/pb/test/server.rb +10 -25
- data/src/ruby/spec/call_credentials_spec.rb +10 -25
- data/src/ruby/spec/call_spec.rb +43 -25
- data/src/ruby/spec/channel_connection_spec.rb +10 -25
- data/src/ruby/spec/channel_credentials_spec.rb +11 -26
- data/src/ruby/spec/channel_spec.rb +10 -25
- data/src/ruby/spec/client_auth_spec.rb +10 -25
- data/src/ruby/spec/client_server_spec.rb +66 -25
- data/src/ruby/spec/compression_options_spec.rb +10 -25
- data/src/ruby/spec/error_sanity_spec.rb +10 -25
- data/src/ruby/spec/generic/active_call_spec.rb +10 -25
- data/src/ruby/spec/generic/client_stub_spec.rb +146 -35
- data/src/ruby/spec/generic/rpc_desc_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_spec.rb +124 -34
- data/src/ruby/spec/generic/service_spec.rb +10 -25
- data/src/ruby/spec/pb/duplicate/codegen_spec.rb +10 -25
- data/src/ruby/spec/pb/health/checker_spec.rb +10 -25
- data/src/ruby/spec/server_credentials_spec.rb +10 -25
- data/src/ruby/spec/server_spec.rb +10 -25
- data/src/ruby/spec/spec_helper.rb +10 -25
- data/src/ruby/spec/time_consts_spec.rb +10 -25
- data/third_party/boringssl/crypto/aes/key_wrap.c +138 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +6 -3
- data/third_party/boringssl/crypto/asn1/a_enum.c +4 -1
- data/third_party/boringssl/crypto/asn1/a_gentm.c +20 -15
- data/third_party/boringssl/crypto/asn1/a_int.c +7 -4
- data/third_party/boringssl/crypto/asn1/a_object.c +5 -2
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -1
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -2
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -2
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +3 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +6 -3
- data/third_party/boringssl/crypto/asn1/tasn_new.c +12 -7
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +22 -8
- data/third_party/boringssl/crypto/{time_support.c → asn1/time_support.c} +1 -1
- data/third_party/boringssl/crypto/asn1/x_long.c +5 -2
- data/third_party/boringssl/crypto/base64/base64.c +7 -5
- data/third_party/boringssl/crypto/bio/bio.c +24 -10
- data/third_party/boringssl/crypto/bio/bio_mem.c +12 -10
- data/third_party/boringssl/crypto/bio/connect.c +7 -18
- data/third_party/boringssl/crypto/bio/fd.c +3 -6
- data/third_party/boringssl/crypto/bio/file.c +6 -6
- data/third_party/boringssl/crypto/bio/hexdump.c +4 -2
- data/third_party/boringssl/crypto/bio/pair.c +30 -344
- data/third_party/boringssl/crypto/bio/socket.c +6 -7
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -3
- data/third_party/boringssl/crypto/bn/add.c +1 -1
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +11 -10
- data/third_party/boringssl/crypto/bn/bn.c +6 -20
- data/third_party/boringssl/crypto/bn/cmp.c +14 -0
- data/third_party/boringssl/crypto/bn/convert.c +73 -2
- data/third_party/boringssl/crypto/bn/ctx.c +3 -1
- data/third_party/boringssl/crypto/bn/div.c +108 -51
- data/third_party/boringssl/crypto/bn/exponentiation.c +15 -33
- data/third_party/boringssl/crypto/bn/gcd.c +29 -22
- data/third_party/boringssl/crypto/bn/generic.c +71 -67
- data/third_party/boringssl/crypto/bn/internal.h +19 -6
- data/third_party/boringssl/crypto/bn/kronecker.c +1 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +9 -10
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +47 -0
- data/third_party/boringssl/crypto/bn/mul.c +11 -9
- data/third_party/boringssl/crypto/bn/random.c +6 -3
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -65
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +0 -3
- data/third_party/boringssl/crypto/bn/shift.c +9 -1
- data/third_party/boringssl/crypto/bn/sqrt.c +3 -1
- data/third_party/boringssl/crypto/buf/buf.c +6 -4
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl/crypto/bytestring/ber.c +2 -1
- data/third_party/boringssl/crypto/bytestring/cbb.c +9 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +54 -2
- data/third_party/boringssl/crypto/chacha/chacha.c +1 -1
- data/third_party/boringssl/crypto/cipher/aead.c +3 -3
- data/third_party/boringssl/crypto/cipher/cipher.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +335 -281
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +113 -137
- data/third_party/boringssl/crypto/cipher/e_null.c +2 -1
- data/third_party/boringssl/crypto/cipher/e_rc2.c +54 -49
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +4 -3
- data/third_party/boringssl/crypto/cipher/e_tls.c +5 -5
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +41 -112
- data/third_party/boringssl/crypto/cmac/cmac.c +6 -4
- data/third_party/boringssl/crypto/conf/conf.c +6 -3
- data/third_party/boringssl/crypto/cpu-arm-linux.c +2 -2
- data/third_party/boringssl/crypto/curve25519/curve25519.c +28 -34
- data/third_party/boringssl/crypto/curve25519/spake25519.c +7 -6
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +2 -1
- data/third_party/boringssl/crypto/des/des.c +1 -1
- data/third_party/boringssl/crypto/des/internal.h +58 -46
- data/third_party/boringssl/crypto/dh/dh.c +4 -8
- data/third_party/boringssl/crypto/digest/digest.c +5 -2
- data/third_party/boringssl/crypto/digest/digests.c +70 -33
- data/third_party/boringssl/crypto/digest/md32_common.h +39 -27
- data/third_party/boringssl/crypto/dsa/dsa.c +11 -19
- data/third_party/boringssl/crypto/ec/ec.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_asn1.c +3 -2
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +6 -11
- data/third_party/boringssl/crypto/ec/oct.c +2 -14
- data/third_party/boringssl/crypto/ec/p224-64.c +78 -122
- data/third_party/boringssl/crypto/ec/p256-64.c +93 -133
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +48 -61
- data/third_party/boringssl/crypto/ec/p256-x86_64.h +113 -0
- data/third_party/boringssl/crypto/ec/simple.c +2 -1
- data/third_party/boringssl/crypto/ec/wnaf.c +52 -43
- data/third_party/boringssl/crypto/ecdh/ecdh.c +4 -2
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +17 -16
- data/third_party/boringssl/crypto/engine/engine.c +3 -1
- data/third_party/boringssl/crypto/err/err.c +5 -5
- data/third_party/boringssl/crypto/evp/evp.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_asn1.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_ctx.c +23 -29
- data/third_party/boringssl/crypto/evp/p_ec.c +2 -1
- data/third_party/boringssl/crypto/evp/p_rsa.c +9 -3
- data/third_party/boringssl/crypto/evp/pbkdf.c +3 -1
- data/third_party/boringssl/crypto/hkdf/hkdf.c +3 -1
- data/third_party/boringssl/crypto/hmac/hmac.c +4 -2
- data/third_party/boringssl/crypto/internal.h +81 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +7 -13
- data/third_party/boringssl/crypto/md4/md4.c +20 -18
- data/third_party/boringssl/crypto/md5/md5.c +31 -21
- data/third_party/boringssl/crypto/mem.c +4 -10
- data/third_party/boringssl/crypto/modes/cbc.c +2 -6
- data/third_party/boringssl/crypto/modes/cfb.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +1 -1
- data/third_party/boringssl/crypto/modes/gcm.c +117 -334
- data/third_party/boringssl/crypto/modes/internal.h +107 -84
- data/third_party/boringssl/crypto/modes/ofb.c +3 -3
- data/third_party/boringssl/crypto/modes/polyval.c +94 -0
- data/third_party/boringssl/crypto/obj/obj.c +13 -8
- data/third_party/boringssl/crypto/obj/obj_dat.h +6109 -5187
- data/third_party/boringssl/crypto/obj/obj_xref.c +55 -57
- data/third_party/boringssl/crypto/pem/pem_lib.c +6 -3
- data/third_party/boringssl/crypto/pkcs8/internal.h +27 -8
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +137 -352
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +371 -364
- data/third_party/boringssl/crypto/poly1305/poly1305.c +12 -18
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +2 -2
- data/third_party/boringssl/crypto/{newhope/reduce.c → pool/internal.h} +24 -21
- data/third_party/boringssl/crypto/pool/pool.c +200 -0
- data/third_party/boringssl/crypto/rand/deterministic.c +6 -5
- data/third_party/boringssl/crypto/rand/fuchsia.c +43 -0
- data/third_party/boringssl/crypto/rand/rand.c +7 -7
- data/third_party/boringssl/crypto/rand/urandom.c +136 -22
- data/third_party/boringssl/crypto/rand/windows.c +2 -2
- data/third_party/boringssl/crypto/rsa/blinding.c +2 -1
- data/third_party/boringssl/crypto/rsa/padding.c +11 -11
- data/third_party/boringssl/crypto/rsa/rsa.c +4 -4
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +7 -1
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +41 -80
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +346 -0
- data/third_party/boringssl/crypto/sha/sha1.c +60 -42
- data/third_party/boringssl/crypto/sha/sha256.c +4 -2
- data/third_party/boringssl/crypto/sha/sha512.c +9 -7
- data/third_party/boringssl/crypto/stack/stack.c +10 -7
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +2 -2
- data/third_party/boringssl/crypto/x509/a_verify.c +1 -1
- data/third_party/boringssl/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +1 -1
- data/third_party/boringssl/crypto/x509/t_x509.c +78 -38
- data/third_party/boringssl/crypto/x509/x509_cmp.c +8 -5
- data/third_party/boringssl/crypto/x509/x509_lu.c +6 -1
- data/third_party/boringssl/crypto/x509/x509_obj.c +4 -1
- data/third_party/boringssl/crypto/x509/x509_vfy.c +42 -8
- data/third_party/boringssl/crypto/x509/x509_vpm.c +8 -6
- data/third_party/boringssl/crypto/x509/x509name.c +4 -1
- data/third_party/boringssl/crypto/x509/x_crl.c +4 -2
- data/third_party/boringssl/crypto/x509/x_name.c +23 -13
- data/third_party/boringssl/crypto/x509/x_pkey.c +4 -1
- data/third_party/boringssl/crypto/x509/x_x509.c +42 -3
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +1 -1
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +6 -3
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +13 -21
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +19 -33
- data/third_party/boringssl/include/openssl/aead.h +9 -20
- data/third_party/boringssl/include/openssl/aes.h +21 -9
- data/third_party/boringssl/include/openssl/asn1.h +9 -1
- data/third_party/boringssl/include/openssl/base.h +33 -6
- data/third_party/boringssl/include/openssl/bio.h +10 -103
- data/third_party/boringssl/include/openssl/bn.h +58 -42
- data/third_party/boringssl/include/openssl/bytestring.h +17 -0
- data/third_party/boringssl/include/openssl/cipher.h +4 -3
- data/third_party/boringssl/include/openssl/conf.h +4 -1
- data/third_party/boringssl/include/openssl/curve25519.h +13 -0
- data/third_party/boringssl/include/openssl/digest.h +5 -3
- data/third_party/boringssl/include/openssl/dsa.h +5 -5
- data/third_party/boringssl/include/openssl/ec.h +2 -2
- data/third_party/boringssl/include/openssl/ecdh.h +3 -4
- data/third_party/boringssl/include/openssl/ecdsa.h +10 -10
- data/third_party/boringssl/include/openssl/err.h +5 -5
- data/third_party/boringssl/include/openssl/evp.h +11 -7
- data/third_party/boringssl/include/openssl/lhash.h +2 -3
- data/third_party/boringssl/include/openssl/lhash_macros.h +56 -14
- data/third_party/boringssl/include/openssl/nid.h +2949 -2916
- data/third_party/boringssl/include/openssl/obj.h +1 -1
- data/third_party/boringssl/include/openssl/pkcs8.h +21 -42
- data/third_party/boringssl/include/openssl/pool.h +87 -0
- data/third_party/boringssl/include/openssl/rand.h +1 -1
- data/third_party/boringssl/include/openssl/rsa.h +4 -2
- data/third_party/boringssl/include/openssl/sha.h +0 -4
- data/third_party/boringssl/include/openssl/ssl.h +327 -662
- data/third_party/boringssl/include/openssl/ssl3.h +1 -21
- data/third_party/boringssl/include/openssl/stack.h +1 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +85 -0
- data/third_party/boringssl/include/openssl/tls1.h +23 -52
- data/third_party/boringssl/include/openssl/type_check.h +4 -0
- data/third_party/boringssl/include/openssl/x509.h +10 -59
- data/third_party/boringssl/include/openssl/x509_vfy.h +7 -1
- data/third_party/boringssl/include/openssl/x509v3.h +4 -4
- data/third_party/boringssl/ssl/bio_ssl.c +175 -0
- data/third_party/boringssl/ssl/custom_extensions.c +24 -21
- data/third_party/boringssl/ssl/d1_both.c +259 -289
- data/third_party/boringssl/ssl/d1_lib.c +8 -20
- data/third_party/boringssl/ssl/d1_pkt.c +6 -15
- data/third_party/boringssl/ssl/dtls_method.c +22 -8
- data/third_party/boringssl/ssl/dtls_record.c +27 -2
- data/third_party/boringssl/ssl/handshake_client.c +460 -579
- data/third_party/boringssl/ssl/handshake_server.c +662 -644
- data/third_party/boringssl/ssl/internal.h +1009 -375
- data/third_party/boringssl/ssl/s3_both.c +312 -162
- data/third_party/boringssl/ssl/s3_lib.c +12 -128
- data/third_party/boringssl/ssl/s3_pkt.c +22 -30
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +28 -22
- data/third_party/boringssl/ssl/ssl_asn1.c +210 -114
- data/third_party/boringssl/ssl/ssl_buffer.c +2 -1
- data/third_party/boringssl/ssl/ssl_cert.c +417 -219
- data/third_party/boringssl/ssl/ssl_cipher.c +191 -393
- data/third_party/boringssl/ssl/ssl_ecdh.c +19 -164
- data/third_party/boringssl/ssl/ssl_file.c +0 -11
- data/third_party/boringssl/ssl/ssl_lib.c +325 -652
- data/third_party/boringssl/ssl/{ssl_rsa.c → ssl_privkey.c} +21 -131
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +76 -0
- data/third_party/boringssl/ssl/ssl_session.c +206 -95
- data/third_party/boringssl/ssl/ssl_stat.c +18 -84
- data/third_party/boringssl/ssl/{s3_enc.c → ssl_transcript.c} +150 -157
- data/third_party/boringssl/ssl/ssl_x509.c +815 -0
- data/third_party/boringssl/ssl/t1_enc.c +188 -174
- data/third_party/boringssl/ssl/t1_lib.c +1064 -764
- data/third_party/boringssl/ssl/tls13_both.c +290 -96
- data/third_party/boringssl/ssl/tls13_client.c +344 -314
- data/third_party/boringssl/ssl/tls13_enc.c +239 -200
- data/third_party/boringssl/ssl/tls13_server.c +374 -366
- data/third_party/boringssl/ssl/tls_method.c +40 -5
- data/third_party/boringssl/ssl/tls_record.c +166 -71
- metadata +39 -25
- data/src/core/lib/iomgr/workqueue.h +0 -87
- data/src/core/lib/iomgr/workqueue_uv.c +0 -65
- data/src/core/lib/iomgr/workqueue_uv.h +0 -37
- data/src/core/lib/iomgr/workqueue_windows.c +0 -63
- data/src/core/lib/iomgr/workqueue_windows.h +0 -37
- data/third_party/boringssl/crypto/bio/buffer.c +0 -496
- data/third_party/boringssl/crypto/newhope/error_correction.c +0 -131
- data/third_party/boringssl/crypto/newhope/internal.h +0 -71
- data/third_party/boringssl/crypto/newhope/newhope.c +0 -174
- data/third_party/boringssl/crypto/newhope/ntt.c +0 -148
- data/third_party/boringssl/crypto/newhope/poly.c +0 -183
- data/third_party/boringssl/crypto/newhope/precomp.c +0 -306
- data/third_party/boringssl/crypto/obj/obj_xref.h +0 -96
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +0 -151
- data/third_party/boringssl/include/openssl/newhope.h +0 -158
- data/third_party/boringssl/include/openssl/time_support.h +0 -91
@@ -60,6 +60,8 @@
|
|
60
60
|
|
61
61
|
#include <openssl/mem.h>
|
62
62
|
|
63
|
+
#include "../internal.h"
|
64
|
+
|
63
65
|
|
64
66
|
uint8_t *MD5(const uint8_t *data, size_t len, uint8_t *out) {
|
65
67
|
MD5_CTX ctx;
|
@@ -78,7 +80,7 @@ uint8_t *MD5(const uint8_t *data, size_t len, uint8_t *out) {
|
|
78
80
|
}
|
79
81
|
|
80
82
|
int MD5_Init(MD5_CTX *md5) {
|
81
|
-
|
83
|
+
OPENSSL_memset(md5, 0, sizeof(MD5_CTX));
|
82
84
|
md5->h[0] = 0x67452301UL;
|
83
85
|
md5->h[1] = 0xefcdab89UL;
|
84
86
|
md5->h[2] = 0x98badcfeUL;
|
@@ -122,32 +124,40 @@ void md5_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
|
|
122
124
|
* simplified to the code below. Wei attributes these optimizations
|
123
125
|
* to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
|
124
126
|
*/
|
125
|
-
#define
|
126
|
-
#define
|
127
|
-
#define
|
128
|
-
#define
|
127
|
+
#define F(b, c, d) ((((c) ^ (d)) & (b)) ^ (d))
|
128
|
+
#define G(b, c, d) ((((b) ^ (c)) & (d)) ^ (c))
|
129
|
+
#define H(b, c, d) ((b) ^ (c) ^ (d))
|
130
|
+
#define I(b, c, d) (((~(d)) | (b)) ^ (c))
|
129
131
|
|
130
132
|
#define ROTATE(a, n) (((a) << (n)) | ((a) >> (32 - (n))))
|
131
133
|
|
132
|
-
#define R0(a,b,c,d,k,s,t)
|
133
|
-
|
134
|
-
|
135
|
-
|
134
|
+
#define R0(a, b, c, d, k, s, t) \
|
135
|
+
do { \
|
136
|
+
(a) += ((k) + (t) + F((b), (c), (d))); \
|
137
|
+
(a) = ROTATE(a, s); \
|
138
|
+
(a) += (b); \
|
139
|
+
} while (0)
|
136
140
|
|
137
|
-
#define R1(a,b,c,d,k,s,t)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
+
#define R1(a, b, c, d, k, s, t) \
|
142
|
+
do { \
|
143
|
+
(a) += ((k) + (t) + G((b), (c), (d))); \
|
144
|
+
(a) = ROTATE(a, s); \
|
145
|
+
(a) += (b); \
|
146
|
+
} while (0)
|
141
147
|
|
142
|
-
#define R2(a,b,c,d,k,s,t)
|
143
|
-
|
144
|
-
|
145
|
-
|
148
|
+
#define R2(a, b, c, d, k, s, t) \
|
149
|
+
do { \
|
150
|
+
(a) += ((k) + (t) + H((b), (c), (d))); \
|
151
|
+
(a) = ROTATE(a, s); \
|
152
|
+
(a) += (b); \
|
153
|
+
} while (0)
|
146
154
|
|
147
|
-
#define R3(a,b,c,d,k,s,t)
|
148
|
-
|
149
|
-
|
150
|
-
|
155
|
+
#define R3(a, b, c, d, k, s, t) \
|
156
|
+
do { \
|
157
|
+
(a) += ((k) + (t) + I((b), (c), (d))); \
|
158
|
+
(a) = ROTATE(a, s); \
|
159
|
+
(a) += (b); \
|
160
|
+
} while (0)
|
151
161
|
|
152
162
|
#ifndef md5_block_data_order
|
153
163
|
#ifdef X
|
@@ -68,19 +68,13 @@
|
|
68
68
|
#if defined(OPENSSL_WINDOWS)
|
69
69
|
OPENSSL_MSVC_PRAGMA(warning(push, 3))
|
70
70
|
#include <windows.h>
|
71
|
-
|
72
|
-
/* Work around a clang-cl bug: SecureZeroMemory() below uses __stosb() but
|
73
|
-
* windows.h only declares that intrinsic and then uses `#pragma intrinsic` for
|
74
|
-
* it. clang-cl doesn't implement `#pragma intrinsic` yet; it instead defines
|
75
|
-
* the function as an always-inline symbol in its intrin.h.
|
76
|
-
* TODO(thakis): Remove this once http://llvm.org/PR19898 is fixed.
|
77
|
-
*/
|
78
|
-
#include <intrin.h>
|
79
71
|
OPENSSL_MSVC_PRAGMA(warning(pop))
|
80
72
|
#else
|
81
73
|
#include <strings.h>
|
82
74
|
#endif
|
83
75
|
|
76
|
+
#include "internal.h"
|
77
|
+
|
84
78
|
|
85
79
|
void *OPENSSL_realloc_clean(void *ptr, size_t old_size, size_t new_size) {
|
86
80
|
if (ptr == NULL) {
|
@@ -102,7 +96,7 @@ void *OPENSSL_realloc_clean(void *ptr, size_t old_size, size_t new_size) {
|
|
102
96
|
return NULL;
|
103
97
|
}
|
104
98
|
|
105
|
-
|
99
|
+
OPENSSL_memcpy(ret, ptr, old_size);
|
106
100
|
OPENSSL_cleanse(ptr, old_size);
|
107
101
|
OPENSSL_free(ptr);
|
108
102
|
return ret;
|
@@ -112,7 +106,7 @@ void OPENSSL_cleanse(void *ptr, size_t len) {
|
|
112
106
|
#if defined(OPENSSL_WINDOWS)
|
113
107
|
SecureZeroMemory(ptr, len);
|
114
108
|
#else
|
115
|
-
|
109
|
+
OPENSSL_memset(ptr, 0, len);
|
116
110
|
|
117
111
|
#if !defined(OPENSSL_NO_ASM)
|
118
112
|
/* As best as we can tell, this is sufficient to break any optimisations that
|
@@ -52,10 +52,6 @@
|
|
52
52
|
#include "internal.h"
|
53
53
|
|
54
54
|
|
55
|
-
#ifndef STRICT_ALIGNMENT
|
56
|
-
# define STRICT_ALIGNMENT 0
|
57
|
-
#endif
|
58
|
-
|
59
55
|
void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
60
56
|
const void *key, uint8_t ivec[16],
|
61
57
|
block128_f block) {
|
@@ -107,7 +103,7 @@ void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
107
103
|
out += 16;
|
108
104
|
}
|
109
105
|
|
110
|
-
|
106
|
+
OPENSSL_memcpy(ivec, iv, 16);
|
111
107
|
}
|
112
108
|
|
113
109
|
void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
@@ -158,7 +154,7 @@ void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
158
154
|
out += 16;
|
159
155
|
}
|
160
156
|
}
|
161
|
-
|
157
|
+
OPENSSL_memcpy(ivec, iv, 16);
|
162
158
|
} else {
|
163
159
|
/* |out| is less than two blocks behind |in|. Decrypting an input block
|
164
160
|
* directly to |out| would overwrite a ciphertext block before it is used as
|
@@ -167,7 +167,7 @@ static void cfbr_encrypt_block(const uint8_t *in, uint8_t *out, unsigned nbits,
|
|
167
167
|
}
|
168
168
|
|
169
169
|
/* fill in the first half of the new IV with the current IV */
|
170
|
-
|
170
|
+
OPENSSL_memcpy(ovec, ivec, 16);
|
171
171
|
/* construct the new IV */
|
172
172
|
(*block)(ivec, ivec, key);
|
173
173
|
num = (nbits + 7) / 8;
|
@@ -186,7 +186,7 @@ static void cfbr_encrypt_block(const uint8_t *in, uint8_t *out, unsigned nbits,
|
|
186
186
|
rem = nbits % 8;
|
187
187
|
num = nbits / 8;
|
188
188
|
if (rem == 0) {
|
189
|
-
|
189
|
+
OPENSSL_memcpy(ivec, ovec + num, 16);
|
190
190
|
} else {
|
191
191
|
for (n = 0; n < 16; ++n) {
|
192
192
|
ivec[n] = ovec[n + num] << rem | ovec[n + num + 1] >> (8 - rem);
|
@@ -202,7 +202,7 @@ void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out,
|
|
202
202
|
in += blocks;
|
203
203
|
}
|
204
204
|
if (len) {
|
205
|
-
|
205
|
+
OPENSSL_memset(ecount_buf, 0, 16);
|
206
206
|
(*func)(ecount_buf, ecount_buf, 1, key, ivec);
|
207
207
|
++ctr32;
|
208
208
|
PUTU32(ivec + 12, ctr32);
|
@@ -65,26 +65,18 @@
|
|
65
65
|
#define GHASH_ASM
|
66
66
|
#endif
|
67
67
|
|
68
|
-
#if defined(BSWAP4) && STRICT_ALIGNMENT == 1
|
69
|
-
/* redefine, because alignment is ensured */
|
70
|
-
#undef GETU32
|
71
|
-
#define GETU32(p) BSWAP4(*(const uint32_t *)(p))
|
72
|
-
#undef PUTU32
|
73
|
-
#define PUTU32(p, v) *(uint32_t *)(p) = BSWAP4(v)
|
74
|
-
#endif
|
75
|
-
|
76
68
|
#define PACK(s) ((size_t)(s) << (sizeof(size_t) * 8 - 16))
|
77
|
-
#define REDUCE1BIT(V)
|
78
|
-
do {
|
79
|
-
if (sizeof(size_t) == 8) {
|
80
|
-
uint64_t T = UINT64_C(0xe100000000000000) & (0 - (V.lo & 1)); \
|
81
|
-
V.lo = (V.hi << 63) | (V.lo >> 1);
|
82
|
-
V.hi = (V.hi >> 1) ^ T;
|
83
|
-
} else {
|
84
|
-
uint32_t T = 0xe1000000U & (0 - (uint32_t)(V.lo & 1));
|
85
|
-
V.lo = (V.hi << 63) | (V.lo >> 1);
|
86
|
-
V.hi = (V.hi >> 1) ^ ((uint64_t)T << 32);
|
87
|
-
}
|
69
|
+
#define REDUCE1BIT(V) \
|
70
|
+
do { \
|
71
|
+
if (sizeof(size_t) == 8) { \
|
72
|
+
uint64_t T = UINT64_C(0xe100000000000000) & (0 - ((V).lo & 1)); \
|
73
|
+
(V).lo = ((V).hi << 63) | ((V).lo >> 1); \
|
74
|
+
(V).hi = ((V).hi >> 1) ^ T; \
|
75
|
+
} else { \
|
76
|
+
uint32_t T = 0xe1000000U & (0 - (uint32_t)((V).lo & 1)); \
|
77
|
+
(V).lo = ((V).hi << 63) | ((V).lo >> 1); \
|
78
|
+
(V).hi = ((V).hi >> 1) ^ ((uint64_t)T << 32); \
|
79
|
+
} \
|
88
80
|
} while (0)
|
89
81
|
|
90
82
|
// kSizeTWithoutLower4Bits is a mask that can be used to zero the lower four
|
@@ -121,27 +113,10 @@ static void gcm_init_4bit(u128 Htable[16], uint64_t H[2]) {
|
|
121
113
|
Htable[15].hi = V.hi ^ Htable[7].hi, Htable[15].lo = V.lo ^ Htable[7].lo;
|
122
114
|
|
123
115
|
#if defined(GHASH_ASM) && defined(OPENSSL_ARM)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
long one;
|
129
|
-
char little;
|
130
|
-
} is_endian = {1};
|
131
|
-
|
132
|
-
if (is_endian.little) {
|
133
|
-
for (j = 0; j < 16; ++j) {
|
134
|
-
V = Htable[j];
|
135
|
-
Htable[j].hi = V.lo;
|
136
|
-
Htable[j].lo = V.hi;
|
137
|
-
}
|
138
|
-
} else {
|
139
|
-
for (j = 0; j < 16; ++j) {
|
140
|
-
V = Htable[j];
|
141
|
-
Htable[j].hi = V.lo << 32 | V.lo >> 32;
|
142
|
-
Htable[j].lo = V.hi << 32 | V.hi >> 32;
|
143
|
-
}
|
144
|
-
}
|
116
|
+
for (int j = 0; j < 16; ++j) {
|
117
|
+
V = Htable[j];
|
118
|
+
Htable[j].hi = V.lo;
|
119
|
+
Htable[j].lo = V.hi;
|
145
120
|
}
|
146
121
|
#endif
|
147
122
|
}
|
@@ -157,10 +132,6 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
|
|
157
132
|
u128 Z;
|
158
133
|
int cnt = 15;
|
159
134
|
size_t rem, nlo, nhi;
|
160
|
-
const union {
|
161
|
-
long one;
|
162
|
-
char little;
|
163
|
-
} is_endian = {1};
|
164
135
|
|
165
136
|
nlo = ((const uint8_t *)Xi)[15];
|
166
137
|
nhi = nlo >> 4;
|
@@ -203,26 +174,8 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
|
|
203
174
|
Z.lo ^= Htable[nlo].lo;
|
204
175
|
}
|
205
176
|
|
206
|
-
|
207
|
-
|
208
|
-
Xi[0] = BSWAP8(Z.hi);
|
209
|
-
Xi[1] = BSWAP8(Z.lo);
|
210
|
-
#else
|
211
|
-
uint8_t *p = (uint8_t *)Xi;
|
212
|
-
uint32_t v;
|
213
|
-
v = (uint32_t)(Z.hi >> 32);
|
214
|
-
PUTU32(p, v);
|
215
|
-
v = (uint32_t)(Z.hi);
|
216
|
-
PUTU32(p + 4, v);
|
217
|
-
v = (uint32_t)(Z.lo >> 32);
|
218
|
-
PUTU32(p + 8, v);
|
219
|
-
v = (uint32_t)(Z.lo);
|
220
|
-
PUTU32(p + 12, v);
|
221
|
-
#endif
|
222
|
-
} else {
|
223
|
-
Xi[0] = Z.hi;
|
224
|
-
Xi[1] = Z.lo;
|
225
|
-
}
|
177
|
+
Xi[0] = CRYPTO_bswap8(Z.hi);
|
178
|
+
Xi[1] = CRYPTO_bswap8(Z.lo);
|
226
179
|
}
|
227
180
|
|
228
181
|
/* Streamed gcm_mult_4bit, see CRYPTO_gcm128_[en|de]crypt for
|
@@ -230,15 +183,11 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
|
|
230
183
|
* performance improvement, at least not on x86[_64]. It's here
|
231
184
|
* mostly as reference and a placeholder for possible future
|
232
185
|
* non-trivial optimization[s]... */
|
233
|
-
static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16],
|
234
|
-
size_t len) {
|
186
|
+
static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16],
|
187
|
+
const uint8_t *inp, size_t len) {
|
235
188
|
u128 Z;
|
236
189
|
int cnt;
|
237
190
|
size_t rem, nlo, nhi;
|
238
|
-
const union {
|
239
|
-
long one;
|
240
|
-
char little;
|
241
|
-
} is_endian = {1};
|
242
191
|
|
243
192
|
do {
|
244
193
|
cnt = 15;
|
@@ -285,26 +234,8 @@ static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t
|
|
285
234
|
Z.lo ^= Htable[nlo].lo;
|
286
235
|
}
|
287
236
|
|
288
|
-
|
289
|
-
|
290
|
-
Xi[0] = BSWAP8(Z.hi);
|
291
|
-
Xi[1] = BSWAP8(Z.lo);
|
292
|
-
#else
|
293
|
-
uint8_t *p = (uint8_t *)Xi;
|
294
|
-
uint32_t v;
|
295
|
-
v = (uint32_t)(Z.hi >> 32);
|
296
|
-
PUTU32(p, v);
|
297
|
-
v = (uint32_t)(Z.hi);
|
298
|
-
PUTU32(p + 4, v);
|
299
|
-
v = (uint32_t)(Z.lo >> 32);
|
300
|
-
PUTU32(p + 8, v);
|
301
|
-
v = (uint32_t)(Z.lo);
|
302
|
-
PUTU32(p + 12, v);
|
303
|
-
#endif
|
304
|
-
} else {
|
305
|
-
Xi[0] = Z.hi;
|
306
|
-
Xi[1] = Z.lo;
|
307
|
-
}
|
237
|
+
Xi[0] = CRYPTO_bswap8(Z.hi);
|
238
|
+
Xi[1] = CRYPTO_bswap8(Z.lo);
|
308
239
|
} while (inp += 16, len -= 16);
|
309
240
|
}
|
310
241
|
#else /* GHASH_ASM */
|
@@ -313,7 +244,7 @@ void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
|
313
244
|
size_t len);
|
314
245
|
#endif
|
315
246
|
|
316
|
-
#define GCM_MUL(ctx, Xi) gcm_gmult_4bit(ctx->Xi.u, ctx->Htable)
|
247
|
+
#define GCM_MUL(ctx, Xi) gcm_gmult_4bit((ctx)->Xi.u, (ctx)->Htable)
|
317
248
|
#if defined(GHASH_ASM)
|
318
249
|
#define GHASH(ctx, in, len) gcm_ghash_4bit((ctx)->Xi.u, (ctx)->Htable, in, len)
|
319
250
|
/* GHASH_CHUNK is "stride parameter" missioned to mitigate cache
|
@@ -324,19 +255,16 @@ void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
|
324
255
|
|
325
256
|
|
326
257
|
#if defined(GHASH_ASM)
|
258
|
+
|
327
259
|
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
|
328
|
-
#define GHASH_ASM_X86_OR_64
|
329
260
|
#define GCM_FUNCREF_4BIT
|
330
261
|
void gcm_init_clmul(u128 Htable[16], const uint64_t Xi[2]);
|
331
262
|
void gcm_gmult_clmul(uint64_t Xi[2], const u128 Htable[16]);
|
332
263
|
void gcm_ghash_clmul(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
333
264
|
size_t len);
|
334
265
|
|
335
|
-
#if defined(
|
336
|
-
#define
|
337
|
-
#define gcm_gmult_avx gcm_gmult_clmul
|
338
|
-
#define gcm_ghash_avx gcm_ghash_clmul
|
339
|
-
#else
|
266
|
+
#if defined(OPENSSL_X86_64)
|
267
|
+
#define GHASH_ASM_X86_64
|
340
268
|
void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]);
|
341
269
|
void gcm_gmult_avx(uint64_t Xi[2], const u128 Htable[16]);
|
342
270
|
void gcm_ghash_avx(uint64_t Xi[2], const u128 Htable[16], const uint8_t *in,
|
@@ -358,11 +286,8 @@ size_t aesni_gcm_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
358
286
|
void gcm_gmult_4bit_mmx(uint64_t Xi[2], const u128 Htable[16]);
|
359
287
|
void gcm_ghash_4bit_mmx(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
360
288
|
size_t len);
|
361
|
-
|
362
|
-
void gcm_gmult_4bit_x86(uint64_t Xi[2], const u128 Htable[16]);
|
363
|
-
void gcm_ghash_4bit_x86(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
364
|
-
size_t len);
|
365
289
|
#endif
|
290
|
+
|
366
291
|
#elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
|
367
292
|
#include <openssl/arm_arch.h>
|
368
293
|
#if __ARM_ARCH__ >= 7
|
@@ -418,103 +343,96 @@ void gcm_ghash_p8(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
|
|
418
343
|
|
419
344
|
#ifdef GCM_FUNCREF_4BIT
|
420
345
|
#undef GCM_MUL
|
421
|
-
#define GCM_MUL(ctx, Xi) (*gcm_gmult_p)(ctx->Xi.u, ctx->Htable)
|
346
|
+
#define GCM_MUL(ctx, Xi) (*gcm_gmult_p)((ctx)->Xi.u, (ctx)->Htable)
|
422
347
|
#ifdef GHASH
|
423
348
|
#undef GHASH
|
424
|
-
#define GHASH(ctx, in, len) (*gcm_ghash_p)(ctx->Xi.u, ctx->Htable, in, len)
|
349
|
+
#define GHASH(ctx, in, len) (*gcm_ghash_p)((ctx)->Xi.u, (ctx)->Htable, in, len)
|
425
350
|
#endif
|
426
351
|
#endif
|
427
352
|
|
428
|
-
void
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
353
|
+
void CRYPTO_ghash_init(gmult_func *out_mult, ghash_func *out_hash,
|
354
|
+
u128 *out_key, u128 out_table[16],
|
355
|
+
const uint8_t *gcm_key) {
|
356
|
+
union {
|
357
|
+
uint64_t u[2];
|
358
|
+
uint8_t c[16];
|
359
|
+
} H;
|
434
360
|
|
435
|
-
|
436
|
-
ctx->block = block;
|
361
|
+
OPENSSL_memcpy(H.c, gcm_key, 16);
|
437
362
|
|
438
|
-
|
363
|
+
/* H is stored in host byte order */
|
364
|
+
H.u[0] = CRYPTO_bswap8(H.u[0]);
|
365
|
+
H.u[1] = CRYPTO_bswap8(H.u[1]);
|
439
366
|
|
440
|
-
|
441
|
-
/* H is stored in host byte order */
|
442
|
-
#ifdef BSWAP8
|
443
|
-
ctx->H.u[0] = BSWAP8(ctx->H.u[0]);
|
444
|
-
ctx->H.u[1] = BSWAP8(ctx->H.u[1]);
|
445
|
-
#else
|
446
|
-
uint8_t *p = ctx->H.c;
|
447
|
-
uint64_t hi, lo;
|
448
|
-
hi = (uint64_t)GETU32(p) << 32 | GETU32(p + 4);
|
449
|
-
lo = (uint64_t)GETU32(p + 8) << 32 | GETU32(p + 12);
|
450
|
-
ctx->H.u[0] = hi;
|
451
|
-
ctx->H.u[1] = lo;
|
452
|
-
#endif
|
453
|
-
}
|
367
|
+
OPENSSL_memcpy(out_key, H.c, 16);
|
454
368
|
|
455
|
-
#if defined(
|
369
|
+
#if defined(GHASH_ASM_X86_64)
|
456
370
|
if (crypto_gcm_clmul_enabled()) {
|
457
371
|
if (((OPENSSL_ia32cap_P[1] >> 22) & 0x41) == 0x41) { /* AVX+MOVBE */
|
458
|
-
gcm_init_avx(
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
gcm_init_clmul(ctx->Htable, ctx->H.u);
|
463
|
-
ctx->gmult = gcm_gmult_clmul;
|
464
|
-
ctx->ghash = gcm_ghash_clmul;
|
372
|
+
gcm_init_avx(out_table, H.u);
|
373
|
+
*out_mult = gcm_gmult_avx;
|
374
|
+
*out_hash = gcm_ghash_avx;
|
375
|
+
return;
|
465
376
|
}
|
377
|
+
gcm_init_clmul(out_table, H.u);
|
378
|
+
*out_mult = gcm_gmult_clmul;
|
379
|
+
*out_hash = gcm_ghash_clmul;
|
466
380
|
return;
|
467
381
|
}
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
ctx->gmult = gcm_gmult_4bit_x86;
|
475
|
-
ctx->ghash = gcm_ghash_4bit_x86;
|
382
|
+
#elif defined(GHASH_ASM_X86)
|
383
|
+
if (crypto_gcm_clmul_enabled()) {
|
384
|
+
gcm_init_clmul(out_table, H.u);
|
385
|
+
*out_mult = gcm_gmult_clmul;
|
386
|
+
*out_hash = gcm_ghash_clmul;
|
387
|
+
return;
|
476
388
|
}
|
477
|
-
#else
|
478
|
-
ctx->gmult = gcm_gmult_4bit;
|
479
|
-
ctx->ghash = gcm_ghash_4bit;
|
480
|
-
#endif
|
481
389
|
#elif defined(GHASH_ASM_ARM)
|
482
390
|
if (pmull_capable()) {
|
483
|
-
gcm_init_v8(
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
391
|
+
gcm_init_v8(out_table, H.u);
|
392
|
+
*out_mult = gcm_gmult_v8;
|
393
|
+
*out_hash = gcm_ghash_v8;
|
394
|
+
return;
|
395
|
+
}
|
396
|
+
|
397
|
+
if (neon_capable()) {
|
398
|
+
gcm_init_neon(out_table, H.u);
|
399
|
+
*out_mult = gcm_gmult_neon;
|
400
|
+
*out_hash = gcm_ghash_neon;
|
401
|
+
return;
|
494
402
|
}
|
495
403
|
#elif defined(GHASH_ASM_PPC64LE)
|
496
404
|
if (CRYPTO_is_PPC64LE_vcrypto_capable()) {
|
497
|
-
gcm_init_p8(
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
gcm_init_4bit(ctx->Htable, ctx->H.u);
|
502
|
-
ctx->gmult = gcm_gmult_4bit;
|
503
|
-
ctx->ghash = gcm_ghash_4bit;
|
405
|
+
gcm_init_p8(out_table, H.u);
|
406
|
+
*out_mult = gcm_gmult_p8;
|
407
|
+
*out_hash = gcm_ghash_p8;
|
408
|
+
return;
|
504
409
|
}
|
410
|
+
#endif
|
411
|
+
|
412
|
+
gcm_init_4bit(out_table, H.u);
|
413
|
+
#if defined(GHASH_ASM_X86)
|
414
|
+
*out_mult = gcm_gmult_4bit_mmx;
|
415
|
+
*out_hash = gcm_ghash_4bit_mmx;
|
505
416
|
#else
|
506
|
-
|
507
|
-
|
508
|
-
ctx->ghash = gcm_ghash_4bit;
|
417
|
+
*out_mult = gcm_gmult_4bit;
|
418
|
+
*out_hash = gcm_ghash_4bit;
|
509
419
|
#endif
|
510
420
|
}
|
511
421
|
|
422
|
+
void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, const void *aes_key,
|
423
|
+
block128_f block) {
|
424
|
+
OPENSSL_memset(ctx, 0, sizeof(*ctx));
|
425
|
+
ctx->block = block;
|
426
|
+
|
427
|
+
uint8_t gcm_key[16];
|
428
|
+
OPENSSL_memset(gcm_key, 0, sizeof(gcm_key));
|
429
|
+
(*block)(gcm_key, gcm_key, aes_key);
|
430
|
+
|
431
|
+
CRYPTO_ghash_init(&ctx->gmult, &ctx->ghash, &ctx->H, ctx->Htable, gcm_key);
|
432
|
+
}
|
433
|
+
|
512
434
|
void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
|
513
435
|
const uint8_t *iv, size_t len) {
|
514
|
-
const union {
|
515
|
-
long one;
|
516
|
-
char little;
|
517
|
-
} is_endian = {1};
|
518
436
|
unsigned int ctr;
|
519
437
|
#ifdef GCM_FUNCREF_4BIT
|
520
438
|
void (*gcm_gmult_p)(uint64_t Xi[2], const u128 Htable[16]) = ctx->gmult;
|
@@ -530,7 +448,7 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
|
|
530
448
|
ctx->mres = 0;
|
531
449
|
|
532
450
|
if (len == 12) {
|
533
|
-
|
451
|
+
OPENSSL_memcpy(ctx->Yi.c, iv, 12);
|
534
452
|
ctx->Yi.c[15] = 1;
|
535
453
|
ctr = 1;
|
536
454
|
} else {
|
@@ -551,39 +469,15 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
|
|
551
469
|
GCM_MUL(ctx, Yi);
|
552
470
|
}
|
553
471
|
len0 <<= 3;
|
554
|
-
|
555
|
-
#ifdef BSWAP8
|
556
|
-
ctx->Yi.u[1] ^= BSWAP8(len0);
|
557
|
-
#else
|
558
|
-
ctx->Yi.c[8] ^= (uint8_t)(len0 >> 56);
|
559
|
-
ctx->Yi.c[9] ^= (uint8_t)(len0 >> 48);
|
560
|
-
ctx->Yi.c[10] ^= (uint8_t)(len0 >> 40);
|
561
|
-
ctx->Yi.c[11] ^= (uint8_t)(len0 >> 32);
|
562
|
-
ctx->Yi.c[12] ^= (uint8_t)(len0 >> 24);
|
563
|
-
ctx->Yi.c[13] ^= (uint8_t)(len0 >> 16);
|
564
|
-
ctx->Yi.c[14] ^= (uint8_t)(len0 >> 8);
|
565
|
-
ctx->Yi.c[15] ^= (uint8_t)(len0);
|
566
|
-
#endif
|
567
|
-
} else {
|
568
|
-
ctx->Yi.u[1] ^= len0;
|
569
|
-
}
|
472
|
+
ctx->Yi.u[1] ^= CRYPTO_bswap8(len0);
|
570
473
|
|
571
474
|
GCM_MUL(ctx, Yi);
|
572
|
-
|
573
|
-
if (is_endian.little) {
|
574
|
-
ctr = GETU32(ctx->Yi.c + 12);
|
575
|
-
} else {
|
576
|
-
ctr = ctx->Yi.d[3];
|
577
|
-
}
|
475
|
+
ctr = GETU32_aligned(ctx->Yi.c + 12);
|
578
476
|
}
|
579
477
|
|
580
478
|
(*ctx->block)(ctx->Yi.c, ctx->EK0.c, key);
|
581
479
|
++ctr;
|
582
|
-
|
583
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
584
|
-
} else {
|
585
|
-
ctx->Yi.d[3] = ctr;
|
586
|
-
}
|
480
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
587
481
|
}
|
588
482
|
|
589
483
|
int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const uint8_t *aad, size_t len) {
|
@@ -656,10 +550,6 @@ int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const uint8_t *aad, size_t len) {
|
|
656
550
|
int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
657
551
|
const unsigned char *in, unsigned char *out,
|
658
552
|
size_t len) {
|
659
|
-
const union {
|
660
|
-
long one;
|
661
|
-
char little;
|
662
|
-
} is_endian = {1};
|
663
553
|
unsigned int n, ctr;
|
664
554
|
uint64_t mlen = ctx->len.u[1];
|
665
555
|
block128_f block = ctx->block;
|
@@ -684,11 +574,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
684
574
|
ctx->ares = 0;
|
685
575
|
}
|
686
576
|
|
687
|
-
|
688
|
-
ctr = GETU32(ctx->Yi.c + 12);
|
689
|
-
} else {
|
690
|
-
ctr = ctx->Yi.d[3];
|
691
|
-
}
|
577
|
+
ctr = GETU32_aligned(ctx->Yi.c + 12);
|
692
578
|
|
693
579
|
n = ctx->mres;
|
694
580
|
if (n) {
|
@@ -709,11 +595,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
709
595
|
if (n == 0) {
|
710
596
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
711
597
|
++ctr;
|
712
|
-
|
713
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
714
|
-
} else {
|
715
|
-
ctx->Yi.d[3] = ctr;
|
716
|
-
}
|
598
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
717
599
|
}
|
718
600
|
ctx->Xi.c[n] ^= out[i] = in[i] ^ ctx->EKi.c[n];
|
719
601
|
n = (n + 1) % 16;
|
@@ -735,11 +617,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
735
617
|
|
736
618
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
737
619
|
++ctr;
|
738
|
-
|
739
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
740
|
-
} else {
|
741
|
-
ctx->Yi.d[3] = ctr;
|
742
|
-
}
|
620
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
743
621
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
744
622
|
out_t[i] = in_t[i] ^ ctx->EKi.t[i];
|
745
623
|
}
|
@@ -758,11 +636,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
758
636
|
|
759
637
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
760
638
|
++ctr;
|
761
|
-
|
762
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
763
|
-
} else {
|
764
|
-
ctx->Yi.d[3] = ctr;
|
765
|
-
}
|
639
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
766
640
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
767
641
|
out_t[i] = in_t[i] ^ ctx->EKi.t[i];
|
768
642
|
}
|
@@ -779,11 +653,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
779
653
|
|
780
654
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
781
655
|
++ctr;
|
782
|
-
|
783
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
784
|
-
} else {
|
785
|
-
ctx->Yi.d[3] = ctr;
|
786
|
-
}
|
656
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
787
657
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
788
658
|
ctx->Xi.t[i] ^= out_t[i] = in_t[i] ^ ctx->EKi.t[i];
|
789
659
|
}
|
@@ -796,11 +666,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
796
666
|
if (len) {
|
797
667
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
798
668
|
++ctr;
|
799
|
-
|
800
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
801
|
-
} else {
|
802
|
-
ctx->Yi.d[3] = ctr;
|
803
|
-
}
|
669
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
804
670
|
while (len--) {
|
805
671
|
ctx->Xi.c[n] ^= out[n] = in[n] ^ ctx->EKi.c[n];
|
806
672
|
++n;
|
@@ -814,10 +680,6 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
814
680
|
int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
815
681
|
const unsigned char *in, unsigned char *out,
|
816
682
|
size_t len) {
|
817
|
-
const union {
|
818
|
-
long one;
|
819
|
-
char little;
|
820
|
-
} is_endian = {1};
|
821
683
|
unsigned int n, ctr;
|
822
684
|
uint64_t mlen = ctx->len.u[1];
|
823
685
|
block128_f block = ctx->block;
|
@@ -842,11 +704,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
842
704
|
ctx->ares = 0;
|
843
705
|
}
|
844
706
|
|
845
|
-
|
846
|
-
ctr = GETU32(ctx->Yi.c + 12);
|
847
|
-
} else {
|
848
|
-
ctr = ctx->Yi.d[3];
|
849
|
-
}
|
707
|
+
ctr = GETU32_aligned(ctx->Yi.c + 12);
|
850
708
|
|
851
709
|
n = ctx->mres;
|
852
710
|
if (n) {
|
@@ -870,11 +728,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
870
728
|
if (n == 0) {
|
871
729
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
872
730
|
++ctr;
|
873
|
-
|
874
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
875
|
-
} else {
|
876
|
-
ctx->Yi.d[3] = ctr;
|
877
|
-
}
|
731
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
878
732
|
}
|
879
733
|
c = in[i];
|
880
734
|
out[i] = c ^ ctx->EKi.c[n];
|
@@ -899,11 +753,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
899
753
|
|
900
754
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
901
755
|
++ctr;
|
902
|
-
|
903
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
904
|
-
} else {
|
905
|
-
ctx->Yi.d[3] = ctr;
|
906
|
-
}
|
756
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
907
757
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
908
758
|
out_t[i] = in_t[i] ^ ctx->EKi.t[i];
|
909
759
|
}
|
@@ -922,11 +772,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
922
772
|
|
923
773
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
924
774
|
++ctr;
|
925
|
-
|
926
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
927
|
-
} else {
|
928
|
-
ctx->Yi.d[3] = ctr;
|
929
|
-
}
|
775
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
930
776
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
931
777
|
out_t[i] = in_t[i] ^ ctx->EKi.t[i];
|
932
778
|
}
|
@@ -942,11 +788,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
942
788
|
|
943
789
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
944
790
|
++ctr;
|
945
|
-
|
946
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
947
|
-
} else {
|
948
|
-
ctx->Yi.d[3] = ctr;
|
949
|
-
}
|
791
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
950
792
|
for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
|
951
793
|
size_t c = in_t[i];
|
952
794
|
out_t[i] = c ^ ctx->EKi.t[i];
|
@@ -961,11 +803,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
961
803
|
if (len) {
|
962
804
|
(*block)(ctx->Yi.c, ctx->EKi.c, key);
|
963
805
|
++ctr;
|
964
|
-
|
965
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
966
|
-
} else {
|
967
|
-
ctx->Yi.d[3] = ctr;
|
968
|
-
}
|
806
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
969
807
|
while (len--) {
|
970
808
|
uint8_t c = in[n];
|
971
809
|
ctx->Xi.c[n] ^= c;
|
@@ -981,10 +819,6 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
|
|
981
819
|
int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
982
820
|
const uint8_t *in, uint8_t *out, size_t len,
|
983
821
|
ctr128_f stream) {
|
984
|
-
const union {
|
985
|
-
long one;
|
986
|
-
char little;
|
987
|
-
} is_endian = {1};
|
988
822
|
unsigned int n, ctr;
|
989
823
|
uint64_t mlen = ctx->len.u[1];
|
990
824
|
#ifdef GCM_FUNCREF_4BIT
|
@@ -1034,21 +868,13 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1034
868
|
}
|
1035
869
|
#endif
|
1036
870
|
|
1037
|
-
|
1038
|
-
ctr = GETU32(ctx->Yi.c + 12);
|
1039
|
-
} else {
|
1040
|
-
ctr = ctx->Yi.d[3];
|
1041
|
-
}
|
871
|
+
ctr = GETU32_aligned(ctx->Yi.c + 12);
|
1042
872
|
|
1043
873
|
#if defined(GHASH)
|
1044
874
|
while (len >= GHASH_CHUNK) {
|
1045
875
|
(*stream)(in, out, GHASH_CHUNK / 16, key, ctx->Yi.c);
|
1046
876
|
ctr += GHASH_CHUNK / 16;
|
1047
|
-
|
1048
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1049
|
-
} else {
|
1050
|
-
ctx->Yi.d[3] = ctr;
|
1051
|
-
}
|
877
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1052
878
|
GHASH(ctx, out, GHASH_CHUNK);
|
1053
879
|
out += GHASH_CHUNK;
|
1054
880
|
in += GHASH_CHUNK;
|
@@ -1061,11 +887,7 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1061
887
|
|
1062
888
|
(*stream)(in, out, j, key, ctx->Yi.c);
|
1063
889
|
ctr += (unsigned int)j;
|
1064
|
-
|
1065
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1066
|
-
} else {
|
1067
|
-
ctx->Yi.d[3] = ctr;
|
1068
|
-
}
|
890
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1069
891
|
in += i;
|
1070
892
|
len -= i;
|
1071
893
|
#if defined(GHASH)
|
@@ -1084,11 +906,7 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1084
906
|
if (len) {
|
1085
907
|
(*ctx->block)(ctx->Yi.c, ctx->EKi.c, key);
|
1086
908
|
++ctr;
|
1087
|
-
|
1088
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1089
|
-
} else {
|
1090
|
-
ctx->Yi.d[3] = ctr;
|
1091
|
-
}
|
909
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1092
910
|
while (len--) {
|
1093
911
|
ctx->Xi.c[n] ^= out[n] = in[n] ^ ctx->EKi.c[n];
|
1094
912
|
++n;
|
@@ -1102,10 +920,6 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1102
920
|
int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
1103
921
|
const uint8_t *in, uint8_t *out, size_t len,
|
1104
922
|
ctr128_f stream) {
|
1105
|
-
const union {
|
1106
|
-
long one;
|
1107
|
-
char little;
|
1108
|
-
} is_endian = {1};
|
1109
923
|
unsigned int n, ctr;
|
1110
924
|
uint64_t mlen = ctx->len.u[1];
|
1111
925
|
#ifdef GCM_FUNCREF_4BIT
|
@@ -1157,22 +971,14 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1157
971
|
}
|
1158
972
|
#endif
|
1159
973
|
|
1160
|
-
|
1161
|
-
ctr = GETU32(ctx->Yi.c + 12);
|
1162
|
-
} else {
|
1163
|
-
ctr = ctx->Yi.d[3];
|
1164
|
-
}
|
974
|
+
ctr = GETU32_aligned(ctx->Yi.c + 12);
|
1165
975
|
|
1166
976
|
#if defined(GHASH)
|
1167
977
|
while (len >= GHASH_CHUNK) {
|
1168
978
|
GHASH(ctx, in, GHASH_CHUNK);
|
1169
979
|
(*stream)(in, out, GHASH_CHUNK / 16, key, ctx->Yi.c);
|
1170
980
|
ctr += GHASH_CHUNK / 16;
|
1171
|
-
|
1172
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1173
|
-
} else {
|
1174
|
-
ctx->Yi.d[3] = ctr;
|
1175
|
-
}
|
981
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1176
982
|
out += GHASH_CHUNK;
|
1177
983
|
in += GHASH_CHUNK;
|
1178
984
|
len -= GHASH_CHUNK;
|
@@ -1198,11 +1004,7 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1198
1004
|
#endif
|
1199
1005
|
(*stream)(in, out, j, key, ctx->Yi.c);
|
1200
1006
|
ctr += (unsigned int)j;
|
1201
|
-
|
1202
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1203
|
-
} else {
|
1204
|
-
ctx->Yi.d[3] = ctr;
|
1205
|
-
}
|
1007
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1206
1008
|
out += i;
|
1207
1009
|
in += i;
|
1208
1010
|
len -= i;
|
@@ -1210,11 +1012,7 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1210
1012
|
if (len) {
|
1211
1013
|
(*ctx->block)(ctx->Yi.c, ctx->EKi.c, key);
|
1212
1014
|
++ctr;
|
1213
|
-
|
1214
|
-
PUTU32(ctx->Yi.c + 12, ctr);
|
1215
|
-
} else {
|
1216
|
-
ctx->Yi.d[3] = ctr;
|
1217
|
-
}
|
1015
|
+
PUTU32_aligned(ctx->Yi.c + 12, ctr);
|
1218
1016
|
while (len--) {
|
1219
1017
|
uint8_t c = in[n];
|
1220
1018
|
ctx->Xi.c[n] ^= c;
|
@@ -1228,10 +1026,6 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
|
|
1228
1026
|
}
|
1229
1027
|
|
1230
1028
|
int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
|
1231
|
-
const union {
|
1232
|
-
long one;
|
1233
|
-
char little;
|
1234
|
-
} is_endian = {1};
|
1235
1029
|
uint64_t alen = ctx->len.u[0] << 3;
|
1236
1030
|
uint64_t clen = ctx->len.u[1] << 3;
|
1237
1031
|
#ifdef GCM_FUNCREF_4BIT
|
@@ -1242,20 +1036,8 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
|
|
1242
1036
|
GCM_MUL(ctx, Xi);
|
1243
1037
|
}
|
1244
1038
|
|
1245
|
-
|
1246
|
-
|
1247
|
-
alen = BSWAP8(alen);
|
1248
|
-
clen = BSWAP8(clen);
|
1249
|
-
#else
|
1250
|
-
uint8_t *p = ctx->len.c;
|
1251
|
-
|
1252
|
-
ctx->len.u[0] = alen;
|
1253
|
-
ctx->len.u[1] = clen;
|
1254
|
-
|
1255
|
-
alen = (uint64_t)GETU32(p) << 32 | GETU32(p + 4);
|
1256
|
-
clen = (uint64_t)GETU32(p + 8) << 32 | GETU32(p + 12);
|
1257
|
-
#endif
|
1258
|
-
}
|
1039
|
+
alen = CRYPTO_bswap8(alen);
|
1040
|
+
clen = CRYPTO_bswap8(clen);
|
1259
1041
|
|
1260
1042
|
ctx->Xi.u[0] ^= alen;
|
1261
1043
|
ctx->Xi.u[1] ^= clen;
|
@@ -1273,7 +1055,8 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
|
|
1273
1055
|
|
1274
1056
|
void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len) {
|
1275
1057
|
CRYPTO_gcm128_finish(ctx, NULL, 0);
|
1276
|
-
|
1058
|
+
OPENSSL_memcpy(tag, ctx->Xi.c,
|
1059
|
+
len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
|
1277
1060
|
}
|
1278
1061
|
|
1279
1062
|
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
|