grpc 1.24.0 → 1.25.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (504) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +306 -243
  3. data/etc/roots.pem +0 -100
  4. data/include/grpc/grpc_security.h +44 -18
  5. data/include/grpc/impl/codegen/grpc_types.h +15 -0
  6. data/include/grpc/impl/codegen/port_platform.h +27 -11
  7. data/include/grpc/impl/codegen/sync_generic.h +1 -1
  8. data/src/boringssl/err_data.c +695 -650
  9. data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
  10. data/src/core/ext/filters/client_channel/client_channel.h +24 -0
  11. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
  12. data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
  13. data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
  14. data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
  15. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
  17. data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
  18. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
  19. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
  20. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
  21. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
  22. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
  25. data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
  26. data/src/core/ext/filters/client_channel/resolver.cc +1 -2
  27. data/src/core/ext/filters/client_channel/resolver.h +8 -16
  28. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
  29. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
  30. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
  32. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  33. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
  34. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
  35. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  36. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
  37. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
  38. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
  39. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
  40. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
  41. data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
  42. data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
  43. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
  45. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
  46. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
  47. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
  48. data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
  49. data/src/core/ext/filters/client_channel/service_config.h +8 -8
  50. data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
  51. data/src/core/ext/filters/client_channel/subchannel.h +7 -9
  52. data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
  53. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
  54. data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
  55. data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
  56. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
  57. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
  58. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
  59. data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
  60. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
  61. data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
  62. data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
  63. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
  64. data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
  65. data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
  66. data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
  67. data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
  68. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
  69. data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
  70. data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
  71. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
  72. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
  73. data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
  74. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
  75. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
  76. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
  77. data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
  78. data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
  79. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
  80. data/src/core/lib/channel/channel_args.cc +16 -0
  81. data/src/core/lib/channel/channel_args.h +22 -0
  82. data/src/core/lib/channel/channelz.cc +5 -6
  83. data/src/core/lib/channel/channelz.h +1 -1
  84. data/src/core/lib/channel/connected_channel.cc +20 -20
  85. data/src/core/lib/channel/handshaker.h +3 -4
  86. data/src/core/lib/channel/handshaker_factory.h +1 -3
  87. data/src/core/lib/debug/trace.h +3 -2
  88. data/src/core/lib/gprpp/arena.cc +3 -3
  89. data/src/core/lib/gprpp/arena.h +2 -3
  90. data/src/core/lib/gprpp/inlined_vector.h +9 -0
  91. data/src/core/lib/gprpp/map.h +3 -501
  92. data/src/core/lib/gprpp/memory.h +45 -41
  93. data/src/core/lib/gprpp/mpscq.cc +108 -0
  94. data/src/core/lib/gprpp/mpscq.h +98 -0
  95. data/src/core/lib/gprpp/orphanable.h +6 -11
  96. data/src/core/lib/gprpp/ref_counted.h +25 -19
  97. data/src/core/lib/gprpp/set.h +33 -0
  98. data/src/core/lib/gprpp/thd.h +2 -4
  99. data/src/core/lib/http/httpcli.cc +1 -1
  100. data/src/core/lib/http/httpcli_security_connector.cc +15 -11
  101. data/src/core/lib/http/parser.cc +1 -1
  102. data/src/core/lib/iomgr/buffer_list.cc +4 -5
  103. data/src/core/lib/iomgr/buffer_list.h +5 -6
  104. data/src/core/lib/iomgr/call_combiner.cc +4 -5
  105. data/src/core/lib/iomgr/call_combiner.h +2 -2
  106. data/src/core/lib/iomgr/cfstream_handle.h +3 -5
  107. data/src/core/lib/iomgr/closure.h +8 -3
  108. data/src/core/lib/iomgr/combiner.cc +45 -82
  109. data/src/core/lib/iomgr/combiner.h +32 -8
  110. data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
  111. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
  112. data/src/core/lib/iomgr/exec_ctx.h +4 -3
  113. data/src/core/lib/iomgr/executor.cc +4 -2
  114. data/src/core/lib/iomgr/executor.h +3 -0
  115. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
  116. data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
  117. data/src/core/lib/iomgr/executor/threadpool.h +7 -11
  118. data/src/core/lib/iomgr/resource_quota.cc +55 -51
  119. data/src/core/lib/iomgr/resource_quota.h +13 -9
  120. data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
  121. data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
  122. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
  123. data/src/core/lib/iomgr/tcp_custom.cc +9 -7
  124. data/src/core/lib/iomgr/tcp_posix.cc +20 -16
  125. data/src/core/lib/iomgr/tcp_server.h +1 -4
  126. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
  127. data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
  128. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
  129. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  130. data/src/core/lib/iomgr/udp_server.cc +3 -2
  131. data/src/core/lib/iomgr/udp_server.h +6 -12
  132. data/src/core/lib/json/json.h +1 -1
  133. data/src/core/lib/json/json_string.cc +2 -2
  134. data/src/core/lib/profiling/basic_timers.cc +2 -2
  135. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
  136. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
  137. data/src/core/lib/security/credentials/credentials.h +4 -20
  138. data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
  139. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
  140. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
  141. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
  142. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
  143. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
  144. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
  145. data/src/core/lib/security/security_connector/security_connector.cc +1 -0
  146. data/src/core/lib/security/security_connector/security_connector.h +19 -17
  147. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
  148. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  149. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  150. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
  151. data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
  152. data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
  153. data/src/core/lib/security/transport/security_handshaker.cc +29 -13
  154. data/src/core/lib/security/transport/security_handshaker.h +4 -2
  155. data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
  156. data/src/core/lib/slice/slice.cc +2 -10
  157. data/src/core/lib/slice/slice_hash_table.h +4 -6
  158. data/src/core/lib/slice/slice_intern.cc +42 -39
  159. data/src/core/lib/slice/slice_internal.h +3 -3
  160. data/src/core/lib/slice/slice_utils.h +21 -4
  161. data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
  162. data/src/core/lib/surface/call.cc +3 -3
  163. data/src/core/lib/surface/channel.cc +7 -0
  164. data/src/core/lib/surface/completion_queue.cc +12 -11
  165. data/src/core/lib/surface/completion_queue.h +4 -2
  166. data/src/core/lib/surface/init.cc +1 -0
  167. data/src/core/lib/surface/lame_client.cc +33 -18
  168. data/src/core/lib/surface/server.cc +77 -76
  169. data/src/core/lib/surface/version.cc +1 -1
  170. data/src/core/lib/transport/byte_stream.h +3 -7
  171. data/src/core/lib/transport/connectivity_state.cc +112 -98
  172. data/src/core/lib/transport/connectivity_state.h +100 -50
  173. data/src/core/lib/transport/static_metadata.cc +276 -288
  174. data/src/core/lib/transport/static_metadata.h +73 -76
  175. data/src/core/lib/transport/status_conversion.cc +1 -1
  176. data/src/core/lib/transport/status_metadata.cc +1 -1
  177. data/src/core/lib/transport/transport.cc +2 -2
  178. data/src/core/lib/transport/transport.h +12 -4
  179. data/src/core/lib/transport/transport_op_string.cc +14 -11
  180. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
  181. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
  182. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
  183. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
  184. data/src/core/tsi/fake_transport_security.cc +7 -5
  185. data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
  186. data/src/core/tsi/local_transport_security.cc +8 -6
  187. data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
  188. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
  189. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
  190. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
  191. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
  192. data/src/core/tsi/ssl_transport_security.cc +12 -12
  193. data/src/core/tsi/ssl_transport_security.h +2 -2
  194. data/src/core/tsi/transport_security_grpc.cc +7 -0
  195. data/src/core/tsi/transport_security_grpc.h +6 -0
  196. data/src/ruby/ext/grpc/extconf.rb +1 -0
  197. data/src/ruby/ext/grpc/rb_call.c +1 -1
  198. data/src/ruby/ext/grpc/rb_channel.c +1 -1
  199. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  200. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  201. data/src/ruby/lib/grpc/version.rb +1 -1
  202. data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
  203. data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
  204. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
  205. data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
  206. data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
  207. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
  208. data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
  209. data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
  210. data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
  211. data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
  212. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
  213. data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
  214. data/third_party/boringssl/crypto/base64/base64.c +2 -2
  215. data/third_party/boringssl/crypto/bio/bio.c +73 -9
  216. data/third_party/boringssl/crypto/bio/connect.c +4 -0
  217. data/third_party/boringssl/crypto/bio/fd.c +4 -0
  218. data/third_party/boringssl/crypto/bio/file.c +5 -2
  219. data/third_party/boringssl/crypto/bio/socket.c +4 -0
  220. data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
  221. data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
  222. data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
  223. data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
  224. data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
  225. data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
  226. data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
  227. data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
  228. data/third_party/boringssl/crypto/chacha/internal.h +45 -0
  229. data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
  230. data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
  231. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
  232. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
  233. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
  234. data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
  235. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
  236. data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
  237. data/third_party/boringssl/crypto/conf/conf.c +7 -0
  238. data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
  239. data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
  240. data/third_party/boringssl/crypto/cpu-intel.c +45 -51
  241. data/third_party/boringssl/crypto/crypto.c +39 -22
  242. data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
  243. data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
  244. data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
  245. data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
  246. data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
  247. data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
  248. data/third_party/boringssl/crypto/engine/engine.c +2 -1
  249. data/third_party/boringssl/crypto/err/err.c +2 -0
  250. data/third_party/boringssl/crypto/err/internal.h +2 -2
  251. data/third_party/boringssl/crypto/evp/evp.c +89 -8
  252. data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
  253. data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
  254. data/third_party/boringssl/crypto/evp/internal.h +18 -1
  255. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
  256. data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
  257. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
  258. data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
  259. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
  260. data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
  261. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
  262. data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
  263. data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
  264. data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
  265. data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
  266. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
  267. data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
  268. data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
  269. data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
  270. data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
  271. data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
  272. data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
  273. data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
  274. data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
  275. data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
  276. data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
  277. data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
  278. data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
  279. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
  280. data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
  281. data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
  282. data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
  283. data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
  284. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
  285. data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
  286. data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
  287. data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
  288. data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
  289. data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
  290. data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
  291. data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
  292. data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
  293. data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
  294. data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
  295. data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
  296. data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
  297. data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
  298. data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
  299. data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
  300. data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
  301. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
  302. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
  303. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
  304. data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
  305. data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
  306. data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
  307. data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
  308. data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
  309. data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
  310. data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
  311. data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
  312. data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
  313. data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
  314. data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
  315. data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
  316. data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
  317. data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
  318. data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
  319. data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
  320. data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
  321. data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
  322. data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
  323. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
  324. data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
  325. data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
  326. data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
  327. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
  328. data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
  329. data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
  330. data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
  331. data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
  332. data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
  333. data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
  334. data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
  335. data/third_party/boringssl/crypto/hrss/internal.h +62 -0
  336. data/third_party/boringssl/crypto/internal.h +95 -20
  337. data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
  338. data/third_party/boringssl/crypto/mem.c +39 -2
  339. data/third_party/boringssl/crypto/obj/obj.c +4 -4
  340. data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
  341. data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
  342. data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
  343. data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
  344. data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
  345. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
  346. data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
  347. data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
  348. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
  349. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
  350. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
  351. data/third_party/boringssl/crypto/pool/internal.h +1 -1
  352. data/third_party/boringssl/crypto/pool/pool.c +21 -0
  353. data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
  354. data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
  355. data/third_party/boringssl/crypto/refcount_lock.c +2 -2
  356. data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
  357. data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
  358. data/third_party/boringssl/crypto/stack/stack.c +83 -32
  359. data/third_party/boringssl/crypto/thread_none.c +2 -2
  360. data/third_party/boringssl/crypto/thread_pthread.c +2 -2
  361. data/third_party/boringssl/crypto/thread_win.c +38 -19
  362. data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
  363. data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
  364. data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
  365. data/third_party/boringssl/crypto/x509/by_file.c +12 -10
  366. data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
  367. data/third_party/boringssl/crypto/x509/t_req.c +1 -3
  368. data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
  369. data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
  370. data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
  371. data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
  372. data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
  373. data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
  374. data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
  375. data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
  376. data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
  377. data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
  378. data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
  379. data/third_party/boringssl/crypto/x509/x509name.c +2 -3
  380. data/third_party/boringssl/crypto/x509/x_all.c +109 -210
  381. data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
  382. data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
  383. data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
  384. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
  385. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
  386. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
  387. data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
  388. data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
  389. data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
  390. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
  391. data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
  392. data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
  393. data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
  394. data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
  395. data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
  396. data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
  397. data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
  398. data/third_party/boringssl/include/openssl/aead.h +45 -19
  399. data/third_party/boringssl/include/openssl/aes.h +32 -7
  400. data/third_party/boringssl/include/openssl/asn1.h +7 -77
  401. data/third_party/boringssl/include/openssl/base.h +120 -6
  402. data/third_party/boringssl/include/openssl/base64.h +4 -1
  403. data/third_party/boringssl/include/openssl/bio.h +112 -81
  404. data/third_party/boringssl/include/openssl/blowfish.h +3 -3
  405. data/third_party/boringssl/include/openssl/bn.h +55 -29
  406. data/third_party/boringssl/include/openssl/buf.h +2 -2
  407. data/third_party/boringssl/include/openssl/bytestring.h +54 -32
  408. data/third_party/boringssl/include/openssl/cast.h +2 -2
  409. data/third_party/boringssl/include/openssl/cipher.h +46 -16
  410. data/third_party/boringssl/include/openssl/cmac.h +6 -2
  411. data/third_party/boringssl/include/openssl/conf.h +3 -6
  412. data/third_party/boringssl/include/openssl/cpu.h +25 -9
  413. data/third_party/boringssl/include/openssl/crypto.h +32 -10
  414. data/third_party/boringssl/include/openssl/curve25519.h +4 -4
  415. data/third_party/boringssl/include/openssl/dh.h +3 -2
  416. data/third_party/boringssl/include/openssl/digest.h +21 -7
  417. data/third_party/boringssl/include/openssl/dsa.h +8 -2
  418. data/third_party/boringssl/include/openssl/e_os2.h +18 -0
  419. data/third_party/boringssl/include/openssl/ec.h +25 -21
  420. data/third_party/boringssl/include/openssl/ec_key.h +36 -8
  421. data/third_party/boringssl/include/openssl/ecdh.h +17 -0
  422. data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
  423. data/third_party/boringssl/include/openssl/engine.h +4 -4
  424. data/third_party/boringssl/include/openssl/err.h +3 -0
  425. data/third_party/boringssl/include/openssl/evp.h +199 -42
  426. data/third_party/boringssl/include/openssl/hmac.h +4 -4
  427. data/third_party/boringssl/include/openssl/hrss.h +100 -0
  428. data/third_party/boringssl/include/openssl/lhash.h +131 -23
  429. data/third_party/boringssl/include/openssl/md4.h +6 -4
  430. data/third_party/boringssl/include/openssl/md5.h +6 -4
  431. data/third_party/boringssl/include/openssl/mem.h +6 -2
  432. data/third_party/boringssl/include/openssl/nid.h +3 -0
  433. data/third_party/boringssl/include/openssl/obj.h +3 -0
  434. data/third_party/boringssl/include/openssl/pem.h +102 -64
  435. data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
  436. data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
  437. data/third_party/boringssl/include/openssl/pool.h +13 -2
  438. data/third_party/boringssl/include/openssl/ripemd.h +5 -4
  439. data/third_party/boringssl/include/openssl/rsa.h +46 -15
  440. data/third_party/boringssl/include/openssl/sha.h +40 -28
  441. data/third_party/boringssl/include/openssl/siphash.h +37 -0
  442. data/third_party/boringssl/include/openssl/span.h +17 -9
  443. data/third_party/boringssl/include/openssl/ssl.h +766 -393
  444. data/third_party/boringssl/include/openssl/ssl3.h +4 -3
  445. data/third_party/boringssl/include/openssl/stack.h +134 -77
  446. data/third_party/boringssl/include/openssl/thread.h +1 -1
  447. data/third_party/boringssl/include/openssl/tls1.h +25 -9
  448. data/third_party/boringssl/include/openssl/type_check.h +14 -15
  449. data/third_party/boringssl/include/openssl/x509.h +28 -3
  450. data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
  451. data/third_party/boringssl/include/openssl/x509v3.h +17 -13
  452. data/third_party/boringssl/ssl/d1_both.cc +9 -18
  453. data/third_party/boringssl/ssl/d1_lib.cc +4 -3
  454. data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
  455. data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
  456. data/third_party/boringssl/ssl/dtls_method.cc +0 -1
  457. data/third_party/boringssl/ssl/dtls_record.cc +28 -28
  458. data/third_party/boringssl/ssl/handoff.cc +295 -91
  459. data/third_party/boringssl/ssl/handshake.cc +133 -72
  460. data/third_party/boringssl/ssl/handshake_client.cc +218 -189
  461. data/third_party/boringssl/ssl/handshake_server.cc +399 -272
  462. data/third_party/boringssl/ssl/internal.h +1413 -928
  463. data/third_party/boringssl/ssl/s3_both.cc +175 -36
  464. data/third_party/boringssl/ssl/s3_lib.cc +9 -13
  465. data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
  466. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
  467. data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
  468. data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
  469. data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
  470. data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
  471. data/third_party/boringssl/ssl/ssl_file.cc +2 -0
  472. data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
  473. data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
  474. data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
  475. data/third_party/boringssl/ssl/ssl_session.cc +230 -178
  476. data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
  477. data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
  478. data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
  479. data/third_party/boringssl/ssl/t1_enc.cc +5 -96
  480. data/third_party/boringssl/ssl/t1_lib.cc +931 -678
  481. data/third_party/boringssl/ssl/tls13_both.cc +251 -121
  482. data/third_party/boringssl/ssl/tls13_client.cc +129 -73
  483. data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
  484. data/third_party/boringssl/ssl/tls13_server.cc +259 -192
  485. data/third_party/boringssl/ssl/tls_method.cc +26 -21
  486. data/third_party/boringssl/ssl/tls_record.cc +42 -47
  487. data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
  488. data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
  489. data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
  490. data/third_party/boringssl/third_party/fiat/p256.c +238 -999
  491. data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
  492. data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
  493. data/third_party/upb/upb/port_def.inc +1 -1
  494. data/third_party/upb/upb/table.c +2 -1
  495. metadata +71 -43
  496. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
  497. data/src/core/lib/gpr/mpscq.cc +0 -117
  498. data/src/core/lib/gpr/mpscq.h +0 -88
  499. data/src/core/lib/gprpp/abstract.h +0 -47
  500. data/src/core/lib/gprpp/pair.h +0 -38
  501. data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
  502. data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
  503. data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
  504. data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -81,9 +81,9 @@ OPENSSL_EXPORT void BF_decrypt(uint32_t *data, const BF_KEY *key);
81
81
 
82
82
  OPENSSL_EXPORT void BF_ecb_encrypt(const uint8_t *in, uint8_t *out,
83
83
  const BF_KEY *key, int enc);
84
- OPENSSL_EXPORT void BF_cbc_encrypt(const uint8_t *in, uint8_t *out, long length,
85
- const BF_KEY *schedule, uint8_t *ivec,
86
- int enc);
84
+ OPENSSL_EXPORT void BF_cbc_encrypt(const uint8_t *in, uint8_t *out,
85
+ size_t length, const BF_KEY *schedule,
86
+ uint8_t *ivec, int enc);
87
87
 
88
88
 
89
89
  #ifdef __cplusplus
@@ -142,9 +142,11 @@ extern "C" {
142
142
  // BN_ULONG is the native word size when working with big integers.
143
143
  //
144
144
  // Note: on some platforms, inttypes.h does not define print format macros in
145
- // C++ unless |__STDC_FORMAT_MACROS| defined. As this is a public header, bn.h
146
- // does not define |__STDC_FORMAT_MACROS| itself. C++ source files which use the
147
- // FMT macros must define it externally.
145
+ // C++ unless |__STDC_FORMAT_MACROS| defined. This is due to text in C99 which
146
+ // was never adopted in any C++ standard and explicitly overruled in C++11. As
147
+ // this is a public header, bn.h does not define |__STDC_FORMAT_MACROS| itself.
148
+ // Projects which use |BN_*_FMT*| with outdated C headers may need to define it
149
+ // externally.
148
150
  #if defined(OPENSSL_64_BIT)
149
151
  #define BN_ULONG uint64_t
150
152
  #define BN_BITS2 64
@@ -158,7 +160,7 @@ extern "C" {
158
160
  #define BN_DEC_FMT1 "%" PRIu32
159
161
  #define BN_DEC_FMT2 "%09" PRIu32
160
162
  #define BN_HEX_FMT1 "%" PRIx32
161
- #define BN_HEX_FMT2 "%08" PRIx64
163
+ #define BN_HEX_FMT2 "%08" PRIx32
162
164
  #else
163
165
  #error "Must define either OPENSSL_32_BIT or OPENSSL_64_BIT"
164
166
  #endif
@@ -630,9 +632,12 @@ OPENSSL_EXPORT int BN_rand_range_ex(BIGNUM *r, BN_ULONG min_inclusive,
630
632
  // BN_pseudo_rand_range is an alias for BN_rand_range.
631
633
  OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
632
634
 
633
- // BN_GENCB holds a callback function that is used by generation functions that
634
- // can take a very long time to complete. Use |BN_GENCB_set| to initialise a
635
- // |BN_GENCB| structure.
635
+ #define BN_GENCB_GENERATED 0
636
+ #define BN_GENCB_PRIME_TEST 1
637
+
638
+ // bn_gencb_st, or |BN_GENCB|, holds a callback function that is used by
639
+ // generation functions that can take a very long time to complete. Use
640
+ // |BN_GENCB_set| to initialise a |BN_GENCB| structure.
636
641
  //
637
642
  // The callback receives the address of that |BN_GENCB| structure as its last
638
643
  // argument and the user is free to put an arbitrary pointer in |arg|. The other
@@ -648,9 +653,6 @@ OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
648
653
  //
649
654
  // When other code needs to call a BN generation function it will often take a
650
655
  // BN_GENCB argument and may call the function with other argument values.
651
- #define BN_GENCB_GENERATED 0
652
- #define BN_GENCB_PRIME_TEST 1
653
-
654
656
  struct bn_gencb_st {
655
657
  void *arg; // callback-specific data
656
658
  int (*callback)(int event, int n, struct bn_gencb_st *);
@@ -659,8 +661,7 @@ struct bn_gencb_st {
659
661
  // BN_GENCB_set configures |callback| to call |f| and sets |callout->arg| to
660
662
  // |arg|.
661
663
  OPENSSL_EXPORT void BN_GENCB_set(BN_GENCB *callback,
662
- int (*f)(int event, int n,
663
- struct bn_gencb_st *),
664
+ int (*f)(int event, int n, BN_GENCB *),
664
665
  void *arg);
665
666
 
666
667
  // BN_GENCB_call calls |callback|, if not NULL, and returns the return value of
@@ -701,11 +702,14 @@ enum bn_primality_result_t {
701
702
  // Miller-Rabin tests primality for odd integers greater than 3, returning
702
703
  // |bn_probably_prime| if the number is probably prime,
703
704
  // |bn_non_prime_power_composite| if the number is a composite that is not the
704
- // power of a single prime, and |bn_composite| otherwise. If |iterations| is
705
- // |BN_prime_checks|, then a value that results in a false positive rate lower
706
- // than the number-field sieve security level of |w| is used. It returns one on
705
+ // power of a single prime, and |bn_composite| otherwise. It returns one on
707
706
  // success and zero on failure. If |cb| is not NULL, then it is called during
708
707
  // each iteration of the primality test.
708
+ //
709
+ // If |iterations| is |BN_prime_checks|, then a value that results in a false
710
+ // positive rate lower than the number-field sieve security level of |w| is
711
+ // used, provided |w| was generated randomly. |BN_prime_checks| is not suitable
712
+ // for inputs potentially crafted by an adversary.
709
713
  OPENSSL_EXPORT int BN_enhanced_miller_rabin_primality_test(
710
714
  enum bn_primality_result_t *out_result, const BIGNUM *w, int iterations,
711
715
  BN_CTX *ctx, BN_GENCB *cb);
@@ -718,13 +722,14 @@ OPENSSL_EXPORT int BN_enhanced_miller_rabin_primality_test(
718
722
  // list of small primes before Miller-Rabin tests. The probability of this
719
723
  // function returning a false positive is 2^{2*checks}. If |checks| is
720
724
  // |BN_prime_checks| then a value that results in a false positive rate lower
721
- // than the number-field sieve security level of |candidate| is used. If |cb| is
722
- // not NULL then it is called during the checking process. See the comment above
723
- // |BN_GENCB|.
725
+ // than the number-field sieve security level of |candidate| is used, provided
726
+ // |candidate| was generated randomly. |BN_prime_checks| is not suitable for
727
+ // inputs potentially crafted by an adversary.
724
728
  //
725
- // The function returns one on success and zero on error.
729
+ // If |cb| is not NULL then it is called during the checking process. See the
730
+ // comment above |BN_GENCB|.
726
731
  //
727
- // (If you are unsure whether you want |do_trial_division|, don't set it.)
732
+ // The function returns one on success and zero on error.
728
733
  OPENSSL_EXPORT int BN_primality_test(int *is_probably_prime,
729
734
  const BIGNUM *candidate, int checks,
730
735
  BN_CTX *ctx, int do_trial_division,
@@ -737,7 +742,10 @@ OPENSSL_EXPORT int BN_primality_test(int *is_probably_prime,
737
742
  // list of small primes before Miller-Rabin tests. The probability of this
738
743
  // function returning one when |candidate| is composite is 2^{2*checks}. If
739
744
  // |checks| is |BN_prime_checks| then a value that results in a false positive
740
- // rate lower than the number-field sieve security level of |candidate| is used.
745
+ // rate lower than the number-field sieve security level of |candidate| is used,
746
+ // provided |candidate| was generated randomly. |BN_prime_checks| is not
747
+ // suitable for inputs potentially crafted by an adversary.
748
+ //
741
749
  // If |cb| is not NULL then it is called during the checking process. See the
742
750
  // comment above |BN_GENCB|.
743
751
  //
@@ -805,10 +813,15 @@ int BN_mod_inverse_odd(BIGNUM *out, int *out_no_inverse, const BIGNUM *a,
805
813
  // Montgomery domain.
806
814
 
807
815
  // BN_MONT_CTX_new_for_modulus returns a fresh |BN_MONT_CTX| given the modulus,
808
- // |mod| or NULL on error.
816
+ // |mod| or NULL on error. Note this function assumes |mod| is public.
809
817
  OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new_for_modulus(const BIGNUM *mod,
810
818
  BN_CTX *ctx);
811
819
 
820
+ // BN_MONT_CTX_new_consttime behaves like |BN_MONT_CTX_new_for_modulus| but
821
+ // treats |mod| as secret.
822
+ OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new_consttime(const BIGNUM *mod,
823
+ BN_CTX *ctx);
824
+
812
825
  // BN_MONT_CTX_free frees memory associated with |mont|.
813
826
  OPENSSL_EXPORT void BN_MONT_CTX_free(BN_MONT_CTX *mont);
814
827
 
@@ -819,7 +832,8 @@ OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to,
819
832
 
820
833
  // BN_MONT_CTX_set_locked takes |lock| and checks whether |*pmont| is NULL. If
821
834
  // so, it creates a new |BN_MONT_CTX| and sets the modulus for it to |mod|. It
822
- // then stores it as |*pmont|. It returns one on success and zero on error.
835
+ // then stores it as |*pmont|. It returns one on success and zero on error. Note
836
+ // this function assumes |mod| is public.
823
837
  //
824
838
  // If |*pmont| is already non-NULL then it does nothing and returns one.
825
839
  int BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_MUTEX *lock,
@@ -832,8 +846,9 @@ OPENSSL_EXPORT int BN_to_montgomery(BIGNUM *ret, const BIGNUM *a,
832
846
  const BN_MONT_CTX *mont, BN_CTX *ctx);
833
847
 
834
848
  // BN_from_montgomery sets |ret| equal to |a| * R^-1, i.e. translates values out
835
- // of the Montgomery domain. |a| is assumed to be in the range [0, n), where |n|
836
- // is the Montgomery modulus. It returns one on success or zero on error.
849
+ // of the Montgomery domain. |a| is assumed to be in the range [0, n*R), where
850
+ // |n| is the Montgomery modulus. Note n < R, so inputs in the range [0, n*n)
851
+ // are valid. This function returns one on success or zero on error.
837
852
  OPENSSL_EXPORT int BN_from_montgomery(BIGNUM *ret, const BIGNUM *a,
838
853
  const BN_MONT_CTX *mont, BN_CTX *ctx);
839
854
 
@@ -862,10 +877,14 @@ OPENSSL_EXPORT int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
862
877
  OPENSSL_EXPORT int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
863
878
  const BIGNUM *m, BN_CTX *ctx);
864
879
 
880
+ // BN_mod_exp_mont behaves like |BN_mod_exp| but treats |a| as secret and
881
+ // requires 0 <= |a| < |m|.
865
882
  OPENSSL_EXPORT int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
866
883
  const BIGNUM *m, BN_CTX *ctx,
867
884
  const BN_MONT_CTX *mont);
868
885
 
886
+ // BN_mod_exp_mont_consttime behaves like |BN_mod_exp| but treats |a|, |p|, and
887
+ // |m| as secret and requires 0 <= |a| < |m|.
869
888
  OPENSSL_EXPORT int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a,
870
889
  const BIGNUM *p, const BIGNUM *m,
871
890
  BN_CTX *ctx,
@@ -914,6 +933,12 @@ OPENSSL_EXPORT BN_MONT_CTX *BN_MONT_CTX_new(void);
914
933
  OPENSSL_EXPORT int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod,
915
934
  BN_CTX *ctx);
916
935
 
936
+ // BN_bn2binpad behaves like |BN_bn2bin_padded|, but it returns |len| on success
937
+ // and -1 on error.
938
+ //
939
+ // Use |BN_bn2bin_padded| instead. It is |size_t|-clean.
940
+ OPENSSL_EXPORT int BN_bn2binpad(const BIGNUM *in, uint8_t *out, int len);
941
+
917
942
 
918
943
  // Private functions
919
944
 
@@ -945,9 +970,10 @@ struct bignum_st {
945
970
  };
946
971
 
947
972
  struct bn_mont_ctx_st {
948
- // RR is R^2, reduced modulo |N|. It is used to convert to Montgomery form.
973
+ // RR is R^2, reduced modulo |N|. It is used to convert to Montgomery form. It
974
+ // is guaranteed to have the same width as |N|.
949
975
  BIGNUM RR;
950
- // N is the modulus. It is always stored in minimal form, so |N.top|
976
+ // N is the modulus. It is always stored in minimal form, so |N.width|
951
977
  // determines R.
952
978
  BIGNUM N;
953
979
  BN_ULONG n0[2]; // least significant words of (R*Ri-1)/N
@@ -970,7 +996,7 @@ OPENSSL_EXPORT unsigned BN_num_bits_word(BN_ULONG l);
970
996
  #if !defined(BORINGSSL_NO_CXX)
971
997
  extern "C++" {
972
998
 
973
- namespace bssl {
999
+ BSSL_NAMESPACE_BEGIN
974
1000
 
975
1001
  BORINGSSL_MAKE_DELETER(BIGNUM, BN_free)
976
1002
  BORINGSSL_MAKE_DELETER(BN_CTX, BN_CTX_free)
@@ -988,7 +1014,7 @@ class BN_CTXScope {
988
1014
  BN_CTXScope &operator=(BN_CTXScope &) = delete;
989
1015
  };
990
1016
 
991
- } // namespace bssl
1017
+ BSSL_NAMESPACE_END
992
1018
 
993
1019
  } // extern C++
994
1020
  #endif
@@ -124,11 +124,11 @@ OPENSSL_EXPORT size_t BUF_strlcat(char *dst, const char *src, size_t dst_size);
124
124
 
125
125
  extern "C++" {
126
126
 
127
- namespace bssl {
127
+ BSSL_NAMESPACE_BEGIN
128
128
 
129
129
  BORINGSSL_MAKE_DELETER(BUF_MEM, BUF_MEM_free)
130
130
 
131
- } // namespace bssl
131
+ BSSL_NAMESPACE_END
132
132
 
133
133
  } // extern C++
134
134
 
@@ -110,6 +110,10 @@ OPENSSL_EXPORT int CBS_get_u24(CBS *cbs, uint32_t *out);
110
110
  // and advances |cbs|. It returns one on success and zero on error.
111
111
  OPENSSL_EXPORT int CBS_get_u32(CBS *cbs, uint32_t *out);
112
112
 
113
+ // CBS_get_u64 sets |*out| to the next, big-endian uint64_t value from |cbs|
114
+ // and advances |cbs|. It returns one on success and zero on error.
115
+ OPENSSL_EXPORT int CBS_get_u64(CBS *cbs, uint64_t *out);
116
+
113
117
  // CBS_get_last_u8 sets |*out| to the last uint8_t from |cbs| and shortens
114
118
  // |cbs|. It returns one on success and zero on error.
115
119
  OPENSSL_EXPORT int CBS_get_last_u8(CBS *cbs, uint8_t *out);
@@ -139,8 +143,48 @@ OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
139
143
 
140
144
 
141
145
  // Parsing ASN.1
146
+ //
147
+ // |CBS| may be used to parse DER structures. Rather than using a schema
148
+ // compiler, the following functions act on tag-length-value elements in the
149
+ // serialization itself. Thus the caller is responsible for looping over a
150
+ // SEQUENCE, branching on CHOICEs or OPTIONAL fields, checking for trailing
151
+ // data, and handling explict vs. implicit tagging.
152
+ //
153
+ // Tags are represented as |unsigned| values in memory. The upper few bits store
154
+ // the class and constructed bit, and the remaining bits store the tag
155
+ // number. Note this differs from the DER serialization, to support tag numbers
156
+ // beyond 31. Consumers must use the constants defined below to decompose or
157
+ // assemble tags.
158
+ //
159
+ // This library treats an element's constructed bit as part of its tag. In DER,
160
+ // the constructed bit is computable from the type. The constants for universal
161
+ // types have the bit set. Callers must set it correctly for tagged types.
162
+ // Explicitly-tagged types are always constructed, and implicitly-tagged types
163
+ // inherit the underlying type's bit.
164
+
165
+ // CBS_ASN1_TAG_SHIFT is how much the in-memory representation shifts the class
166
+ // and constructed bits from the DER serialization.
167
+ #define CBS_ASN1_TAG_SHIFT 24
168
+
169
+ // CBS_ASN1_CONSTRUCTED may be ORed into a tag to set the constructed bit.
170
+ #define CBS_ASN1_CONSTRUCTED (0x20u << CBS_ASN1_TAG_SHIFT)
171
+
172
+ // The following values specify the tag class and may be ORed into a tag number
173
+ // to produce the final tag. If none is used, the tag will be UNIVERSAL.
174
+ #define CBS_ASN1_UNIVERSAL (0u << CBS_ASN1_TAG_SHIFT)
175
+ #define CBS_ASN1_APPLICATION (0x40u << CBS_ASN1_TAG_SHIFT)
176
+ #define CBS_ASN1_CONTEXT_SPECIFIC (0x80u << CBS_ASN1_TAG_SHIFT)
177
+ #define CBS_ASN1_PRIVATE (0xc0u << CBS_ASN1_TAG_SHIFT)
178
+
179
+ // CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class. This will
180
+ // give one of the four values above.
181
+ #define CBS_ASN1_CLASS_MASK (0xc0u << CBS_ASN1_TAG_SHIFT)
182
+
183
+ // CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number.
184
+ #define CBS_ASN1_TAG_NUMBER_MASK ((1u << (5 + CBS_ASN1_TAG_SHIFT)) - 1)
142
185
 
143
- // The following values are tag numbers for UNIVERSAL elements.
186
+ // The following values are constants for UNIVERSAL tags. Note these constants
187
+ // include the constructed bit.
144
188
  #define CBS_ASN1_BOOLEAN 0x1u
145
189
  #define CBS_ASN1_INTEGER 0x2u
146
190
  #define CBS_ASN1_BITSTRING 0x3u
@@ -164,32 +208,6 @@ OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
164
208
  #define CBS_ASN1_UNIVERSALSTRING 0x1cu
165
209
  #define CBS_ASN1_BMPSTRING 0x1eu
166
210
 
167
- // CBS_ASN1_TAG_SHIFT is how much the in-memory representation shifts the class
168
- // and constructed bits from the DER serialization. This allows representing tag
169
- // numbers beyond 31.
170
- //
171
- // Consumers must use the following constants to decompose or assemble tags.
172
- #define CBS_ASN1_TAG_SHIFT 24
173
-
174
- // CBS_ASN1_CONSTRUCTED may be ORed into a tag to toggle the constructed
175
- // bit. |CBS| and |CBB| APIs consider the constructed bit to be part of the
176
- // tag.
177
- #define CBS_ASN1_CONSTRUCTED (0x20u << CBS_ASN1_TAG_SHIFT)
178
-
179
- // The following values specify the tag class and may be ORed into a tag number
180
- // to produce the final tag. If none is used, the tag will be UNIVERSAL.
181
- #define CBS_ASN1_UNIVERSAL (0u << CBS_ASN1_TAG_SHIFT)
182
- #define CBS_ASN1_APPLICATION (0x40u << CBS_ASN1_TAG_SHIFT)
183
- #define CBS_ASN1_CONTEXT_SPECIFIC (0x80u << CBS_ASN1_TAG_SHIFT)
184
- #define CBS_ASN1_PRIVATE (0xc0u << CBS_ASN1_TAG_SHIFT)
185
-
186
- // CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class. This will
187
- // give one of the four values above.
188
- #define CBS_ASN1_CLASS_MASK (0xc0u << CBS_ASN1_TAG_SHIFT)
189
-
190
- // CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number.
191
- #define CBS_ASN1_TAG_NUMBER_MASK ((1u << (5 + CBS_ASN1_TAG_SHIFT)) - 1)
192
-
193
211
  // CBS_get_asn1 sets |*out| to the contents of DER-encoded, ASN.1 element (not
194
212
  // including tag and length bytes) and advances |cbs| over it. The ASN.1
195
213
  // element must match |tag_value|. It returns one on success and zero
@@ -327,9 +345,9 @@ struct cbb_st {
327
345
  // length-prefix, or zero if no length-prefix is pending.
328
346
  uint8_t pending_len_len;
329
347
  char pending_is_asn1;
330
- // is_top_level is true iff this is a top-level |CBB| (as opposed to a child
348
+ // is_child is true iff this is a child |CBB| (as opposed to a top-level
331
349
  // |CBB|). Top-level objects are valid arguments for |CBB_finish|.
332
- char is_top_level;
350
+ char is_child;
333
351
  };
334
352
 
335
353
  // CBB_zero sets an uninitialised |cbb| to the zero state. It must be
@@ -340,7 +358,7 @@ OPENSSL_EXPORT void CBB_zero(CBB *cbb);
340
358
 
341
359
  // CBB_init initialises |cbb| with |initial_capacity|. Since a |CBB| grows as
342
360
  // needed, the |initial_capacity| is just a hint. It returns one on success or
343
- // zero on error.
361
+ // zero on allocation failure.
344
362
  OPENSSL_EXPORT int CBB_init(CBB *cbb, size_t initial_capacity);
345
363
 
346
364
  // CBB_init_fixed initialises |cbb| to write to |len| bytes at |buf|. Since
@@ -445,6 +463,10 @@ OPENSSL_EXPORT int CBB_add_u24(CBB *cbb, uint32_t value);
445
463
  // returns one on success and zero otherwise.
446
464
  OPENSSL_EXPORT int CBB_add_u32(CBB *cbb, uint32_t value);
447
465
 
466
+ // CBB_add_u64 appends a 64-bit, big-endian number from |value| to |cbb|. It
467
+ // returns one on success and zero otherwise.
468
+ OPENSSL_EXPORT int CBB_add_u64(CBB *cbb, uint64_t value);
469
+
448
470
  // CBB_discard_child discards the current unflushed child of |cbb|. Neither the
449
471
  // child's contents nor the length prefix will be included in the output.
450
472
  OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
@@ -491,11 +513,11 @@ OPENSSL_EXPORT int CBB_flush_asn1_set_of(CBB *cbb);
491
513
  #if !defined(BORINGSSL_NO_CXX)
492
514
  extern "C++" {
493
515
 
494
- namespace bssl {
516
+ BSSL_NAMESPACE_BEGIN
495
517
 
496
518
  using ScopedCBB = internal::StackAllocated<CBB, void, CBB_zero, CBB_cleanup>;
497
519
 
498
- } // namespace bssl
520
+ BSSL_NAMESPACE_END
499
521
 
500
522
  } // extern C++
501
523
  #endif
@@ -82,11 +82,11 @@ OPENSSL_EXPORT void CAST_ecb_encrypt(const uint8_t *in, uint8_t *out,
82
82
  OPENSSL_EXPORT void CAST_encrypt(uint32_t *data, const CAST_KEY *key);
83
83
  OPENSSL_EXPORT void CAST_decrypt(uint32_t *data, const CAST_KEY *key);
84
84
  OPENSSL_EXPORT void CAST_cbc_encrypt(const uint8_t *in, uint8_t *out,
85
- long length, const CAST_KEY *ks,
85
+ size_t length, const CAST_KEY *ks,
86
86
  uint8_t *iv, int enc);
87
87
 
88
88
  OPENSSL_EXPORT void CAST_cfb64_encrypt(const uint8_t *in, uint8_t *out,
89
- long length, const CAST_KEY *schedule,
89
+ size_t length, const CAST_KEY *schedule,
90
90
  uint8_t *ivec, int *num, int enc);
91
91
 
92
92
  #ifdef __cplusplus
@@ -136,8 +136,8 @@ OPENSSL_EXPORT int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out,
136
136
  const EVP_CIPHER_CTX *in);
137
137
 
138
138
  // EVP_CIPHER_CTX_reset calls |EVP_CIPHER_CTX_cleanup| followed by
139
- // |EVP_CIPHER_CTX_init|.
140
- OPENSSL_EXPORT void EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
139
+ // |EVP_CIPHER_CTX_init| and returns one.
140
+ OPENSSL_EXPORT int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
141
141
 
142
142
 
143
143
  // Cipher context configuration.
@@ -243,6 +243,10 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_CIPHER_CTX_cipher(
243
243
  // configured.
244
244
  OPENSSL_EXPORT int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
245
245
 
246
+ // EVP_CIPHER_CTX_encrypting returns one if |ctx| is configured for encryption
247
+ // and zero otherwise.
248
+ OPENSSL_EXPORT int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx);
249
+
246
250
  // EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
247
251
  // underlying |ctx|, or one if the cipher is a stream cipher. It will crash if
248
252
  // no cipher has been configured.
@@ -413,14 +417,37 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ecb(void);
413
417
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cbc(void);
414
418
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ctr(void);
415
419
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
420
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ofb(void);
421
+
422
+ // EVP_des_ede3_ecb is an alias for |EVP_des_ede3|. Use the former instead.
423
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);
416
424
 
417
425
  // EVP_aes_128_cfb128 is only available in decrepit.
418
426
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
419
427
 
428
+ // EVP_aes_256_cfb128 is only available in decrepit.
429
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_cfb128(void);
430
+
431
+ // EVP_bf_ecb is Blowfish in ECB mode and is only available in decrepit.
432
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_ecb(void);
433
+
434
+ // EVP_bf_cbc is Blowfish in CBC mode and is only available in decrepit.
435
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_cbc(void);
436
+
437
+ // EVP_bf_cfb is Blowfish in 64-bit CFB mode and is only available in decrepit.
438
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_bf_cfb(void);
439
+
440
+ // EVP_cast5_ecb is CAST5 in ECB mode and is only available in decrepit.
441
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_cast5_ecb(void);
442
+
443
+ // EVP_cast5_cbc is CAST5 in CBC mode and is only available in decrepit.
444
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_cast5_cbc(void);
445
+
420
446
  // The following flags do nothing and are included only to make it easier to
421
447
  // compile code with BoringSSL.
422
- #define EVP_CIPH_CCM_MODE 0
423
- #define EVP_CIPH_WRAP_MODE 0
448
+ #define EVP_CIPH_CCM_MODE (-1)
449
+ #define EVP_CIPH_OCB_MODE (-2)
450
+ #define EVP_CIPH_WRAP_MODE (-3)
424
451
  #define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0
425
452
 
426
453
  // EVP_CIPHER_CTX_set_flags does nothing.
@@ -433,7 +460,7 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
433
460
  // EVP_CIPH_NO_PADDING disables padding in block ciphers.
434
461
  #define EVP_CIPH_NO_PADDING 0x800
435
462
 
436
- // EVP_CIPHER_CTX_ctrl commands.
463
+ // The following are |EVP_CIPHER_CTX_ctrl| commands.
437
464
  #define EVP_CTRL_INIT 0x0
438
465
  #define EVP_CTRL_SET_KEY_LENGTH 0x1
439
466
  #define EVP_CTRL_GET_RC2_KEY_BITS 0x2
@@ -443,23 +470,26 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
443
470
  #define EVP_CTRL_RAND_KEY 0x6
444
471
  #define EVP_CTRL_PBE_PRF_NID 0x7
445
472
  #define EVP_CTRL_COPY 0x8
446
- #define EVP_CTRL_GCM_SET_IVLEN 0x9
447
- #define EVP_CTRL_GCM_GET_TAG 0x10
448
- #define EVP_CTRL_GCM_SET_TAG 0x11
449
- #define EVP_CTRL_GCM_SET_IV_FIXED 0x12
473
+ #define EVP_CTRL_AEAD_SET_IVLEN 0x9
474
+ #define EVP_CTRL_AEAD_GET_TAG 0x10
475
+ #define EVP_CTRL_AEAD_SET_TAG 0x11
476
+ #define EVP_CTRL_AEAD_SET_IV_FIXED 0x12
450
477
  #define EVP_CTRL_GCM_IV_GEN 0x13
451
478
  #define EVP_CTRL_AEAD_SET_MAC_KEY 0x17
452
- // Set the GCM invocation field, decrypt only
479
+ // EVP_CTRL_GCM_SET_IV_INV sets the GCM invocation field, decrypt only
453
480
  #define EVP_CTRL_GCM_SET_IV_INV 0x18
454
481
 
455
- // GCM TLS constants
456
- // Length of fixed part of IV derived from PRF
482
+ // The following constants are unused.
457
483
  #define EVP_GCM_TLS_FIXED_IV_LEN 4
458
- // Length of explicit part of IV part of TLS records
459
484
  #define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
460
- // Length of tag for TLS
461
485
  #define EVP_GCM_TLS_TAG_LEN 16
462
486
 
487
+ // The following are legacy aliases for AEAD |EVP_CIPHER_CTX_ctrl| values.
488
+ #define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
489
+ #define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
490
+ #define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
491
+ #define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED
492
+
463
493
  #define EVP_MAX_KEY_LENGTH 64
464
494
  #define EVP_MAX_IV_LENGTH 16
465
495
  #define EVP_MAX_BLOCK_LENGTH 32
@@ -563,7 +593,7 @@ struct evp_cipher_st {
563
593
  #if !defined(BORINGSSL_NO_CXX)
564
594
  extern "C++" {
565
595
 
566
- namespace bssl {
596
+ BSSL_NAMESPACE_BEGIN
567
597
 
568
598
  BORINGSSL_MAKE_DELETER(EVP_CIPHER_CTX, EVP_CIPHER_CTX_free)
569
599
 
@@ -571,7 +601,7 @@ using ScopedEVP_CIPHER_CTX =
571
601
  internal::StackAllocated<EVP_CIPHER_CTX, int, EVP_CIPHER_CTX_init,
572
602
  EVP_CIPHER_CTX_cleanup>;
573
603
 
574
- } // namespace bssl
604
+ BSSL_NAMESPACE_END
575
605
 
576
606
  } // extern C++
577
607
  #endif