grpc 1.69.0 → 1.70.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +251 -249
  3. data/include/grpc/support/atm.h +0 -13
  4. data/src/core/call/request_buffer.cc +224 -0
  5. data/src/core/call/request_buffer.h +192 -0
  6. data/src/core/client_channel/client_channel.cc +2 -3
  7. data/src/core/client_channel/client_channel_args.h +21 -0
  8. data/src/core/client_channel/client_channel_filter.h +1 -3
  9. data/src/core/client_channel/retry_interceptor.cc +406 -0
  10. data/src/core/client_channel/retry_interceptor.h +157 -0
  11. data/src/core/client_channel/retry_service_config.h +13 -0
  12. data/src/core/client_channel/retry_throttle.cc +33 -18
  13. data/src/core/client_channel/retry_throttle.h +3 -3
  14. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +596 -94
  15. data/src/core/ext/transport/chttp2/server/chttp2_server.h +189 -13
  16. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1 -0
  17. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -3
  18. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +40 -1
  19. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +3 -1
  20. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +66 -36
  21. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +19 -17
  22. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +116 -0
  23. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +31 -5
  24. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +2 -0
  25. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +67 -6
  26. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +12 -8
  27. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  28. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  29. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  30. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +228 -21
  31. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +65 -17
  32. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +6 -0
  33. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +7 -106
  34. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +7 -28
  35. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -2
  36. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +85 -0
  37. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +25 -3
  38. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
  39. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +152 -0
  40. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +40 -10
  41. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +2 -0
  42. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +135 -4
  43. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +41 -9
  44. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +2 -0
  45. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +0 -2
  46. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +0 -1
  47. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +0 -1
  48. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +16 -0
  49. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +3 -2
  50. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +60 -0
  51. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +13 -2
  52. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +0 -1
  53. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +0 -1
  54. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +102 -24
  55. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +28 -19
  56. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +251 -18
  57. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +41 -16
  58. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +2 -0
  59. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +2 -1
  60. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +11 -10
  61. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +418 -413
  62. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +161 -153
  63. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -0
  64. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +267 -261
  65. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  66. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  67. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +29 -19
  68. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +15 -0
  69. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +58 -65
  70. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +0 -5
  71. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +73 -63
  72. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +49 -48
  73. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +117 -100
  74. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  75. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +905 -897
  76. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  77. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +15 -18
  78. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +460 -457
  79. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +16 -19
  80. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +95 -95
  81. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +202 -191
  82. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +148 -135
  83. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  84. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +23 -22
  85. data/src/core/filter/filter_args.h +112 -0
  86. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +1 -1
  87. data/src/core/lib/channel/promise_based_filter.h +5 -79
  88. data/src/core/lib/debug/trace_flags.cc +2 -0
  89. data/src/core/lib/debug/trace_flags.h +1 -0
  90. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +14 -0
  91. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -2
  92. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -2
  93. data/src/core/lib/event_engine/windows/windows_engine.cc +1 -0
  94. data/src/core/lib/experiments/experiments.cc +90 -39
  95. data/src/core/lib/experiments/experiments.h +43 -24
  96. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -1
  97. data/src/core/lib/promise/activity.cc +2 -0
  98. data/src/core/lib/promise/activity.h +29 -8
  99. data/src/core/lib/promise/map.h +42 -0
  100. data/src/core/lib/promise/party.cc +36 -1
  101. data/src/core/lib/promise/party.h +13 -5
  102. data/src/core/lib/promise/sleep.h +1 -0
  103. data/src/core/lib/promise/status_flag.h +10 -0
  104. data/src/core/lib/resource_quota/arena.h +8 -0
  105. data/src/core/lib/resource_quota/connection_quota.h +4 -0
  106. data/src/core/lib/surface/call_utils.h +2 -0
  107. data/src/core/lib/surface/client_call.cc +43 -35
  108. data/src/core/lib/surface/client_call.h +5 -0
  109. data/src/core/lib/surface/event_string.cc +7 -1
  110. data/src/core/lib/surface/init_internally.h +13 -2
  111. data/src/core/lib/surface/server_call.cc +100 -85
  112. data/src/core/lib/surface/version.cc +2 -2
  113. data/src/core/lib/transport/call_filters.cc +10 -4
  114. data/src/core/lib/transport/call_filters.h +8 -0
  115. data/src/core/lib/transport/call_spine.cc +36 -71
  116. data/src/core/lib/transport/call_spine.h +131 -7
  117. data/src/core/lib/transport/call_state.h +132 -39
  118. data/src/core/lib/transport/interception_chain.cc +8 -0
  119. data/src/core/lib/transport/interception_chain.h +9 -0
  120. data/src/core/load_balancing/endpoint_list.cc +10 -0
  121. data/src/core/load_balancing/endpoint_list.h +13 -6
  122. data/src/core/load_balancing/lb_policy.h +0 -8
  123. data/src/core/load_balancing/pick_first/pick_first.cc +89 -56
  124. data/src/core/load_balancing/ring_hash/ring_hash.cc +158 -70
  125. data/src/core/load_balancing/ring_hash/ring_hash.h +4 -11
  126. data/src/core/load_balancing/round_robin/round_robin.cc +9 -14
  127. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +12 -15
  128. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +4 -4
  129. data/src/core/resolver/xds/xds_dependency_manager.cc +139 -135
  130. data/src/core/resolver/xds/xds_dependency_manager.h +24 -18
  131. data/src/core/resolver/xds/xds_resolver.cc +28 -47
  132. data/src/core/server/server.cc +290 -24
  133. data/src/core/server/server.h +199 -61
  134. data/src/core/server/xds_server_config_fetcher.cc +78 -142
  135. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  136. data/src/core/util/backoff.cc +15 -4
  137. data/src/core/util/http_client/httpcli.cc +66 -18
  138. data/src/core/util/http_client/httpcli.h +14 -4
  139. data/src/core/util/matchers.h +5 -10
  140. data/src/core/util/ref_counted.h +1 -0
  141. data/src/core/util/ref_counted_ptr.h +1 -1
  142. data/src/core/util/useful.h +9 -11
  143. data/src/core/xds/grpc/xds_endpoint_parser.cc +54 -23
  144. data/src/core/xds/grpc/xds_metadata.h +8 -0
  145. data/src/core/xds/xds_client/xds_api.cc +0 -223
  146. data/src/core/xds/xds_client/xds_api.h +1 -133
  147. data/src/core/xds/xds_client/xds_client.cc +599 -466
  148. data/src/core/xds/xds_client/xds_client.h +107 -26
  149. data/src/core/xds/xds_client/xds_resource_type_impl.h +10 -5
  150. data/src/ruby/ext/grpc/extconf.rb +1 -0
  151. data/src/ruby/lib/grpc/version.rb +1 -1
  152. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bitstr.c → a_bitstr.cc} +3 -2
  153. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_d2i_fp.c → a_d2i_fp.cc} +1 -1
  154. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_dup.c → a_dup.cc} +1 -1
  155. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_i2d_fp.c → a_i2d_fp.cc} +1 -1
  156. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_int.c → a_int.cc} +2 -1
  157. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_mbstr.c → a_mbstr.cc} +9 -7
  158. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_object.c → a_object.cc} +1 -1
  159. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strnid.c → a_strnid.cc} +7 -4
  160. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_type.c → a_type.cc} +4 -4
  161. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_lib.c → asn1_lib.cc} +4 -4
  162. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn_pack.c → asn_pack.cc} +2 -2
  163. data/third_party/boringssl-with-bazel/src/crypto/asn1/{posix_time.c → posix_time.cc} +2 -2
  164. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_dec.c → tasn_dec.cc} +4 -3
  165. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_enc.c → tasn_enc.cc} +9 -6
  166. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_fre.c → tasn_fre.cc} +14 -20
  167. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_new.c → tasn_new.cc} +7 -6
  168. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_utl.c → tasn_utl.cc} +13 -10
  169. data/third_party/boringssl-with-bazel/src/crypto/base64/{base64.c → base64.cc} +9 -12
  170. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +7 -1
  171. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio.c → bio.cc} +32 -58
  172. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio_mem.c → bio_mem.cc} +8 -7
  173. data/third_party/boringssl-with-bazel/src/crypto/bio/{connect.c → connect.cc} +24 -16
  174. data/third_party/boringssl-with-bazel/src/crypto/bio/{file.c → file.cc} +3 -3
  175. data/third_party/boringssl-with-bazel/src/crypto/bio/{pair.c → pair.cc} +22 -20
  176. data/third_party/boringssl-with-bazel/src/crypto/bio/{printf.c → printf.cc} +2 -2
  177. data/third_party/boringssl-with-bazel/src/crypto/bio/{socket_helper.c → socket_helper.cc} +1 -1
  178. data/third_party/boringssl-with-bazel/src/crypto/blake2/{blake2.c → blake2.cc} +2 -2
  179. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{bn_asn1.c → bn_asn1.cc} +1 -1
  180. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{convert.c → convert.cc} +21 -21
  181. data/third_party/boringssl-with-bazel/src/crypto/buf/{buf.c → buf.cc} +6 -3
  182. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{asn1_compat.c → asn1_compat.cc} +1 -1
  183. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{ber.c → ber.cc} +1 -1
  184. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbb.c → cbb.cc} +33 -49
  185. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbs.c → cbs.cc} +20 -27
  186. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +1 -1
  187. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{unicode.c → unicode.cc} +1 -1
  188. data/third_party/boringssl-with-bazel/src/crypto/chacha/{chacha.c → chacha.cc} +1 -1
  189. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +1 -1
  190. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesctrhmac.c → e_aesctrhmac.cc} +1 -1
  191. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesgcmsiv.c → e_aesgcmsiv.cc} +23 -26
  192. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_chacha20poly1305.c → e_chacha20poly1305.cc} +1 -8
  193. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_des.c → e_des.cc} +61 -49
  194. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_null.c → e_null.cc} +12 -9
  195. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc2.c → e_rc2.cc} +23 -19
  196. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc4.c → e_rc4.cc} +10 -8
  197. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_tls.c → e_tls.cc} +2 -1
  198. data/third_party/boringssl-with-bazel/src/crypto/conf/{conf.c → conf.cc} +17 -14
  199. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +1 -1
  200. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_apple.c → cpu_aarch64_apple.cc} +2 -2
  201. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_fuchsia.c → cpu_aarch64_fuchsia.cc} +2 -2
  202. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_linux.c → cpu_aarch64_linux.cc} +2 -2
  203. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_openbsd.c → cpu_aarch64_openbsd.cc} +4 -4
  204. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_sysreg.c → cpu_aarch64_sysreg.cc} +3 -2
  205. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_win.c → cpu_aarch64_win.cc} +2 -2
  206. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_freebsd.c → cpu_arm_freebsd.cc} +3 -3
  207. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_linux.c → cpu_arm_linux.cc} +5 -5
  208. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +1 -1
  209. data/third_party/boringssl-with-bazel/src/crypto/{cpu_intel.c → cpu_intel.cc} +47 -32
  210. data/third_party/boringssl-with-bazel/src/crypto/{crypto.c → crypto.cc} +6 -11
  211. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519.c → curve25519.cc} +28 -31
  212. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519_64_adx.c → curve25519_64_adx.cc} +1 -1
  213. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +1 -1
  214. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  215. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{spake25519.c → spake25519.cc} +20 -16
  216. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{dh_asn1.c → dh_asn1.cc} +2 -2
  217. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/{digest_extra.c → digest_extra.cc} +113 -31
  218. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa.c → dsa.cc} +153 -154
  219. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa_asn1.c → dsa_asn1.cc} +2 -2
  220. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +1 -3
  221. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_asn1.c → ec_asn1.cc} +35 -0
  222. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_derive.c → ec_derive.cc} +1 -1
  223. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{hash_to_curve.c → hash_to_curve.cc} +66 -64
  224. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +1 -1
  225. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/{ecdsa_asn1.c → ecdsa_asn1.cc} +15 -25
  226. data/third_party/boringssl-with-bazel/src/crypto/engine/{engine.c → engine.cc} +12 -8
  227. data/third_party/boringssl-with-bazel/src/crypto/err/{err.c → err.cc} +24 -27
  228. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +1 -1
  229. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp.c → evp.cc} +8 -9
  230. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_ctx.c → evp_ctx.cc} +7 -8
  231. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh.c → p_dh.cc} +23 -14
  232. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh_asn1.c → p_dh_asn1.cc} +38 -21
  233. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dsa_asn1.c → p_dsa_asn1.cc} +19 -24
  234. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec.c → p_ec.cc} +20 -23
  235. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec_asn1.c → p_ec_asn1.cc} +20 -20
  236. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519.c → p_ed25519.cc} +22 -19
  237. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519_asn1.c → p_ed25519_asn1.cc} +14 -13
  238. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_hkdf.c → p_hkdf.cc} +18 -14
  239. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa.c → p_rsa.cc} +38 -37
  240. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa_asn1.c → p_rsa_asn1.cc} +16 -18
  241. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519.c → p_x25519.cc} +22 -19
  242. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519_asn1.c → p_x25519_asn1.cc} +18 -17
  243. data/third_party/boringssl-with-bazel/src/crypto/evp/{pbkdf.c → pbkdf.cc} +2 -2
  244. data/third_party/boringssl-with-bazel/src/crypto/evp/{print.c → print.cc} +4 -5
  245. data/third_party/boringssl-with-bazel/src/crypto/evp/{scrypt.c → scrypt.cc} +7 -5
  246. data/third_party/boringssl-with-bazel/src/crypto/{ex_data.c → ex_data.cc} +3 -4
  247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c.inc → aes_nohw.cc.inc} +1 -1
  248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +1 -5
  249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c.inc → key_wrap.cc.inc} +1 -1
  250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{bcm.c → bcm.cc} +96 -101
  251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +165 -12
  252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c.inc → add.cc.inc} +1 -0
  253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c.inc → x86_64-gcc.cc.inc} +4 -4
  254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c.inc → bn.cc.inc} +12 -24
  255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c.inc → ctx.cc.inc} +5 -7
  256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c.inc → div.cc.inc} +29 -38
  257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c.inc → div_extra.cc.inc} +1 -1
  258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c.inc → exponentiation.cc.inc} +22 -22
  259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c.inc → gcd.cc.inc} +3 -6
  260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c.inc → gcd_extra.cc.inc} +33 -25
  261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c.inc → montgomery.cc.inc} +10 -17
  262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c.inc → mul.cc.inc} +11 -15
  263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c.inc → prime.cc.inc} +31 -34
  264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c.inc → shift.cc.inc} +3 -4
  265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c.inc → aead.cc.inc} +18 -10
  266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c.inc → cipher.cc.inc} +6 -9
  267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c.inc → e_aes.cc.inc} +46 -54
  268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c.inc → cmac.cc.inc} +6 -6
  269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +14 -10
  270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c.inc → dh.cc.inc} +15 -19
  271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +1 -3
  272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c.inc → digest.cc.inc} +17 -13
  273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c.inc → digests.cc.inc} +29 -113
  274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c.inc → digestsign.cc.inc} +3 -3
  275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +1 -1
  276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c.inc → ec.cc.inc} +10 -15
  277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c.inc → ec_key.cc.inc} +12 -14
  278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c.inc → felem.cc.inc} +1 -1
  279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c.inc → oct.cc.inc} +5 -6
  280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c.inc → p224-64.cc.inc} +1 -1
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +1 -1
  282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c.inc → p256-nistz.cc.inc} +15 -13
  283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c.inc → p256.cc.inc} +1 -1
  284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c.inc → scalar.cc.inc} +1 -1
  286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c.inc → simple_mul.cc.inc} +1 -1
  287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c.inc → util.cc.inc} +1 -1
  288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c.inc → wnaf.cc.inc} +24 -15
  289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c.inc → ecdh.cc.inc} +14 -5
  290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c.inc → ecdsa.cc.inc} +6 -7
  291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +1 -1
  292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{fips_shared_support.c → fips_shared_support.cc} +2 -3
  293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c.inc → hkdf.cc.inc} +1 -1
  294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c.inc → hmac.cc.inc} +3 -2
  295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c.inc → gcm.cc.inc} +69 -21
  296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c.inc → gcm_nohw.cc.inc} +1 -1
  297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +53 -33
  298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c.inc → polyval.cc.inc} +2 -3
  299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c.inc → ctrdrbg.cc.inc} +5 -4
  300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -1
  301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c.inc → rand.cc.inc} +20 -18
  302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c.inc → blinding.cc.inc} +5 -4
  303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c.inc → padding.cc.inc} +21 -21
  304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c.inc → rsa.cc.inc} +77 -73
  305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c.inc → rsa_impl.cc.inc} +50 -53
  306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c.inc → fips.cc.inc} +14 -6
  307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c.inc → self_check.cc.inc} +56 -52
  308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c.inc → service_indicator.cc.inc} +10 -11
  309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +2 -4
  310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c.inc → sha1.cc.inc} +26 -33
  311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c.inc → sha256.cc.inc} +37 -55
  312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c.inc → sha512.cc.inc} +48 -76
  313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +1 -1
  314. data/third_party/boringssl-with-bazel/src/crypto/hpke/{hpke.c → hpke.cc} +7 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/hrss/{hrss.c → hrss.cc} +53 -110
  316. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +1 -1
  317. data/third_party/boringssl-with-bazel/src/crypto/internal.h +191 -248
  318. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +1 -1
  319. data/third_party/boringssl-with-bazel/src/crypto/keccak/{keccak.c → keccak.cc} +1 -1
  320. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
  321. data/third_party/boringssl-with-bazel/src/crypto/kyber/{kyber.c → kyber.cc} +1 -1
  322. data/third_party/boringssl-with-bazel/src/crypto/lhash/{lhash.c → lhash.cc} +8 -7
  323. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md4/md4.c.inc → md4/md4.cc} +8 -12
  324. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5 → md5}/internal.h +1 -1
  325. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5/md5.c.inc → md5/md5.cc} +4 -3
  326. data/third_party/boringssl-with-bazel/src/crypto/{mem.c → mem.cc} +34 -22
  327. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +4 -1
  328. data/third_party/boringssl-with-bazel/src/crypto/mldsa/{mldsa.c → mldsa.cc} +646 -543
  329. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +1 -1
  330. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +8 -8
  331. data/third_party/boringssl-with-bazel/src/crypto/obj/{obj.c → obj.cc} +27 -30
  332. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_info.c → pem_info.cc} +2 -2
  333. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_lib.c → pem_lib.cc} +3 -4
  334. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_oth.c → pem_oth.cc} +1 -1
  335. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +1 -1
  336. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7.c → pkcs7.cc} +5 -5
  337. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7_x509.c → pkcs7_x509.cc} +26 -25
  338. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +2 -2
  339. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{p5_pbev2.c → p5_pbev2.cc} +2 -2
  340. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8.c → pkcs8.cc} +159 -158
  341. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8_x509.c → pkcs8_x509.cc} +90 -97
  342. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +1 -1
  343. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305.c → poly1305.cc} +3 -3
  344. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_arm.c → poly1305_arm.cc} +4 -2
  345. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_vec.c → poly1305_vec.cc} +14 -11
  346. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -1
  347. data/third_party/boringssl-with-bazel/src/crypto/pool/{pool.c → pool.cc} +12 -11
  348. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{deterministic.c → deterministic.cc} +2 -2
  349. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fork_detect.c → fork_detect.cc} +11 -12
  350. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{forkunsafe.c → forkunsafe.cc} +2 -2
  351. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{getentropy.c → getentropy.cc} +1 -1
  352. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h +1 -1
  353. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{ios.c → ios.cc} +1 -1
  354. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{passive.c → passive.cc} +22 -18
  355. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{rand_extra.c → rand_extra.cc} +1 -1
  356. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +1 -1
  357. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{trusty.c → trusty.cc} +1 -1
  358. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{urandom.c → urandom.cc} +7 -7
  359. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{windows.c → windows.cc} +1 -1
  360. data/third_party/boringssl-with-bazel/src/crypto/{refcount.c → refcount.cc} +1 -1
  361. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_asn1.c → rsa_asn1.cc} +2 -2
  362. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_crypt.c → rsa_crypt.cc} +81 -78
  363. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_extra.cc +17 -0
  364. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  365. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  367. data/third_party/boringssl-with-bazel/src/crypto/siphash/{siphash.c → siphash.cc} +1 -1
  368. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/address.h +123 -0
  369. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.cc +169 -0
  370. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.h +58 -0
  371. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/internal.h +63 -0
  372. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.cc +161 -0
  373. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.h +70 -0
  374. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/params.h +83 -0
  375. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +307 -0
  376. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.cc +173 -0
  377. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.h +85 -0
  378. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.cc +171 -0
  379. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.h +50 -0
  380. data/third_party/boringssl-with-bazel/src/crypto/stack/{stack.c → stack.cc} +10 -6
  381. data/third_party/boringssl-with-bazel/src/crypto/{thread_none.c → thread_none.cc} +1 -1
  382. data/third_party/boringssl-with-bazel/src/crypto/{thread_pthread.c → thread_pthread.cc} +9 -8
  383. data/third_party/boringssl-with-bazel/src/crypto/{thread_win.c → thread_win.cc} +21 -17
  384. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +1 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{pmbtoken.c → pmbtoken.cc} +146 -158
  386. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{trust_token.c → trust_token.cc} +19 -21
  387. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{voprf.c → voprf.cc} +165 -169
  388. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_digest.c → a_digest.cc} +1 -1
  389. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_sign.c → a_sign.cc} +37 -34
  390. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_verify.c → a_verify.cc} +1 -1
  391. data/third_party/boringssl-with-bazel/src/crypto/x509/{algorithm.c → algorithm.cc} +1 -1
  392. data/third_party/boringssl-with-bazel/src/crypto/x509/{asn1_gen.c → asn1_gen.cc} +5 -6
  393. data/third_party/boringssl-with-bazel/src/crypto/x509/{by_dir.c → by_dir.cc} +7 -6
  394. data/third_party/boringssl-with-bazel/src/crypto/x509/{policy.c → policy.cc} +188 -178
  395. data/third_party/boringssl-with-bazel/src/crypto/x509/{rsa_pss.c → rsa_pss.cc} +48 -44
  396. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akey.c → v3_akey.cc} +4 -2
  397. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_alt.c → v3_alt.cc} +5 -5
  398. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bcons.c → v3_bcons.cc} +3 -1
  399. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bitst.c → v3_bitst.cc} +6 -3
  400. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_conf.c → v3_conf.cc} +5 -5
  401. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_cpols.c → v3_cpols.cc} +47 -41
  402. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_crld.c → v3_crld.cc} +3 -2
  403. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_enum.c → v3_enum.cc} +5 -2
  404. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_extku.c → v3_extku.cc} +3 -1
  405. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_genn.c → v3_genn.cc} +7 -7
  406. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ia5.c → v3_ia5.cc} +3 -2
  407. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_info.c → v3_info.cc} +4 -2
  408. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_int.c → v3_int.cc} +3 -1
  409. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_lib.c → v3_lib.cc} +9 -6
  410. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ncons.c → v3_ncons.cc} +3 -3
  411. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ocsp.c → v3_ocsp.cc} +4 -1
  412. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pcons.c → v3_pcons.cc} +3 -3
  413. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pmaps.c → v3_pmaps.cc} +3 -3
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_prn.c → v3_prn.cc} +2 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_purp.c → v3_purp.cc} +16 -8
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_skey.c → v3_skey.cc} +6 -3
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_utl.c → v3_utl.cc} +15 -10
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_att.c → x509_att.cc} +3 -2
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_lu.c → x509_lu.cc} +6 -5
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_v3.c → x509_v3.cc} +2 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vfy.c → x509_vfy.cc} +216 -212
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vpm.c → x509_vpm.cc} +55 -13
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509spki.c → x509spki.cc} +3 -3
  424. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_all.c → x_all.cc} +10 -6
  425. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_crl.c → x_crl.cc} +6 -6
  426. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_name.c → x_name.cc} +39 -32
  427. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_pubkey.c → x_pubkey.cc} +4 -2
  428. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509.c → x_x509.cc} +48 -44
  429. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509a.c → x_x509a.cc} +4 -2
  430. data/third_party/boringssl-with-bazel/src/gen/crypto/{err_data.c → err_data.cc} +359 -358
  431. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -1
  432. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +1 -1
  433. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +1 -1
  434. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +237 -275
  435. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +12 -5
  436. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  437. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
  438. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +1 -1
  439. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -1
  440. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  441. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
  442. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +1 -1
  443. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +13 -2
  444. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
  445. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
  446. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -0
  447. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -1
  448. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  449. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +1 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
  451. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +17 -1
  452. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
  453. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
  454. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
  455. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
  456. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  457. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
  458. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +1 -1
  459. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +8 -8
  461. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
  462. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
  463. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +1 -1
  464. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -1
  465. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +1 -1
  466. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +1 -1
  467. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +1 -1
  468. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
  469. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +2 -2
  470. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
  471. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
  472. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
  473. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +1 -1
  474. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +10 -5
  475. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +1 -1
  476. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +2 -40
  477. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
  478. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +133 -0
  479. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +6 -1
  480. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +1 -1
  481. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +160 -116
  482. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -0
  483. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +1 -1
  484. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +2 -2
  485. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +1 -1
  486. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
  487. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -1
  488. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -1
  489. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +2 -2
  490. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -6
  491. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +667 -322
  492. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +116 -119
  493. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +163 -21
  494. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +4 -12
  495. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +94 -49
  496. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +296 -198
  497. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +23 -14
  498. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +363 -343
  499. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +48 -58
  500. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +44 -36
  501. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +145 -159
  502. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +65 -58
  503. data/third_party/boringssl-with-bazel/src/ssl/internal.h +910 -356
  504. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +29 -41
  505. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +13 -11
  506. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +2 -2
  507. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +90 -183
  508. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +38 -64
  509. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -1
  510. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +103 -44
  511. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +210 -220
  512. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +70 -12
  513. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +20 -17
  514. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +146 -169
  515. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +15 -16
  516. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +79 -95
  517. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -9
  518. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +91 -16
  519. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +30 -16
  520. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +51 -56
  521. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +22 -25
  522. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +43 -27
  523. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +63 -59
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +204 -121
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +86 -59
  526. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +51 -62
  527. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +37 -25
  528. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  529. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  530. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  531. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  532. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  533. metadata +339 -339
  534. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -426
  535. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -87
  536. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -32
  537. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -408
  538. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -124
  539. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -38
  540. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -108
  541. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -33
  542. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  543. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -48
  544. data/src/core/util/atm.cc +0 -34
  545. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +0 -1539
  546. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +0 -58
  547. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  548. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  549. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  550. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  551. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  552. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  553. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  554. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -140
  555. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  556. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  557. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  558. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  559. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  560. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  561. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +0 -129
  562. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.h +0 -90
  563. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bool.c → a_bool.cc} +0 -0
  564. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_gentm.c → a_gentm.cc} +0 -0
  565. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_octet.c → a_octet.cc} +0 -0
  566. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strex.c → a_strex.cc} +0 -0
  567. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_time.c → a_time.cc} +0 -0
  568. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_utctm.c → a_utctm.cc} +0 -0
  569. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_par.c → asn1_par.cc} +0 -0
  570. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_int.c → f_int.cc} +0 -0
  571. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_string.c → f_string.cc} +0 -0
  572. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_typ.c → tasn_typ.cc} +0 -0
  573. /data/third_party/boringssl-with-bazel/src/crypto/bio/{errno.c → errno.cc} +0 -0
  574. /data/third_party/boringssl-with-bazel/src/crypto/bio/{fd.c → fd.cc} +0 -0
  575. /data/third_party/boringssl-with-bazel/src/crypto/bio/{hexdump.c → hexdump.cc} +0 -0
  576. /data/third_party/boringssl-with-bazel/src/crypto/bio/{socket.c → socket.cc} +0 -0
  577. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{cipher_extra.c → cipher_extra.cc} +0 -0
  578. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{derive_key.c → derive_key.cc} +0 -0
  579. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{tls_cbc.c → tls_cbc.cc} +0 -0
  580. /data/third_party/boringssl-with-bazel/src/crypto/des/{des.c → des.cc} +0 -0
  581. /data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{params.c → params.cc} +0 -0
  582. /data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/{ecdh_extra.c → ecdh_extra.cc} +0 -0
  583. /data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_asn1.c → evp_asn1.cc} +0 -0
  584. /data/third_party/boringssl-with-bazel/src/crypto/evp/{sign.c → sign.cc} +0 -0
  585. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c.inc → aes.cc.inc} +0 -0
  586. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c.inc → mode_wrappers.cc.inc} +0 -0
  587. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c.inc → bytes.cc.inc} +0 -0
  588. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c.inc → cmp.cc.inc} +0 -0
  589. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c.inc → generic.cc.inc} +0 -0
  590. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c.inc → jacobi.cc.inc} +0 -0
  591. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c.inc → montgomery_inv.cc.inc} +0 -0
  592. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c.inc → random.cc.inc} +0 -0
  593. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c.inc → rsaz_exp.cc.inc} +0 -0
  594. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c.inc → sqrt.cc.inc} +0 -0
  595. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c.inc → e_aesccm.cc.inc} +0 -0
  596. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c.inc → check.cc.inc} +0 -0
  597. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c.inc → ec_montgomery.cc.inc} +0 -0
  598. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c.inc → simple.cc.inc} +0 -0
  599. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c.inc → cbc.cc.inc} +0 -0
  600. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c.inc → cfb.cc.inc} +0 -0
  601. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c.inc → ctr.cc.inc} +0 -0
  602. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c.inc → ofb.cc.inc} +0 -0
  603. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c.inc → kdf.cc.inc} +0 -0
  604. /data/third_party/boringssl-with-bazel/src/crypto/obj/{obj_xref.c → obj_xref.cc} +0 -0
  605. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_all.c → pem_all.cc} +0 -0
  606. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pk8.c → pem_pk8.cc} +0 -0
  607. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pkey.c → pem_pkey.cc} +0 -0
  608. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_x509.c → pem_x509.cc} +0 -0
  609. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_xaux.c → pem_xaux.cc} +0 -0
  610. /data/third_party/boringssl-with-bazel/src/crypto/rc4/{rc4.c → rc4.cc} +0 -0
  611. /data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_print.c → rsa_print.cc} +0 -0
  612. /data/third_party/boringssl-with-bazel/src/crypto/{thread.c → thread.cc} +0 -0
  613. /data/third_party/boringssl-with-bazel/src/crypto/x509/{by_file.c → by_file.cc} +0 -0
  614. /data/third_party/boringssl-with-bazel/src/crypto/x509/{i2d_pr.c → i2d_pr.cc} +0 -0
  615. /data/third_party/boringssl-with-bazel/src/crypto/x509/{name_print.c → name_print.cc} +0 -0
  616. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_crl.c → t_crl.cc} +0 -0
  617. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_req.c → t_req.cc} +0 -0
  618. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509.c → t_x509.cc} +0 -0
  619. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509a.c → t_x509a.cc} +0 -0
  620. /data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akeya.c → v3_akeya.cc} +0 -0
  621. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509.c → x509.cc} +0 -0
  622. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_cmp.c → x509_cmp.cc} +0 -0
  623. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_d2.c → x509_d2.cc} +0 -0
  624. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_def.c → x509_def.cc} +0 -0
  625. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_ext.c → x509_ext.cc} +0 -0
  626. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_obj.c → x509_obj.cc} +0 -0
  627. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_req.c → x509_req.cc} +0 -0
  628. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_set.c → x509_set.cc} +0 -0
  629. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_trs.c → x509_trs.cc} +0 -0
  630. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_txt.c → x509_txt.cc} +0 -0
  631. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509cset.c → x509cset.cc} +0 -0
  632. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509name.c → x509name.cc} +0 -0
  633. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509rset.c → x509rset.cc} +0 -0
  634. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_algor.c → x_algor.cc} +0 -0
  635. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_attrib.c → x_attrib.cc} +0 -0
  636. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_exten.c → x_exten.cc} +0 -0
  637. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_req.c → x_req.cc} +0 -0
  638. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_sig.c → x_sig.cc} +0 -0
  639. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_spki.c → x_spki.cc} +0 -0
  640. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_val.c → x_val.cc} +0 -0
@@ -79,10 +79,8 @@ int rsa_check_public_key(const RSA *rsa) {
79
79
  return 0;
80
80
  }
81
81
 
82
- // TODO(davidben): 16384-bit RSA is huge. Can we bring this down to a limit of
83
- // 8192-bit?
84
82
  unsigned n_bits = BN_num_bits(rsa->n);
85
- if (n_bits > 16 * 1024) {
83
+ if (n_bits > OPENSSL_RSA_MAX_MODULUS_BITS) {
86
84
  OPENSSL_PUT_ERROR(RSA, RSA_R_MODULUS_TOO_LARGE);
87
85
  return 0;
88
86
  }
@@ -149,8 +147,7 @@ static int ensure_fixed_copy(BIGNUM **out, const BIGNUM *in, int width) {
149
147
  return 1;
150
148
  }
151
149
  BIGNUM *copy = BN_dup(in);
152
- if (copy == NULL ||
153
- !bn_resize_words(copy, width)) {
150
+ if (copy == NULL || !bn_resize_words(copy, width)) {
154
151
  BN_free(copy);
155
152
  return 0;
156
153
  }
@@ -173,6 +170,7 @@ static int freeze_private_key(RSA *rsa, BN_CTX *ctx) {
173
170
  }
174
171
 
175
172
  int ret = 0;
173
+ const BIGNUM *n_fixed;
176
174
  CRYPTO_MUTEX_lock_write(&rsa->lock);
177
175
  if (rsa->private_key_frozen) {
178
176
  ret = 1;
@@ -196,7 +194,7 @@ static int freeze_private_key(RSA *rsa, BN_CTX *ctx) {
196
194
  goto err;
197
195
  }
198
196
  }
199
- const BIGNUM *n_fixed = &rsa->mont_n->N;
197
+ n_fixed = &rsa->mont_n->N;
200
198
 
201
199
  // The only public upper-bound of |rsa->d| is the bit length of |rsa->n|. The
202
200
  // ASN.1 serialization of RSA private keys unfortunately leaks the byte length
@@ -233,9 +231,8 @@ static int freeze_private_key(RSA *rsa, BN_CTX *ctx) {
233
231
  // Key generation relies on this function to compute |iqmp|.
234
232
  if (rsa->iqmp == NULL) {
235
233
  BIGNUM *iqmp = BN_new();
236
- if (iqmp == NULL ||
237
- !bn_mod_inverse_secret_prime(iqmp, rsa->q, rsa->p, ctx,
238
- rsa->mont_p)) {
234
+ if (iqmp == NULL || !bn_mod_inverse_secret_prime(iqmp, rsa->q, rsa->p,
235
+ ctx, rsa->mont_p)) {
239
236
  BN_free(iqmp);
240
237
  goto err;
241
238
  }
@@ -302,9 +299,7 @@ void rsa_invalidate_key(RSA *rsa) {
302
299
  rsa->blinding_fork_generation = 0;
303
300
  }
304
301
 
305
- size_t rsa_default_size(const RSA *rsa) {
306
- return BN_num_bytes(rsa->n);
307
- }
302
+ size_t rsa_default_size(const RSA *rsa) { return BN_num_bytes(rsa->n); }
308
303
 
309
304
  // MAX_BLINDINGS_PER_RSA defines the maximum number of cached BN_BLINDINGs per
310
305
  // RSA*. Then this limit is exceeded, BN_BLINDING objects will be created and
@@ -344,8 +339,11 @@ static BN_BLINDING *rsa_blinding_get(RSA *rsa, size_t *index_used,
344
339
  rsa->blinding_fork_generation = fork_generation;
345
340
  }
346
341
 
347
- uint8_t *const free_inuse_flag =
348
- OPENSSL_memchr(rsa->blindings_inuse, 0, rsa->num_blindings);
342
+ uint8_t *const free_inuse_flag = reinterpret_cast<uint8_t *>(
343
+ OPENSSL_memchr(rsa->blindings_inuse, 0, rsa->num_blindings));
344
+ size_t new_num_blindings;
345
+ BN_BLINDING **new_blindings;
346
+ uint8_t *new_blindings_inuse;
349
347
  if (free_inuse_flag != NULL) {
350
348
  *free_inuse_flag = 1;
351
349
  *index_used = free_inuse_flag - rsa->blindings_inuse;
@@ -365,7 +363,7 @@ static BN_BLINDING *rsa_blinding_get(RSA *rsa, size_t *index_used,
365
363
  // Double the length of the cache.
366
364
  static_assert(MAX_BLINDINGS_PER_RSA < UINT_MAX / 2,
367
365
  "MAX_BLINDINGS_PER_RSA too large");
368
- size_t new_num_blindings = rsa->num_blindings * 2;
366
+ new_num_blindings = rsa->num_blindings * 2;
369
367
  if (new_num_blindings == 0) {
370
368
  new_num_blindings = 1;
371
369
  }
@@ -374,9 +372,10 @@ static BN_BLINDING *rsa_blinding_get(RSA *rsa, size_t *index_used,
374
372
  }
375
373
  assert(new_num_blindings > rsa->num_blindings);
376
374
 
377
- BN_BLINDING **new_blindings =
378
- OPENSSL_calloc(new_num_blindings, sizeof(BN_BLINDING *));
379
- uint8_t *new_blindings_inuse = OPENSSL_malloc(new_num_blindings);
375
+ new_blindings = reinterpret_cast<BN_BLINDING **>(
376
+ OPENSSL_calloc(new_num_blindings, sizeof(BN_BLINDING *)));
377
+ new_blindings_inuse =
378
+ reinterpret_cast<uint8_t *>(OPENSSL_malloc(new_num_blindings));
380
379
  if (new_blindings == NULL || new_blindings_inuse == NULL) {
381
380
  goto err;
382
381
  }
@@ -447,7 +446,7 @@ int rsa_default_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out,
447
446
  return 0;
448
447
  }
449
448
 
450
- buf = OPENSSL_malloc(rsa_size);
449
+ buf = reinterpret_cast<uint8_t *>(OPENSSL_malloc(rsa_size));
451
450
  if (buf == NULL) {
452
451
  goto err;
453
452
  }
@@ -529,7 +528,7 @@ int rsa_verify_raw_no_self_test(RSA *rsa, size_t *out_len, uint8_t *out,
529
528
  buf = out;
530
529
  } else {
531
530
  // Allocate a temporary buffer to hold the padded plaintext.
532
- buf = OPENSSL_malloc(rsa_size);
531
+ buf = reinterpret_cast<uint8_t *>(OPENSSL_malloc(rsa_size));
533
532
  if (buf == NULL) {
534
533
  goto err;
535
534
  }
@@ -582,9 +581,8 @@ err:
582
581
  return ret;
583
582
  }
584
583
 
585
- int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
586
- size_t max_out, const uint8_t *in,
587
- size_t in_len, int padding) {
584
+ int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
585
+ const uint8_t *in, size_t in_len, int padding) {
588
586
  boringssl_ensure_rsa_self_test();
589
587
  return rsa_verify_raw_no_self_test(rsa, out_len, out, max_out, in, in_len,
590
588
  padding);
@@ -601,7 +599,7 @@ int rsa_default_private_transform(RSA *rsa, uint8_t *out, const uint8_t *in,
601
599
  BN_CTX *ctx = NULL;
602
600
  size_t blinding_index = 0;
603
601
  BN_BLINDING *blinding = NULL;
604
- int ret = 0;
602
+ int ret = 0, do_blinding;
605
603
 
606
604
  ctx = BN_CTX_new();
607
605
  if (ctx == NULL) {
@@ -634,7 +632,7 @@ int rsa_default_private_transform(RSA *rsa, uint8_t *out, const uint8_t *in,
634
632
  goto err;
635
633
  }
636
634
 
637
- const int do_blinding =
635
+ do_blinding =
638
636
  (rsa->flags & (RSA_FLAG_NO_BLINDING | RSA_FLAG_NO_PUBLIC_EXPONENT)) == 0;
639
637
 
640
638
  if (rsa->e == NULL && do_blinding) {
@@ -697,8 +695,7 @@ int rsa_default_private_transform(RSA *rsa, uint8_t *out, const uint8_t *in,
697
695
  }
698
696
  }
699
697
 
700
- if (do_blinding &&
701
- !BN_BLINDING_invert(result, blinding, rsa->mont_n, ctx)) {
698
+ if (do_blinding && !BN_BLINDING_invert(result, blinding, rsa->mont_n, ctx)) {
702
699
  goto err;
703
700
  }
704
701
 
@@ -741,7 +738,7 @@ static int mod_montgomery(BIGNUM *r, const BIGNUM *I, const BIGNUM *p,
741
738
  return 0;
742
739
  }
743
740
 
744
- if (// Reduce mod p with Montgomery reduction. This computes I * R^-1 mod p.
741
+ if ( // Reduce mod p with Montgomery reduction. This computes I * R^-1 mod p.
745
742
  !BN_from_montgomery(r, I, mont_p, ctx) ||
746
743
  // Multiply by R^2 and do another Montgomery reduction to compute
747
744
  // I * R^-1 * R^2 * R^-1 = I mod p.
@@ -777,8 +774,8 @@ static int mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) {
777
774
  BN_CTX_start(ctx);
778
775
  r1 = BN_CTX_get(ctx);
779
776
  m1 = BN_CTX_get(ctx);
780
- if (r1 == NULL ||
781
- m1 == NULL) {
777
+ BIGNUM *n, *p, *q;
778
+ if (r1 == NULL || m1 == NULL) {
782
779
  goto err;
783
780
  }
784
781
 
@@ -789,15 +786,15 @@ static int mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) {
789
786
  // Use the minimal-width versions of |n|, |p|, and |q|. Either works, but if
790
787
  // someone gives us non-minimal values, these will be slightly more efficient
791
788
  // on the non-Montgomery operations.
792
- const BIGNUM *n = &rsa->mont_n->N;
793
- const BIGNUM *p = &rsa->mont_p->N;
794
- const BIGNUM *q = &rsa->mont_q->N;
789
+ n = &rsa->mont_n->N;
790
+ p = &rsa->mont_p->N;
791
+ q = &rsa->mont_q->N;
795
792
 
796
793
  // This is a pre-condition for |mod_montgomery|. It was already checked by the
797
794
  // caller.
798
795
  declassify_assert(BN_ucmp(I, n) < 0);
799
796
 
800
- if (// |m1| is the result modulo |q|.
797
+ if ( // |m1| is the result modulo |q|.
801
798
  !mod_montgomery(r1, I, q, rsa->mont_q, p, ctx) ||
802
799
  !BN_mod_exp_mont_consttime(m1, r1, rsa->dmq1_fixed, q, ctx,
803
800
  rsa->mont_q) ||
@@ -883,10 +880,12 @@ static int ensure_bignum(BIGNUM **out) {
883
880
  // then []
884
881
  // else let (high, low) = divrem 64 x in low : bnWords high
885
882
  //
886
- // showWord x = let (high, low) = divrem 32 x in printf "TOBN(0x%08x, 0x%08x)" high low
883
+ // showWord x = let (high, low) = divrem 32 x in printf "TOBN(0x%08x, 0x%08x)"
884
+ // high low
887
885
  //
888
886
  // output :: String
889
- // output = intercalate ", " $ map showWord $ bnWords $ converge (2 ^ (pow2 `div` 2))
887
+ // output = intercalate ", " $ map showWord $ bnWords $ converge (2 ^ (pow2
888
+ // `div` 2))
890
889
  //
891
890
  // To verify this number, check that n² < 2⁴⁰⁹⁵ < (n+1)², where n is value
892
891
  // represented here. Note the components are listed in little-endian order. Here
@@ -964,7 +963,7 @@ static int generate_prime(BIGNUM *out, int bits, const BIGNUM *e,
964
963
  // 22.21518251065506
965
964
  // >>> f(2048, 3, 8*2048)
966
965
  // 22.211701985875937
967
- if (bits >= INT_MAX/32) {
966
+ if (bits >= INT_MAX / 32) {
968
967
  OPENSSL_PUT_ERROR(RSA, RSA_R_MODULUS_TOO_LARGE);
969
968
  return 0;
970
969
  }
@@ -1088,16 +1087,18 @@ static int rsa_generate_key_impl(RSA *rsa, int bits, const BIGNUM *e_value,
1088
1087
  int ret = 0;
1089
1088
  int prime_bits = bits / 2;
1090
1089
  BN_CTX *ctx = BN_CTX_new();
1090
+ BIGNUM *totient, *pm1, *qm1, *sqrt2, *pow2_prime_bits_100, *pow2_prime_bits;
1091
+ int sqrt2_bits;
1091
1092
  if (ctx == NULL) {
1092
1093
  goto bn_err;
1093
1094
  }
1094
1095
  BN_CTX_start(ctx);
1095
- BIGNUM *totient = BN_CTX_get(ctx);
1096
- BIGNUM *pm1 = BN_CTX_get(ctx);
1097
- BIGNUM *qm1 = BN_CTX_get(ctx);
1098
- BIGNUM *sqrt2 = BN_CTX_get(ctx);
1099
- BIGNUM *pow2_prime_bits_100 = BN_CTX_get(ctx);
1100
- BIGNUM *pow2_prime_bits = BN_CTX_get(ctx);
1096
+ totient = BN_CTX_get(ctx);
1097
+ pm1 = BN_CTX_get(ctx);
1098
+ qm1 = BN_CTX_get(ctx);
1099
+ sqrt2 = BN_CTX_get(ctx);
1100
+ pow2_prime_bits_100 = BN_CTX_get(ctx);
1101
+ pow2_prime_bits = BN_CTX_get(ctx);
1101
1102
  if (totient == NULL || pm1 == NULL || qm1 == NULL || sqrt2 == NULL ||
1102
1103
  pow2_prime_bits_100 == NULL || pow2_prime_bits == NULL ||
1103
1104
  !BN_set_bit(pow2_prime_bits_100, prime_bits - 100) ||
@@ -1106,12 +1107,9 @@ static int rsa_generate_key_impl(RSA *rsa, int bits, const BIGNUM *e_value,
1106
1107
  }
1107
1108
 
1108
1109
  // We need the RSA components non-NULL.
1109
- if (!ensure_bignum(&rsa->n) ||
1110
- !ensure_bignum(&rsa->d) ||
1111
- !ensure_bignum(&rsa->e) ||
1112
- !ensure_bignum(&rsa->p) ||
1113
- !ensure_bignum(&rsa->q) ||
1114
- !ensure_bignum(&rsa->dmp1) ||
1110
+ if (!ensure_bignum(&rsa->n) || !ensure_bignum(&rsa->d) ||
1111
+ !ensure_bignum(&rsa->e) || !ensure_bignum(&rsa->p) ||
1112
+ !ensure_bignum(&rsa->q) || !ensure_bignum(&rsa->dmp1) ||
1115
1113
  !ensure_bignum(&rsa->dmq1)) {
1116
1114
  goto bn_err;
1117
1115
  }
@@ -1124,7 +1122,7 @@ static int rsa_generate_key_impl(RSA *rsa, int bits, const BIGNUM *e_value,
1124
1122
  if (!bn_set_words(sqrt2, kBoringSSLRSASqrtTwo, kBoringSSLRSASqrtTwoLen)) {
1125
1123
  goto bn_err;
1126
1124
  }
1127
- int sqrt2_bits = kBoringSSLRSASqrtTwoLen * BN_BITS2;
1125
+ sqrt2_bits = kBoringSSLRSASqrtTwoLen * BN_BITS2;
1128
1126
  assert(sqrt2_bits == (int)BN_num_bits(sqrt2));
1129
1127
  if (sqrt2_bits > prime_bits) {
1130
1128
  // For key sizes up to 4096 (prime_bits = 2048), this is exactly
@@ -1185,7 +1183,7 @@ static int rsa_generate_key_impl(RSA *rsa, int bits, const BIGNUM *e_value,
1185
1183
 
1186
1184
  assert(BN_num_bits(pm1) == (unsigned)prime_bits);
1187
1185
  assert(BN_num_bits(qm1) == (unsigned)prime_bits);
1188
- if (// Calculate n.
1186
+ if ( // Calculate n.
1189
1187
  !bn_mul_consttime(rsa->n, rsa->p, rsa->q, ctx) ||
1190
1188
  // Calculate d mod (p-1).
1191
1189
  !bn_div_consttime(NULL, rsa->dmp1, rsa->d, pm1, prime_bits, ctx) ||
@@ -1331,8 +1329,7 @@ int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb) {
1331
1329
  }
1332
1330
 
1333
1331
  BIGNUM *e = BN_new();
1334
- int ret = e != NULL &&
1335
- BN_set_word(e, RSA_F4) &&
1332
+ int ret = e != NULL && BN_set_word(e, RSA_F4) &&
1336
1333
  RSA_generate_key_ex_maybe_fips(rsa, bits, e, cb, /*check_fips=*/1);
1337
1334
  BN_free(e);
1338
1335
 
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2017, Google Inc.
1
+ /* Copyright 2017 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -30,6 +30,14 @@ int FIPS_mode_set(int on) { return on == FIPS_mode(); }
30
30
 
31
31
  const char *FIPS_module_name(void) { return "BoringCrypto"; }
32
32
 
33
+ int CRYPTO_has_asm(void) {
34
+ #if defined(OPENSSL_NO_ASM)
35
+ return 0;
36
+ #else
37
+ return 1;
38
+ #endif
39
+ }
40
+
33
41
  uint32_t FIPS_version(void) {
34
42
  return 0;
35
43
  }
@@ -77,8 +85,8 @@ size_t FIPS_read_counter(enum fips_counter_t counter) {
77
85
  abort();
78
86
  }
79
87
 
80
- const size_t *array =
81
- CRYPTO_get_thread_local(OPENSSL_THREAD_LOCAL_FIPS_COUNTERS);
88
+ const size_t *array = reinterpret_cast<const size_t *>(
89
+ CRYPTO_get_thread_local(OPENSSL_THREAD_LOCAL_FIPS_COUNTERS));
82
90
  if (!array) {
83
91
  return 0;
84
92
  }
@@ -92,11 +100,11 @@ void boringssl_fips_inc_counter(enum fips_counter_t counter) {
92
100
  abort();
93
101
  }
94
102
 
95
- size_t *array =
96
- CRYPTO_get_thread_local(OPENSSL_THREAD_LOCAL_FIPS_COUNTERS);
103
+ size_t *array = reinterpret_cast<size_t *>(
104
+ CRYPTO_get_thread_local(OPENSSL_THREAD_LOCAL_FIPS_COUNTERS));
97
105
  if (!array) {
98
106
  const size_t num_bytes = sizeof(size_t) * (fips_counter_max + 1);
99
- array = OPENSSL_zalloc(num_bytes);
107
+ array = reinterpret_cast<size_t *>(OPENSSL_zalloc(num_bytes));
100
108
  if (!array) {
101
109
  return;
102
110
  }
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2017, Google Inc.
1
+ /* Copyright 2017 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -24,14 +24,15 @@
24
24
  #include <openssl/dh.h>
25
25
  #include <openssl/digest.h>
26
26
  #include <openssl/ec.h>
27
- #include <openssl/ecdsa.h>
28
27
  #include <openssl/ec_key.h>
28
+ #include <openssl/ecdsa.h>
29
29
  #include <openssl/hkdf.h>
30
30
  #include <openssl/hmac.h>
31
31
  #include <openssl/nid.h>
32
32
  #include <openssl/rsa.h>
33
33
  #include <openssl/sha.h>
34
34
 
35
+ #include "../../bcm_support.h"
35
36
  #include "../../internal.h"
36
37
  #include "../delocate.h"
37
38
  #include "../dh/internal.h"
@@ -47,27 +48,27 @@
47
48
  // compile the real logic.
48
49
  #if defined(_MSC_VER)
49
50
 
50
- int BORINGSSL_self_test(void) {
51
- return 0;
52
- }
51
+ int BORINGSSL_self_test(void) { return 0; }
53
52
 
54
53
  #else
55
54
 
56
- static void hexdump(const uint8_t *in, size_t len) {
55
+ static void hexdump(FILE *out, const void *in, size_t len) {
56
+ const uint8_t *in8 = reinterpret_cast<const uint8_t *>(in);
57
57
  for (size_t i = 0; i < len; i++) {
58
- fprintf(stderr, "%02x", in[i]);
58
+ fprintf(out, "%02x", in8[i]);
59
59
  }
60
60
  }
61
61
 
62
62
  static int check_test(const void *expected, const void *actual,
63
63
  size_t expected_len, const char *name) {
64
64
  if (OPENSSL_memcmp(actual, expected, expected_len) != 0) {
65
- fprintf(stderr, "%s failed.\nExpected: ", name);
66
- hexdump(expected, expected_len);
67
- fprintf(stderr, "\nCalculated: ");
68
- hexdump(actual, expected_len);
69
- fprintf(stderr, "\n");
70
- fflush(stderr);
65
+ FILE *err = CRYPTO_get_stderr();
66
+ fprintf(err, "%s failed.\nExpected: ", name);
67
+ hexdump(err, expected, expected_len);
68
+ fprintf(err, "\nCalculated: ");
69
+ hexdump(err, actual, expected_len);
70
+ fprintf(err, "\n");
71
+ fflush(err);
71
72
  return 0;
72
73
  }
73
74
  return 1;
@@ -195,7 +196,7 @@ static RSA *self_test_rsa_key(void) {
195
196
  };
196
197
 
197
198
  RSA *rsa = RSA_new();
198
- if (rsa == NULL ||
199
+ if (rsa == NULL || //
199
200
  !set_bignum(&rsa->n, kN, sizeof(kN)) ||
200
201
  !set_bignum(&rsa->e, kE, sizeof(kE)) ||
201
202
  !set_bignum(&rsa->d, kD, sizeof(kD)) ||
@@ -294,7 +295,7 @@ static int boringssl_self_test_rsa(void) {
294
295
 
295
296
  RSA *const rsa_key = self_test_rsa_key();
296
297
  if (rsa_key == NULL) {
297
- fprintf(stderr, "RSA key construction failed\n");
298
+ fprintf(CRYPTO_get_stderr(), "RSA key construction failed\n");
298
299
  goto err;
299
300
  }
300
301
  // Disable blinding for the power-on tests because it's not needed and
@@ -338,7 +339,7 @@ static int boringssl_self_test_rsa(void) {
338
339
  output, &sig_len, rsa_key) ||
339
340
  !check_test(kRSASignSignature, output, sizeof(kRSASignSignature),
340
341
  "RSA-sign KAT")) {
341
- fprintf(stderr, "RSA signing test failed.\n");
342
+ fprintf(CRYPTO_get_stderr(), "RSA signing test failed.\n");
342
343
  goto err;
343
344
  }
344
345
 
@@ -376,7 +377,7 @@ static int boringssl_self_test_rsa(void) {
376
377
  if (!rsa_verify_no_self_test(NID_sha256, kRSAVerifyDigest,
377
378
  sizeof(kRSAVerifyDigest), kRSAVerifySignature,
378
379
  sizeof(kRSAVerifySignature), rsa_key)) {
379
- fprintf(stderr, "RSA-verify KAT failed.\n");
380
+ fprintf(CRYPTO_get_stderr(), "RSA-verify KAT failed.\n");
380
381
  goto err;
381
382
  }
382
383
 
@@ -394,10 +395,15 @@ static int boringssl_self_test_ecc(void) {
394
395
  EC_POINT *ec_point_in = NULL;
395
396
  EC_POINT *ec_point_out = NULL;
396
397
  BIGNUM *ec_scalar = NULL;
398
+ const EC_GROUP *ec_group = NULL;
399
+
400
+ // The 'k' value for ECDSA is fixed to avoid an entropy draw.
401
+ uint8_t ecdsa_k[32] = {0};
402
+ ecdsa_k[31] = 42;
397
403
 
398
404
  ec_key = self_test_ecdsa_key();
399
405
  if (ec_key == NULL) {
400
- fprintf(stderr, "ECDSA KeyGen failed\n");
406
+ fprintf(CRYPTO_get_stderr(), "ECDSA KeyGen failed\n");
401
407
  goto err;
402
408
  }
403
409
 
@@ -417,10 +423,6 @@ static int boringssl_self_test_ecc(void) {
417
423
  0x70, 0xb5, 0xbb, 0x0d, 0xfd, 0x8e, 0x0c, 0x02, 0x3f,
418
424
  };
419
425
 
420
- // The 'k' value for ECDSA is fixed to avoid an entropy draw.
421
- uint8_t ecdsa_k[32] = {0};
422
- ecdsa_k[31] = 42;
423
-
424
426
  uint8_t ecdsa_sign_output[64];
425
427
  size_t ecdsa_sign_output_len;
426
428
  if (!ecdsa_sign_fixed_with_nonce_for_known_answer_test(
@@ -429,7 +431,7 @@ static int boringssl_self_test_ecc(void) {
429
431
  sizeof(ecdsa_k)) ||
430
432
  !check_test(kECDSASignSig, ecdsa_sign_output, sizeof(ecdsa_sign_output),
431
433
  "ECDSA-sign signature")) {
432
- fprintf(stderr, "ECDSA-sign KAT failed.\n");
434
+ fprintf(CRYPTO_get_stderr(), "ECDSA-sign KAT failed.\n");
433
435
  goto err;
434
436
  }
435
437
 
@@ -450,7 +452,7 @@ static int boringssl_self_test_ecc(void) {
450
452
  if (!ecdsa_verify_fixed_no_self_test(
451
453
  kECDSAVerifyDigest, sizeof(kECDSAVerifyDigest), kECDSAVerifySig,
452
454
  sizeof(kECDSAVerifySig), ec_key)) {
453
- fprintf(stderr, "ECDSA-verify KAT failed.\n");
455
+ fprintf(CRYPTO_get_stderr(), "ECDSA-verify KAT failed.\n");
454
456
  goto err;
455
457
  }
456
458
 
@@ -481,7 +483,7 @@ static int boringssl_self_test_ecc(void) {
481
483
  0x7c, 0x41, 0x8f, 0xaf, 0x9c, 0x40, 0xaf, 0x2e, 0x4a, 0x0c,
482
484
  };
483
485
 
484
- const EC_GROUP *ec_group = EC_group_p256();
486
+ ec_group = EC_group_p256();
485
487
  ec_point_in = EC_POINT_new(ec_group);
486
488
  ec_point_out = EC_POINT_new(ec_group);
487
489
  ec_scalar = BN_new();
@@ -496,7 +498,7 @@ static int boringssl_self_test_ecc(void) {
496
498
  z_comp_result, sizeof(z_comp_result), NULL) ||
497
499
  !check_test(kP256PointResult, z_comp_result, sizeof(z_comp_result),
498
500
  "Z Computation Result")) {
499
- fprintf(stderr, "Z-computation KAT failed.\n");
501
+ fprintf(CRYPTO_get_stderr(), "Z-computation KAT failed.\n");
500
502
  goto err;
501
503
  }
502
504
 
@@ -575,7 +577,7 @@ static int boringssl_self_test_ffdh(void) {
575
577
  dh_compute_key_padded_no_self_test(dh_out, ffdhe2048_value, dh) !=
576
578
  sizeof(dh_out) ||
577
579
  !check_test(kDHOutput, dh_out, sizeof(dh_out), "FFC DH")) {
578
- fprintf(stderr, "FFDH failed.\n");
580
+ fprintf(CRYPTO_get_stderr(), "FFDH failed.\n");
579
581
  goto err;
580
582
  }
581
583
 
@@ -598,7 +600,7 @@ static void run_self_test_rsa(void) {
598
600
  FIPS_service_indicator_unlock_state();
599
601
  }
600
602
 
601
- DEFINE_STATIC_ONCE(g_self_test_once_rsa);
603
+ DEFINE_STATIC_ONCE(g_self_test_once_rsa)
602
604
 
603
605
  void boringssl_ensure_rsa_self_test(void) {
604
606
  CRYPTO_once(g_self_test_once_rsa_bss_get(), run_self_test_rsa);
@@ -612,7 +614,7 @@ static void run_self_test_ecc(void) {
612
614
  FIPS_service_indicator_unlock_state();
613
615
  }
614
616
 
615
- DEFINE_STATIC_ONCE(g_self_test_once_ecc);
617
+ DEFINE_STATIC_ONCE(g_self_test_once_ecc)
616
618
 
617
619
  void boringssl_ensure_ecc_self_test(void) {
618
620
  CRYPTO_once(g_self_test_once_ecc_bss_get(), run_self_test_ecc);
@@ -626,7 +628,7 @@ static void run_self_test_ffdh(void) {
626
628
  FIPS_service_indicator_unlock_state();
627
629
  }
628
630
 
629
- DEFINE_STATIC_ONCE(g_self_test_once_ffdh);
631
+ DEFINE_STATIC_ONCE(g_self_test_once_ffdh)
630
632
 
631
633
  void boringssl_ensure_ffdh_self_test(void) {
632
634
  CRYPTO_once(g_self_test_once_ffdh_bss_get(), run_self_test_ffdh);
@@ -699,7 +701,10 @@ int boringssl_self_test_hmac_sha256(void) {
699
701
  }
700
702
 
701
703
  static int boringssl_self_test_fast(void) {
702
- static const uint8_t kAESKey[16] = "BoringCrypto Key";
704
+ static const uint8_t kAESKey[16] = {
705
+ 'B', 'o', 'r', 'i', 'n', 'g', 'C', 'r',
706
+ 'y', 'p', 't', 'o', ' ', 'K', 'e', 'y',
707
+ };
703
708
  static const uint8_t kAESIV[16] = {0};
704
709
 
705
710
  EVP_AEAD_CTX aead_ctx;
@@ -723,7 +728,7 @@ static int boringssl_self_test_fast(void) {
723
728
  };
724
729
  memcpy(aes_iv, kAESIV, sizeof(kAESIV));
725
730
  if (AES_set_encrypt_key(kAESKey, 8 * sizeof(kAESKey), &aes_key) != 0) {
726
- fprintf(stderr, "AES_set_encrypt_key failed.\n");
731
+ fprintf(CRYPTO_get_stderr(), "AES_set_encrypt_key failed.\n");
727
732
  goto err;
728
733
  }
729
734
  AES_cbc_encrypt(kAESCBCEncPlaintext, output, sizeof(kAESCBCEncPlaintext),
@@ -746,7 +751,7 @@ static int boringssl_self_test_fast(void) {
746
751
  };
747
752
  memcpy(aes_iv, kAESIV, sizeof(kAESIV));
748
753
  if (AES_set_decrypt_key(kAESKey, 8 * sizeof(kAESKey), &aes_key) != 0) {
749
- fprintf(stderr, "AES_set_decrypt_key failed.\n");
754
+ fprintf(CRYPTO_get_stderr(), "AES_set_decrypt_key failed.\n");
750
755
  goto err;
751
756
  }
752
757
  AES_cbc_encrypt(kAESCBCDecCiphertext, output, sizeof(kAESCBCDecCiphertext),
@@ -761,7 +766,7 @@ static int boringssl_self_test_fast(void) {
761
766
  OPENSSL_memset(nonce, 0, sizeof(nonce));
762
767
  if (!EVP_AEAD_CTX_init(&aead_ctx, EVP_aead_aes_128_gcm(), kAESKey,
763
768
  sizeof(kAESKey), 0, NULL)) {
764
- fprintf(stderr, "EVP_AEAD_CTX_init for AES-128-GCM failed.\n");
769
+ fprintf(CRYPTO_get_stderr(), "EVP_AEAD_CTX_init for AES-128-GCM failed.\n");
765
770
  goto err;
766
771
  }
767
772
 
@@ -783,7 +788,7 @@ static int boringssl_self_test_fast(void) {
783
788
  0) ||
784
789
  !check_test(kAESGCMCiphertext, output, sizeof(kAESGCMCiphertext),
785
790
  "AES-GCM-encrypt KAT")) {
786
- fprintf(stderr, "EVP_AEAD_CTX_seal for AES-128-GCM failed.\n");
791
+ fprintf(CRYPTO_get_stderr(), "EVP_AEAD_CTX_seal for AES-128-GCM failed.\n");
787
792
  goto err;
788
793
  }
789
794
 
@@ -806,7 +811,7 @@ static int boringssl_self_test_fast(void) {
806
811
  NULL, 0) ||
807
812
  !check_test(kAESGCMDecPlaintext, output, sizeof(kAESGCMDecPlaintext),
808
813
  "AES-GCM-decrypt KAT")) {
809
- fprintf(stderr,
814
+ fprintf(CRYPTO_get_stderr(),
810
815
  "AES-GCM-decrypt KAT failed because EVP_AEAD_CTX_open failed.\n");
811
816
  goto err;
812
817
  }
@@ -821,13 +826,11 @@ static int boringssl_self_test_fast(void) {
821
826
  0x09, 0x11, 0x6d, 0x1a, 0xfd, 0x0f, 0x1e, 0x11, 0xe3, 0xcb,
822
827
  };
823
828
  SHA1(kSHA1Input, sizeof(kSHA1Input), output);
824
- if (!check_test(kSHA1Digest, output, sizeof(kSHA1Digest),
825
- "SHA-1 KAT")) {
829
+ if (!check_test(kSHA1Digest, output, sizeof(kSHA1Digest), "SHA-1 KAT")) {
826
830
  goto err;
827
831
  }
828
832
 
829
- if (!boringssl_self_test_sha256() ||
830
- !boringssl_self_test_sha512() ||
833
+ if (!boringssl_self_test_sha256() || !boringssl_self_test_sha512() ||
831
834
  !boringssl_self_test_hmac_sha256()) {
832
835
  goto err;
833
836
  }
@@ -839,8 +842,11 @@ static int boringssl_self_test_fast(void) {
839
842
  0x3f, 0x17, 0x4c, 0xf4, 0x78, 0x7a, 0x4f, 0x1a, 0x40, 0xc2, 0xb5, 0x0b,
840
843
  0xab, 0xe1, 0x4a, 0xae, 0x53, 0x0b, 0xe5, 0x88, 0x6d, 0x91, 0x0a, 0x27,
841
844
  };
842
- static const uint8_t kDRBGPersonalization[18] = "BCMPersonalization";
843
- static const uint8_t kDRBGAD[16] = "BCM DRBG KAT AD ";
845
+ static const uint8_t kDRBGPersonalization[18] = {
846
+ 'B', 'C', 'M', 'P', 'e', 'r', 's', 'o', 'n',
847
+ 'a', 'l', 'i', 'z', 'a', 't', 'i', 'o', 'n'};
848
+ static const uint8_t kDRBGAD[16] = {'B', 'C', 'M', ' ', 'D', 'R', 'B', 'G',
849
+ ' ', 'K', 'A', 'T', ' ', 'A', 'D', ' '};
844
850
  static const uint8_t kDRBGOutput[64] = {
845
851
  0x19, 0x1f, 0x2b, 0x49, 0x76, 0x85, 0xfd, 0x51, 0xb6, 0x56, 0xbc,
846
852
  0x1c, 0x7d, 0xd5, 0xdd, 0x44, 0x76, 0xa3, 0x5e, 0x17, 0x9b, 0x8e,
@@ -875,7 +881,7 @@ static int boringssl_self_test_fast(void) {
875
881
  sizeof(kDRBGAD)) ||
876
882
  !check_test(kDRBGReseedOutput, output, sizeof(kDRBGReseedOutput),
877
883
  "DRBG-reseed KAT")) {
878
- fprintf(stderr, "CTR-DRBG failed.\n");
884
+ fprintf(CRYPTO_get_stderr(), "CTR-DRBG failed.\n");
879
885
  goto err;
880
886
  }
881
887
  CTR_DRBG_clear(&drbg);
@@ -914,7 +920,7 @@ static int boringssl_self_test_fast(void) {
914
920
  kTLSSeed2, sizeof(kTLSSeed2)) ||
915
921
  !check_test(kTLS10Output, tls10_output, sizeof(kTLS10Output),
916
922
  "TLS10-KDF KAT")) {
917
- fprintf(stderr, "TLS KDF failed.\n");
923
+ fprintf(CRYPTO_get_stderr(), "TLS KDF failed.\n");
918
924
  goto err;
919
925
  }
920
926
 
@@ -935,7 +941,7 @@ static int boringssl_self_test_fast(void) {
935
941
  kTLSSeed2, sizeof(kTLSSeed2)) ||
936
942
  !check_test(kTLS12Output, tls12_output, sizeof(kTLS12Output),
937
943
  "TLS12-KDF KAT")) {
938
- fprintf(stderr, "TLS KDF failed.\n");
944
+ fprintf(CRYPTO_get_stderr(), "TLS KDF failed.\n");
939
945
  goto err;
940
946
  }
941
947
 
@@ -975,7 +981,7 @@ static int boringssl_self_test_fast(void) {
975
981
  !check_test(kTLS13ExpandLabelOutput, tls13_expand_label_output,
976
982
  sizeof(kTLS13ExpandLabelOutput),
977
983
  "CRYPTO_tls13_hkdf_expand_label")) {
978
- fprintf(stderr, "TLS13-KDF failed.\n");
984
+ fprintf(CRYPTO_get_stderr(), "TLS13-KDF failed.\n");
979
985
  goto err;
980
986
  }
981
987
 
@@ -1005,7 +1011,7 @@ static int boringssl_self_test_fast(void) {
1005
1011
  sizeof(kHKDFSecret), kHKDFSalt, sizeof(kHKDFSalt), kHKDFInfo,
1006
1012
  sizeof(kHKDFInfo)) ||
1007
1013
  !check_test(kHKDFOutput, hkdf_output, sizeof(kHKDFOutput), "HKDF")) {
1008
- fprintf(stderr, "HKDF failed.\n");
1014
+ fprintf(CRYPTO_get_stderr(), "HKDF failed.\n");
1009
1015
  goto err;
1010
1016
  }
1011
1017
 
@@ -1020,8 +1026,8 @@ err:
1020
1026
  int BORINGSSL_self_test(void) {
1021
1027
  if (!boringssl_self_test_fast() ||
1022
1028
  // When requested to run self tests, also run the lazy tests.
1023
- !boringssl_self_test_rsa() ||
1024
- !boringssl_self_test_ecc() ||
1029
+ !boringssl_self_test_rsa() || //
1030
+ !boringssl_self_test_ecc() || //
1025
1031
  !boringssl_self_test_ffdh()) {
1026
1032
  return 0;
1027
1033
  }
@@ -1030,9 +1036,7 @@ int BORINGSSL_self_test(void) {
1030
1036
  }
1031
1037
 
1032
1038
  #if defined(BORINGSSL_FIPS)
1033
- int boringssl_self_test_startup(void) {
1034
- return boringssl_self_test_fast();
1035
- }
1039
+ int boringssl_self_test_startup(void) { return boringssl_self_test_fast(); }
1036
1040
  #endif
1037
1041
 
1038
1042
  #endif // !_MSC_VER