grpc 1.24.0 → 1.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +306 -243
- data/etc/roots.pem +0 -100
- data/include/grpc/grpc_security.h +44 -18
- data/include/grpc/impl/codegen/grpc_types.h +15 -0
- data/include/grpc/impl/codegen/port_platform.h +27 -11
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/src/boringssl/err_data.c +695 -650
- data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
- data/src/core/ext/filters/client_channel/client_channel.h +24 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
- data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
- data/src/core/ext/filters/client_channel/resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver.h +8 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
- data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
- data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
- data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
- data/src/core/ext/filters/client_channel/service_config.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
- data/src/core/ext/filters/client_channel/subchannel.h +7 -9
- data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
- data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
- data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
- data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
- data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
- data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
- data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
- data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
- data/src/core/lib/channel/channel_args.cc +16 -0
- data/src/core/lib/channel/channel_args.h +22 -0
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +20 -20
- data/src/core/lib/channel/handshaker.h +3 -4
- data/src/core/lib/channel/handshaker_factory.h +1 -3
- data/src/core/lib/debug/trace.h +3 -2
- data/src/core/lib/gprpp/arena.cc +3 -3
- data/src/core/lib/gprpp/arena.h +2 -3
- data/src/core/lib/gprpp/inlined_vector.h +9 -0
- data/src/core/lib/gprpp/map.h +3 -501
- data/src/core/lib/gprpp/memory.h +45 -41
- data/src/core/lib/gprpp/mpscq.cc +108 -0
- data/src/core/lib/gprpp/mpscq.h +98 -0
- data/src/core/lib/gprpp/orphanable.h +6 -11
- data/src/core/lib/gprpp/ref_counted.h +25 -19
- data/src/core/lib/gprpp/set.h +33 -0
- data/src/core/lib/gprpp/thd.h +2 -4
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli_security_connector.cc +15 -11
- data/src/core/lib/http/parser.cc +1 -1
- data/src/core/lib/iomgr/buffer_list.cc +4 -5
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +4 -5
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/cfstream_handle.h +3 -5
- data/src/core/lib/iomgr/closure.h +8 -3
- data/src/core/lib/iomgr/combiner.cc +45 -82
- data/src/core/lib/iomgr/combiner.h +32 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -1
- data/src/core/lib/iomgr/exec_ctx.h +4 -3
- data/src/core/lib/iomgr/executor.cc +4 -2
- data/src/core/lib/iomgr/executor.h +3 -0
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
- data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
- data/src/core/lib/iomgr/executor/threadpool.h +7 -11
- data/src/core/lib/iomgr/resource_quota.cc +55 -51
- data/src/core/lib/iomgr/resource_quota.h +13 -9
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
- data/src/core/lib/iomgr/tcp_custom.cc +9 -7
- data/src/core/lib/iomgr/tcp_posix.cc +20 -16
- data/src/core/lib/iomgr/tcp_server.h +1 -4
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +3 -2
- data/src/core/lib/iomgr/udp_server.h +6 -12
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_string.cc +2 -2
- data/src/core/lib/profiling/basic_timers.cc +2 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/lib/security/credentials/credentials.h +4 -20
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/security_connector.h +19 -17
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.cc +29 -13
- data/src/core/lib/security/transport/security_handshaker.h +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
- data/src/core/lib/slice/slice.cc +2 -10
- data/src/core/lib/slice/slice_hash_table.h +4 -6
- data/src/core/lib/slice/slice_intern.cc +42 -39
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_utils.h +21 -4
- data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
- data/src/core/lib/surface/call.cc +3 -3
- data/src/core/lib/surface/channel.cc +7 -0
- data/src/core/lib/surface/completion_queue.cc +12 -11
- data/src/core/lib/surface/completion_queue.h +4 -2
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/lame_client.cc +33 -18
- data/src/core/lib/surface/server.cc +77 -76
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -7
- data/src/core/lib/transport/connectivity_state.cc +112 -98
- data/src/core/lib/transport/connectivity_state.h +100 -50
- data/src/core/lib/transport/static_metadata.cc +276 -288
- data/src/core/lib/transport/static_metadata.h +73 -76
- data/src/core/lib/transport/status_conversion.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +1 -1
- data/src/core/lib/transport/transport.cc +2 -2
- data/src/core/lib/transport/transport.h +12 -4
- data/src/core/lib/transport/transport_op_string.cc +14 -11
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
- data/src/core/tsi/fake_transport_security.cc +7 -5
- data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
- data/src/core/tsi/local_transport_security.cc +8 -6
- data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +12 -12
- data/src/core/tsi/ssl_transport_security.h +2 -2
- data/src/core/tsi/transport_security_grpc.cc +7 -0
- data/src/core/tsi/transport_security_grpc.h +6 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
- data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
- data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
- data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
- data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
- data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
- data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
- data/third_party/boringssl/crypto/base64/base64.c +2 -2
- data/third_party/boringssl/crypto/bio/bio.c +73 -9
- data/third_party/boringssl/crypto/bio/connect.c +4 -0
- data/third_party/boringssl/crypto/bio/fd.c +4 -0
- data/third_party/boringssl/crypto/bio/file.c +5 -2
- data/third_party/boringssl/crypto/bio/socket.c +4 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
- data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
- data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
- data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
- data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
- data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
- data/third_party/boringssl/crypto/chacha/internal.h +45 -0
- data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
- data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
- data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
- data/third_party/boringssl/crypto/conf/conf.c +7 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
- data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
- data/third_party/boringssl/crypto/cpu-intel.c +45 -51
- data/third_party/boringssl/crypto/crypto.c +39 -22
- data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
- data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
- data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
- data/third_party/boringssl/crypto/engine/engine.c +2 -1
- data/third_party/boringssl/crypto/err/err.c +2 -0
- data/third_party/boringssl/crypto/err/internal.h +2 -2
- data/third_party/boringssl/crypto/evp/evp.c +89 -8
- data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
- data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
- data/third_party/boringssl/crypto/evp/internal.h +18 -1
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
- data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
- data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
- data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
- data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
- data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
- data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
- data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
- data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
- data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
- data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
- data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
- data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
- data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
- data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
- data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
- data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
- data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
- data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
- data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
- data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
- data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
- data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
- data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
- data/third_party/boringssl/crypto/hrss/internal.h +62 -0
- data/third_party/boringssl/crypto/internal.h +95 -20
- data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
- data/third_party/boringssl/crypto/mem.c +39 -2
- data/third_party/boringssl/crypto/obj/obj.c +4 -4
- data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
- data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
- data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
- data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
- data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
- data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
- data/third_party/boringssl/crypto/pool/internal.h +1 -1
- data/third_party/boringssl/crypto/pool/pool.c +21 -0
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
- data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
- data/third_party/boringssl/crypto/refcount_lock.c +2 -2
- data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
- data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
- data/third_party/boringssl/crypto/stack/stack.c +83 -32
- data/third_party/boringssl/crypto/thread_none.c +2 -2
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +38 -19
- data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
- data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
- data/third_party/boringssl/crypto/x509/by_file.c +12 -10
- data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
- data/third_party/boringssl/crypto/x509/t_req.c +1 -3
- data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
- data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
- data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
- data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
- data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
- data/third_party/boringssl/crypto/x509/x509name.c +2 -3
- data/third_party/boringssl/crypto/x509/x_all.c +109 -210
- data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
- data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
- data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
- data/third_party/boringssl/include/openssl/aead.h +45 -19
- data/third_party/boringssl/include/openssl/aes.h +32 -7
- data/third_party/boringssl/include/openssl/asn1.h +7 -77
- data/third_party/boringssl/include/openssl/base.h +120 -6
- data/third_party/boringssl/include/openssl/base64.h +4 -1
- data/third_party/boringssl/include/openssl/bio.h +112 -81
- data/third_party/boringssl/include/openssl/blowfish.h +3 -3
- data/third_party/boringssl/include/openssl/bn.h +55 -29
- data/third_party/boringssl/include/openssl/buf.h +2 -2
- data/third_party/boringssl/include/openssl/bytestring.h +54 -32
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/cipher.h +46 -16
- data/third_party/boringssl/include/openssl/cmac.h +6 -2
- data/third_party/boringssl/include/openssl/conf.h +3 -6
- data/third_party/boringssl/include/openssl/cpu.h +25 -9
- data/third_party/boringssl/include/openssl/crypto.h +32 -10
- data/third_party/boringssl/include/openssl/curve25519.h +4 -4
- data/third_party/boringssl/include/openssl/dh.h +3 -2
- data/third_party/boringssl/include/openssl/digest.h +21 -7
- data/third_party/boringssl/include/openssl/dsa.h +8 -2
- data/third_party/boringssl/include/openssl/e_os2.h +18 -0
- data/third_party/boringssl/include/openssl/ec.h +25 -21
- data/third_party/boringssl/include/openssl/ec_key.h +36 -8
- data/third_party/boringssl/include/openssl/ecdh.h +17 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
- data/third_party/boringssl/include/openssl/engine.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -0
- data/third_party/boringssl/include/openssl/evp.h +199 -42
- data/third_party/boringssl/include/openssl/hmac.h +4 -4
- data/third_party/boringssl/include/openssl/hrss.h +100 -0
- data/third_party/boringssl/include/openssl/lhash.h +131 -23
- data/third_party/boringssl/include/openssl/md4.h +6 -4
- data/third_party/boringssl/include/openssl/md5.h +6 -4
- data/third_party/boringssl/include/openssl/mem.h +6 -2
- data/third_party/boringssl/include/openssl/nid.h +3 -0
- data/third_party/boringssl/include/openssl/obj.h +3 -0
- data/third_party/boringssl/include/openssl/pem.h +102 -64
- data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
- data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
- data/third_party/boringssl/include/openssl/pool.h +13 -2
- data/third_party/boringssl/include/openssl/ripemd.h +5 -4
- data/third_party/boringssl/include/openssl/rsa.h +46 -15
- data/third_party/boringssl/include/openssl/sha.h +40 -28
- data/third_party/boringssl/include/openssl/siphash.h +37 -0
- data/third_party/boringssl/include/openssl/span.h +17 -9
- data/third_party/boringssl/include/openssl/ssl.h +766 -393
- data/third_party/boringssl/include/openssl/ssl3.h +4 -3
- data/third_party/boringssl/include/openssl/stack.h +134 -77
- data/third_party/boringssl/include/openssl/thread.h +1 -1
- data/third_party/boringssl/include/openssl/tls1.h +25 -9
- data/third_party/boringssl/include/openssl/type_check.h +14 -15
- data/third_party/boringssl/include/openssl/x509.h +28 -3
- data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
- data/third_party/boringssl/include/openssl/x509v3.h +17 -13
- data/third_party/boringssl/ssl/d1_both.cc +9 -18
- data/third_party/boringssl/ssl/d1_lib.cc +4 -3
- data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
- data/third_party/boringssl/ssl/dtls_method.cc +0 -1
- data/third_party/boringssl/ssl/dtls_record.cc +28 -28
- data/third_party/boringssl/ssl/handoff.cc +295 -91
- data/third_party/boringssl/ssl/handshake.cc +133 -72
- data/third_party/boringssl/ssl/handshake_client.cc +218 -189
- data/third_party/boringssl/ssl/handshake_server.cc +399 -272
- data/third_party/boringssl/ssl/internal.h +1413 -928
- data/third_party/boringssl/ssl/s3_both.cc +175 -36
- data/third_party/boringssl/ssl/s3_lib.cc +9 -13
- data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
- data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
- data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
- data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
- data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
- data/third_party/boringssl/ssl/ssl_file.cc +2 -0
- data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
- data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
- data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
- data/third_party/boringssl/ssl/ssl_session.cc +230 -178
- data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
- data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
- data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
- data/third_party/boringssl/ssl/t1_enc.cc +5 -96
- data/third_party/boringssl/ssl/t1_lib.cc +931 -678
- data/third_party/boringssl/ssl/tls13_both.cc +251 -121
- data/third_party/boringssl/ssl/tls13_client.cc +129 -73
- data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
- data/third_party/boringssl/ssl/tls13_server.cc +259 -192
- data/third_party/boringssl/ssl/tls_method.cc +26 -21
- data/third_party/boringssl/ssl/tls_record.cc +42 -47
- data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
- data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
- data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
- data/third_party/boringssl/third_party/fiat/p256.c +238 -999
- data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
- data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +2 -1
- metadata +72 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
- data/src/core/lib/gpr/mpscq.cc +0 -117
- data/src/core/lib/gpr/mpscq.h +0 -88
- data/src/core/lib/gprpp/abstract.h +0 -47
- data/src/core/lib/gprpp/pair.h +0 -38
- data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
- data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
- data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
- data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -0,0 +1,53 @@
|
|
1
|
+
/* Copyright (c) 2018, Google Inc.
|
2
|
+
*
|
3
|
+
* Permission to use, copy, modify, and/or distribute this software for any
|
4
|
+
* purpose with or without fee is hereby granted, provided that the above
|
5
|
+
* copyright notice and this permission notice appear in all copies.
|
6
|
+
*
|
7
|
+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8
|
+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9
|
+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
10
|
+
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11
|
+
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
12
|
+
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
13
|
+
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
14
|
+
|
15
|
+
#ifndef OPENSSL_HEADER_SHA_INTERNAL_H
|
16
|
+
#define OPENSSL_HEADER_SHA_INTERNAL_H
|
17
|
+
|
18
|
+
#include <openssl/base.h>
|
19
|
+
|
20
|
+
#if defined(__cplusplus)
|
21
|
+
extern "C" {
|
22
|
+
#endif
|
23
|
+
|
24
|
+
|
25
|
+
#if defined(OPENSSL_PPC64LE) || \
|
26
|
+
(!defined(OPENSSL_NO_ASM) && \
|
27
|
+
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
28
|
+
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)))
|
29
|
+
// POWER has an intrinsics-based implementation of SHA-1 and thus the functions
|
30
|
+
// normally defined in assembly are available even with |OPENSSL_NO_ASM| in
|
31
|
+
// this case.
|
32
|
+
#define SHA1_ASM
|
33
|
+
void sha1_block_data_order(uint32_t *state, const uint8_t *in,
|
34
|
+
size_t num_blocks);
|
35
|
+
#endif
|
36
|
+
|
37
|
+
#if !defined(OPENSSL_NO_ASM) && \
|
38
|
+
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
39
|
+
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
|
40
|
+
#define SHA256_ASM
|
41
|
+
#define SHA512_ASM
|
42
|
+
void sha256_block_data_order(uint32_t *state, const uint8_t *in,
|
43
|
+
size_t num_blocks);
|
44
|
+
void sha512_block_data_order(uint64_t *state, const uint8_t *in,
|
45
|
+
size_t num_blocks);
|
46
|
+
#endif
|
47
|
+
|
48
|
+
|
49
|
+
#if defined(__cplusplus)
|
50
|
+
} // extern "C"
|
51
|
+
#endif
|
52
|
+
|
53
|
+
#endif // OPENSSL_HEADER_SHA_INTERNAL_H
|
@@ -60,16 +60,10 @@
|
|
60
60
|
|
61
61
|
#include <openssl/mem.h>
|
62
62
|
|
63
|
+
#include "internal.h"
|
63
64
|
#include "../../internal.h"
|
64
65
|
|
65
66
|
|
66
|
-
#if (!defined(OPENSSL_NO_ASM) && \
|
67
|
-
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
68
|
-
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))) || \
|
69
|
-
defined(OPENSSL_PPC64LE)
|
70
|
-
#define SHA1_ASM
|
71
|
-
#endif
|
72
|
-
|
73
67
|
int SHA1_Init(SHA_CTX *sha) {
|
74
68
|
OPENSSL_memset(sha, 0, sizeof(SHA_CTX));
|
75
69
|
sha->h[0] = 0x67452301UL;
|
@@ -80,7 +74,7 @@ int SHA1_Init(SHA_CTX *sha) {
|
|
80
74
|
return 1;
|
81
75
|
}
|
82
76
|
|
83
|
-
uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t
|
77
|
+
uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t out[SHA_DIGEST_LENGTH]) {
|
84
78
|
SHA_CTX ctx;
|
85
79
|
SHA1_Init(&ctx);
|
86
80
|
SHA1_Update(&ctx, data, len);
|
@@ -93,6 +87,7 @@ uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t *out) {
|
|
93
87
|
|
94
88
|
#define HASH_CTX SHA_CTX
|
95
89
|
#define HASH_CBLOCK 64
|
90
|
+
#define HASH_DIGEST_LENGTH 20
|
96
91
|
#define HASH_MAKE_STRING(c, s) \
|
97
92
|
do { \
|
98
93
|
uint32_t ll; \
|
@@ -119,10 +114,10 @@ uint8_t *SHA1(const uint8_t *data, size_t len, uint8_t *out) {
|
|
119
114
|
(ix) = (a) = ROTATE((a), 1); \
|
120
115
|
} while (0)
|
121
116
|
|
122
|
-
#
|
123
|
-
static
|
117
|
+
#if !defined(SHA1_ASM)
|
118
|
+
static void sha1_block_data_order(uint32_t *state, const uint8_t *data,
|
119
|
+
size_t num);
|
124
120
|
#endif
|
125
|
-
void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
|
126
121
|
|
127
122
|
#include "../digest/md32_common.h"
|
128
123
|
|
@@ -192,8 +187,8 @@ void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
|
|
192
187
|
* "find" this expectation reasonable:-( On order to make such
|
193
188
|
* compilers generate better code I replace X[] with a bunch of
|
194
189
|
* X0, X1, etc. See the function body below...
|
195
|
-
*
|
196
|
-
#define X(i)
|
190
|
+
* <appro@fy.chalmers.se> */
|
191
|
+
#define X(i) XX##i
|
197
192
|
|
198
193
|
#if !defined(SHA1_ASM)
|
199
194
|
static void sha1_block_data_order(uint32_t *state, const uint8_t *data,
|
@@ -349,6 +344,7 @@ static void sha1_block_data_order(uint32_t *state, const uint8_t *data,
|
|
349
344
|
#undef DATA_ORDER_IS_BIG_ENDIAN
|
350
345
|
#undef HASH_CTX
|
351
346
|
#undef HASH_CBLOCK
|
347
|
+
#undef HASH_DIGEST_LENGTH
|
352
348
|
#undef HASH_MAKE_STRING
|
353
349
|
#undef HASH_UPDATE
|
354
350
|
#undef HASH_TRANSFORM
|
@@ -60,15 +60,10 @@
|
|
60
60
|
|
61
61
|
#include <openssl/mem.h>
|
62
62
|
|
63
|
+
#include "internal.h"
|
63
64
|
#include "../../internal.h"
|
64
65
|
|
65
66
|
|
66
|
-
#if !defined(OPENSSL_NO_ASM) && \
|
67
|
-
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
68
|
-
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
|
69
|
-
#define SHA256_ASM
|
70
|
-
#endif
|
71
|
-
|
72
67
|
int SHA224_Init(SHA256_CTX *sha) {
|
73
68
|
OPENSSL_memset(sha, 0, sizeof(SHA256_CTX));
|
74
69
|
sha->h[0] = 0xc1059ed8UL;
|
@@ -97,7 +92,8 @@ int SHA256_Init(SHA256_CTX *sha) {
|
|
97
92
|
return 1;
|
98
93
|
}
|
99
94
|
|
100
|
-
uint8_t *SHA224(const uint8_t *data, size_t len,
|
95
|
+
uint8_t *SHA224(const uint8_t *data, size_t len,
|
96
|
+
uint8_t out[SHA224_DIGEST_LENGTH]) {
|
101
97
|
SHA256_CTX ctx;
|
102
98
|
SHA224_Init(&ctx);
|
103
99
|
SHA224_Update(&ctx, data, len);
|
@@ -106,7 +102,8 @@ uint8_t *SHA224(const uint8_t *data, size_t len, uint8_t *out) {
|
|
106
102
|
return out;
|
107
103
|
}
|
108
104
|
|
109
|
-
uint8_t *SHA256(const uint8_t *data, size_t len,
|
105
|
+
uint8_t *SHA256(const uint8_t *data, size_t len,
|
106
|
+
uint8_t out[SHA256_DIGEST_LENGTH]) {
|
110
107
|
SHA256_CTX ctx;
|
111
108
|
SHA256_Init(&ctx);
|
112
109
|
SHA256_Update(&ctx, data, len);
|
@@ -119,14 +116,17 @@ int SHA224_Update(SHA256_CTX *ctx, const void *data, size_t len) {
|
|
119
116
|
return SHA256_Update(ctx, data, len);
|
120
117
|
}
|
121
118
|
|
122
|
-
int SHA224_Final(uint8_t
|
123
|
-
|
119
|
+
int SHA224_Final(uint8_t out[SHA224_DIGEST_LENGTH], SHA256_CTX *ctx) {
|
120
|
+
// SHA224_Init sets |ctx->md_len| to |SHA224_DIGEST_LENGTH|, so this has a
|
121
|
+
// smaller output.
|
122
|
+
return SHA256_Final(out, ctx);
|
124
123
|
}
|
125
124
|
|
126
125
|
#define DATA_ORDER_IS_BIG_ENDIAN
|
127
126
|
|
128
127
|
#define HASH_CTX SHA256_CTX
|
129
128
|
#define HASH_CBLOCK 64
|
129
|
+
#define HASH_DIGEST_LENGTH 32
|
130
130
|
|
131
131
|
// Note that FIPS180-2 discusses "Truncation of the Hash Function Output."
|
132
132
|
// default: case below covers for it. It's not clear however if it's permitted
|
@@ -172,9 +172,9 @@ int SHA224_Final(uint8_t *md, SHA256_CTX *ctx) {
|
|
172
172
|
#define HASH_FINAL SHA256_Final
|
173
173
|
#define HASH_BLOCK_DATA_ORDER sha256_block_data_order
|
174
174
|
#ifndef SHA256_ASM
|
175
|
-
static
|
175
|
+
static void sha256_block_data_order(uint32_t *state, const uint8_t *in,
|
176
|
+
size_t num);
|
176
177
|
#endif
|
177
|
-
void sha256_block_data_order(uint32_t *state, const uint8_t *in, size_t num);
|
178
178
|
|
179
179
|
#include "../digest/md32_common.h"
|
180
180
|
|
@@ -316,9 +316,15 @@ static void sha256_block_data_order(uint32_t *state, const uint8_t *data,
|
|
316
316
|
|
317
317
|
#endif // !SHA256_ASM
|
318
318
|
|
319
|
+
void SHA256_TransformBlocks(uint32_t state[8], const uint8_t *data,
|
320
|
+
size_t num_blocks) {
|
321
|
+
sha256_block_data_order(state, data, num_blocks);
|
322
|
+
}
|
323
|
+
|
319
324
|
#undef DATA_ORDER_IS_BIG_ENDIAN
|
320
325
|
#undef HASH_CTX
|
321
326
|
#undef HASH_CBLOCK
|
327
|
+
#undef HASH_DIGEST_LENGTH
|
322
328
|
#undef HASH_MAKE_STRING
|
323
329
|
#undef HASH_UPDATE
|
324
330
|
#undef HASH_TRANSFORM
|
@@ -60,31 +60,15 @@
|
|
60
60
|
|
61
61
|
#include <openssl/mem.h>
|
62
62
|
|
63
|
+
#include "internal.h"
|
63
64
|
#include "../../internal.h"
|
64
65
|
|
65
66
|
|
66
|
-
// IMPLEMENTATION NOTES.
|
67
|
-
//
|
68
67
|
// The 32-bit hash algorithms share a common byte-order neutral collector and
|
69
68
|
// padding function implementations that operate on unaligned data,
|
70
|
-
// ../md32_common.h.
|
71
|
-
//
|
72
|
-
//
|
73
|
-
// - It's the only 64-bit hash algorithm for the moment of this writing,
|
74
|
-
// there is no need for common collector/padding implementation [yet];
|
75
|
-
// - By supporting only a transform function that operates on *aligned* data
|
76
|
-
// the collector/padding function is simpler and easier to optimize.
|
77
|
-
|
78
|
-
#if !defined(OPENSSL_NO_ASM) && \
|
79
|
-
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
80
|
-
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
|
81
|
-
#define SHA512_ASM
|
82
|
-
#endif
|
83
|
-
|
84
|
-
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
85
|
-
defined(__ARM_FEATURE_UNALIGNED)
|
86
|
-
#define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA
|
87
|
-
#endif
|
69
|
+
// ../digest/md32_common.h. SHA-512 is the only 64-bit hash algorithm, as of
|
70
|
+
// this writing, so there is no need for a common collector/padding
|
71
|
+
// implementation yet.
|
88
72
|
|
89
73
|
int SHA384_Init(SHA512_CTX *sha) {
|
90
74
|
sha->h[0] = UINT64_C(0xcbbb9d5dc1059ed8);
|
@@ -121,7 +105,8 @@ int SHA512_Init(SHA512_CTX *sha) {
|
|
121
105
|
return 1;
|
122
106
|
}
|
123
107
|
|
124
|
-
uint8_t *SHA384(const uint8_t *data, size_t len,
|
108
|
+
uint8_t *SHA384(const uint8_t *data, size_t len,
|
109
|
+
uint8_t out[SHA384_DIGEST_LENGTH]) {
|
125
110
|
SHA512_CTX ctx;
|
126
111
|
SHA384_Init(&ctx);
|
127
112
|
SHA384_Update(&ctx, data, len);
|
@@ -130,7 +115,8 @@ uint8_t *SHA384(const uint8_t *data, size_t len, uint8_t *out) {
|
|
130
115
|
return out;
|
131
116
|
}
|
132
117
|
|
133
|
-
uint8_t *SHA512(const uint8_t *data, size_t len,
|
118
|
+
uint8_t *SHA512(const uint8_t *data, size_t len,
|
119
|
+
uint8_t out[SHA512_DIGEST_LENGTH]) {
|
134
120
|
SHA512_CTX ctx;
|
135
121
|
SHA512_Init(&ctx);
|
136
122
|
SHA512_Update(&ctx, data, len);
|
@@ -140,33 +126,29 @@ uint8_t *SHA512(const uint8_t *data, size_t len, uint8_t *out) {
|
|
140
126
|
}
|
141
127
|
|
142
128
|
#if !defined(SHA512_ASM)
|
143
|
-
static
|
129
|
+
static void sha512_block_data_order(uint64_t *state, const uint8_t *in,
|
130
|
+
size_t num_blocks);
|
144
131
|
#endif
|
145
|
-
void sha512_block_data_order(uint64_t *state, const uint64_t *W, size_t num);
|
146
132
|
|
147
133
|
|
148
|
-
int SHA384_Final(uint8_t
|
149
|
-
|
134
|
+
int SHA384_Final(uint8_t out[SHA384_DIGEST_LENGTH], SHA512_CTX *sha) {
|
135
|
+
// |SHA384_Init| sets |sha->md_len| to |SHA384_DIGEST_LENGTH|, so this has a
|
136
|
+
// |smaller output.
|
137
|
+
return SHA512_Final(out, sha);
|
150
138
|
}
|
151
139
|
|
152
140
|
int SHA384_Update(SHA512_CTX *sha, const void *data, size_t len) {
|
153
141
|
return SHA512_Update(sha, data, len);
|
154
142
|
}
|
155
143
|
|
156
|
-
void SHA512_Transform(SHA512_CTX *c, const uint8_t
|
157
|
-
|
158
|
-
if ((size_t)block % sizeof(c->u.d[0]) != 0) {
|
159
|
-
OPENSSL_memcpy(c->u.p, block, sizeof(c->u.p));
|
160
|
-
block = c->u.p;
|
161
|
-
}
|
162
|
-
#endif
|
163
|
-
sha512_block_data_order(c->h, (uint64_t *)block, 1);
|
144
|
+
void SHA512_Transform(SHA512_CTX *c, const uint8_t block[SHA512_CBLOCK]) {
|
145
|
+
sha512_block_data_order(c->h, block, 1);
|
164
146
|
}
|
165
147
|
|
166
148
|
int SHA512_Update(SHA512_CTX *c, const void *in_data, size_t len) {
|
167
149
|
uint64_t l;
|
168
|
-
uint8_t *p = c->
|
169
|
-
const uint8_t *data =
|
150
|
+
uint8_t *p = c->p;
|
151
|
+
const uint8_t *data = in_data;
|
170
152
|
|
171
153
|
if (len == 0) {
|
172
154
|
return 1;
|
@@ -182,7 +164,7 @@ int SHA512_Update(SHA512_CTX *c, const void *in_data, size_t len) {
|
|
182
164
|
c->Nl = l;
|
183
165
|
|
184
166
|
if (c->num != 0) {
|
185
|
-
size_t n = sizeof(c->
|
167
|
+
size_t n = sizeof(c->p) - c->num;
|
186
168
|
|
187
169
|
if (len < n) {
|
188
170
|
OPENSSL_memcpy(p + c->num, data, len);
|
@@ -192,27 +174,15 @@ int SHA512_Update(SHA512_CTX *c, const void *in_data, size_t len) {
|
|
192
174
|
OPENSSL_memcpy(p + c->num, data, n), c->num = 0;
|
193
175
|
len -= n;
|
194
176
|
data += n;
|
195
|
-
sha512_block_data_order(c->h,
|
177
|
+
sha512_block_data_order(c->h, p, 1);
|
196
178
|
}
|
197
179
|
}
|
198
180
|
|
199
|
-
if (len >= sizeof(c->
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
sha512_block_data_order(c->h, (uint64_t *)p, 1);
|
205
|
-
len -= sizeof(c->u);
|
206
|
-
data += sizeof(c->u);
|
207
|
-
}
|
208
|
-
} else
|
209
|
-
#endif
|
210
|
-
{
|
211
|
-
sha512_block_data_order(c->h, (uint64_t *)data, len / sizeof(c->u));
|
212
|
-
data += len;
|
213
|
-
len %= sizeof(c->u);
|
214
|
-
data -= len;
|
215
|
-
}
|
181
|
+
if (len >= sizeof(c->p)) {
|
182
|
+
sha512_block_data_order(c->h, data, len / sizeof(c->p));
|
183
|
+
data += len;
|
184
|
+
len %= sizeof(c->p);
|
185
|
+
data -= len;
|
216
186
|
}
|
217
187
|
|
218
188
|
if (len != 0) {
|
@@ -223,39 +193,39 @@ int SHA512_Update(SHA512_CTX *c, const void *in_data, size_t len) {
|
|
223
193
|
return 1;
|
224
194
|
}
|
225
195
|
|
226
|
-
int SHA512_Final(uint8_t
|
227
|
-
uint8_t *p =
|
196
|
+
int SHA512_Final(uint8_t out[SHA512_DIGEST_LENGTH], SHA512_CTX *sha) {
|
197
|
+
uint8_t *p = sha->p;
|
228
198
|
size_t n = sha->num;
|
229
199
|
|
230
200
|
p[n] = 0x80; // There always is a room for one
|
231
201
|
n++;
|
232
|
-
if (n > (sizeof(sha->
|
233
|
-
OPENSSL_memset(p + n, 0, sizeof(sha->
|
202
|
+
if (n > (sizeof(sha->p) - 16)) {
|
203
|
+
OPENSSL_memset(p + n, 0, sizeof(sha->p) - n);
|
234
204
|
n = 0;
|
235
|
-
sha512_block_data_order(sha->h,
|
205
|
+
sha512_block_data_order(sha->h, p, 1);
|
236
206
|
}
|
237
207
|
|
238
|
-
OPENSSL_memset(p + n, 0, sizeof(sha->
|
239
|
-
p[sizeof(sha->
|
240
|
-
p[sizeof(sha->
|
241
|
-
p[sizeof(sha->
|
242
|
-
p[sizeof(sha->
|
243
|
-
p[sizeof(sha->
|
244
|
-
p[sizeof(sha->
|
245
|
-
p[sizeof(sha->
|
246
|
-
p[sizeof(sha->
|
247
|
-
p[sizeof(sha->
|
248
|
-
p[sizeof(sha->
|
249
|
-
p[sizeof(sha->
|
250
|
-
p[sizeof(sha->
|
251
|
-
p[sizeof(sha->
|
252
|
-
p[sizeof(sha->
|
253
|
-
p[sizeof(sha->
|
254
|
-
p[sizeof(sha->
|
255
|
-
|
256
|
-
sha512_block_data_order(sha->h,
|
257
|
-
|
258
|
-
if (
|
208
|
+
OPENSSL_memset(p + n, 0, sizeof(sha->p) - 16 - n);
|
209
|
+
p[sizeof(sha->p) - 1] = (uint8_t)(sha->Nl);
|
210
|
+
p[sizeof(sha->p) - 2] = (uint8_t)(sha->Nl >> 8);
|
211
|
+
p[sizeof(sha->p) - 3] = (uint8_t)(sha->Nl >> 16);
|
212
|
+
p[sizeof(sha->p) - 4] = (uint8_t)(sha->Nl >> 24);
|
213
|
+
p[sizeof(sha->p) - 5] = (uint8_t)(sha->Nl >> 32);
|
214
|
+
p[sizeof(sha->p) - 6] = (uint8_t)(sha->Nl >> 40);
|
215
|
+
p[sizeof(sha->p) - 7] = (uint8_t)(sha->Nl >> 48);
|
216
|
+
p[sizeof(sha->p) - 8] = (uint8_t)(sha->Nl >> 56);
|
217
|
+
p[sizeof(sha->p) - 9] = (uint8_t)(sha->Nh);
|
218
|
+
p[sizeof(sha->p) - 10] = (uint8_t)(sha->Nh >> 8);
|
219
|
+
p[sizeof(sha->p) - 11] = (uint8_t)(sha->Nh >> 16);
|
220
|
+
p[sizeof(sha->p) - 12] = (uint8_t)(sha->Nh >> 24);
|
221
|
+
p[sizeof(sha->p) - 13] = (uint8_t)(sha->Nh >> 32);
|
222
|
+
p[sizeof(sha->p) - 14] = (uint8_t)(sha->Nh >> 40);
|
223
|
+
p[sizeof(sha->p) - 15] = (uint8_t)(sha->Nh >> 48);
|
224
|
+
p[sizeof(sha->p) - 16] = (uint8_t)(sha->Nh >> 56);
|
225
|
+
|
226
|
+
sha512_block_data_order(sha->h, p, 1);
|
227
|
+
|
228
|
+
if (out == NULL) {
|
259
229
|
// TODO(davidben): This NULL check is absent in other low-level hash 'final'
|
260
230
|
// functions and is one of the few places one can fail.
|
261
231
|
return 0;
|
@@ -267,28 +237,28 @@ int SHA512_Final(uint8_t *md, SHA512_CTX *sha) {
|
|
267
237
|
for (n = 0; n < SHA384_DIGEST_LENGTH / 8; n++) {
|
268
238
|
uint64_t t = sha->h[n];
|
269
239
|
|
270
|
-
*(
|
271
|
-
*(
|
272
|
-
*(
|
273
|
-
*(
|
274
|
-
*(
|
275
|
-
*(
|
276
|
-
*(
|
277
|
-
*(
|
240
|
+
*(out++) = (uint8_t)(t >> 56);
|
241
|
+
*(out++) = (uint8_t)(t >> 48);
|
242
|
+
*(out++) = (uint8_t)(t >> 40);
|
243
|
+
*(out++) = (uint8_t)(t >> 32);
|
244
|
+
*(out++) = (uint8_t)(t >> 24);
|
245
|
+
*(out++) = (uint8_t)(t >> 16);
|
246
|
+
*(out++) = (uint8_t)(t >> 8);
|
247
|
+
*(out++) = (uint8_t)(t);
|
278
248
|
}
|
279
249
|
break;
|
280
250
|
case SHA512_DIGEST_LENGTH:
|
281
251
|
for (n = 0; n < SHA512_DIGEST_LENGTH / 8; n++) {
|
282
252
|
uint64_t t = sha->h[n];
|
283
253
|
|
284
|
-
*(
|
285
|
-
*(
|
286
|
-
*(
|
287
|
-
*(
|
288
|
-
*(
|
289
|
-
*(
|
290
|
-
*(
|
291
|
-
*(
|
254
|
+
*(out++) = (uint8_t)(t >> 56);
|
255
|
+
*(out++) = (uint8_t)(t >> 48);
|
256
|
+
*(out++) = (uint8_t)(t >> 40);
|
257
|
+
*(out++) = (uint8_t)(t >> 32);
|
258
|
+
*(out++) = (uint8_t)(t >> 24);
|
259
|
+
*(out++) = (uint8_t)(t >> 16);
|
260
|
+
*(out++) = (uint8_t)(t >> 8);
|
261
|
+
*(out++) = (uint8_t)(t);
|
292
262
|
}
|
293
263
|
break;
|
294
264
|
// ... as well as make sure md_len is not abused.
|
@@ -353,20 +323,6 @@ static const uint64_t K512[80] = {
|
|
353
323
|
__asm__("rorq %1, %0" : "=r"(ret) : "J"(n), "0"(a) : "cc"); \
|
354
324
|
ret; \
|
355
325
|
})
|
356
|
-
#define PULL64(x) \
|
357
|
-
({ \
|
358
|
-
uint64_t ret = *((const uint64_t *)(&(x))); \
|
359
|
-
__asm__("bswapq %0" : "=r"(ret) : "0"(ret)); \
|
360
|
-
ret; \
|
361
|
-
})
|
362
|
-
#elif(defined(__i386) || defined(__i386__))
|
363
|
-
#define PULL64(x) \
|
364
|
-
({ \
|
365
|
-
const unsigned int *p = (const unsigned int *)(&(x)); \
|
366
|
-
unsigned int hi = p[0], lo = p[1]; \
|
367
|
-
__asm__("bswapl %0; bswapl %1;" : "=r"(lo), "=r"(hi) : "0"(lo), "1"(hi)); \
|
368
|
-
((uint64_t)hi) << 32 | lo; \
|
369
|
-
})
|
370
326
|
#elif(defined(_ARCH_PPC) && defined(__64BIT__)) || defined(_ARCH_PPC64)
|
371
327
|
#define ROTR(a, n) \
|
372
328
|
({ \
|
@@ -381,47 +337,22 @@ static const uint64_t K512[80] = {
|
|
381
337
|
__asm__("ror %0, %1, %2" : "=r"(ret) : "r"(a), "I"(n)); \
|
382
338
|
ret; \
|
383
339
|
})
|
384
|
-
#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
|
385
|
-
__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
386
|
-
#define PULL64(x) \
|
387
|
-
({ \
|
388
|
-
uint64_t ret; \
|
389
|
-
__asm__("rev %0, %1" : "=r"(ret) : "r"(*((const uint64_t *)(&(x))))); \
|
390
|
-
ret; \
|
391
|
-
})
|
392
|
-
#endif
|
393
340
|
#endif
|
394
|
-
#elif defined(_MSC_VER)
|
395
|
-
#if defined(_WIN64) // applies to both IA-64 and AMD64
|
341
|
+
#elif defined(_MSC_VER) && defined(_WIN64)
|
396
342
|
#pragma intrinsic(_rotr64)
|
397
343
|
#define ROTR(a, n) _rotr64((a), n)
|
398
344
|
#endif
|
399
|
-
#if defined(_M_IX86) && !defined(OPENSSL_NO_ASM)
|
400
|
-
static uint64_t __fastcall __pull64be(const void *x) {
|
401
|
-
_asm mov edx, [ecx + 0]
|
402
|
-
_asm mov eax, [ecx + 4]
|
403
|
-
_asm bswap edx
|
404
|
-
_asm bswap eax
|
405
|
-
}
|
406
|
-
#define PULL64(x) __pull64be(&(x))
|
407
|
-
#if _MSC_VER <= 1200
|
408
|
-
#pragma inline_depth(0)
|
409
|
-
#endif
|
410
|
-
#endif
|
411
|
-
#endif
|
412
|
-
|
413
|
-
#ifndef PULL64
|
414
|
-
#define B(x, j) \
|
415
|
-
(((uint64_t)(*(((const uint8_t *)(&x)) + j))) << ((7 - j) * 8))
|
416
|
-
#define PULL64(x) \
|
417
|
-
(B(x, 0) | B(x, 1) | B(x, 2) | B(x, 3) | B(x, 4) | B(x, 5) | B(x, 6) | \
|
418
|
-
B(x, 7))
|
419
|
-
#endif
|
420
345
|
|
421
346
|
#ifndef ROTR
|
422
347
|
#define ROTR(x, s) (((x) >> s) | (x) << (64 - s))
|
423
348
|
#endif
|
424
349
|
|
350
|
+
static inline uint64_t load_u64_be(const void *ptr) {
|
351
|
+
uint64_t ret;
|
352
|
+
OPENSSL_memcpy(&ret, ptr, sizeof(ret));
|
353
|
+
return CRYPTO_bswap8(ret);
|
354
|
+
}
|
355
|
+
|
425
356
|
#define Sigma0(x) (ROTR((x), 28) ^ ROTR((x), 34) ^ ROTR((x), 39))
|
426
357
|
#define Sigma1(x) (ROTR((x), 14) ^ ROTR((x), 18) ^ ROTR((x), 41))
|
427
358
|
#define sigma0(x) (ROTR((x), 1) ^ ROTR((x), 8) ^ ((x) >> 7))
|
@@ -434,7 +365,7 @@ static uint64_t __fastcall __pull64be(const void *x) {
|
|
434
365
|
#if defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
435
366
|
// This code should give better results on 32-bit CPU with less than
|
436
367
|
// ~24 registers, both size and performance wise...
|
437
|
-
static void sha512_block_data_order(uint64_t *state, const
|
368
|
+
static void sha512_block_data_order(uint64_t *state, const uint8_t *in,
|
438
369
|
size_t num) {
|
439
370
|
uint64_t A, E, T;
|
440
371
|
uint64_t X[9 + 80], *F;
|
@@ -452,7 +383,7 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
452
383
|
F[7] = state[7];
|
453
384
|
|
454
385
|
for (i = 0; i < 16; i++, F--) {
|
455
|
-
T =
|
386
|
+
T = load_u64_be(in + i * 8);
|
456
387
|
F[0] = A;
|
457
388
|
F[4] = E;
|
458
389
|
F[8] = T;
|
@@ -483,7 +414,7 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
483
414
|
state[6] += F[6];
|
484
415
|
state[7] += F[7];
|
485
416
|
|
486
|
-
|
417
|
+
in += 16 * 8;
|
487
418
|
}
|
488
419
|
}
|
489
420
|
|
@@ -507,7 +438,7 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
507
438
|
ROUND_00_15(i + j, a, b, c, d, e, f, g, h); \
|
508
439
|
} while (0)
|
509
440
|
|
510
|
-
static void sha512_block_data_order(uint64_t *state, const
|
441
|
+
static void sha512_block_data_order(uint64_t *state, const uint8_t *in,
|
511
442
|
size_t num) {
|
512
443
|
uint64_t a, b, c, d, e, f, g, h, s0, s1, T1;
|
513
444
|
uint64_t X[16];
|
@@ -524,37 +455,37 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
524
455
|
g = state[6];
|
525
456
|
h = state[7];
|
526
457
|
|
527
|
-
T1 = X[0] =
|
458
|
+
T1 = X[0] = load_u64_be(in);
|
528
459
|
ROUND_00_15(0, a, b, c, d, e, f, g, h);
|
529
|
-
T1 = X[1] =
|
460
|
+
T1 = X[1] = load_u64_be(in + 8);
|
530
461
|
ROUND_00_15(1, h, a, b, c, d, e, f, g);
|
531
|
-
T1 = X[2] =
|
462
|
+
T1 = X[2] = load_u64_be(in + 2 * 8);
|
532
463
|
ROUND_00_15(2, g, h, a, b, c, d, e, f);
|
533
|
-
T1 = X[3] =
|
464
|
+
T1 = X[3] = load_u64_be(in + 3 * 8);
|
534
465
|
ROUND_00_15(3, f, g, h, a, b, c, d, e);
|
535
|
-
T1 = X[4] =
|
466
|
+
T1 = X[4] = load_u64_be(in + 4 * 8);
|
536
467
|
ROUND_00_15(4, e, f, g, h, a, b, c, d);
|
537
|
-
T1 = X[5] =
|
468
|
+
T1 = X[5] = load_u64_be(in + 5 * 8);
|
538
469
|
ROUND_00_15(5, d, e, f, g, h, a, b, c);
|
539
|
-
T1 = X[6] =
|
470
|
+
T1 = X[6] = load_u64_be(in + 6 * 8);
|
540
471
|
ROUND_00_15(6, c, d, e, f, g, h, a, b);
|
541
|
-
T1 = X[7] =
|
472
|
+
T1 = X[7] = load_u64_be(in + 7 * 8);
|
542
473
|
ROUND_00_15(7, b, c, d, e, f, g, h, a);
|
543
|
-
T1 = X[8] =
|
474
|
+
T1 = X[8] = load_u64_be(in + 8 * 8);
|
544
475
|
ROUND_00_15(8, a, b, c, d, e, f, g, h);
|
545
|
-
T1 = X[9] =
|
476
|
+
T1 = X[9] = load_u64_be(in + 9 * 8);
|
546
477
|
ROUND_00_15(9, h, a, b, c, d, e, f, g);
|
547
|
-
T1 = X[10] =
|
478
|
+
T1 = X[10] = load_u64_be(in + 10 * 8);
|
548
479
|
ROUND_00_15(10, g, h, a, b, c, d, e, f);
|
549
|
-
T1 = X[11] =
|
480
|
+
T1 = X[11] = load_u64_be(in + 11 * 8);
|
550
481
|
ROUND_00_15(11, f, g, h, a, b, c, d, e);
|
551
|
-
T1 = X[12] =
|
482
|
+
T1 = X[12] = load_u64_be(in + 12 * 8);
|
552
483
|
ROUND_00_15(12, e, f, g, h, a, b, c, d);
|
553
|
-
T1 = X[13] =
|
484
|
+
T1 = X[13] = load_u64_be(in + 13 * 8);
|
554
485
|
ROUND_00_15(13, d, e, f, g, h, a, b, c);
|
555
|
-
T1 = X[14] =
|
486
|
+
T1 = X[14] = load_u64_be(in + 14 * 8);
|
556
487
|
ROUND_00_15(14, c, d, e, f, g, h, a, b);
|
557
|
-
T1 = X[15] =
|
488
|
+
T1 = X[15] = load_u64_be(in + 15 * 8);
|
558
489
|
ROUND_00_15(15, b, c, d, e, f, g, h, a);
|
559
490
|
|
560
491
|
for (i = 16; i < 80; i += 16) {
|
@@ -585,7 +516,7 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
585
516
|
state[6] += g;
|
586
517
|
state[7] += h;
|
587
518
|
|
588
|
-
|
519
|
+
in += 16 * 8;
|
589
520
|
}
|
590
521
|
}
|
591
522
|
|
@@ -594,8 +525,6 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
594
525
|
#endif // !SHA512_ASM
|
595
526
|
|
596
527
|
#undef ROTR
|
597
|
-
#undef PULL64
|
598
|
-
#undef B
|
599
528
|
#undef Sigma0
|
600
529
|
#undef Sigma1
|
601
530
|
#undef sigma0
|
@@ -604,5 +533,3 @@ static void sha512_block_data_order(uint64_t *state, const uint64_t *W,
|
|
604
533
|
#undef Maj
|
605
534
|
#undef ROUND_00_15
|
606
535
|
#undef ROUND_16_80
|
607
|
-
#undef HOST_c2l
|
608
|
-
#undef HOST_l2c
|