gitlab-grpc 1.42.1.gitlab

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 (2288) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/Makefile +3004 -0
  4. data/etc/roots.pem +4337 -0
  5. data/include/grpc/byte_buffer.h +27 -0
  6. data/include/grpc/byte_buffer_reader.h +26 -0
  7. data/include/grpc/census.h +40 -0
  8. data/include/grpc/compression.h +75 -0
  9. data/include/grpc/event_engine/README.md +38 -0
  10. data/include/grpc/event_engine/endpoint_config.h +43 -0
  11. data/include/grpc/event_engine/event_engine.h +375 -0
  12. data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
  13. data/include/grpc/event_engine/memory_allocator.h +210 -0
  14. data/include/grpc/event_engine/port.h +39 -0
  15. data/include/grpc/fork.h +26 -0
  16. data/include/grpc/grpc.h +579 -0
  17. data/include/grpc/grpc_cronet.h +38 -0
  18. data/include/grpc/grpc_posix.h +62 -0
  19. data/include/grpc/grpc_security.h +1142 -0
  20. data/include/grpc/grpc_security_constants.h +165 -0
  21. data/include/grpc/impl/codegen/README.md +22 -0
  22. data/include/grpc/impl/codegen/atm.h +97 -0
  23. data/include/grpc/impl/codegen/atm_gcc_atomic.h +93 -0
  24. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  25. data/include/grpc/impl/codegen/atm_windows.h +134 -0
  26. data/include/grpc/impl/codegen/byte_buffer.h +103 -0
  27. data/include/grpc/impl/codegen/byte_buffer_reader.h +44 -0
  28. data/include/grpc/impl/codegen/compression_types.h +110 -0
  29. data/include/grpc/impl/codegen/connectivity_state.h +46 -0
  30. data/include/grpc/impl/codegen/fork.h +50 -0
  31. data/include/grpc/impl/codegen/gpr_slice.h +71 -0
  32. data/include/grpc/impl/codegen/gpr_types.h +61 -0
  33. data/include/grpc/impl/codegen/grpc_types.h +813 -0
  34. data/include/grpc/impl/codegen/log.h +112 -0
  35. data/include/grpc/impl/codegen/port_platform.h +719 -0
  36. data/include/grpc/impl/codegen/propagation_bits.h +54 -0
  37. data/include/grpc/impl/codegen/slice.h +129 -0
  38. data/include/grpc/impl/codegen/status.h +156 -0
  39. data/include/grpc/impl/codegen/sync.h +68 -0
  40. data/include/grpc/impl/codegen/sync_abseil.h +38 -0
  41. data/include/grpc/impl/codegen/sync_custom.h +40 -0
  42. data/include/grpc/impl/codegen/sync_generic.h +51 -0
  43. data/include/grpc/impl/codegen/sync_posix.h +54 -0
  44. data/include/grpc/impl/codegen/sync_windows.h +42 -0
  45. data/include/grpc/load_reporting.h +48 -0
  46. data/include/grpc/module.modulemap +64 -0
  47. data/include/grpc/slice.h +172 -0
  48. data/include/grpc/slice_buffer.h +84 -0
  49. data/include/grpc/status.h +26 -0
  50. data/include/grpc/support/alloc.h +52 -0
  51. data/include/grpc/support/atm.h +26 -0
  52. data/include/grpc/support/atm_gcc_atomic.h +26 -0
  53. data/include/grpc/support/atm_gcc_sync.h +26 -0
  54. data/include/grpc/support/atm_windows.h +26 -0
  55. data/include/grpc/support/cpu.h +44 -0
  56. data/include/grpc/support/log.h +26 -0
  57. data/include/grpc/support/log_windows.h +38 -0
  58. data/include/grpc/support/port_platform.h +24 -0
  59. data/include/grpc/support/string_util.h +51 -0
  60. data/include/grpc/support/sync.h +282 -0
  61. data/include/grpc/support/sync_abseil.h +26 -0
  62. data/include/grpc/support/sync_custom.h +26 -0
  63. data/include/grpc/support/sync_generic.h +26 -0
  64. data/include/grpc/support/sync_posix.h +26 -0
  65. data/include/grpc/support/sync_windows.h +26 -0
  66. data/include/grpc/support/thd_id.h +44 -0
  67. data/include/grpc/support/time.h +92 -0
  68. data/include/grpc/support/workaround_list.h +31 -0
  69. data/src/core/ext/filters/census/grpc_context.cc +39 -0
  70. data/src/core/ext/filters/client_channel/backend_metric.cc +80 -0
  71. data/src/core/ext/filters/client_channel/backend_metric.h +36 -0
  72. data/src/core/ext/filters/client_channel/backup_poller.cc +183 -0
  73. data/src/core/ext/filters/client_channel/backup_poller.h +42 -0
  74. data/src/core/ext/filters/client_channel/channel_connectivity.cc +220 -0
  75. data/src/core/ext/filters/client_channel/client_channel.cc +3119 -0
  76. data/src/core/ext/filters/client_channel/client_channel.h +581 -0
  77. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +96 -0
  78. data/src/core/ext/filters/client_channel/client_channel_channelz.h +75 -0
  79. data/src/core/ext/filters/client_channel/client_channel_factory.cc +56 -0
  80. data/src/core/ext/filters/client_channel/client_channel_factory.h +46 -0
  81. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +74 -0
  82. data/src/core/ext/filters/client_channel/config_selector.cc +59 -0
  83. data/src/core/ext/filters/client_channel/config_selector.h +145 -0
  84. data/src/core/ext/filters/client_channel/connector.h +79 -0
  85. data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
  86. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  87. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +83 -0
  88. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +72 -0
  89. data/src/core/ext/filters/client_channel/health/health_check_client.cc +619 -0
  90. data/src/core/ext/filters/client_channel/health/health_check_client.h +177 -0
  91. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +392 -0
  92. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +42 -0
  93. data/src/core/ext/filters/client_channel/http_proxy.cc +234 -0
  94. data/src/core/ext/filters/client_channel/http_proxy.h +28 -0
  95. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +96 -0
  96. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +101 -0
  97. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +304 -0
  98. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
  99. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +148 -0
  100. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +29 -0
  101. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1866 -0
  102. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +47 -0
  103. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +76 -0
  104. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +37 -0
  105. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +44 -0
  106. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +83 -0
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +93 -0
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +76 -0
  109. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +192 -0
  110. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +74 -0
  111. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +522 -0
  112. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +918 -0
  113. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
  114. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
  115. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  116. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +503 -0
  117. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +426 -0
  118. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +741 -0
  119. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +745 -0
  120. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +60 -0
  121. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  122. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +795 -0
  123. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +701 -0
  124. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1362 -0
  125. data/src/core/ext/filters/client_channel/lb_policy.cc +131 -0
  126. data/src/core/ext/filters/client_channel/lb_policy.h +425 -0
  127. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -0
  128. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +185 -0
  129. data/src/core/ext/filters/client_channel/lb_policy_registry.h +65 -0
  130. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +56 -0
  131. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +58 -0
  132. data/src/core/ext/filters/client_channel/proxy_mapper.h +54 -0
  133. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +89 -0
  134. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +50 -0
  135. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  136. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +526 -0
  137. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +74 -0
  138. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  139. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +110 -0
  140. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +902 -0
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +1203 -0
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +122 -0
  143. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  144. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +29 -0
  145. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +34 -0
  146. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +28 -0
  147. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +29 -0
  148. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +332 -0
  149. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +380 -0
  150. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +95 -0
  151. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
  152. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +195 -0
  153. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +1002 -0
  154. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
  155. data/src/core/ext/filters/client_channel/resolver.cc +87 -0
  156. data/src/core/ext/filters/client_channel/resolver.h +136 -0
  157. data/src/core/ext/filters/client_channel/resolver_factory.h +75 -0
  158. data/src/core/ext/filters/client_channel/resolver_registry.cc +195 -0
  159. data/src/core/ext/filters/client_channel/resolver_registry.h +89 -0
  160. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +189 -0
  161. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +99 -0
  162. data/src/core/ext/filters/client_channel/retry_filter.cc +2573 -0
  163. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  164. data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
  165. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  166. data/src/core/ext/filters/client_channel/retry_throttle.cc +162 -0
  167. data/src/core/ext/filters/client_channel/retry_throttle.h +79 -0
  168. data/src/core/ext/filters/client_channel/server_address.cc +170 -0
  169. data/src/core/ext/filters/client_channel/server_address.h +144 -0
  170. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +156 -0
  171. data/src/core/ext/filters/client_channel/subchannel.cc +1021 -0
  172. data/src/core/ext/filters/client_channel/subchannel.h +382 -0
  173. data/src/core/ext/filters/client_channel/subchannel_interface.h +130 -0
  174. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +126 -0
  175. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +106 -0
  176. data/src/core/ext/filters/client_idle/client_idle_filter.cc +264 -0
  177. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  178. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  179. data/src/core/ext/filters/deadline/deadline_filter.cc +391 -0
  180. data/src/core/ext/filters/deadline/deadline_filter.h +86 -0
  181. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +503 -0
  182. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  183. data/src/core/ext/filters/fault_injection/service_config_parser.cc +181 -0
  184. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  185. data/src/core/ext/filters/http/client/http_client_filter.cc +604 -0
  186. data/src/core/ext/filters/http/client/http_client_filter.h +31 -0
  187. data/src/core/ext/filters/http/client_authority_filter.cc +159 -0
  188. data/src/core/ext/filters/http/client_authority_filter.h +34 -0
  189. data/src/core/ext/filters/http/http_filters_plugin.cc +90 -0
  190. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +553 -0
  191. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +53 -0
  192. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +398 -0
  193. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +31 -0
  194. data/src/core/ext/filters/http/server/http_server_filter.cc +537 -0
  195. data/src/core/ext/filters/http/server/http_server_filter.h +29 -0
  196. data/src/core/ext/filters/max_age/max_age_filter.cc +560 -0
  197. data/src/core/ext/filters/max_age/max_age_filter.h +26 -0
  198. data/src/core/ext/filters/message_size/message_size_filter.cc +402 -0
  199. data/src/core/ext/filters/message_size/message_size_filter.h +66 -0
  200. data/src/core/ext/service_config/service_config.cc +227 -0
  201. data/src/core/ext/service_config/service_config.h +127 -0
  202. data/src/core/ext/service_config/service_config_call_data.h +72 -0
  203. data/src/core/ext/service_config/service_config_parser.cc +89 -0
  204. data/src/core/ext/service_config/service_config_parser.h +97 -0
  205. data/src/core/ext/transport/chttp2/alpn/alpn.cc +45 -0
  206. data/src/core/ext/transport/chttp2/alpn/alpn.h +36 -0
  207. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +276 -0
  208. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +77 -0
  209. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +119 -0
  210. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +95 -0
  211. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +189 -0
  212. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +923 -0
  213. data/src/core/ext/transport/chttp2/server/chttp2_server.h +47 -0
  214. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +53 -0
  215. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +83 -0
  216. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +125 -0
  217. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +252 -0
  218. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +57 -0
  219. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +231 -0
  220. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +42 -0
  221. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +37 -0
  222. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +3351 -0
  223. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +66 -0
  224. data/src/core/ext/transport/chttp2/transport/context_list.cc +68 -0
  225. data/src/core/ext/transport/chttp2/transport/context_list.h +52 -0
  226. data/src/core/ext/transport/chttp2/transport/flow_control.cc +430 -0
  227. data/src/core/ext/transport/chttp2/transport/flow_control.h +488 -0
  228. data/src/core/ext/transport/chttp2/transport/frame.h +47 -0
  229. data/src/core/ext/transport/chttp2/transport/frame_data.cc +308 -0
  230. data/src/core/ext/transport/chttp2/transport/frame_data.h +83 -0
  231. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +187 -0
  232. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +63 -0
  233. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +132 -0
  234. data/src/core/ext/transport/chttp2/transport/frame_ping.h +46 -0
  235. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +118 -0
  236. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +51 -0
  237. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +273 -0
  238. data/src/core/ext/transport/chttp2/transport/frame_settings.h +62 -0
  239. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +123 -0
  240. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +43 -0
  241. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
  242. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +546 -0
  243. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +277 -0
  244. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
  245. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
  246. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
  247. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1454 -0
  248. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +136 -0
  249. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -0
  250. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
  251. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
  252. data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
  253. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +62 -0
  254. data/src/core/ext/transport/chttp2/transport/http2_settings.h +61 -0
  255. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +92 -0
  256. data/src/core/ext/transport/chttp2/transport/huffsyms.h +32 -0
  257. data/src/core/ext/transport/chttp2/transport/internal.h +892 -0
  258. data/src/core/ext/transport/chttp2/transport/parsing.cc +651 -0
  259. data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
  260. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +216 -0
  261. data/src/core/ext/transport/chttp2/transport/stream_map.cc +177 -0
  262. data/src/core/ext/transport/chttp2/transport/stream_map.h +67 -0
  263. data/src/core/ext/transport/chttp2/transport/varint.cc +62 -0
  264. data/src/core/ext/transport/chttp2/transport/varint.h +71 -0
  265. data/src/core/ext/transport/chttp2/transport/writing.cc +716 -0
  266. data/src/core/ext/transport/inproc/inproc_plugin.cc +28 -0
  267. data/src/core/ext/transport/inproc/inproc_transport.cc +1360 -0
  268. data/src/core/ext/transport/inproc/inproc_transport.h +35 -0
  269. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  270. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1591 -0
  271. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
  272. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
  273. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
  274. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +66 -0
  275. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +243 -0
  276. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +955 -0
  277. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
  278. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1554 -0
  279. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  280. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +271 -0
  281. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +494 -0
  282. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2116 -0
  283. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
  284. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +83 -0
  285. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +56 -0
  286. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +370 -0
  287. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
  288. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +470 -0
  289. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
  290. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +94 -0
  291. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +382 -0
  292. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1295 -0
  293. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
  294. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +418 -0
  295. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  296. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +84 -0
  297. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  298. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +161 -0
  299. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
  300. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +917 -0
  301. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +171 -0
  302. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +830 -0
  303. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
  304. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +94 -0
  305. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +244 -0
  306. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1089 -0
  307. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +27 -0
  308. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +71 -0
  309. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  310. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
  311. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +34 -0
  312. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +101 -0
  313. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +43 -0
  314. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +132 -0
  315. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  316. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
  317. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +90 -0
  318. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +261 -0
  319. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +125 -0
  320. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +462 -0
  321. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  322. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +397 -0
  323. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
  324. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +79 -0
  325. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -0
  326. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +640 -0
  327. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +161 -0
  328. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +680 -0
  329. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  330. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
  331. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +42 -0
  332. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +127 -0
  333. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  334. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +536 -0
  335. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +153 -0
  336. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +550 -0
  337. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +185 -0
  338. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +738 -0
  339. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +82 -0
  340. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +312 -0
  341. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +960 -0
  342. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4213 -0
  343. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
  344. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +177 -0
  345. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +49 -0
  346. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +134 -0
  347. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  348. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -0
  349. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  350. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +298 -0
  351. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
  352. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +303 -0
  353. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
  354. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +123 -0
  355. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +403 -0
  356. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1785 -0
  357. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +19 -0
  358. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
  359. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +130 -0
  360. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +559 -0
  361. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +73 -0
  362. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +237 -0
  363. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +148 -0
  364. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +674 -0
  365. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +27 -0
  366. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +62 -0
  367. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +25 -0
  368. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +62 -0
  369. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +146 -0
  370. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +535 -0
  371. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +27 -0
  372. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +62 -0
  373. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +27 -0
  374. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +62 -0
  375. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +54 -0
  376. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +163 -0
  377. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +27 -0
  378. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +62 -0
  379. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +27 -0
  380. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +62 -0
  381. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
  382. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +468 -0
  383. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  384. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
  385. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +48 -0
  386. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +144 -0
  387. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  388. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +96 -0
  389. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  390. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +90 -0
  391. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  392. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +84 -0
  393. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +65 -0
  394. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +184 -0
  395. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
  396. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +158 -0
  397. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  398. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +136 -0
  399. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  400. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +225 -0
  401. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  402. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +343 -0
  403. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  404. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +313 -0
  405. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +17 -0
  406. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +36 -0
  407. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
  408. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +111 -0
  409. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
  410. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +148 -0
  411. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +30 -0
  412. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +74 -0
  413. data/src/core/ext/upb-generated/google/api/annotations.upb.c +18 -0
  414. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -0
  415. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  416. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +896 -0
  417. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +251 -0
  418. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +943 -0
  419. data/src/core/ext/upb-generated/google/api/http.upb.c +66 -0
  420. data/src/core/ext/upb-generated/google/api/http.upb.h +228 -0
  421. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +27 -0
  422. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +70 -0
  423. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +486 -0
  424. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2047 -0
  425. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +27 -0
  426. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +70 -0
  427. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +22 -0
  428. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +62 -0
  429. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +79 -0
  430. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +231 -0
  431. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +27 -0
  432. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +70 -0
  433. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +106 -0
  434. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +346 -0
  435. data/src/core/ext/upb-generated/google/rpc/status.upb.c +33 -0
  436. data/src/core/ext/upb-generated/google/rpc/status.upb.h +87 -0
  437. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +49 -0
  438. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +127 -0
  439. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +212 -0
  440. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +805 -0
  441. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +42 -0
  442. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +137 -0
  443. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +36 -0
  444. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +108 -0
  445. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +141 -0
  446. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +507 -0
  447. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
  448. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
  449. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
  450. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +140 -0
  451. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +29 -0
  452. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +70 -0
  453. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
  454. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
  455. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  456. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +77 -0
  457. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  458. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +66 -0
  459. data/src/core/ext/upb-generated/validate/validate.upb.c +464 -0
  460. data/src/core/ext/upb-generated/validate/validate.upb.h +2447 -0
  461. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
  462. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
  463. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
  464. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +66 -0
  465. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  466. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +155 -0
  467. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  468. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +90 -0
  469. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
  470. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +100 -0
  471. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  472. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +178 -0
  473. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  474. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +91 -0
  475. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
  476. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
  477. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +33 -0
  478. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
  479. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  480. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  481. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +46 -0
  482. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  483. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  484. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  485. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +252 -0
  486. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  487. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +424 -0
  488. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
  489. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  490. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  491. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +596 -0
  492. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +155 -0
  493. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  494. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  495. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
  496. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  497. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  498. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  499. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  500. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  501. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +313 -0
  502. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +150 -0
  503. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +144 -0
  504. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  505. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  506. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  507. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  508. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  509. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  510. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  511. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +236 -0
  512. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  513. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  514. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  515. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +300 -0
  516. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +100 -0
  517. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
  518. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  519. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  520. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  521. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  522. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  523. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +72 -0
  524. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  525. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  526. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  527. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
  528. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  529. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +140 -0
  530. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +60 -0
  531. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  532. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  533. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  534. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  535. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +205 -0
  536. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +60 -0
  537. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +201 -0
  538. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  539. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  540. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  541. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +67 -0
  542. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  543. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  544. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  545. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +152 -0
  546. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
  547. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +115 -0
  548. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +45 -0
  549. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +982 -0
  550. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +295 -0
  551. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  552. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  553. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
  554. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  555. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  556. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  557. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  558. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  559. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
  560. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  561. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
  562. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  563. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +567 -0
  564. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +125 -0
  565. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
  566. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  567. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +196 -0
  568. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +60 -0
  569. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
  570. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  571. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +251 -0
  572. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  573. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  574. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  575. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  576. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  577. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
  578. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
  579. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
  580. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  581. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
  582. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  583. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
  584. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  585. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
  586. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  587. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  588. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  589. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -0
  590. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
  591. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  592. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  593. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +65 -0
  594. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  595. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  596. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  597. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  598. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  599. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  600. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  601. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +76 -0
  602. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  603. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
  604. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  605. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  606. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  607. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  608. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  609. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  610. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  611. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  612. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  613. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  614. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
  615. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  616. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  617. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  618. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  619. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  620. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  621. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  622. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  623. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  624. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  625. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
  626. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  627. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  628. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  629. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
  630. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  631. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  632. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  633. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  634. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  635. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
  636. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  637. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  638. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  639. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  640. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  641. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +71 -0
  642. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  643. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +52 -0
  644. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  645. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +34 -0
  646. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  647. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +51 -0
  648. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  649. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +44 -0
  650. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  651. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +332 -0
  652. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  653. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
  654. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  655. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +43 -0
  656. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  657. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +63 -0
  658. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  659. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +46 -0
  660. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  661. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +50 -0
  662. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  663. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +68 -0
  664. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  665. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +51 -0
  666. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  667. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
  668. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  669. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  670. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  671. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  672. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  673. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  674. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  675. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  676. data/src/core/ext/xds/xds_api.cc +3965 -0
  677. data/src/core/ext/xds/xds_api.h +744 -0
  678. data/src/core/ext/xds/xds_bootstrap.cc +471 -0
  679. data/src/core/ext/xds/xds_bootstrap.h +125 -0
  680. data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
  681. data/src/core/ext/xds/xds_certificate_provider.h +151 -0
  682. data/src/core/ext/xds/xds_channel_args.h +32 -0
  683. data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
  684. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  685. data/src/core/ext/xds/xds_client.cc +2791 -0
  686. data/src/core/ext/xds/xds_client.h +380 -0
  687. data/src/core/ext/xds/xds_client_stats.cc +160 -0
  688. data/src/core/ext/xds/xds_client_stats.h +240 -0
  689. data/src/core/ext/xds/xds_http_fault_filter.cc +227 -0
  690. data/src/core/ext/xds/xds_http_fault_filter.h +64 -0
  691. data/src/core/ext/xds/xds_http_filters.cc +116 -0
  692. data/src/core/ext/xds/xds_http_filters.h +133 -0
  693. data/src/core/ext/xds/xds_server_config_fetcher.cc +544 -0
  694. data/src/core/lib/address_utils/parse_address.cc +320 -0
  695. data/src/core/lib/address_utils/parse_address.h +77 -0
  696. data/src/core/lib/address_utils/sockaddr_utils.cc +412 -0
  697. data/src/core/lib/address_utils/sockaddr_utils.h +110 -0
  698. data/src/core/lib/avl/avl.cc +306 -0
  699. data/src/core/lib/avl/avl.h +94 -0
  700. data/src/core/lib/backoff/backoff.cc +78 -0
  701. data/src/core/lib/backoff/backoff.h +89 -0
  702. data/src/core/lib/channel/call_tracer.h +85 -0
  703. data/src/core/lib/channel/channel_args.cc +400 -0
  704. data/src/core/lib/channel/channel_args.h +143 -0
  705. data/src/core/lib/channel/channel_stack.cc +267 -0
  706. data/src/core/lib/channel/channel_stack.h +312 -0
  707. data/src/core/lib/channel/channel_stack_builder.cc +313 -0
  708. data/src/core/lib/channel/channel_stack_builder.h +158 -0
  709. data/src/core/lib/channel/channel_trace.cc +193 -0
  710. data/src/core/lib/channel/channel_trace.h +135 -0
  711. data/src/core/lib/channel/channelz.cc +596 -0
  712. data/src/core/lib/channel/channelz.h +357 -0
  713. data/src/core/lib/channel/channelz_registry.cc +285 -0
  714. data/src/core/lib/channel/channelz_registry.h +99 -0
  715. data/src/core/lib/channel/connected_channel.cc +245 -0
  716. data/src/core/lib/channel/connected_channel.h +33 -0
  717. data/src/core/lib/channel/context.h +52 -0
  718. data/src/core/lib/channel/handshaker.cc +222 -0
  719. data/src/core/lib/channel/handshaker.h +161 -0
  720. data/src/core/lib/channel/handshaker_factory.h +50 -0
  721. data/src/core/lib/channel/handshaker_registry.cc +50 -0
  722. data/src/core/lib/channel/handshaker_registry.h +71 -0
  723. data/src/core/lib/channel/status_util.cc +109 -0
  724. data/src/core/lib/channel/status_util.h +67 -0
  725. data/src/core/lib/compression/algorithm_metadata.h +62 -0
  726. data/src/core/lib/compression/compression.cc +183 -0
  727. data/src/core/lib/compression/compression_args.cc +138 -0
  728. data/src/core/lib/compression/compression_args.h +56 -0
  729. data/src/core/lib/compression/compression_internal.cc +283 -0
  730. data/src/core/lib/compression/compression_internal.h +97 -0
  731. data/src/core/lib/compression/message_compress.cc +192 -0
  732. data/src/core/lib/compression/message_compress.h +40 -0
  733. data/src/core/lib/compression/stream_compression.cc +81 -0
  734. data/src/core/lib/compression/stream_compression.h +117 -0
  735. data/src/core/lib/compression/stream_compression_gzip.cc +231 -0
  736. data/src/core/lib/compression/stream_compression_gzip.h +28 -0
  737. data/src/core/lib/compression/stream_compression_identity.cc +91 -0
  738. data/src/core/lib/compression/stream_compression_identity.h +29 -0
  739. data/src/core/lib/config/core_configuration.cc +96 -0
  740. data/src/core/lib/config/core_configuration.h +146 -0
  741. data/src/core/lib/debug/stats.cc +172 -0
  742. data/src/core/lib/debug/stats.h +71 -0
  743. data/src/core/lib/debug/stats_data.cc +689 -0
  744. data/src/core/lib/debug/stats_data.h +556 -0
  745. data/src/core/lib/debug/trace.cc +155 -0
  746. data/src/core/lib/debug/trace.h +132 -0
  747. data/src/core/lib/event_engine/endpoint_config.cc +45 -0
  748. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  749. data/src/core/lib/event_engine/event_engine.cc +50 -0
  750. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  751. data/src/core/lib/event_engine/sockaddr.h +44 -0
  752. data/src/core/lib/gpr/alloc.cc +76 -0
  753. data/src/core/lib/gpr/alloc.h +28 -0
  754. data/src/core/lib/gpr/atm.cc +35 -0
  755. data/src/core/lib/gpr/cpu_iphone.cc +44 -0
  756. data/src/core/lib/gpr/cpu_linux.cc +82 -0
  757. data/src/core/lib/gpr/cpu_posix.cc +83 -0
  758. data/src/core/lib/gpr/cpu_windows.cc +33 -0
  759. data/src/core/lib/gpr/env.h +40 -0
  760. data/src/core/lib/gpr/env_linux.cc +75 -0
  761. data/src/core/lib/gpr/env_posix.cc +46 -0
  762. data/src/core/lib/gpr/env_windows.cc +74 -0
  763. data/src/core/lib/gpr/log.cc +140 -0
  764. data/src/core/lib/gpr/log_android.cc +77 -0
  765. data/src/core/lib/gpr/log_linux.cc +114 -0
  766. data/src/core/lib/gpr/log_posix.cc +110 -0
  767. data/src/core/lib/gpr/log_windows.cc +116 -0
  768. data/src/core/lib/gpr/murmur_hash.cc +82 -0
  769. data/src/core/lib/gpr/murmur_hash.h +29 -0
  770. data/src/core/lib/gpr/spinlock.h +53 -0
  771. data/src/core/lib/gpr/string.cc +343 -0
  772. data/src/core/lib/gpr/string.h +112 -0
  773. data/src/core/lib/gpr/string_posix.cc +72 -0
  774. data/src/core/lib/gpr/string_util_windows.cc +82 -0
  775. data/src/core/lib/gpr/string_windows.cc +69 -0
  776. data/src/core/lib/gpr/string_windows.h +32 -0
  777. data/src/core/lib/gpr/sync.cc +124 -0
  778. data/src/core/lib/gpr/sync_abseil.cc +114 -0
  779. data/src/core/lib/gpr/sync_posix.cc +170 -0
  780. data/src/core/lib/gpr/sync_windows.cc +120 -0
  781. data/src/core/lib/gpr/time.cc +264 -0
  782. data/src/core/lib/gpr/time_posix.cc +186 -0
  783. data/src/core/lib/gpr/time_precise.cc +168 -0
  784. data/src/core/lib/gpr/time_precise.h +70 -0
  785. data/src/core/lib/gpr/time_windows.cc +99 -0
  786. data/src/core/lib/gpr/tls.h +151 -0
  787. data/src/core/lib/gpr/tmpfile.h +32 -0
  788. data/src/core/lib/gpr/tmpfile_msys.cc +58 -0
  789. data/src/core/lib/gpr/tmpfile_posix.cc +69 -0
  790. data/src/core/lib/gpr/tmpfile_windows.cc +69 -0
  791. data/src/core/lib/gpr/useful.h +113 -0
  792. data/src/core/lib/gpr/wrap_memcpy.cc +43 -0
  793. data/src/core/lib/gprpp/arena.cc +104 -0
  794. data/src/core/lib/gprpp/arena.h +131 -0
  795. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  796. data/src/core/lib/gprpp/bitset.h +188 -0
  797. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  798. data/src/core/lib/gprpp/construct_destruct.h +39 -0
  799. data/src/core/lib/gprpp/debug_location.h +53 -0
  800. data/src/core/lib/gprpp/dual_ref_counted.h +330 -0
  801. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  802. data/src/core/lib/gprpp/examine_stack.h +46 -0
  803. data/src/core/lib/gprpp/fork.cc +244 -0
  804. data/src/core/lib/gprpp/fork.h +103 -0
  805. data/src/core/lib/gprpp/global_config.h +95 -0
  806. data/src/core/lib/gprpp/global_config_custom.h +29 -0
  807. data/src/core/lib/gprpp/global_config_env.cc +137 -0
  808. data/src/core/lib/gprpp/global_config_env.h +131 -0
  809. data/src/core/lib/gprpp/global_config_generic.h +44 -0
  810. data/src/core/lib/gprpp/host_port.cc +112 -0
  811. data/src/core/lib/gprpp/host_port.h +56 -0
  812. data/src/core/lib/gprpp/manual_constructor.h +216 -0
  813. data/src/core/lib/gprpp/match.h +73 -0
  814. data/src/core/lib/gprpp/memory.h +57 -0
  815. data/src/core/lib/gprpp/mpscq.cc +108 -0
  816. data/src/core/lib/gprpp/mpscq.h +99 -0
  817. data/src/core/lib/gprpp/orphanable.h +125 -0
  818. data/src/core/lib/gprpp/overload.h +59 -0
  819. data/src/core/lib/gprpp/ref_counted.h +349 -0
  820. data/src/core/lib/gprpp/ref_counted_ptr.h +353 -0
  821. data/src/core/lib/gprpp/stat.h +38 -0
  822. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  823. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  824. data/src/core/lib/gprpp/status_helper.cc +427 -0
  825. data/src/core/lib/gprpp/status_helper.h +194 -0
  826. data/src/core/lib/gprpp/sync.h +198 -0
  827. data/src/core/lib/gprpp/table.h +411 -0
  828. data/src/core/lib/gprpp/thd.h +174 -0
  829. data/src/core/lib/gprpp/thd_posix.cc +209 -0
  830. data/src/core/lib/gprpp/thd_windows.cc +171 -0
  831. data/src/core/lib/gprpp/time_util.cc +77 -0
  832. data/src/core/lib/gprpp/time_util.h +42 -0
  833. data/src/core/lib/http/format_request.cc +104 -0
  834. data/src/core/lib/http/format_request.h +35 -0
  835. data/src/core/lib/http/httpcli.cc +324 -0
  836. data/src/core/lib/http/httpcli.h +128 -0
  837. data/src/core/lib/http/httpcli_security_connector.cc +215 -0
  838. data/src/core/lib/http/parser.cc +392 -0
  839. data/src/core/lib/http/parser.h +114 -0
  840. data/src/core/lib/iomgr/block_annotate.h +57 -0
  841. data/src/core/lib/iomgr/buffer_list.cc +307 -0
  842. data/src/core/lib/iomgr/buffer_list.h +163 -0
  843. data/src/core/lib/iomgr/call_combiner.cc +281 -0
  844. data/src/core/lib/iomgr/call_combiner.h +215 -0
  845. data/src/core/lib/iomgr/cfstream_handle.cc +210 -0
  846. data/src/core/lib/iomgr/cfstream_handle.h +90 -0
  847. data/src/core/lib/iomgr/closure.h +256 -0
  848. data/src/core/lib/iomgr/combiner.cc +328 -0
  849. data/src/core/lib/iomgr/combiner.h +89 -0
  850. data/src/core/lib/iomgr/dualstack_socket_posix.cc +48 -0
  851. data/src/core/lib/iomgr/dynamic_annotations.h +67 -0
  852. data/src/core/lib/iomgr/endpoint.cc +67 -0
  853. data/src/core/lib/iomgr/endpoint.h +108 -0
  854. data/src/core/lib/iomgr/endpoint_cfstream.cc +389 -0
  855. data/src/core/lib/iomgr/endpoint_cfstream.h +49 -0
  856. data/src/core/lib/iomgr/endpoint_pair.h +34 -0
  857. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +32 -0
  858. data/src/core/lib/iomgr/endpoint_pair_posix.cc +77 -0
  859. data/src/core/lib/iomgr/endpoint_pair_windows.cc +95 -0
  860. data/src/core/lib/iomgr/error.cc +985 -0
  861. data/src/core/lib/iomgr/error.h +442 -0
  862. data/src/core/lib/iomgr/error_cfstream.cc +59 -0
  863. data/src/core/lib/iomgr/error_cfstream.h +31 -0
  864. data/src/core/lib/iomgr/error_internal.h +66 -0
  865. data/src/core/lib/iomgr/ev_apple.cc +359 -0
  866. data/src/core/lib/iomgr/ev_apple.h +43 -0
  867. data/src/core/lib/iomgr/ev_epoll1_linux.cc +1364 -0
  868. data/src/core/lib/iomgr/ev_epoll1_linux.h +31 -0
  869. data/src/core/lib/iomgr/ev_epollex_linux.cc +1654 -0
  870. data/src/core/lib/iomgr/ev_epollex_linux.h +30 -0
  871. data/src/core/lib/iomgr/ev_poll_posix.cc +1430 -0
  872. data/src/core/lib/iomgr/ev_poll_posix.h +29 -0
  873. data/src/core/lib/iomgr/ev_posix.cc +417 -0
  874. data/src/core/lib/iomgr/ev_posix.h +207 -0
  875. data/src/core/lib/iomgr/ev_windows.cc +30 -0
  876. data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
  877. data/src/core/lib/iomgr/event_engine/closure.h +42 -0
  878. data/src/core/lib/iomgr/event_engine/endpoint.cc +173 -0
  879. data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
  880. data/src/core/lib/iomgr/event_engine/iomgr.cc +104 -0
  881. data/src/core/lib/iomgr/event_engine/iomgr.h +42 -0
  882. data/src/core/lib/iomgr/event_engine/pollset.cc +88 -0
  883. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  884. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  885. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  886. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  887. data/src/core/lib/iomgr/event_engine/resolver.cc +114 -0
  888. data/src/core/lib/iomgr/event_engine/tcp.cc +293 -0
  889. data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
  890. data/src/core/lib/iomgr/exec_ctx.cc +227 -0
  891. data/src/core/lib/iomgr/exec_ctx.h +375 -0
  892. data/src/core/lib/iomgr/executor/mpmcqueue.cc +182 -0
  893. data/src/core/lib/iomgr/executor/mpmcqueue.h +171 -0
  894. data/src/core/lib/iomgr/executor/threadpool.cc +136 -0
  895. data/src/core/lib/iomgr/executor/threadpool.h +150 -0
  896. data/src/core/lib/iomgr/executor.cc +455 -0
  897. data/src/core/lib/iomgr/executor.h +122 -0
  898. data/src/core/lib/iomgr/fork_posix.cc +119 -0
  899. data/src/core/lib/iomgr/fork_windows.cc +41 -0
  900. data/src/core/lib/iomgr/gethostname.h +26 -0
  901. data/src/core/lib/iomgr/gethostname_fallback.cc +30 -0
  902. data/src/core/lib/iomgr/gethostname_host_name_max.cc +40 -0
  903. data/src/core/lib/iomgr/gethostname_sysconf.cc +40 -0
  904. data/src/core/lib/iomgr/grpc_if_nametoindex.h +30 -0
  905. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +42 -0
  906. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +38 -0
  907. data/src/core/lib/iomgr/internal_errqueue.cc +68 -0
  908. data/src/core/lib/iomgr/internal_errqueue.h +191 -0
  909. data/src/core/lib/iomgr/iocp_windows.cc +158 -0
  910. data/src/core/lib/iomgr/iocp_windows.h +48 -0
  911. data/src/core/lib/iomgr/iomgr.cc +196 -0
  912. data/src/core/lib/iomgr/iomgr.h +60 -0
  913. data/src/core/lib/iomgr/iomgr_custom.cc +79 -0
  914. data/src/core/lib/iomgr/iomgr_custom.h +49 -0
  915. data/src/core/lib/iomgr/iomgr_internal.cc +53 -0
  916. data/src/core/lib/iomgr/iomgr_internal.h +74 -0
  917. data/src/core/lib/iomgr/iomgr_posix.cc +90 -0
  918. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +200 -0
  919. data/src/core/lib/iomgr/iomgr_windows.cc +105 -0
  920. data/src/core/lib/iomgr/is_epollexclusive_available.cc +119 -0
  921. data/src/core/lib/iomgr/is_epollexclusive_available.h +36 -0
  922. data/src/core/lib/iomgr/load_file.cc +81 -0
  923. data/src/core/lib/iomgr/load_file.h +35 -0
  924. data/src/core/lib/iomgr/lockfree_event.cc +278 -0
  925. data/src/core/lib/iomgr/lockfree_event.h +72 -0
  926. data/src/core/lib/iomgr/nameser.h +106 -0
  927. data/src/core/lib/iomgr/polling_entity.cc +96 -0
  928. data/src/core/lib/iomgr/polling_entity.h +68 -0
  929. data/src/core/lib/iomgr/pollset.cc +56 -0
  930. data/src/core/lib/iomgr/pollset.h +99 -0
  931. data/src/core/lib/iomgr/pollset_custom.cc +105 -0
  932. data/src/core/lib/iomgr/pollset_custom.h +37 -0
  933. data/src/core/lib/iomgr/pollset_set.cc +55 -0
  934. data/src/core/lib/iomgr/pollset_set.h +55 -0
  935. data/src/core/lib/iomgr/pollset_set_custom.cc +47 -0
  936. data/src/core/lib/iomgr/pollset_set_custom.h +26 -0
  937. data/src/core/lib/iomgr/pollset_set_windows.cc +52 -0
  938. data/src/core/lib/iomgr/pollset_set_windows.h +26 -0
  939. data/src/core/lib/iomgr/pollset_windows.cc +243 -0
  940. data/src/core/lib/iomgr/pollset_windows.h +70 -0
  941. data/src/core/lib/iomgr/port.h +221 -0
  942. data/src/core/lib/iomgr/python_util.h +47 -0
  943. data/src/core/lib/iomgr/resolve_address.cc +55 -0
  944. data/src/core/lib/iomgr/resolve_address.h +83 -0
  945. data/src/core/lib/iomgr/resolve_address_custom.cc +169 -0
  946. data/src/core/lib/iomgr/resolve_address_custom.h +44 -0
  947. data/src/core/lib/iomgr/resolve_address_posix.cc +170 -0
  948. data/src/core/lib/iomgr/resolve_address_windows.cc +152 -0
  949. data/src/core/lib/iomgr/resource_quota.cc +1106 -0
  950. data/src/core/lib/iomgr/resource_quota.h +226 -0
  951. data/src/core/lib/iomgr/sockaddr.h +33 -0
  952. data/src/core/lib/iomgr/sockaddr_posix.h +55 -0
  953. data/src/core/lib/iomgr/sockaddr_windows.h +55 -0
  954. data/src/core/lib/iomgr/socket_factory_posix.cc +95 -0
  955. data/src/core/lib/iomgr/socket_factory_posix.h +69 -0
  956. data/src/core/lib/iomgr/socket_mutator.cc +97 -0
  957. data/src/core/lib/iomgr/socket_mutator.h +84 -0
  958. data/src/core/lib/iomgr/socket_utils.h +47 -0
  959. data/src/core/lib/iomgr/socket_utils_common_posix.cc +515 -0
  960. data/src/core/lib/iomgr/socket_utils_linux.cc +42 -0
  961. data/src/core/lib/iomgr/socket_utils_posix.cc +58 -0
  962. data/src/core/lib/iomgr/socket_utils_posix.h +163 -0
  963. data/src/core/lib/iomgr/socket_utils_windows.cc +47 -0
  964. data/src/core/lib/iomgr/socket_windows.cc +202 -0
  965. data/src/core/lib/iomgr/socket_windows.h +127 -0
  966. data/src/core/lib/iomgr/sys_epoll_wrapper.h +30 -0
  967. data/src/core/lib/iomgr/tcp_client.cc +38 -0
  968. data/src/core/lib/iomgr/tcp_client.h +56 -0
  969. data/src/core/lib/iomgr/tcp_client_cfstream.cc +205 -0
  970. data/src/core/lib/iomgr/tcp_client_custom.cc +152 -0
  971. data/src/core/lib/iomgr/tcp_client_posix.cc +360 -0
  972. data/src/core/lib/iomgr/tcp_client_posix.h +70 -0
  973. data/src/core/lib/iomgr/tcp_client_windows.cc +241 -0
  974. data/src/core/lib/iomgr/tcp_custom.cc +377 -0
  975. data/src/core/lib/iomgr/tcp_custom.h +86 -0
  976. data/src/core/lib/iomgr/tcp_posix.cc +1848 -0
  977. data/src/core/lib/iomgr/tcp_posix.h +67 -0
  978. data/src/core/lib/iomgr/tcp_server.cc +79 -0
  979. data/src/core/lib/iomgr/tcp_server.h +149 -0
  980. data/src/core/lib/iomgr/tcp_server_custom.cc +467 -0
  981. data/src/core/lib/iomgr/tcp_server_posix.cc +645 -0
  982. data/src/core/lib/iomgr/tcp_server_utils_posix.h +128 -0
  983. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +223 -0
  984. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +175 -0
  985. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +36 -0
  986. data/src/core/lib/iomgr/tcp_server_windows.cc +568 -0
  987. data/src/core/lib/iomgr/tcp_windows.cc +530 -0
  988. data/src/core/lib/iomgr/tcp_windows.h +54 -0
  989. data/src/core/lib/iomgr/time_averaged_stats.cc +64 -0
  990. data/src/core/lib/iomgr/time_averaged_stats.h +72 -0
  991. data/src/core/lib/iomgr/timer.cc +46 -0
  992. data/src/core/lib/iomgr/timer.h +131 -0
  993. data/src/core/lib/iomgr/timer_custom.cc +96 -0
  994. data/src/core/lib/iomgr/timer_custom.h +43 -0
  995. data/src/core/lib/iomgr/timer_generic.cc +718 -0
  996. data/src/core/lib/iomgr/timer_generic.h +40 -0
  997. data/src/core/lib/iomgr/timer_heap.cc +134 -0
  998. data/src/core/lib/iomgr/timer_heap.h +43 -0
  999. data/src/core/lib/iomgr/timer_manager.cc +363 -0
  1000. data/src/core/lib/iomgr/timer_manager.h +41 -0
  1001. data/src/core/lib/iomgr/unix_sockets_posix.cc +108 -0
  1002. data/src/core/lib/iomgr/unix_sockets_posix.h +49 -0
  1003. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +62 -0
  1004. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +82 -0
  1005. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +39 -0
  1006. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +99 -0
  1007. data/src/core/lib/iomgr/wakeup_fd_pipe.h +28 -0
  1008. data/src/core/lib/iomgr/wakeup_fd_posix.cc +70 -0
  1009. data/src/core/lib/iomgr/wakeup_fd_posix.h +98 -0
  1010. data/src/core/lib/iomgr/work_serializer.cc +155 -0
  1011. data/src/core/lib/iomgr/work_serializer.h +81 -0
  1012. data/src/core/lib/json/json.h +250 -0
  1013. data/src/core/lib/json/json_reader.cc +849 -0
  1014. data/src/core/lib/json/json_util.cc +126 -0
  1015. data/src/core/lib/json/json_util.h +154 -0
  1016. data/src/core/lib/json/json_writer.cc +335 -0
  1017. data/src/core/lib/matchers/matchers.cc +327 -0
  1018. data/src/core/lib/matchers/matchers.h +160 -0
  1019. data/src/core/lib/profiling/basic_timers.cc +295 -0
  1020. data/src/core/lib/profiling/stap_timers.cc +50 -0
  1021. data/src/core/lib/profiling/timers.h +94 -0
  1022. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  1023. data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
  1024. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  1025. data/src/core/lib/security/authorization/evaluate_args.cc +213 -0
  1026. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  1027. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +171 -0
  1028. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
  1029. data/src/core/lib/security/context/security_context.cc +325 -0
  1030. data/src/core/lib/security/context/security_context.h +152 -0
  1031. data/src/core/lib/security/credentials/alts/alts_credentials.cc +111 -0
  1032. data/src/core/lib/security/credentials/alts/alts_credentials.h +109 -0
  1033. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +72 -0
  1034. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +57 -0
  1035. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +68 -0
  1036. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +33 -0
  1037. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +102 -0
  1038. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +127 -0
  1039. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +46 -0
  1040. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +75 -0
  1041. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +59 -0
  1042. data/src/core/lib/security/credentials/composite/composite_credentials.cc +230 -0
  1043. data/src/core/lib/security/credentials/composite/composite_credentials.h +106 -0
  1044. data/src/core/lib/security/credentials/credentials.cc +164 -0
  1045. data/src/core/lib/security/credentials/credentials.h +291 -0
  1046. data/src/core/lib/security/credentials/credentials_metadata.cc +61 -0
  1047. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +404 -0
  1048. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +81 -0
  1049. data/src/core/lib/security/credentials/external/aws_request_signer.cc +214 -0
  1050. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  1051. data/src/core/lib/security/credentials/external/external_account_credentials.cc +527 -0
  1052. data/src/core/lib/security/credentials/external/external_account_credentials.h +122 -0
  1053. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
  1054. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
  1055. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +211 -0
  1056. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +60 -0
  1057. data/src/core/lib/security/credentials/fake/fake_credentials.cc +113 -0
  1058. data/src/core/lib/security/credentials/fake/fake_credentials.h +87 -0
  1059. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +42 -0
  1060. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +465 -0
  1061. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +87 -0
  1062. data/src/core/lib/security/credentials/iam/iam_credentials.cc +81 -0
  1063. data/src/core/lib/security/credentials/iam/iam_credentials.h +49 -0
  1064. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  1065. data/src/core/lib/security/credentials/jwt/json_token.cc +288 -0
  1066. data/src/core/lib/security/credentials/jwt/json_token.h +76 -0
  1067. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +192 -0
  1068. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +89 -0
  1069. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +922 -0
  1070. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +122 -0
  1071. data/src/core/lib/security/credentials/local/local_credentials.cc +65 -0
  1072. data/src/core/lib/security/credentials/local/local_credentials.h +61 -0
  1073. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +753 -0
  1074. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +173 -0
  1075. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +267 -0
  1076. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +72 -0
  1077. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +385 -0
  1078. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +108 -0
  1079. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +348 -0
  1080. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +217 -0
  1081. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +455 -0
  1082. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +147 -0
  1083. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +177 -0
  1084. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +193 -0
  1085. data/src/core/lib/security/credentials/tls/tls_credentials.cc +133 -0
  1086. data/src/core/lib/security/credentials/tls/tls_credentials.h +62 -0
  1087. data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
  1088. data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
  1089. data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
  1090. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  1091. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +311 -0
  1092. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +76 -0
  1093. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +327 -0
  1094. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +45 -0
  1095. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  1096. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +97 -0
  1097. data/src/core/lib/security/security_connector/load_system_roots.h +33 -0
  1098. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +33 -0
  1099. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +171 -0
  1100. data/src/core/lib/security/security_connector/load_system_roots_linux.h +46 -0
  1101. data/src/core/lib/security/security_connector/local/local_security_connector.cc +294 -0
  1102. data/src/core/lib/security/security_connector/local/local_security_connector.h +59 -0
  1103. data/src/core/lib/security/security_connector/security_connector.cc +137 -0
  1104. data/src/core/lib/security/security_connector/security_connector.h +183 -0
  1105. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +453 -0
  1106. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +81 -0
  1107. data/src/core/lib/security/security_connector/ssl_utils.cc +611 -0
  1108. data/src/core/lib/security/security_connector/ssl_utils.h +188 -0
  1109. data/src/core/lib/security/security_connector/ssl_utils_config.cc +32 -0
  1110. data/src/core/lib/security/security_connector/ssl_utils_config.h +30 -0
  1111. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +667 -0
  1112. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +243 -0
  1113. data/src/core/lib/security/transport/auth_filters.h +36 -0
  1114. data/src/core/lib/security/transport/client_auth_filter.cc +473 -0
  1115. data/src/core/lib/security/transport/secure_endpoint.cc +442 -0
  1116. data/src/core/lib/security/transport/secure_endpoint.h +42 -0
  1117. data/src/core/lib/security/transport/security_handshaker.cc +642 -0
  1118. data/src/core/lib/security/transport/security_handshaker.h +46 -0
  1119. data/src/core/lib/security/transport/server_auth_filter.cc +331 -0
  1120. data/src/core/lib/security/transport/tsi_error.cc +28 -0
  1121. data/src/core/lib/security/transport/tsi_error.h +30 -0
  1122. data/src/core/lib/security/util/json_util.cc +70 -0
  1123. data/src/core/lib/security/util/json_util.h +45 -0
  1124. data/src/core/lib/slice/b64.cc +239 -0
  1125. data/src/core/lib/slice/b64.h +50 -0
  1126. data/src/core/lib/slice/percent_encoding.cc +212 -0
  1127. data/src/core/lib/slice/percent_encoding.h +66 -0
  1128. data/src/core/lib/slice/slice.cc +592 -0
  1129. data/src/core/lib/slice/slice_api.cc +39 -0
  1130. data/src/core/lib/slice/slice_buffer.cc +413 -0
  1131. data/src/core/lib/slice/slice_intern.cc +367 -0
  1132. data/src/core/lib/slice/slice_internal.h +123 -0
  1133. data/src/core/lib/slice/slice_refcount.cc +17 -0
  1134. data/src/core/lib/slice/slice_refcount.h +121 -0
  1135. data/src/core/lib/slice/slice_refcount_base.h +173 -0
  1136. data/src/core/lib/slice/slice_split.cc +100 -0
  1137. data/src/core/lib/slice/slice_split.h +40 -0
  1138. data/src/core/lib/slice/slice_string_helpers.cc +44 -0
  1139. data/src/core/lib/slice/slice_string_helpers.h +38 -0
  1140. data/src/core/lib/slice/slice_utils.h +200 -0
  1141. data/src/core/lib/slice/static_slice.cc +529 -0
  1142. data/src/core/lib/slice/static_slice.h +331 -0
  1143. data/src/core/lib/surface/api_trace.cc +25 -0
  1144. data/src/core/lib/surface/api_trace.h +53 -0
  1145. data/src/core/lib/surface/builtins.cc +49 -0
  1146. data/src/core/lib/surface/builtins.h +26 -0
  1147. data/src/core/lib/surface/byte_buffer.cc +92 -0
  1148. data/src/core/lib/surface/byte_buffer_reader.cc +101 -0
  1149. data/src/core/lib/surface/call.cc +2056 -0
  1150. data/src/core/lib/surface/call.h +131 -0
  1151. data/src/core/lib/surface/call_details.cc +41 -0
  1152. data/src/core/lib/surface/call_log_batch.cc +111 -0
  1153. data/src/core/lib/surface/call_test_only.h +43 -0
  1154. data/src/core/lib/surface/channel.cc +535 -0
  1155. data/src/core/lib/surface/channel.h +178 -0
  1156. data/src/core/lib/surface/channel_init.cc +56 -0
  1157. data/src/core/lib/surface/channel_init.h +86 -0
  1158. data/src/core/lib/surface/channel_ping.cc +63 -0
  1159. data/src/core/lib/surface/channel_stack_type.cc +59 -0
  1160. data/src/core/lib/surface/channel_stack_type.h +47 -0
  1161. data/src/core/lib/surface/completion_queue.cc +1429 -0
  1162. data/src/core/lib/surface/completion_queue.h +98 -0
  1163. data/src/core/lib/surface/completion_queue_factory.cc +88 -0
  1164. data/src/core/lib/surface/completion_queue_factory.h +39 -0
  1165. data/src/core/lib/surface/event_string.cc +62 -0
  1166. data/src/core/lib/surface/event_string.h +31 -0
  1167. data/src/core/lib/surface/init.cc +220 -0
  1168. data/src/core/lib/surface/init.h +35 -0
  1169. data/src/core/lib/surface/init_secure.cc +103 -0
  1170. data/src/core/lib/surface/lame_client.cc +192 -0
  1171. data/src/core/lib/surface/lame_client.h +33 -0
  1172. data/src/core/lib/surface/metadata_array.cc +36 -0
  1173. data/src/core/lib/surface/server.cc +1608 -0
  1174. data/src/core/lib/surface/server.h +497 -0
  1175. data/src/core/lib/surface/validate_metadata.cc +136 -0
  1176. data/src/core/lib/surface/validate_metadata.h +45 -0
  1177. data/src/core/lib/surface/version.cc +28 -0
  1178. data/src/core/lib/transport/bdp_estimator.cc +87 -0
  1179. data/src/core/lib/transport/bdp_estimator.h +95 -0
  1180. data/src/core/lib/transport/byte_stream.cc +158 -0
  1181. data/src/core/lib/transport/byte_stream.h +166 -0
  1182. data/src/core/lib/transport/connectivity_state.cc +188 -0
  1183. data/src/core/lib/transport/connectivity_state.h +145 -0
  1184. data/src/core/lib/transport/error_utils.cc +191 -0
  1185. data/src/core/lib/transport/error_utils.h +58 -0
  1186. data/src/core/lib/transport/http2_errors.h +41 -0
  1187. data/src/core/lib/transport/metadata.cc +714 -0
  1188. data/src/core/lib/transport/metadata.h +449 -0
  1189. data/src/core/lib/transport/metadata_batch.cc +94 -0
  1190. data/src/core/lib/transport/metadata_batch.h +1055 -0
  1191. data/src/core/lib/transport/parsed_metadata.h +263 -0
  1192. data/src/core/lib/transport/pid_controller.cc +51 -0
  1193. data/src/core/lib/transport/pid_controller.h +116 -0
  1194. data/src/core/lib/transport/static_metadata.cc +1117 -0
  1195. data/src/core/lib/transport/static_metadata.h +340 -0
  1196. data/src/core/lib/transport/status_conversion.cc +92 -0
  1197. data/src/core/lib/transport/status_conversion.h +38 -0
  1198. data/src/core/lib/transport/status_metadata.cc +63 -0
  1199. data/src/core/lib/transport/status_metadata.h +48 -0
  1200. data/src/core/lib/transport/timeout_encoding.cc +151 -0
  1201. data/src/core/lib/transport/timeout_encoding.h +38 -0
  1202. data/src/core/lib/transport/transport.cc +261 -0
  1203. data/src/core/lib/transport/transport.h +471 -0
  1204. data/src/core/lib/transport/transport_impl.h +71 -0
  1205. data/src/core/lib/transport/transport_op_string.cc +189 -0
  1206. data/src/core/lib/uri/uri_parser.cc +191 -0
  1207. data/src/core/lib/uri/uri_parser.h +87 -0
  1208. data/src/core/plugin_registry/grpc_plugin_registry.cc +197 -0
  1209. data/src/core/tsi/alts/crypt/aes_gcm.cc +690 -0
  1210. data/src/core/tsi/alts/crypt/gsec.cc +190 -0
  1211. data/src/core/tsi/alts/crypt/gsec.h +459 -0
  1212. data/src/core/tsi/alts/frame_protector/alts_counter.cc +118 -0
  1213. data/src/core/tsi/alts/frame_protector/alts_counter.h +98 -0
  1214. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +66 -0
  1215. data/src/core/tsi/alts/frame_protector/alts_crypter.h +255 -0
  1216. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +408 -0
  1217. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +55 -0
  1218. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +114 -0
  1219. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +114 -0
  1220. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +105 -0
  1221. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +103 -0
  1222. data/src/core/tsi/alts/frame_protector/frame_handler.cc +219 -0
  1223. data/src/core/tsi/alts/frame_protector/frame_handler.h +236 -0
  1224. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +903 -0
  1225. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +160 -0
  1226. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +83 -0
  1227. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +73 -0
  1228. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +705 -0
  1229. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +104 -0
  1230. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +89 -0
  1231. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +64 -0
  1232. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +53 -0
  1233. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +223 -0
  1234. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +171 -0
  1235. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +226 -0
  1236. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +54 -0
  1237. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +144 -0
  1238. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +49 -0
  1239. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +91 -0
  1240. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +174 -0
  1241. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +99 -0
  1242. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +478 -0
  1243. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +199 -0
  1244. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +307 -0
  1245. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +57 -0
  1246. data/src/core/tsi/fake_transport_security.cc +809 -0
  1247. data/src/core/tsi/fake_transport_security.h +47 -0
  1248. data/src/core/tsi/local_transport_security.cc +178 -0
  1249. data/src/core/tsi/local_transport_security.h +50 -0
  1250. data/src/core/tsi/ssl/session_cache/ssl_session.h +71 -0
  1251. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +57 -0
  1252. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +179 -0
  1253. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +92 -0
  1254. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +75 -0
  1255. data/src/core/tsi/ssl_transport_security.cc +2260 -0
  1256. data/src/core/tsi/ssl_transport_security.h +366 -0
  1257. data/src/core/tsi/ssl_types.h +42 -0
  1258. data/src/core/tsi/transport_security.cc +384 -0
  1259. data/src/core/tsi/transport_security.h +142 -0
  1260. data/src/core/tsi/transport_security_grpc.cc +73 -0
  1261. data/src/core/tsi/transport_security_grpc.h +80 -0
  1262. data/src/core/tsi/transport_security_interface.h +507 -0
  1263. data/src/ruby/bin/math_client.rb +140 -0
  1264. data/src/ruby/bin/math_pb.rb +34 -0
  1265. data/src/ruby/bin/math_server.rb +191 -0
  1266. data/src/ruby/bin/math_services_pb.rb +51 -0
  1267. data/src/ruby/bin/noproto_client.rb +93 -0
  1268. data/src/ruby/bin/noproto_server.rb +97 -0
  1269. data/src/ruby/ext/grpc/ext-export.clang +1 -0
  1270. data/src/ruby/ext/grpc/ext-export.gcc +6 -0
  1271. data/src/ruby/ext/grpc/extconf.rb +129 -0
  1272. data/src/ruby/ext/grpc/extconf.rb.orig +130 -0
  1273. data/src/ruby/ext/grpc/extconf.rb.rej +18 -0
  1274. data/src/ruby/ext/grpc/rb_byte_buffer.c +65 -0
  1275. data/src/ruby/ext/grpc/rb_byte_buffer.h +35 -0
  1276. data/src/ruby/ext/grpc/rb_call.c +1051 -0
  1277. data/src/ruby/ext/grpc/rb_call.h +57 -0
  1278. data/src/ruby/ext/grpc/rb_call_credentials.c +341 -0
  1279. data/src/ruby/ext/grpc/rb_call_credentials.h +31 -0
  1280. data/src/ruby/ext/grpc/rb_channel.c +846 -0
  1281. data/src/ruby/ext/grpc/rb_channel.h +34 -0
  1282. data/src/ruby/ext/grpc/rb_channel_args.c +155 -0
  1283. data/src/ruby/ext/grpc/rb_channel_args.h +38 -0
  1284. data/src/ruby/ext/grpc/rb_channel_credentials.c +286 -0
  1285. data/src/ruby/ext/grpc/rb_channel_credentials.h +37 -0
  1286. data/src/ruby/ext/grpc/rb_completion_queue.c +101 -0
  1287. data/src/ruby/ext/grpc/rb_completion_queue.h +36 -0
  1288. data/src/ruby/ext/grpc/rb_compression_options.c +471 -0
  1289. data/src/ruby/ext/grpc/rb_compression_options.h +29 -0
  1290. data/src/ruby/ext/grpc/rb_enable_cpp.cc +22 -0
  1291. data/src/ruby/ext/grpc/rb_event_thread.c +145 -0
  1292. data/src/ruby/ext/grpc/rb_event_thread.h +21 -0
  1293. data/src/ruby/ext/grpc/rb_grpc.c +333 -0
  1294. data/src/ruby/ext/grpc/rb_grpc.h +77 -0
  1295. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +605 -0
  1296. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +913 -0
  1297. data/src/ruby/ext/grpc/rb_loader.c +57 -0
  1298. data/src/ruby/ext/grpc/rb_loader.h +25 -0
  1299. data/src/ruby/ext/grpc/rb_server.c +385 -0
  1300. data/src/ruby/ext/grpc/rb_server.h +32 -0
  1301. data/src/ruby/ext/grpc/rb_server_credentials.c +259 -0
  1302. data/src/ruby/ext/grpc/rb_server_credentials.h +37 -0
  1303. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
  1304. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
  1305. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
  1306. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
  1307. data/src/ruby/lib/grpc/core/status_codes.rb +135 -0
  1308. data/src/ruby/lib/grpc/core/time_consts.rb +56 -0
  1309. data/src/ruby/lib/grpc/errors.rb +277 -0
  1310. data/src/ruby/lib/grpc/generic/active_call.rb +669 -0
  1311. data/src/ruby/lib/grpc/generic/bidi_call.rb +233 -0
  1312. data/src/ruby/lib/grpc/generic/client_stub.rb +503 -0
  1313. data/src/ruby/lib/grpc/generic/interceptor_registry.rb +53 -0
  1314. data/src/ruby/lib/grpc/generic/interceptors.rb +186 -0
  1315. data/src/ruby/lib/grpc/generic/rpc_desc.rb +204 -0
  1316. data/src/ruby/lib/grpc/generic/rpc_server.rb +551 -0
  1317. data/src/ruby/lib/grpc/generic/service.rb +211 -0
  1318. data/src/ruby/lib/grpc/google_rpc_status_utils.rb +40 -0
  1319. data/src/ruby/lib/grpc/grpc.rb +24 -0
  1320. data/src/ruby/lib/grpc/logconfig.rb +44 -0
  1321. data/src/ruby/lib/grpc/notifier.rb +45 -0
  1322. data/src/ruby/lib/grpc/structs.rb +15 -0
  1323. data/src/ruby/lib/grpc/version.rb +18 -0
  1324. data/src/ruby/lib/grpc.rb +37 -0
  1325. data/src/ruby/pb/README.md +42 -0
  1326. data/src/ruby/pb/generate_proto_ruby.sh +51 -0
  1327. data/src/ruby/pb/grpc/health/checker.rb +75 -0
  1328. data/src/ruby/pb/grpc/health/v1/health_pb.rb +31 -0
  1329. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +62 -0
  1330. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +44 -0
  1331. data/src/ruby/pb/grpc/testing/metrics_pb.rb +28 -0
  1332. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +49 -0
  1333. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +17 -0
  1334. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +145 -0
  1335. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +16 -0
  1336. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +152 -0
  1337. data/src/ruby/spec/call_credentials_spec.rb +42 -0
  1338. data/src/ruby/spec/call_spec.rb +180 -0
  1339. data/src/ruby/spec/channel_connection_spec.rb +126 -0
  1340. data/src/ruby/spec/channel_credentials_spec.rb +124 -0
  1341. data/src/ruby/spec/channel_spec.rb +245 -0
  1342. data/src/ruby/spec/client_auth_spec.rb +152 -0
  1343. data/src/ruby/spec/client_server_spec.rb +664 -0
  1344. data/src/ruby/spec/compression_options_spec.rb +149 -0
  1345. data/src/ruby/spec/debug_message_spec.rb +134 -0
  1346. data/src/ruby/spec/error_sanity_spec.rb +49 -0
  1347. data/src/ruby/spec/errors_spec.rb +142 -0
  1348. data/src/ruby/spec/errors_spec.rb.rej +11 -0
  1349. data/src/ruby/spec/generic/active_call_spec.rb +683 -0
  1350. data/src/ruby/spec/generic/client_interceptors_spec.rb +153 -0
  1351. data/src/ruby/spec/generic/client_stub_spec.rb +1083 -0
  1352. data/src/ruby/spec/generic/interceptor_registry_spec.rb +65 -0
  1353. data/src/ruby/spec/generic/rpc_desc_spec.rb +374 -0
  1354. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +127 -0
  1355. data/src/ruby/spec/generic/rpc_server_spec.rb +748 -0
  1356. data/src/ruby/spec/generic/server_interceptors_spec.rb +218 -0
  1357. data/src/ruby/spec/generic/service_spec.rb +263 -0
  1358. data/src/ruby/spec/google_rpc_status_utils_spec.rb +282 -0
  1359. data/src/ruby/spec/pb/codegen/grpc/testing/package_options.proto +28 -0
  1360. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto +22 -0
  1361. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  1362. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +41 -0
  1363. data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
  1364. data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
  1365. data/src/ruby/spec/pb/codegen/package_option_spec.rb +98 -0
  1366. data/src/ruby/spec/pb/duplicate/codegen_spec.rb +57 -0
  1367. data/src/ruby/spec/pb/health/checker_spec.rb +236 -0
  1368. data/src/ruby/spec/server_credentials_spec.rb +104 -0
  1369. data/src/ruby/spec/server_spec.rb +231 -0
  1370. data/src/ruby/spec/spec_helper.rb +61 -0
  1371. data/src/ruby/spec/support/helpers.rb +107 -0
  1372. data/src/ruby/spec/support/services.rb +160 -0
  1373. data/src/ruby/spec/testdata/README +1 -0
  1374. data/src/ruby/spec/testdata/ca.pem +20 -0
  1375. data/src/ruby/spec/testdata/client.key +28 -0
  1376. data/src/ruby/spec/testdata/client.pem +20 -0
  1377. data/src/ruby/spec/testdata/server1.key +28 -0
  1378. data/src/ruby/spec/testdata/server1.pem +22 -0
  1379. data/src/ruby/spec/time_consts_spec.rb +74 -0
  1380. data/src/ruby/spec/user_agent_spec.rb +74 -0
  1381. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +159 -0
  1382. data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
  1383. data/third_party/abseil-cpp/absl/base/attributes.h +702 -0
  1384. data/third_party/abseil-cpp/absl/base/call_once.h +219 -0
  1385. data/third_party/abseil-cpp/absl/base/casts.h +187 -0
  1386. data/third_party/abseil-cpp/absl/base/config.h +742 -0
  1387. data/third_party/abseil-cpp/absl/base/const_init.h +76 -0
  1388. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +496 -0
  1389. data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
  1390. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +107 -0
  1391. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +94 -0
  1392. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +169 -0
  1393. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  1394. data/third_party/abseil-cpp/absl/base/internal/endian.h +327 -0
  1395. data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  1396. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  1397. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  1398. data/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
  1399. data/third_party/abseil-cpp/absl/base/internal/identity.h +37 -0
  1400. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +107 -0
  1401. data/third_party/abseil-cpp/absl/base/internal/invoke.h +187 -0
  1402. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  1403. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  1404. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +134 -0
  1405. data/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
  1406. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +242 -0
  1407. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +195 -0
  1408. data/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
  1409. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +229 -0
  1410. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +246 -0
  1411. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
  1412. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +74 -0
  1413. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
  1414. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
  1415. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +93 -0
  1416. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +37 -0
  1417. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +439 -0
  1418. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +74 -0
  1419. data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +271 -0
  1420. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +155 -0
  1421. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +265 -0
  1422. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +212 -0
  1423. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
  1424. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +68 -0
  1425. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +82 -0
  1426. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +138 -0
  1427. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +124 -0
  1428. data/third_party/abseil-cpp/absl/base/log_severity.cc +27 -0
  1429. data/third_party/abseil-cpp/absl/base/log_severity.h +121 -0
  1430. data/third_party/abseil-cpp/absl/base/macros.h +158 -0
  1431. data/third_party/abseil-cpp/absl/base/optimization.h +244 -0
  1432. data/third_party/abseil-cpp/absl/base/options.h +238 -0
  1433. data/third_party/abseil-cpp/absl/base/policy_checks.h +111 -0
  1434. data/third_party/abseil-cpp/absl/base/port.h +25 -0
  1435. data/third_party/abseil-cpp/absl/base/thread_annotations.h +335 -0
  1436. data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
  1437. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  1438. data/third_party/abseil-cpp/absl/container/inlined_vector.h +847 -0
  1439. data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
  1440. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +290 -0
  1441. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
  1442. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
  1443. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
  1444. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  1445. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +274 -0
  1446. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +322 -0
  1447. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  1448. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
  1449. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +967 -0
  1450. data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
  1451. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  1452. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +61 -0
  1453. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
  1454. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
  1455. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  1456. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1949 -0
  1457. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  1458. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  1459. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  1460. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +199 -0
  1461. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
  1462. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +80 -0
  1463. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  1464. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +253 -0
  1465. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  1466. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
  1467. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  1468. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +147 -0
  1469. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
  1470. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  1471. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  1472. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  1473. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
  1474. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  1475. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  1476. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
  1477. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  1478. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  1479. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  1480. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  1481. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  1482. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  1483. data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
  1484. data/third_party/abseil-cpp/absl/hash/internal/city.cc +349 -0
  1485. data/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
  1486. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +70 -0
  1487. data/third_party/abseil-cpp/absl/hash/internal/hash.h +1045 -0
  1488. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  1489. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  1490. data/third_party/abseil-cpp/absl/memory/memory.h +699 -0
  1491. data/third_party/abseil-cpp/absl/meta/type_traits.h +767 -0
  1492. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  1493. data/third_party/abseil-cpp/absl/numeric/int128.cc +390 -0
  1494. data/third_party/abseil-cpp/absl/numeric/int128.h +1092 -0
  1495. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +302 -0
  1496. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +308 -0
  1497. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1498. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1499. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +69 -0
  1500. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  1501. data/third_party/abseil-cpp/absl/status/status.cc +452 -0
  1502. data/third_party/abseil-cpp/absl/status/status.h +878 -0
  1503. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  1504. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  1505. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  1506. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  1507. data/third_party/abseil-cpp/absl/strings/ascii.cc +200 -0
  1508. data/third_party/abseil-cpp/absl/strings/ascii.h +242 -0
  1509. data/third_party/abseil-cpp/absl/strings/charconv.cc +984 -0
  1510. data/third_party/abseil-cpp/absl/strings/charconv.h +119 -0
  1511. data/third_party/abseil-cpp/absl/strings/cord.cc +1953 -0
  1512. data/third_party/abseil-cpp/absl/strings/cord.h +1394 -0
  1513. data/third_party/abseil-cpp/absl/strings/escaping.cc +949 -0
  1514. data/third_party/abseil-cpp/absl/strings/escaping.h +164 -0
  1515. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +156 -0
  1516. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +359 -0
  1517. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +423 -0
  1518. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
  1519. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
  1520. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  1521. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +543 -0
  1522. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  1523. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  1524. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  1525. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  1526. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +180 -0
  1527. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +58 -0
  1528. data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +112 -0
  1529. data/third_party/abseil-cpp/absl/strings/internal/memutil.h +148 -0
  1530. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +36 -0
  1531. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +89 -0
  1532. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +73 -0
  1533. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
  1534. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +488 -0
  1535. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +518 -0
  1536. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +259 -0
  1537. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +217 -0
  1538. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +333 -0
  1539. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +75 -0
  1540. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +427 -0
  1541. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1423 -0
  1542. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +37 -0
  1543. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
  1544. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +96 -0
  1545. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +350 -0
  1546. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +349 -0
  1547. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +314 -0
  1548. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +430 -0
  1549. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  1550. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +53 -0
  1551. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +50 -0
  1552. data/third_party/abseil-cpp/absl/strings/match.cc +43 -0
  1553. data/third_party/abseil-cpp/absl/strings/match.h +100 -0
  1554. data/third_party/abseil-cpp/absl/strings/numbers.cc +1093 -0
  1555. data/third_party/abseil-cpp/absl/strings/numbers.h +266 -0
  1556. data/third_party/abseil-cpp/absl/strings/str_cat.cc +246 -0
  1557. data/third_party/abseil-cpp/absl/strings/str_cat.h +408 -0
  1558. data/third_party/abseil-cpp/absl/strings/str_format.h +813 -0
  1559. data/third_party/abseil-cpp/absl/strings/str_join.h +293 -0
  1560. data/third_party/abseil-cpp/absl/strings/str_replace.cc +82 -0
  1561. data/third_party/abseil-cpp/absl/strings/str_replace.h +219 -0
  1562. data/third_party/abseil-cpp/absl/strings/str_split.cc +139 -0
  1563. data/third_party/abseil-cpp/absl/strings/str_split.h +548 -0
  1564. data/third_party/abseil-cpp/absl/strings/string_view.cc +235 -0
  1565. data/third_party/abseil-cpp/absl/strings/string_view.h +629 -0
  1566. data/third_party/abseil-cpp/absl/strings/strip.h +91 -0
  1567. data/third_party/abseil-cpp/absl/strings/substitute.cc +171 -0
  1568. data/third_party/abseil-cpp/absl/strings/substitute.h +696 -0
  1569. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  1570. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  1571. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  1572. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  1573. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  1574. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  1575. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1576. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +698 -0
  1577. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  1578. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +156 -0
  1579. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  1580. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  1581. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +428 -0
  1582. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +155 -0
  1583. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2751 -0
  1584. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1082 -0
  1585. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  1586. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  1587. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  1588. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  1589. data/third_party/abseil-cpp/absl/time/clock.cc +585 -0
  1590. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  1591. data/third_party/abseil-cpp/absl/time/duration.cc +954 -0
  1592. data/third_party/abseil-cpp/absl/time/format.cc +160 -0
  1593. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  1594. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +628 -0
  1595. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +386 -0
  1596. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  1597. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  1598. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  1599. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  1600. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1029 -0
  1601. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  1602. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  1603. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +113 -0
  1604. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  1605. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +965 -0
  1606. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +137 -0
  1607. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +315 -0
  1608. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  1609. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  1610. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  1611. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  1612. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  1613. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
  1614. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  1615. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  1616. data/third_party/abseil-cpp/absl/time/time.cc +500 -0
  1617. data/third_party/abseil-cpp/absl/time/time.h +1585 -0
  1618. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +48 -0
  1619. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +78 -0
  1620. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  1621. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  1622. data/third_party/abseil-cpp/absl/types/internal/optional.h +396 -0
  1623. data/third_party/abseil-cpp/absl/types/internal/span.h +128 -0
  1624. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  1625. data/third_party/abseil-cpp/absl/types/optional.h +776 -0
  1626. data/third_party/abseil-cpp/absl/types/span.h +726 -0
  1627. data/third_party/abseil-cpp/absl/types/variant.h +866 -0
  1628. data/third_party/abseil-cpp/absl/utility/utility.h +350 -0
  1629. data/third_party/address_sorting/address_sorting.c +375 -0
  1630. data/third_party/address_sorting/address_sorting_internal.h +70 -0
  1631. data/third_party/address_sorting/address_sorting_posix.c +98 -0
  1632. data/third_party/address_sorting/address_sorting_windows.c +95 -0
  1633. data/third_party/address_sorting/include/address_sorting/address_sorting.h +115 -0
  1634. data/third_party/boringssl-with-bazel/err_data.c +1489 -0
  1635. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +276 -0
  1636. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +122 -0
  1637. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +91 -0
  1638. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +87 -0
  1639. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +195 -0
  1640. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +266 -0
  1641. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +88 -0
  1642. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +420 -0
  1643. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +298 -0
  1644. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +288 -0
  1645. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +77 -0
  1646. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +83 -0
  1647. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +650 -0
  1648. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +266 -0
  1649. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +212 -0
  1650. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +163 -0
  1651. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +264 -0
  1652. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +236 -0
  1653. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +440 -0
  1654. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +80 -0
  1655. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +105 -0
  1656. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +15 -0
  1657. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +93 -0
  1658. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +97 -0
  1659. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +91 -0
  1660. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +196 -0
  1661. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +1193 -0
  1662. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +709 -0
  1663. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +233 -0
  1664. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +332 -0
  1665. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +129 -0
  1666. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +281 -0
  1667. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +206 -0
  1668. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +469 -0
  1669. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +702 -0
  1670. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +324 -0
  1671. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +541 -0
  1672. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +275 -0
  1673. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +311 -0
  1674. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +192 -0
  1675. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +111 -0
  1676. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +483 -0
  1677. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +115 -0
  1678. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +192 -0
  1679. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +122 -0
  1680. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
  1681. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +57 -0
  1682. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +470 -0
  1683. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +172 -0
  1684. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +52 -0
  1685. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +264 -0
  1686. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +728 -0
  1687. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +711 -0
  1688. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +96 -0
  1689. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +155 -0
  1690. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +175 -0
  1691. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +45 -0
  1692. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +127 -0
  1693. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +152 -0
  1694. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesccm.c +447 -0
  1695. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +283 -0
  1696. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +891 -0
  1697. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +343 -0
  1698. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +85 -0
  1699. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +462 -0
  1700. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +87 -0
  1701. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +601 -0
  1702. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +226 -0
  1703. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +338 -0
  1704. data/third_party/boringssl-with-bazel/src/crypto/cmac/cmac.c +278 -0
  1705. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +821 -0
  1706. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +127 -0
  1707. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +31 -0
  1708. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-fuchsia.c +55 -0
  1709. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-linux.c +62 -0
  1710. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  1711. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +229 -0
  1712. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.h +201 -0
  1713. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +38 -0
  1714. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +291 -0
  1715. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +38 -0
  1716. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +226 -0
  1717. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +2159 -0
  1718. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +7872 -0
  1719. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +146 -0
  1720. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +539 -0
  1721. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +160 -0
  1722. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +272 -0
  1723. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +268 -0
  1724. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +946 -0
  1725. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +390 -0
  1726. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  1727. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +559 -0
  1728. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +95 -0
  1729. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +385 -0
  1730. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +56 -0
  1731. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +124 -0
  1732. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +267 -0
  1733. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +99 -0
  1734. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +857 -0
  1735. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +58 -0
  1736. data/third_party/boringssl-with-bazel/src/crypto/evp/digestsign.c +231 -0
  1737. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +456 -0
  1738. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +547 -0
  1739. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +484 -0
  1740. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +269 -0
  1741. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +277 -0
  1742. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +286 -0
  1743. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +255 -0
  1744. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +104 -0
  1745. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +221 -0
  1746. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +648 -0
  1747. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +194 -0
  1748. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +110 -0
  1749. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +248 -0
  1750. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +146 -0
  1751. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +489 -0
  1752. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +211 -0
  1753. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +151 -0
  1754. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +261 -0
  1755. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
  1756. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
  1757. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +238 -0
  1758. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +236 -0
  1759. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +122 -0
  1760. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +266 -0
  1761. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c +316 -0
  1762. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +541 -0
  1763. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +438 -0
  1764. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +230 -0
  1765. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +200 -0
  1766. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +236 -0
  1767. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +902 -0
  1768. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +87 -0
  1769. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +1288 -0
  1770. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +378 -0
  1771. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +326 -0
  1772. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +711 -0
  1773. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +715 -0
  1774. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c +146 -0
  1775. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +502 -0
  1776. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +186 -0
  1777. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +749 -0
  1778. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +1064 -0
  1779. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +341 -0
  1780. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +226 -0
  1781. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +104 -0
  1782. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +364 -0
  1783. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +498 -0
  1784. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +284 -0
  1785. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +636 -0
  1786. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +1473 -0
  1787. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_des.c +237 -0
  1788. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +128 -0
  1789. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +89 -0
  1790. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +784 -0
  1791. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +238 -0
  1792. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +217 -0
  1793. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +456 -0
  1794. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +282 -0
  1795. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +304 -0
  1796. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +112 -0
  1797. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +195 -0
  1798. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +1268 -0
  1799. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +472 -0
  1800. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +524 -0
  1801. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +100 -0
  1802. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +772 -0
  1803. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +328 -0
  1804. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +1180 -0
  1805. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9497 -0
  1806. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +633 -0
  1807. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.h +153 -0
  1808. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +740 -0
  1809. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  1810. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +175 -0
  1811. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +357 -0
  1812. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +270 -0
  1813. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +255 -0
  1814. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +270 -0
  1815. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +122 -0
  1816. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +339 -0
  1817. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  1818. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +32 -0
  1819. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +228 -0
  1820. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +240 -0
  1821. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +37 -0
  1822. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +284 -0
  1823. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +178 -0
  1824. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +203 -0
  1825. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +201 -0
  1826. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +733 -0
  1827. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
  1828. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +420 -0
  1829. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +97 -0
  1830. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +91 -0
  1831. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +202 -0
  1832. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  1833. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  1834. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  1835. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +184 -0
  1836. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +457 -0
  1837. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +401 -0
  1838. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +243 -0
  1839. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +131 -0
  1840. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +695 -0
  1841. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +935 -0
  1842. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +1416 -0
  1843. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  1844. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +874 -0
  1845. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +53 -0
  1846. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +361 -0
  1847. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +357 -0
  1848. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +321 -0
  1849. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +508 -0
  1850. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +39 -0
  1851. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +165 -0
  1852. data/third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c +112 -0
  1853. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +618 -0
  1854. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +2198 -0
  1855. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +68 -0
  1856. data/third_party/boringssl-with-bazel/src/crypto/internal.h +959 -0
  1857. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  1858. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +353 -0
  1859. data/third_party/boringssl-with-bazel/src/crypto/mem.c +392 -0
  1860. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +553 -0
  1861. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +11585 -0
  1862. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +122 -0
  1863. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +252 -0
  1864. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +358 -0
  1865. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +769 -0
  1866. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +87 -0
  1867. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +255 -0
  1868. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +214 -0
  1869. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +65 -0
  1870. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +65 -0
  1871. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +58 -0
  1872. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +164 -0
  1873. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +526 -0
  1874. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +138 -0
  1875. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +316 -0
  1876. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +530 -0
  1877. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1383 -0
  1878. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +41 -0
  1879. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +321 -0
  1880. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +307 -0
  1881. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +860 -0
  1882. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +45 -0
  1883. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +221 -0
  1884. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +56 -0
  1885. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +46 -0
  1886. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +34 -0
  1887. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  1888. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +74 -0
  1889. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +73 -0
  1890. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +98 -0
  1891. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +67 -0
  1892. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +53 -0
  1893. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +324 -0
  1894. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +22 -0
  1895. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +82 -0
  1896. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +425 -0
  1897. data/third_party/boringssl-with-bazel/src/crypto/thread.c +110 -0
  1898. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +59 -0
  1899. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +182 -0
  1900. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +260 -0
  1901. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +318 -0
  1902. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1399 -0
  1903. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +858 -0
  1904. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  1905. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +96 -0
  1906. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +128 -0
  1907. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +118 -0
  1908. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +163 -0
  1909. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +842 -0
  1910. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +459 -0
  1911. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +277 -0
  1912. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +83 -0
  1913. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +398 -0
  1914. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  1915. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +400 -0
  1916. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +130 -0
  1917. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +246 -0
  1918. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +365 -0
  1919. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +116 -0
  1920. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +90 -0
  1921. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +358 -0
  1922. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +461 -0
  1923. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +106 -0
  1924. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +103 -0
  1925. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +212 -0
  1926. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +830 -0
  1927. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +199 -0
  1928. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +304 -0
  1929. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +240 -0
  1930. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +331 -0
  1931. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +204 -0
  1932. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +281 -0
  1933. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +2456 -0
  1934. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +651 -0
  1935. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +284 -0
  1936. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +388 -0
  1937. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +84 -0
  1938. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +137 -0
  1939. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +153 -0
  1940. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +386 -0
  1941. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +98 -0
  1942. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +565 -0
  1943. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +77 -0
  1944. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +98 -0
  1945. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +544 -0
  1946. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +106 -0
  1947. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +217 -0
  1948. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +106 -0
  1949. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +94 -0
  1950. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +80 -0
  1951. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +71 -0
  1952. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +394 -0
  1953. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +201 -0
  1954. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +138 -0
  1955. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +84 -0
  1956. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +287 -0
  1957. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +132 -0
  1958. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +217 -0
  1959. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +155 -0
  1960. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +131 -0
  1961. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +189 -0
  1962. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +843 -0
  1963. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +226 -0
  1964. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +72 -0
  1965. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +639 -0
  1966. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +133 -0
  1967. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +144 -0
  1968. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +468 -0
  1969. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +501 -0
  1970. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +563 -0
  1971. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +106 -0
  1972. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +148 -0
  1973. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +266 -0
  1974. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +121 -0
  1975. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +218 -0
  1976. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +91 -0
  1977. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +362 -0
  1978. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +558 -0
  1979. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +68 -0
  1980. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +289 -0
  1981. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +57 -0
  1982. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +139 -0
  1983. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +154 -0
  1984. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +230 -0
  1985. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +929 -0
  1986. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +156 -0
  1987. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1437 -0
  1988. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +480 -0
  1989. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +207 -0
  1990. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +240 -0
  1991. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1321 -0
  1992. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +18 -0
  1993. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +718 -0
  1994. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +628 -0
  1995. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +190 -0
  1996. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +939 -0
  1997. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  1998. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +93 -0
  1999. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +1057 -0
  2000. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +137 -0
  2001. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +18 -0
  2002. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +586 -0
  2003. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +96 -0
  2004. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +41 -0
  2005. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +661 -0
  2006. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +91 -0
  2007. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +183 -0
  2008. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +202 -0
  2009. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +169 -0
  2010. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +201 -0
  2011. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +183 -0
  2012. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +361 -0
  2013. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +348 -0
  2014. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +457 -0
  2015. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +16 -0
  2016. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +18 -0
  2017. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +442 -0
  2018. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +372 -0
  2019. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +118 -0
  2020. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +238 -0
  2021. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +109 -0
  2022. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +466 -0
  2023. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1109 -0
  2024. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +99 -0
  2025. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +203 -0
  2026. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +68 -0
  2027. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +186 -0
  2028. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
  2029. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +102 -0
  2030. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +16 -0
  2031. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +81 -0
  2032. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +108 -0
  2033. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +109 -0
  2034. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +184 -0
  2035. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +4259 -0
  2036. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +256 -0
  2037. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +18 -0
  2038. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +18 -0
  2039. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +70 -0
  2040. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +18 -0
  2041. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +18 -0
  2042. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +483 -0
  2043. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +18 -0
  2044. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +240 -0
  2045. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +277 -0
  2046. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +49 -0
  2047. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +102 -0
  2048. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +114 -0
  2049. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +96 -0
  2050. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +108 -0
  2051. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +859 -0
  2052. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +16 -0
  2053. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +294 -0
  2054. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +37 -0
  2055. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +222 -0
  2056. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +18 -0
  2057. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +5606 -0
  2058. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +333 -0
  2059. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +542 -0
  2060. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +191 -0
  2061. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +647 -0
  2062. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +310 -0
  2063. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +90 -0
  2064. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2450 -0
  2065. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +18 -0
  2066. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1020 -0
  2067. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +192 -0
  2068. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +835 -0
  2069. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +268 -0
  2070. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +273 -0
  2071. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +232 -0
  2072. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +200 -0
  2073. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +353 -0
  2074. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
  2075. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +4325 -0
  2076. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +986 -0
  2077. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +758 -0
  2078. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +1986 -0
  2079. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1956 -0
  2080. data/third_party/boringssl-with-bazel/src/ssl/internal.h +3953 -0
  2081. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +730 -0
  2082. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +219 -0
  2083. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +453 -0
  2084. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +432 -0
  2085. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +896 -0
  2086. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +306 -0
  2087. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +1014 -0
  2088. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +1717 -0
  2089. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +585 -0
  2090. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +400 -0
  2091. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +3068 -0
  2092. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +837 -0
  2093. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +1342 -0
  2094. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +233 -0
  2095. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +272 -0
  2096. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +398 -0
  2097. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +1363 -0
  2098. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +384 -0
  2099. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +733 -0
  2100. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1122 -0
  2101. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +582 -0
  2102. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +1349 -0
  2103. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +319 -0
  2104. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +705 -0
  2105. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +981 -0
  2106. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +619 -0
  2107. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3147 -0
  2108. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1226 -0
  2109. data/third_party/cares/ares_build.h +223 -0
  2110. data/third_party/cares/cares/ares.h +670 -0
  2111. data/third_party/cares/cares/ares__close_sockets.c +61 -0
  2112. data/third_party/cares/cares/ares__get_hostent.c +261 -0
  2113. data/third_party/cares/cares/ares__read_line.c +73 -0
  2114. data/third_party/cares/cares/ares__timeval.c +111 -0
  2115. data/third_party/cares/cares/ares_cancel.c +63 -0
  2116. data/third_party/cares/cares/ares_create_query.c +206 -0
  2117. data/third_party/cares/cares/ares_data.c +222 -0
  2118. data/third_party/cares/cares/ares_data.h +72 -0
  2119. data/third_party/cares/cares/ares_destroy.c +113 -0
  2120. data/third_party/cares/cares/ares_dns.h +103 -0
  2121. data/third_party/cares/cares/ares_expand_name.c +209 -0
  2122. data/third_party/cares/cares/ares_expand_string.c +70 -0
  2123. data/third_party/cares/cares/ares_fds.c +59 -0
  2124. data/third_party/cares/cares/ares_free_hostent.c +41 -0
  2125. data/third_party/cares/cares/ares_free_string.c +25 -0
  2126. data/third_party/cares/cares/ares_getenv.c +30 -0
  2127. data/third_party/cares/cares/ares_getenv.h +26 -0
  2128. data/third_party/cares/cares/ares_gethostbyaddr.c +294 -0
  2129. data/third_party/cares/cares/ares_gethostbyname.c +529 -0
  2130. data/third_party/cares/cares/ares_getnameinfo.c +453 -0
  2131. data/third_party/cares/cares/ares_getopt.c +122 -0
  2132. data/third_party/cares/cares/ares_getopt.h +53 -0
  2133. data/third_party/cares/cares/ares_getsock.c +66 -0
  2134. data/third_party/cares/cares/ares_inet_net_pton.h +25 -0
  2135. data/third_party/cares/cares/ares_init.c +2615 -0
  2136. data/third_party/cares/cares/ares_iphlpapi.h +221 -0
  2137. data/third_party/cares/cares/ares_ipv6.h +78 -0
  2138. data/third_party/cares/cares/ares_library_init.c +195 -0
  2139. data/third_party/cares/cares/ares_library_init.h +43 -0
  2140. data/third_party/cares/cares/ares_llist.c +63 -0
  2141. data/third_party/cares/cares/ares_llist.h +39 -0
  2142. data/third_party/cares/cares/ares_mkquery.c +24 -0
  2143. data/third_party/cares/cares/ares_nowarn.c +260 -0
  2144. data/third_party/cares/cares/ares_nowarn.h +61 -0
  2145. data/third_party/cares/cares/ares_options.c +406 -0
  2146. data/third_party/cares/cares/ares_parse_a_reply.c +264 -0
  2147. data/third_party/cares/cares/ares_parse_aaaa_reply.c +264 -0
  2148. data/third_party/cares/cares/ares_parse_mx_reply.c +170 -0
  2149. data/third_party/cares/cares/ares_parse_naptr_reply.c +194 -0
  2150. data/third_party/cares/cares/ares_parse_ns_reply.c +183 -0
  2151. data/third_party/cares/cares/ares_parse_ptr_reply.c +221 -0
  2152. data/third_party/cares/cares/ares_parse_soa_reply.c +133 -0
  2153. data/third_party/cares/cares/ares_parse_srv_reply.c +179 -0
  2154. data/third_party/cares/cares/ares_parse_txt_reply.c +220 -0
  2155. data/third_party/cares/cares/ares_platform.c +11042 -0
  2156. data/third_party/cares/cares/ares_platform.h +43 -0
  2157. data/third_party/cares/cares/ares_private.h +382 -0
  2158. data/third_party/cares/cares/ares_process.c +1473 -0
  2159. data/third_party/cares/cares/ares_query.c +186 -0
  2160. data/third_party/cares/cares/ares_rules.h +125 -0
  2161. data/third_party/cares/cares/ares_search.c +323 -0
  2162. data/third_party/cares/cares/ares_send.c +137 -0
  2163. data/third_party/cares/cares/ares_setup.h +217 -0
  2164. data/third_party/cares/cares/ares_strcasecmp.c +66 -0
  2165. data/third_party/cares/cares/ares_strcasecmp.h +30 -0
  2166. data/third_party/cares/cares/ares_strdup.c +49 -0
  2167. data/third_party/cares/cares/ares_strdup.h +24 -0
  2168. data/third_party/cares/cares/ares_strerror.c +56 -0
  2169. data/third_party/cares/cares/ares_strsplit.c +174 -0
  2170. data/third_party/cares/cares/ares_strsplit.h +43 -0
  2171. data/third_party/cares/cares/ares_timeout.c +88 -0
  2172. data/third_party/cares/cares/ares_version.c +11 -0
  2173. data/third_party/cares/cares/ares_version.h +24 -0
  2174. data/third_party/cares/cares/ares_writev.c +79 -0
  2175. data/third_party/cares/cares/bitncmp.c +59 -0
  2176. data/third_party/cares/cares/bitncmp.h +26 -0
  2177. data/third_party/cares/cares/config-win32.h +351 -0
  2178. data/third_party/cares/cares/inet_net_pton.c +450 -0
  2179. data/third_party/cares/cares/inet_ntop.c +207 -0
  2180. data/third_party/cares/cares/setup_once.h +554 -0
  2181. data/third_party/cares/cares/windows_port.c +22 -0
  2182. data/third_party/cares/config_darwin/ares_config.h +428 -0
  2183. data/third_party/cares/config_freebsd/ares_config.h +505 -0
  2184. data/third_party/cares/config_linux/ares_config.h +461 -0
  2185. data/third_party/cares/config_openbsd/ares_config.h +505 -0
  2186. data/third_party/re2/re2/bitmap256.h +117 -0
  2187. data/third_party/re2/re2/bitstate.cc +385 -0
  2188. data/third_party/re2/re2/compile.cc +1261 -0
  2189. data/third_party/re2/re2/dfa.cc +2118 -0
  2190. data/third_party/re2/re2/filtered_re2.cc +137 -0
  2191. data/third_party/re2/re2/filtered_re2.h +114 -0
  2192. data/third_party/re2/re2/mimics_pcre.cc +197 -0
  2193. data/third_party/re2/re2/nfa.cc +713 -0
  2194. data/third_party/re2/re2/onepass.cc +623 -0
  2195. data/third_party/re2/re2/parse.cc +2483 -0
  2196. data/third_party/re2/re2/perl_groups.cc +119 -0
  2197. data/third_party/re2/re2/pod_array.h +55 -0
  2198. data/third_party/re2/re2/prefilter.cc +711 -0
  2199. data/third_party/re2/re2/prefilter.h +108 -0
  2200. data/third_party/re2/re2/prefilter_tree.cc +407 -0
  2201. data/third_party/re2/re2/prefilter_tree.h +139 -0
  2202. data/third_party/re2/re2/prog.cc +1166 -0
  2203. data/third_party/re2/re2/prog.h +455 -0
  2204. data/third_party/re2/re2/re2.cc +1331 -0
  2205. data/third_party/re2/re2/re2.h +1017 -0
  2206. data/third_party/re2/re2/regexp.cc +987 -0
  2207. data/third_party/re2/re2/regexp.h +665 -0
  2208. data/third_party/re2/re2/set.cc +176 -0
  2209. data/third_party/re2/re2/set.h +85 -0
  2210. data/third_party/re2/re2/simplify.cc +665 -0
  2211. data/third_party/re2/re2/sparse_array.h +392 -0
  2212. data/third_party/re2/re2/sparse_set.h +264 -0
  2213. data/third_party/re2/re2/stringpiece.cc +65 -0
  2214. data/third_party/re2/re2/stringpiece.h +210 -0
  2215. data/third_party/re2/re2/tostring.cc +351 -0
  2216. data/third_party/re2/re2/unicode_casefold.cc +582 -0
  2217. data/third_party/re2/re2/unicode_casefold.h +78 -0
  2218. data/third_party/re2/re2/unicode_groups.cc +6269 -0
  2219. data/third_party/re2/re2/unicode_groups.h +67 -0
  2220. data/third_party/re2/re2/walker-inl.h +246 -0
  2221. data/third_party/re2/util/benchmark.h +156 -0
  2222. data/third_party/re2/util/flags.h +26 -0
  2223. data/third_party/re2/util/logging.h +109 -0
  2224. data/third_party/re2/util/malloc_counter.h +19 -0
  2225. data/third_party/re2/util/mix.h +41 -0
  2226. data/third_party/re2/util/mutex.h +148 -0
  2227. data/third_party/re2/util/pcre.cc +1025 -0
  2228. data/third_party/re2/util/pcre.h +681 -0
  2229. data/third_party/re2/util/rune.cc +260 -0
  2230. data/third_party/re2/util/strutil.cc +149 -0
  2231. data/third_party/re2/util/strutil.h +21 -0
  2232. data/third_party/re2/util/test.h +50 -0
  2233. data/third_party/re2/util/utf.h +44 -0
  2234. data/third_party/re2/util/util.h +42 -0
  2235. data/third_party/upb/upb/decode.c +771 -0
  2236. data/third_party/upb/upb/decode.h +68 -0
  2237. data/third_party/upb/upb/decode_fast.c +1053 -0
  2238. data/third_party/upb/upb/decode_fast.h +153 -0
  2239. data/third_party/upb/upb/decode_internal.h +193 -0
  2240. data/third_party/upb/upb/def.c +2168 -0
  2241. data/third_party/upb/upb/def.h +337 -0
  2242. data/third_party/upb/upb/def.hpp +468 -0
  2243. data/third_party/upb/upb/encode.c +511 -0
  2244. data/third_party/upb/upb/encode.h +73 -0
  2245. data/third_party/upb/upb/msg.c +397 -0
  2246. data/third_party/upb/upb/msg.h +108 -0
  2247. data/third_party/upb/upb/msg_internal.h +687 -0
  2248. data/third_party/upb/upb/port_def.inc +253 -0
  2249. data/third_party/upb/upb/port_undef.inc +61 -0
  2250. data/third_party/upb/upb/reflection.c +400 -0
  2251. data/third_party/upb/upb/reflection.h +196 -0
  2252. data/third_party/upb/upb/reflection.hpp +37 -0
  2253. data/third_party/upb/upb/table.c +842 -0
  2254. data/third_party/upb/upb/table_internal.h +351 -0
  2255. data/third_party/upb/upb/text_encode.c +449 -0
  2256. data/third_party/upb/upb/text_encode.h +64 -0
  2257. data/third_party/upb/upb/upb.c +315 -0
  2258. data/third_party/upb/upb/upb.h +367 -0
  2259. data/third_party/upb/upb/upb.hpp +112 -0
  2260. data/third_party/upb/upb/upb_internal.h +58 -0
  2261. data/third_party/xxhash/xxhash.h +5325 -0
  2262. data/third_party/zlib/adler32.c +186 -0
  2263. data/third_party/zlib/compress.c +86 -0
  2264. data/third_party/zlib/crc32.c +442 -0
  2265. data/third_party/zlib/crc32.h +441 -0
  2266. data/third_party/zlib/deflate.c +2163 -0
  2267. data/third_party/zlib/deflate.h +349 -0
  2268. data/third_party/zlib/gzclose.c +25 -0
  2269. data/third_party/zlib/gzguts.h +218 -0
  2270. data/third_party/zlib/gzlib.c +637 -0
  2271. data/third_party/zlib/gzread.c +654 -0
  2272. data/third_party/zlib/gzwrite.c +665 -0
  2273. data/third_party/zlib/infback.c +640 -0
  2274. data/third_party/zlib/inffast.c +323 -0
  2275. data/third_party/zlib/inffast.h +11 -0
  2276. data/third_party/zlib/inffixed.h +94 -0
  2277. data/third_party/zlib/inflate.c +1561 -0
  2278. data/third_party/zlib/inflate.h +125 -0
  2279. data/third_party/zlib/inftrees.c +304 -0
  2280. data/third_party/zlib/inftrees.h +62 -0
  2281. data/third_party/zlib/trees.c +1203 -0
  2282. data/third_party/zlib/trees.h +128 -0
  2283. data/third_party/zlib/uncompr.c +93 -0
  2284. data/third_party/zlib/zconf.h +534 -0
  2285. data/third_party/zlib/zlib.h +1912 -0
  2286. data/third_party/zlib/zutil.c +325 -0
  2287. data/third_party/zlib/zutil.h +271 -0
  2288. metadata +2563 -0
@@ -0,0 +1,2450 @@
1
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
+ * All rights reserved.
3
+ *
4
+ * This package is an SSL implementation written
5
+ * by Eric Young (eay@cryptsoft.com).
6
+ * The implementation was written so as to conform with Netscapes SSL.
7
+ *
8
+ * This library is free for commercial and non-commercial use as long as
9
+ * the following conditions are aheared to. The following conditions
10
+ * apply to all code found in this distribution, be it the RC4, RSA,
11
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
+ * included with this distribution is covered by the same copyright terms
13
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
+ *
15
+ * Copyright remains Eric Young's, and as such any Copyright notices in
16
+ * the code are not to be removed.
17
+ * If this package is used in a product, Eric Young should be given attribution
18
+ * as the author of the parts of the library used.
19
+ * This can be in the form of a textual message at program startup or
20
+ * in documentation (online or textual) provided with the package.
21
+ *
22
+ * Redistribution and use in source and binary forms, with or without
23
+ * modification, are permitted provided that the following conditions
24
+ * are met:
25
+ * 1. Redistributions of source code must retain the copyright
26
+ * notice, this list of conditions and the following disclaimer.
27
+ * 2. Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following disclaimer in the
29
+ * documentation and/or other materials provided with the distribution.
30
+ * 3. All advertising materials mentioning features or use of this software
31
+ * must display the following acknowledgement:
32
+ * "This product includes cryptographic software written by
33
+ * Eric Young (eay@cryptsoft.com)"
34
+ * The word 'cryptographic' can be left out if the rouines from the library
35
+ * being used are not cryptographic related :-).
36
+ * 4. If you include any Windows specific code (or a derivative thereof) from
37
+ * the apps directory (application code) you must include an acknowledgement:
38
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
+ * SUCH DAMAGE.
51
+ *
52
+ * The licence and distribution terms for any publically available version or
53
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
54
+ * copied and put under another distribution licence
55
+ * [including the GNU Public Licence.]
56
+ */
57
+ /* ====================================================================
58
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
59
+ * ECDH support in OpenSSL originally developed by
60
+ * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
61
+ */
62
+
63
+ #ifndef HEADER_X509_H
64
+ #define HEADER_X509_H
65
+
66
+ #include <openssl/asn1.h>
67
+ #include <openssl/base.h>
68
+ #include <openssl/bio.h>
69
+ #include <openssl/cipher.h>
70
+ #include <openssl/dh.h>
71
+ #include <openssl/dsa.h>
72
+ #include <openssl/ec.h>
73
+ #include <openssl/ecdh.h>
74
+ #include <openssl/ecdsa.h>
75
+ #include <openssl/evp.h>
76
+ #include <openssl/obj.h>
77
+ #include <openssl/pkcs7.h>
78
+ #include <openssl/pool.h>
79
+ #include <openssl/rsa.h>
80
+ #include <openssl/sha.h>
81
+ #include <openssl/stack.h>
82
+ #include <openssl/thread.h>
83
+ #include <time.h>
84
+
85
+ #ifdef __cplusplus
86
+ extern "C" {
87
+ #endif
88
+
89
+
90
+ // Legacy X.509 library.
91
+ //
92
+ // This header is part of OpenSSL's X.509 implementation. It is retained for
93
+ // compatibility but otherwise underdocumented and not actively maintained. In
94
+ // the future, a replacement library will be available. Meanwhile, minimize
95
+ // dependencies on this header where possible.
96
+
97
+
98
+ #define X509_FILETYPE_PEM 1
99
+ #define X509_FILETYPE_ASN1 2
100
+ #define X509_FILETYPE_DEFAULT 3
101
+
102
+ #define X509v3_KU_DIGITAL_SIGNATURE 0x0080
103
+ #define X509v3_KU_NON_REPUDIATION 0x0040
104
+ #define X509v3_KU_KEY_ENCIPHERMENT 0x0020
105
+ #define X509v3_KU_DATA_ENCIPHERMENT 0x0010
106
+ #define X509v3_KU_KEY_AGREEMENT 0x0008
107
+ #define X509v3_KU_KEY_CERT_SIGN 0x0004
108
+ #define X509v3_KU_CRL_SIGN 0x0002
109
+ #define X509v3_KU_ENCIPHER_ONLY 0x0001
110
+ #define X509v3_KU_DECIPHER_ONLY 0x8000
111
+ #define X509v3_KU_UNDEF 0xffff
112
+
113
+ struct X509_algor_st {
114
+ ASN1_OBJECT *algorithm;
115
+ ASN1_TYPE *parameter;
116
+ } /* X509_ALGOR */;
117
+
118
+ DECLARE_ASN1_FUNCTIONS(X509_ALGOR)
119
+
120
+ DEFINE_STACK_OF(X509_ALGOR)
121
+
122
+ typedef STACK_OF(X509_ALGOR) X509_ALGORS;
123
+
124
+ DEFINE_STACK_OF(X509_NAME_ENTRY)
125
+
126
+ DEFINE_STACK_OF(X509_NAME)
127
+
128
+ typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS;
129
+
130
+ DEFINE_STACK_OF(X509_EXTENSION)
131
+
132
+ DEFINE_STACK_OF(X509_ATTRIBUTE)
133
+
134
+ // This stuff is certificate "auxiliary info"
135
+ // it contains details which are useful in certificate
136
+ // stores and databases. When used this is tagged onto
137
+ // the end of the certificate itself
138
+
139
+ DECLARE_STACK_OF(DIST_POINT)
140
+ DECLARE_STACK_OF(GENERAL_NAME)
141
+
142
+ DEFINE_STACK_OF(X509)
143
+
144
+ // This is used for a table of trust checking functions
145
+
146
+ struct x509_trust_st {
147
+ int trust;
148
+ int flags;
149
+ int (*check_trust)(struct x509_trust_st *, X509 *, int);
150
+ char *name;
151
+ int arg1;
152
+ void *arg2;
153
+ } /* X509_TRUST */;
154
+
155
+ DEFINE_STACK_OF(X509_TRUST)
156
+
157
+ // standard trust ids
158
+
159
+ #define X509_TRUST_DEFAULT (-1) // Only valid in purpose settings
160
+
161
+ #define X509_TRUST_COMPAT 1
162
+ #define X509_TRUST_SSL_CLIENT 2
163
+ #define X509_TRUST_SSL_SERVER 3
164
+ #define X509_TRUST_EMAIL 4
165
+ #define X509_TRUST_OBJECT_SIGN 5
166
+ #define X509_TRUST_OCSP_SIGN 6
167
+ #define X509_TRUST_OCSP_REQUEST 7
168
+ #define X509_TRUST_TSA 8
169
+
170
+ // Keep these up to date!
171
+ #define X509_TRUST_MIN 1
172
+ #define X509_TRUST_MAX 8
173
+
174
+
175
+ // trust_flags values
176
+ #define X509_TRUST_DYNAMIC 1
177
+ #define X509_TRUST_DYNAMIC_NAME 2
178
+
179
+ // check_trust return codes
180
+
181
+ #define X509_TRUST_TRUSTED 1
182
+ #define X509_TRUST_REJECTED 2
183
+ #define X509_TRUST_UNTRUSTED 3
184
+
185
+ // Flags for X509_print_ex()
186
+
187
+ #define X509_FLAG_COMPAT 0
188
+ #define X509_FLAG_NO_HEADER 1L
189
+ #define X509_FLAG_NO_VERSION (1L << 1)
190
+ #define X509_FLAG_NO_SERIAL (1L << 2)
191
+ #define X509_FLAG_NO_SIGNAME (1L << 3)
192
+ #define X509_FLAG_NO_ISSUER (1L << 4)
193
+ #define X509_FLAG_NO_VALIDITY (1L << 5)
194
+ #define X509_FLAG_NO_SUBJECT (1L << 6)
195
+ #define X509_FLAG_NO_PUBKEY (1L << 7)
196
+ #define X509_FLAG_NO_EXTENSIONS (1L << 8)
197
+ #define X509_FLAG_NO_SIGDUMP (1L << 9)
198
+ #define X509_FLAG_NO_AUX (1L << 10)
199
+ #define X509_FLAG_NO_ATTRIBUTES (1L << 11)
200
+ #define X509_FLAG_NO_IDS (1L << 12)
201
+
202
+ // Flags specific to X509_NAME_print_ex()
203
+
204
+ // The field separator information
205
+
206
+ #define XN_FLAG_SEP_MASK (0xf << 16)
207
+
208
+ #define XN_FLAG_COMPAT 0 // Traditional SSLeay: use old X509_NAME_print
209
+ #define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC 2253 ,+
210
+ #define XN_FLAG_SEP_CPLUS_SPC (2 << 16) // ,+ spaced: more readable
211
+ #define XN_FLAG_SEP_SPLUS_SPC (3 << 16) // ;+ spaced
212
+ #define XN_FLAG_SEP_MULTILINE (4 << 16) // One line per field
213
+
214
+ #define XN_FLAG_DN_REV (1 << 20) // Reverse DN order
215
+
216
+ // How the field name is shown
217
+
218
+ #define XN_FLAG_FN_MASK (0x3 << 21)
219
+
220
+ #define XN_FLAG_FN_SN 0 // Object short name
221
+ #define XN_FLAG_FN_LN (1 << 21) // Object long name
222
+ #define XN_FLAG_FN_OID (2 << 21) // Always use OIDs
223
+ #define XN_FLAG_FN_NONE (3 << 21) // No field names
224
+
225
+ #define XN_FLAG_SPC_EQ (1 << 23) // Put spaces round '='
226
+
227
+ // This determines if we dump fields we don't recognise:
228
+ // RFC 2253 requires this.
229
+
230
+ #define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
231
+
232
+ #define XN_FLAG_FN_ALIGN (1 << 25) // Align field names to 20 characters
233
+
234
+ // Complete set of RFC 2253 flags
235
+
236
+ #define XN_FLAG_RFC2253 \
237
+ (ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | \
238
+ XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS)
239
+
240
+ // readable oneline form
241
+
242
+ #define XN_FLAG_ONELINE \
243
+ (ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | \
244
+ XN_FLAG_SPC_EQ | XN_FLAG_FN_SN)
245
+
246
+ // readable multiline form
247
+
248
+ #define XN_FLAG_MULTILINE \
249
+ (ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE | \
250
+ XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN)
251
+
252
+ struct x509_revoked_st {
253
+ ASN1_INTEGER *serialNumber;
254
+ ASN1_TIME *revocationDate;
255
+ STACK_OF(X509_EXTENSION) /* optional */ *extensions;
256
+ // Set up if indirect CRL
257
+ STACK_OF(GENERAL_NAME) *issuer;
258
+ // Revocation reason
259
+ int reason;
260
+ int sequence; // load sequence
261
+ };
262
+
263
+ DEFINE_STACK_OF(X509_REVOKED)
264
+
265
+ DECLARE_STACK_OF(GENERAL_NAMES)
266
+
267
+ DEFINE_STACK_OF(X509_CRL)
268
+
269
+ struct private_key_st {
270
+ int version;
271
+ // The PKCS#8 data types
272
+ X509_ALGOR *enc_algor;
273
+ ASN1_OCTET_STRING *enc_pkey; // encrypted pub key
274
+
275
+ // When decrypted, the following will not be NULL
276
+ EVP_PKEY *dec_pkey;
277
+
278
+ // used to encrypt and decrypt
279
+ int key_length;
280
+ char *key_data;
281
+ int key_free; // true if we should auto free key_data
282
+
283
+ // expanded version of 'enc_algor'
284
+ EVP_CIPHER_INFO cipher;
285
+ } /* X509_PKEY */;
286
+
287
+ struct X509_info_st {
288
+ X509 *x509;
289
+ X509_CRL *crl;
290
+ X509_PKEY *x_pkey;
291
+
292
+ EVP_CIPHER_INFO enc_cipher;
293
+ int enc_len;
294
+ char *enc_data;
295
+
296
+ } /* X509_INFO */;
297
+
298
+ DEFINE_STACK_OF(X509_INFO)
299
+
300
+ // The next 2 structures and their 8 routines were sent to me by
301
+ // Pat Richard <patr@x509.com> and are used to manipulate
302
+ // Netscapes spki structures - useful if you are writing a CA web page
303
+ struct Netscape_spkac_st {
304
+ X509_PUBKEY *pubkey;
305
+ ASN1_IA5STRING *challenge; // challenge sent in atlas >= PR2
306
+ } /* NETSCAPE_SPKAC */;
307
+
308
+ struct Netscape_spki_st {
309
+ NETSCAPE_SPKAC *spkac; // signed public key and challenge
310
+ X509_ALGOR *sig_algor;
311
+ ASN1_BIT_STRING *signature;
312
+ } /* NETSCAPE_SPKI */;
313
+
314
+ // TODO(davidben): Document remaining functions, reorganize them, and define
315
+ // supported patterns for using |X509| objects in general. In particular, when
316
+ // it is safe to call mutating functions is a little tricky due to various
317
+ // internal caches.
318
+
319
+ // X509_VERSION_* are X.509 version numbers. Note the numerical values of all
320
+ // defined X.509 versions are one less than the named version.
321
+ #define X509_VERSION_1 0
322
+ #define X509_VERSION_2 1
323
+ #define X509_VERSION_3 2
324
+
325
+ // X509_get_version returns the numerical value of |x509|'s version. Callers may
326
+ // compare the result to the |X509_VERSION_*| constants. Unknown versions are
327
+ // rejected by the parser, but a manually-created |X509| object may encode
328
+ // invalid versions. In that case, the function will return the invalid version,
329
+ // or -1 on overflow.
330
+ OPENSSL_EXPORT long X509_get_version(const X509 *x509);
331
+
332
+ // X509_set_version sets |x509|'s version to |version|, which should be one of
333
+ // the |X509V_VERSION_*| constants. It returns one on success and zero on error.
334
+ //
335
+ // If unsure, use |X509_VERSION_3|.
336
+ OPENSSL_EXPORT int X509_set_version(X509 *x509, long version);
337
+
338
+ // X509_get0_serialNumber returns |x509|'s serial number.
339
+ OPENSSL_EXPORT const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x509);
340
+
341
+ // X509_set_serialNumber sets |x509|'s serial number to |serial|. It returns one
342
+ // on success and zero on error.
343
+ OPENSSL_EXPORT int X509_set_serialNumber(X509 *x509,
344
+ const ASN1_INTEGER *serial);
345
+
346
+ // X509_get0_notBefore returns |x509|'s notBefore time.
347
+ OPENSSL_EXPORT const ASN1_TIME *X509_get0_notBefore(const X509 *x509);
348
+
349
+ // X509_get0_notAfter returns |x509|'s notAfter time.
350
+ OPENSSL_EXPORT const ASN1_TIME *X509_get0_notAfter(const X509 *x509);
351
+
352
+ // X509_set1_notBefore sets |x509|'s notBefore time to |tm|. It returns one on
353
+ // success and zero on error.
354
+ OPENSSL_EXPORT int X509_set1_notBefore(X509 *x509, const ASN1_TIME *tm);
355
+
356
+ // X509_set1_notAfter sets |x509|'s notAfter time to |tm|. it returns one on
357
+ // success and zero on error.
358
+ OPENSSL_EXPORT int X509_set1_notAfter(X509 *x509, const ASN1_TIME *tm);
359
+
360
+ // X509_getm_notBefore returns a mutable pointer to |x509|'s notBefore time.
361
+ OPENSSL_EXPORT ASN1_TIME *X509_getm_notBefore(X509 *x509);
362
+
363
+ // X509_getm_notAfter returns a mutable pointer to |x509|'s notAfter time.
364
+ OPENSSL_EXPORT ASN1_TIME *X509_getm_notAfter(X509 *x);
365
+
366
+ // X509_get_notBefore returns |x509|'s notBefore time. Note this function is not
367
+ // const-correct for legacy reasons. Use |X509_get0_notBefore| or
368
+ // |X509_getm_notBefore| instead.
369
+ OPENSSL_EXPORT ASN1_TIME *X509_get_notBefore(const X509 *x509);
370
+
371
+ // X509_get_notAfter returns |x509|'s notAfter time. Note this function is not
372
+ // const-correct for legacy reasons. Use |X509_get0_notAfter| or
373
+ // |X509_getm_notAfter| instead.
374
+ OPENSSL_EXPORT ASN1_TIME *X509_get_notAfter(const X509 *x509);
375
+
376
+ // X509_set_notBefore calls |X509_set1_notBefore|. Use |X509_set1_notBefore|
377
+ // instead.
378
+ OPENSSL_EXPORT int X509_set_notBefore(X509 *x509, const ASN1_TIME *tm);
379
+
380
+ // X509_set_notAfter calls |X509_set1_notAfter|. Use |X509_set1_notAfter|
381
+ // instead.
382
+ OPENSSL_EXPORT int X509_set_notAfter(X509 *x509, const ASN1_TIME *tm);
383
+
384
+ // X509_get0_uids sets |*out_issuer_uid| to a non-owning pointer to the
385
+ // issuerUID field of |x509|, or NULL if |x509| has no issuerUID. It similarly
386
+ // outputs |x509|'s subjectUID field to |*out_subject_uid|.
387
+ //
388
+ // Callers may pass NULL to either |out_issuer_uid| or |out_subject_uid| to
389
+ // ignore the corresponding field.
390
+ OPENSSL_EXPORT void X509_get0_uids(const X509 *x509,
391
+ const ASN1_BIT_STRING **out_issuer_uid,
392
+ const ASN1_BIT_STRING **out_subject_uid);
393
+
394
+ // X509_extract_key is a legacy alias to |X509_get_pubkey|. Use
395
+ // |X509_get_pubkey| instead.
396
+ #define X509_extract_key(x) X509_get_pubkey(x)
397
+
398
+ // X509_get_pathlen returns path length constraint from the basic constraints
399
+ // extension in |x509|. (See RFC 5280, section 4.2.1.9.) It returns -1 if the
400
+ // constraint is not present, or if some extension in |x509| was invalid.
401
+ //
402
+ // Note that decoding an |X509| object will not check for invalid extensions. To
403
+ // detect the error case, call |X509_get_extensions_flags| and check the
404
+ // |EXFLAG_INVALID| bit.
405
+ OPENSSL_EXPORT long X509_get_pathlen(X509 *x509);
406
+
407
+ // X509_REQ_VERSION_1 is the version constant for |X509_REQ| objects. Note no
408
+ // other versions are defined.
409
+ #define X509_REQ_VERSION_1 0
410
+
411
+ // X509_REQ_get_version returns the numerical value of |req|'s version. This
412
+ // will be |X509_REQ_VERSION_1| for valid certificate requests. If |req| is
413
+ // invalid, it may return another value, or -1 on overflow.
414
+ //
415
+ // TODO(davidben): Enforce the version number in the parser.
416
+ OPENSSL_EXPORT long X509_REQ_get_version(const X509_REQ *req);
417
+
418
+ // X509_REQ_get_subject_name returns |req|'s subject name. Note this function is
419
+ // not const-correct for legacy reasons.
420
+ OPENSSL_EXPORT X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req);
421
+
422
+ // X509_REQ_extract_key is a legacy alias for |X509_REQ_get_pubkey|.
423
+ #define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a)
424
+
425
+ // X509_name_cmp is a legacy alias for |X509_NAME_cmp|.
426
+ #define X509_name_cmp(a, b) X509_NAME_cmp((a), (b))
427
+
428
+ #define X509_CRL_VERSION_1 0
429
+ #define X509_CRL_VERSION_2 1
430
+
431
+ // X509_CRL_get_version returns the numerical value of |crl|'s version. Callers
432
+ // may compare the result to |X509_CRL_VERSION_*| constants. If |crl| is
433
+ // invalid, it may return another value, or -1 on overflow.
434
+ //
435
+ // TODO(davidben): Enforce the version number in the parser.
436
+ OPENSSL_EXPORT long X509_CRL_get_version(const X509_CRL *crl);
437
+
438
+ // X509_CRL_get0_lastUpdate returns |crl|'s lastUpdate time.
439
+ OPENSSL_EXPORT const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl);
440
+
441
+ // X509_CRL_get0_nextUpdate returns |crl|'s nextUpdate time, or NULL if |crl|
442
+ // has none.
443
+ OPENSSL_EXPORT const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl);
444
+
445
+ // X509_CRL_set1_lastUpdate sets |crl|'s lastUpdate time to |tm|. It returns one
446
+ // on success and zero on error.
447
+ OPENSSL_EXPORT int X509_CRL_set1_lastUpdate(X509_CRL *crl, const ASN1_TIME *tm);
448
+
449
+ // X509_CRL_set1_nextUpdate sets |crl|'s nextUpdate time to |tm|. It returns one
450
+ // on success and zero on error.
451
+ OPENSSL_EXPORT int X509_CRL_set1_nextUpdate(X509_CRL *crl, const ASN1_TIME *tm);
452
+
453
+ // The following symbols are deprecated aliases to |X509_CRL_set1_*|.
454
+ #define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate
455
+ #define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate
456
+
457
+ // X509_CRL_get_lastUpdate returns a mutable pointer to |crl|'s lastUpdate time.
458
+ // Use |X509_CRL_get0_lastUpdate| or |X509_CRL_set1_lastUpdate| instead.
459
+ OPENSSL_EXPORT ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl);
460
+
461
+ // X509_CRL_get_nextUpdate returns a mutable pointer to |crl|'s nextUpdate time,
462
+ // or NULL if |crl| has none. Use |X509_CRL_get0_nextUpdate| or
463
+ // |X509_CRL_set1_nextUpdate| instead.
464
+ OPENSSL_EXPORT ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl);
465
+
466
+ // X509_CRL_get_issuer returns |crl|'s issuer name. Note this function is not
467
+ // const-correct for legacy reasons.
468
+ OPENSSL_EXPORT X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl);
469
+
470
+ // X509_CRL_get_REVOKED returns the list of revoked certificates in |crl|, or
471
+ // NULL if |crl| omits it.
472
+ //
473
+ // TOOD(davidben): This function was originally a macro, without clear const
474
+ // semantics. It should take a const input and give const output, but the latter
475
+ // would break existing callers. For now, we match upstream.
476
+ OPENSSL_EXPORT STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl);
477
+
478
+ // X509_CRL_get0_extensions returns |crl|'s extension list, or NULL if |crl|
479
+ // omits it.
480
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(
481
+ const X509_CRL *crl);
482
+
483
+ // X509_SIG_get0 sets |*out_alg| and |*out_digest| to non-owning pointers to
484
+ // |sig|'s algorithm and digest fields, respectively. Either |out_alg| and
485
+ // |out_digest| may be NULL to skip those fields.
486
+ OPENSSL_EXPORT void X509_SIG_get0(const X509_SIG *sig,
487
+ const X509_ALGOR **out_alg,
488
+ const ASN1_OCTET_STRING **out_digest);
489
+
490
+ // X509_SIG_getm behaves like |X509_SIG_get0| but returns mutable pointers.
491
+ OPENSSL_EXPORT void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **out_alg,
492
+ ASN1_OCTET_STRING **out_digest);
493
+
494
+ OPENSSL_EXPORT void X509_CRL_set_default_method(const X509_CRL_METHOD *meth);
495
+ OPENSSL_EXPORT X509_CRL_METHOD *X509_CRL_METHOD_new(
496
+ int (*crl_init)(X509_CRL *crl), int (*crl_free)(X509_CRL *crl),
497
+ int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *ser,
498
+ X509_NAME *issuer),
499
+ int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk));
500
+ OPENSSL_EXPORT void X509_CRL_METHOD_free(X509_CRL_METHOD *m);
501
+
502
+ OPENSSL_EXPORT void X509_CRL_set_meth_data(X509_CRL *crl, void *dat);
503
+ OPENSSL_EXPORT void *X509_CRL_get_meth_data(X509_CRL *crl);
504
+
505
+ // X509_get_X509_PUBKEY returns the public key of |x509|. Note this function is
506
+ // not const-correct for legacy reasons. Callers should not modify the returned
507
+ // object.
508
+ OPENSSL_EXPORT X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x509);
509
+
510
+ // X509_verify_cert_error_string returns |err| as a human-readable string, where
511
+ // |err| should be one of the |X509_V_*| values. If |err| is unknown, it returns
512
+ // a default description.
513
+ OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
514
+
515
+ // X509_verify checks that |x509| has a valid signature by |pkey|. It returns
516
+ // one if the signature is valid and zero otherwise. Note this function only
517
+ // checks the signature itself and does not perform a full certificate
518
+ // validation.
519
+ OPENSSL_EXPORT int X509_verify(X509 *x509, EVP_PKEY *pkey);
520
+
521
+ // X509_REQ_verify checks that |req| has a valid signature by |pkey|. It returns
522
+ // one if the signature is valid and zero otherwise.
523
+ OPENSSL_EXPORT int X509_REQ_verify(X509_REQ *req, EVP_PKEY *pkey);
524
+
525
+ // X509_CRL_verify checks that |crl| has a valid signature by |pkey|. It returns
526
+ // one if the signature is valid and zero otherwise.
527
+ OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey);
528
+
529
+ // NETSCAPE_SPKI_verify checks that |spki| has a valid signature by |pkey|. It
530
+ // returns one if the signature is valid and zero otherwise.
531
+ OPENSSL_EXPORT int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *spki, EVP_PKEY *pkey);
532
+
533
+ // NETSCAPE_SPKI_b64_decode decodes |len| bytes from |str| as a base64-encoded
534
+ // Netscape signed public key and challenge (SPKAC) structure. It returns a
535
+ // newly-allocated |NETSCAPE_SPKI| structure with the result, or NULL on error.
536
+ // If |len| is 0 or negative, the length is calculated with |strlen| and |str|
537
+ // must be a NUL-terminated C string.
538
+ OPENSSL_EXPORT NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str,
539
+ int len);
540
+
541
+ // NETSCAPE_SPKI_b64_encode encodes |spki| as a base64-encoded Netscape signed
542
+ // public key and challenge (SPKAC) structure. It returns a newly-allocated
543
+ // NUL-terminated C string with the result, or NULL on error. The caller must
544
+ // release the memory with |OPENSSL_free| when done.
545
+ OPENSSL_EXPORT char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki);
546
+
547
+ // NETSCAPE_SPKI_get_pubkey decodes and returns the public key in |spki| as an
548
+ // |EVP_PKEY|, or NULL on error. The caller takes ownership of the resulting
549
+ // pointer and must call |EVP_PKEY_free| when done.
550
+ OPENSSL_EXPORT EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *spki);
551
+
552
+ // NETSCAPE_SPKI_set_pubkey sets |spki|'s public key to |pkey|. It returns one
553
+ // on success or zero on error. This function does not take ownership of |pkey|,
554
+ // so the caller may continue to manage its lifetime independently of |spki|.
555
+ OPENSSL_EXPORT int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *spki,
556
+ EVP_PKEY *pkey);
557
+
558
+ // X509_signature_dump writes a human-readable representation of |sig| to |bio|,
559
+ // indented with |indent| spaces. It returns one on success and zero on error.
560
+ OPENSSL_EXPORT int X509_signature_dump(BIO *bio, const ASN1_STRING *sig,
561
+ int indent);
562
+
563
+ // X509_signature_print writes a human-readable representation of |alg| and
564
+ // |sig| to |bio|. It returns one on success and zero on error.
565
+ OPENSSL_EXPORT int X509_signature_print(BIO *bio, const X509_ALGOR *alg,
566
+ const ASN1_STRING *sig);
567
+
568
+ // X509_sign signs |x509| with |pkey| and replaces the signature algorithm and
569
+ // signature fields. It returns one on success and zero on error. This function
570
+ // uses digest algorithm |md|, or |pkey|'s default if NULL. Other signing
571
+ // parameters use |pkey|'s defaults. To customize them, use |X509_sign_ctx|.
572
+ OPENSSL_EXPORT int X509_sign(X509 *x509, EVP_PKEY *pkey, const EVP_MD *md);
573
+
574
+ // X509_sign_ctx signs |x509| with |ctx| and replaces the signature algorithm
575
+ // and signature fields. It returns one on success and zero on error. The
576
+ // signature algorithm and parameters come from |ctx|, which must have been
577
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
578
+ // corresponding |EVP_PKEY_CTX| before calling this function.
579
+ OPENSSL_EXPORT int X509_sign_ctx(X509 *x509, EVP_MD_CTX *ctx);
580
+
581
+ // X509_REQ_sign signs |req| with |pkey| and replaces the signature algorithm
582
+ // and signature fields. It returns one on success and zero on error. This
583
+ // function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
584
+ // signing parameters use |pkey|'s defaults. To customize them, use
585
+ // |X509_REQ_sign_ctx|.
586
+ OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *req, EVP_PKEY *pkey,
587
+ const EVP_MD *md);
588
+
589
+ // X509_REQ_sign_ctx signs |req| with |ctx| and replaces the signature algorithm
590
+ // and signature fields. It returns one on success and zero on error. The
591
+ // signature algorithm and parameters come from |ctx|, which must have been
592
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
593
+ // corresponding |EVP_PKEY_CTX| before calling this function.
594
+ OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *req, EVP_MD_CTX *ctx);
595
+
596
+ // X509_CRL_sign signs |crl| with |pkey| and replaces the signature algorithm
597
+ // and signature fields. It returns one on success and zero on error. This
598
+ // function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
599
+ // signing parameters use |pkey|'s defaults. To customize them, use
600
+ // |X509_CRL_sign_ctx|.
601
+ OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *crl, EVP_PKEY *pkey,
602
+ const EVP_MD *md);
603
+
604
+ // X509_CRL_sign_ctx signs |crl| with |ctx| and replaces the signature algorithm
605
+ // and signature fields. It returns one on success and zero on error. The
606
+ // signature algorithm and parameters come from |ctx|, which must have been
607
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
608
+ // corresponding |EVP_PKEY_CTX| before calling this function.
609
+ OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *crl, EVP_MD_CTX *ctx);
610
+
611
+ // NETSCAPE_SPKI_sign signs |spki| with |pkey| and replaces the signature
612
+ // algorithm and signature fields. It returns one on success and zero on error.
613
+ // This function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
614
+ // signing parameters use |pkey|'s defaults.
615
+ OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *spki, EVP_PKEY *pkey,
616
+ const EVP_MD *md);
617
+
618
+ // X509_pubkey_digest hashes the DER encoding of |x509|'s subjectPublicKeyInfo
619
+ // field with |md| and writes the result to |out|. |EVP_MD_CTX_size| bytes are
620
+ // written, which is at most |EVP_MAX_MD_SIZE|. If |out_len| is not NULL,
621
+ // |*out_len| is set to the number of bytes written. This function returns one
622
+ // on success and zero on error.
623
+ OPENSSL_EXPORT int X509_pubkey_digest(const X509 *x509, const EVP_MD *md,
624
+ uint8_t *out, unsigned *out_len);
625
+
626
+ // X509_digest hashes |x509|'s DER encoding with |md| and writes the result to
627
+ // |out|. |EVP_MD_CTX_size| bytes are written, which is at most
628
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
629
+ // of bytes written. This function returns one on success and zero on error.
630
+ // Note this digest covers the entire certificate, not just the signed portion.
631
+ OPENSSL_EXPORT int X509_digest(const X509 *x509, const EVP_MD *md, uint8_t *out,
632
+ unsigned *out_len);
633
+
634
+ // X509_CRL_digest hashes |crl|'s DER encoding with |md| and writes the result
635
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
636
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
637
+ // of bytes written. This function returns one on success and zero on error.
638
+ // Note this digest covers the entire CRL, not just the signed portion.
639
+ OPENSSL_EXPORT int X509_CRL_digest(const X509_CRL *crl, const EVP_MD *md,
640
+ uint8_t *out, unsigned *out_len);
641
+
642
+ // X509_REQ_digest hashes |req|'s DER encoding with |md| and writes the result
643
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
644
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
645
+ // of bytes written. This function returns one on success and zero on error.
646
+ // Note this digest covers the entire certificate request, not just the signed
647
+ // portion.
648
+ OPENSSL_EXPORT int X509_REQ_digest(const X509_REQ *req, const EVP_MD *md,
649
+ uint8_t *out, unsigned *out_len);
650
+
651
+ // X509_NAME_digest hashes |name|'s DER encoding with |md| and writes the result
652
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
653
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
654
+ // of bytes written. This function returns one on success and zero on error.
655
+ OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *name, const EVP_MD *md,
656
+ uint8_t *out, unsigned *out_len);
657
+
658
+ // X509_parse_from_buffer parses an X.509 structure from |buf| and returns a
659
+ // fresh X509 or NULL on error. There must not be any trailing data in |buf|.
660
+ // The returned structure (if any) holds a reference to |buf| rather than
661
+ // copying parts of it as a normal |d2i_X509| call would do.
662
+ OPENSSL_EXPORT X509 *X509_parse_from_buffer(CRYPTO_BUFFER *buf);
663
+
664
+ OPENSSL_EXPORT X509 *d2i_X509_fp(FILE *fp, X509 **x509);
665
+ OPENSSL_EXPORT int i2d_X509_fp(FILE *fp, X509 *x509);
666
+ OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl);
667
+ OPENSSL_EXPORT int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl);
668
+ OPENSSL_EXPORT X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req);
669
+ OPENSSL_EXPORT int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req);
670
+ OPENSSL_EXPORT RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa);
671
+ OPENSSL_EXPORT int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa);
672
+ OPENSSL_EXPORT RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa);
673
+ OPENSSL_EXPORT int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa);
674
+ OPENSSL_EXPORT RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa);
675
+ OPENSSL_EXPORT int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa);
676
+ #ifndef OPENSSL_NO_DSA
677
+ OPENSSL_EXPORT DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
678
+ OPENSSL_EXPORT int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
679
+ OPENSSL_EXPORT DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
680
+ OPENSSL_EXPORT int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa);
681
+ #endif
682
+ OPENSSL_EXPORT EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey);
683
+ OPENSSL_EXPORT int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey);
684
+ OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey);
685
+ OPENSSL_EXPORT int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey);
686
+ OPENSSL_EXPORT X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8);
687
+ OPENSSL_EXPORT int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8);
688
+ OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(
689
+ FILE *fp, PKCS8_PRIV_KEY_INFO **p8inf);
690
+ OPENSSL_EXPORT int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,
691
+ PKCS8_PRIV_KEY_INFO *p8inf);
692
+ OPENSSL_EXPORT int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key);
693
+ OPENSSL_EXPORT int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey);
694
+ OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
695
+ OPENSSL_EXPORT int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey);
696
+ OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
697
+
698
+ OPENSSL_EXPORT X509 *d2i_X509_bio(BIO *bp, X509 **x509);
699
+ OPENSSL_EXPORT int i2d_X509_bio(BIO *bp, X509 *x509);
700
+ OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl);
701
+ OPENSSL_EXPORT int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl);
702
+ OPENSSL_EXPORT X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req);
703
+ OPENSSL_EXPORT int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req);
704
+ OPENSSL_EXPORT RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa);
705
+ OPENSSL_EXPORT int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa);
706
+ OPENSSL_EXPORT RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa);
707
+ OPENSSL_EXPORT int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa);
708
+ OPENSSL_EXPORT RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
709
+ OPENSSL_EXPORT int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
710
+ #ifndef OPENSSL_NO_DSA
711
+ OPENSSL_EXPORT DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
712
+ OPENSSL_EXPORT int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
713
+ OPENSSL_EXPORT DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa);
714
+ OPENSSL_EXPORT int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa);
715
+ #endif
716
+ OPENSSL_EXPORT EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey);
717
+ OPENSSL_EXPORT int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey);
718
+ OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey);
719
+ OPENSSL_EXPORT int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey);
720
+ OPENSSL_EXPORT X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8);
721
+ OPENSSL_EXPORT int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8);
722
+ OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(
723
+ BIO *bp, PKCS8_PRIV_KEY_INFO **p8inf);
724
+ OPENSSL_EXPORT int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
725
+ PKCS8_PRIV_KEY_INFO *p8inf);
726
+ OPENSSL_EXPORT int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key);
727
+ OPENSSL_EXPORT int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey);
728
+ OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a);
729
+ OPENSSL_EXPORT int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey);
730
+ OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a);
731
+ OPENSSL_EXPORT DH *d2i_DHparams_bio(BIO *bp, DH **dh);
732
+ OPENSSL_EXPORT int i2d_DHparams_bio(BIO *bp, const DH *dh);
733
+
734
+ OPENSSL_EXPORT X509 *X509_dup(X509 *x509);
735
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa);
736
+ OPENSSL_EXPORT X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex);
737
+ OPENSSL_EXPORT X509_CRL *X509_CRL_dup(X509_CRL *crl);
738
+ OPENSSL_EXPORT X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
739
+ OPENSSL_EXPORT X509_REQ *X509_REQ_dup(X509_REQ *req);
740
+ OPENSSL_EXPORT X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn);
741
+
742
+ // X509_ALGOR_set0 sets |alg| to an AlgorithmIdentifier with algorithm |obj| and
743
+ // parameter determined by |param_type| and |param_value|. It returns one on
744
+ // success and zero on error. This function takes ownership of |obj| and
745
+ // |param_value| on success.
746
+ //
747
+ // If |param_type| is |V_ASN1_UNDEF|, the parameter is omitted. If |param_type|
748
+ // is zero, the parameter is left unchanged. Otherwise, |param_type| and
749
+ // |param_value| are interpreted as in |ASN1_TYPE_set|.
750
+ //
751
+ // Note omitting the parameter (|V_ASN1_UNDEF|) and encoding an explicit NULL
752
+ // value (|V_ASN1_NULL|) are different. Some algorithms require one and some the
753
+ // other. Consult the relevant specification before calling this function. The
754
+ // correct parameter for an RSASSA-PKCS1-v1_5 signature is |V_ASN1_NULL|. The
755
+ // correct one for an ECDSA or Ed25519 signature is |V_ASN1_UNDEF|.
756
+ OPENSSL_EXPORT int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *obj,
757
+ int param_type, void *param_value);
758
+
759
+ // X509_ALGOR_get0 sets |*out_obj| to the |alg|'s algorithm. If |alg|'s
760
+ // parameter is omitted, it sets |*out_param_type| and |*out_param_value| to
761
+ // |V_ASN1_UNDEF| and NULL. Otherwise, it sets |*out_param_type| and
762
+ // |*out_param_value| to the parameter, using the same representation as
763
+ // |ASN1_TYPE_set0|. See |ASN1_TYPE_set0| and |ASN1_TYPE| for details.
764
+ //
765
+ // Callers that require the parameter in serialized form should, after checking
766
+ // for |V_ASN1_UNDEF|, use |ASN1_TYPE_set1| and |d2i_ASN1_TYPE|, rather than
767
+ // inspecting |*out_param_value|.
768
+ //
769
+ // Each of |out_obj|, |out_param_type|, and |out_param_value| may be NULL to
770
+ // ignore the output. If |out_param_type| is NULL, |out_param_value| is ignored.
771
+ //
772
+ // WARNING: If |*out_param_type| is set to |V_ASN1_UNDEF|, OpenSSL and older
773
+ // revisions of BoringSSL leave |*out_param_value| unset rather than setting it
774
+ // to NULL. Callers that support both OpenSSL and BoringSSL should not assume
775
+ // |*out_param_value| is uniformly initialized.
776
+ OPENSSL_EXPORT void X509_ALGOR_get0(const ASN1_OBJECT **out_obj,
777
+ int *out_param_type,
778
+ const void **out_param_value,
779
+ const X509_ALGOR *alg);
780
+
781
+ // X509_ALGOR_set_md sets |alg| to the hash function |md|. Note this
782
+ // AlgorithmIdentifier represents the hash function itself, not a signature
783
+ // algorithm that uses |md|.
784
+ OPENSSL_EXPORT void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
785
+
786
+ // X509_ALGOR_cmp returns zero if |a| and |b| are equal, and some non-zero value
787
+ // otherwise. Note this function can only be used for equality checks, not an
788
+ // ordering.
789
+ OPENSSL_EXPORT int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);
790
+
791
+ OPENSSL_EXPORT X509_NAME *X509_NAME_dup(X509_NAME *xn);
792
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);
793
+ OPENSSL_EXPORT int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne);
794
+
795
+ OPENSSL_EXPORT int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,
796
+ size_t *pderlen);
797
+
798
+ // X509_cmp_time compares |s| against |*t|. On success, it returns a negative
799
+ // number if |s| <= |*t| and a positive number if |s| > |*t|. On error, it
800
+ // returns zero. If |t| is NULL, it uses the current time instead of |*t|.
801
+ //
802
+ // WARNING: Unlike most comparison functions, this function returns zero on
803
+ // error, not equality.
804
+ OPENSSL_EXPORT int X509_cmp_time(const ASN1_TIME *s, time_t *t);
805
+
806
+ // X509_cmp_current_time behaves like |X509_cmp_time| but compares |s| against
807
+ // the current time.
808
+ OPENSSL_EXPORT int X509_cmp_current_time(const ASN1_TIME *s);
809
+
810
+ // X509_time_adj calls |X509_time_adj_ex| with |offset_day| equal to zero.
811
+ OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec,
812
+ time_t *t);
813
+
814
+ // X509_time_adj_ex behaves like |ASN1_TIME_adj|, but adds an offset to |*t|. If
815
+ // |t| is NULL, it uses the current time instead of |*t|.
816
+ OPENSSL_EXPORT ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day,
817
+ long offset_sec, time_t *t);
818
+
819
+ // X509_gmtime_adj behaves like |X509_time_adj_ex| but adds |offset_sec| to the
820
+ // current time.
821
+ OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec);
822
+
823
+ OPENSSL_EXPORT const char *X509_get_default_cert_area(void);
824
+ OPENSSL_EXPORT const char *X509_get_default_cert_dir(void);
825
+ OPENSSL_EXPORT const char *X509_get_default_cert_file(void);
826
+ OPENSSL_EXPORT const char *X509_get_default_cert_dir_env(void);
827
+ OPENSSL_EXPORT const char *X509_get_default_cert_file_env(void);
828
+ OPENSSL_EXPORT const char *X509_get_default_private_dir(void);
829
+
830
+ OPENSSL_EXPORT X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey,
831
+ const EVP_MD *md);
832
+
833
+ DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS)
834
+ DECLARE_ASN1_FUNCTIONS(X509_VAL)
835
+
836
+ DECLARE_ASN1_FUNCTIONS(X509_PUBKEY)
837
+
838
+ // X509_PUBKEY_set serializes |pkey| into a newly-allocated |X509_PUBKEY|
839
+ // structure. On success, it frees |*x|, sets |*x| to the new object, and
840
+ // returns one. Otherwise, it returns zero.
841
+ OPENSSL_EXPORT int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
842
+
843
+ // X509_PUBKEY_get decodes the public key in |key| and returns an |EVP_PKEY| on
844
+ // success, or NULL on error. The caller must release the result with
845
+ // |EVP_PKEY_free| when done. The |EVP_PKEY| is cached in |key|, so callers must
846
+ // not mutate the result.
847
+ OPENSSL_EXPORT EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
848
+
849
+ DECLARE_ASN1_FUNCTIONS(X509_SIG)
850
+ DECLARE_ASN1_FUNCTIONS(X509_REQ)
851
+
852
+ DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE)
853
+
854
+ // X509_ATTRIBUTE_create returns a newly-allocated |X509_ATTRIBUTE|, or NULL on
855
+ // error. The attribute has type |nid| and contains a single value determined by
856
+ // |attrtype| and |value|, which are interpreted as in |ASN1_TYPE_set|. Note
857
+ // this function takes ownership of |value|.
858
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int attrtype,
859
+ void *value);
860
+
861
+ DECLARE_ASN1_FUNCTIONS(X509_EXTENSION)
862
+ DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS)
863
+
864
+ DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY)
865
+
866
+ DECLARE_ASN1_FUNCTIONS(X509_NAME)
867
+
868
+ // X509_NAME_set makes a copy of |name|. On success, it frees |*xn|, sets |*xn|
869
+ // to the copy, and returns one. Otherwise, it returns zero.
870
+ OPENSSL_EXPORT int X509_NAME_set(X509_NAME **xn, X509_NAME *name);
871
+
872
+ DECLARE_ASN1_FUNCTIONS(X509)
873
+ DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX)
874
+
875
+ // X509_up_ref adds one to the reference count of |x509| and returns one.
876
+ OPENSSL_EXPORT int X509_up_ref(X509 *x509);
877
+
878
+ OPENSSL_EXPORT int X509_get_ex_new_index(long argl, void *argp,
879
+ CRYPTO_EX_unused *unused,
880
+ CRYPTO_EX_dup *dup_unused,
881
+ CRYPTO_EX_free *free_func);
882
+ OPENSSL_EXPORT int X509_set_ex_data(X509 *r, int idx, void *arg);
883
+ OPENSSL_EXPORT void *X509_get_ex_data(X509 *r, int idx);
884
+ OPENSSL_EXPORT int i2d_X509_AUX(X509 *a, unsigned char **pp);
885
+ OPENSSL_EXPORT X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp,
886
+ long length);
887
+
888
+ // i2d_re_X509_tbs serializes the TBSCertificate portion of |x509|. If |outp| is
889
+ // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
890
+ // written to |*outp|, which must have enough space available, and |*outp| is
891
+ // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
892
+ // sets |*outp| to a newly-allocated buffer containing the result. The caller is
893
+ // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
894
+ // function returns the number of bytes in the result, whether written or not,
895
+ // or a negative value on error.
896
+ //
897
+ // This function re-encodes the TBSCertificate and may not reflect |x509|'s
898
+ // original encoding. It may be used to manually generate a signature for a new
899
+ // certificate. To verify certificates, use |i2d_X509_tbs| instead.
900
+ OPENSSL_EXPORT int i2d_re_X509_tbs(X509 *x509, unsigned char **outp);
901
+
902
+ // i2d_X509_tbs serializes the TBSCertificate portion of |x509|. If |outp| is
903
+ // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
904
+ // written to |*outp|, which must have enough space available, and |*outp| is
905
+ // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
906
+ // sets |*outp| to a newly-allocated buffer containing the result. The caller is
907
+ // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
908
+ // function returns the number of bytes in the result, whether written or not,
909
+ // or a negative value on error.
910
+ //
911
+ // This function preserves the original encoding of the TBSCertificate and may
912
+ // not reflect modifications made to |x509|. It may be used to manually verify
913
+ // the signature of an existing certificate. To generate certificates, use
914
+ // |i2d_re_X509_tbs| instead.
915
+ OPENSSL_EXPORT int i2d_X509_tbs(X509 *x509, unsigned char **outp);
916
+
917
+ // X509_set1_signature_algo sets |x509|'s signature algorithm to |algo| and
918
+ // returns one on success or zero on error. It updates both the signature field
919
+ // of the TBSCertificate structure, and the signatureAlgorithm field of the
920
+ // Certificate.
921
+ OPENSSL_EXPORT int X509_set1_signature_algo(X509 *x509, const X509_ALGOR *algo);
922
+
923
+ // X509_set1_signature_value sets |x509|'s signature to a copy of the |sig_len|
924
+ // bytes pointed by |sig|. It returns one on success and zero on error.
925
+ //
926
+ // Due to a specification error, X.509 certificates store signatures in ASN.1
927
+ // BIT STRINGs, but signature algorithms return byte strings rather than bit
928
+ // strings. This function creates a BIT STRING containing a whole number of
929
+ // bytes, with the bit order matching the DER encoding. This matches the
930
+ // encoding used by all X.509 signature algorithms.
931
+ OPENSSL_EXPORT int X509_set1_signature_value(X509 *x509, const uint8_t *sig,
932
+ size_t sig_len);
933
+
934
+ // X509_get0_signature sets |*out_sig| and |*out_alg| to the signature and
935
+ // signature algorithm of |x509|, respectively. Either output pointer may be
936
+ // NULL to ignore the value.
937
+ //
938
+ // This function outputs the outer signature algorithm. For the one in the
939
+ // TBSCertificate, see |X509_get0_tbs_sigalg|. Certificates with mismatched
940
+ // signature algorithms will successfully parse, but they will be rejected when
941
+ // verifying.
942
+ OPENSSL_EXPORT void X509_get0_signature(const ASN1_BIT_STRING **out_sig,
943
+ const X509_ALGOR **out_alg,
944
+ const X509 *x509);
945
+
946
+ // X509_get_signature_nid returns the NID corresponding to |x509|'s signature
947
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
948
+ // a known NID.
949
+ OPENSSL_EXPORT int X509_get_signature_nid(const X509 *x509);
950
+
951
+ OPENSSL_EXPORT int X509_alias_set1(X509 *x, const unsigned char *name, int len);
952
+ OPENSSL_EXPORT int X509_keyid_set1(X509 *x, const unsigned char *id, int len);
953
+ OPENSSL_EXPORT unsigned char *X509_alias_get0(X509 *x, int *len);
954
+ OPENSSL_EXPORT unsigned char *X509_keyid_get0(X509 *x, int *len);
955
+ OPENSSL_EXPORT int (*X509_TRUST_set_default(int (*trust)(int, X509 *,
956
+ int)))(int, X509 *,
957
+ int);
958
+ OPENSSL_EXPORT int X509_TRUST_set(int *t, int trust);
959
+ OPENSSL_EXPORT int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
960
+ OPENSSL_EXPORT int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj);
961
+ OPENSSL_EXPORT void X509_trust_clear(X509 *x);
962
+ OPENSSL_EXPORT void X509_reject_clear(X509 *x);
963
+
964
+ DECLARE_ASN1_FUNCTIONS(X509_REVOKED)
965
+ DECLARE_ASN1_FUNCTIONS(X509_CRL)
966
+
967
+ OPENSSL_EXPORT int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
968
+ OPENSSL_EXPORT int X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret,
969
+ ASN1_INTEGER *serial);
970
+ OPENSSL_EXPORT int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret,
971
+ X509 *x);
972
+
973
+ OPENSSL_EXPORT X509_PKEY *X509_PKEY_new(void);
974
+ OPENSSL_EXPORT void X509_PKEY_free(X509_PKEY *a);
975
+
976
+ DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI)
977
+ DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC)
978
+
979
+ OPENSSL_EXPORT X509_INFO *X509_INFO_new(void);
980
+ OPENSSL_EXPORT void X509_INFO_free(X509_INFO *a);
981
+ OPENSSL_EXPORT char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
982
+
983
+ OPENSSL_EXPORT int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
984
+ unsigned char *md, unsigned int *len);
985
+
986
+ OPENSSL_EXPORT int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type,
987
+ void *data, unsigned char *md,
988
+ unsigned int *len);
989
+
990
+ OPENSSL_EXPORT int ASN1_item_verify(const ASN1_ITEM *it,
991
+ const X509_ALGOR *algor1,
992
+ const ASN1_BIT_STRING *signature,
993
+ void *data, EVP_PKEY *pkey);
994
+
995
+ OPENSSL_EXPORT int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1,
996
+ X509_ALGOR *algor2,
997
+ ASN1_BIT_STRING *signature, void *data,
998
+ EVP_PKEY *pkey, const EVP_MD *type);
999
+ OPENSSL_EXPORT int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1,
1000
+ X509_ALGOR *algor2,
1001
+ ASN1_BIT_STRING *signature, void *asn,
1002
+ EVP_MD_CTX *ctx);
1003
+
1004
+ // X509_get_serialNumber returns a mutable pointer to |x509|'s serial number.
1005
+ // Prefer |X509_get0_serialNumber|.
1006
+ OPENSSL_EXPORT ASN1_INTEGER *X509_get_serialNumber(X509 *x509);
1007
+
1008
+ // X509_set_issuer_name sets |x509|'s issuer to a copy of |name|. It returns one
1009
+ // on success and zero on error.
1010
+ OPENSSL_EXPORT int X509_set_issuer_name(X509 *x509, X509_NAME *name);
1011
+
1012
+ // X509_get_issuer_name returns |x509|'s issuer.
1013
+ OPENSSL_EXPORT X509_NAME *X509_get_issuer_name(const X509 *x509);
1014
+
1015
+ // X509_set_subject_name sets |x509|'s subject to a copy of |name|. It returns
1016
+ // one on success and zero on error.
1017
+ OPENSSL_EXPORT int X509_set_subject_name(X509 *x509, X509_NAME *name);
1018
+
1019
+ // X509_get_issuer_name returns |x509|'s subject.
1020
+ OPENSSL_EXPORT X509_NAME *X509_get_subject_name(const X509 *x509);
1021
+
1022
+ // X509_set_pubkey sets |x509|'s public key to |pkey|. It returns one on success
1023
+ // and zero on error. This function does not take ownership of |pkey| and
1024
+ // internally copies and updates reference counts as needed.
1025
+ OPENSSL_EXPORT int X509_set_pubkey(X509 *x509, EVP_PKEY *pkey);
1026
+
1027
+ // X509_get_pubkey returns |x509|'s public key as an |EVP_PKEY|, or NULL if the
1028
+ // public key was unsupported or could not be decoded. This function returns a
1029
+ // reference to the |EVP_PKEY|. The caller must release the result with
1030
+ // |EVP_PKEY_free| when done.
1031
+ OPENSSL_EXPORT EVP_PKEY *X509_get_pubkey(X509 *x509);
1032
+
1033
+ // X509_get0_pubkey_bitstr returns the BIT STRING portion of |x509|'s public
1034
+ // key. Note this does not contain the AlgorithmIdentifier portion.
1035
+ //
1036
+ // WARNING: This function returns a non-const pointer for OpenSSL compatibility,
1037
+ // but the caller must not modify the resulting object. Doing so will break
1038
+ // internal invariants in |x509|.
1039
+ OPENSSL_EXPORT ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x509);
1040
+
1041
+ // X509_get0_extensions returns |x509|'s extension list, or NULL if |x509| omits
1042
+ // it.
1043
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_get0_extensions(
1044
+ const X509 *x509);
1045
+
1046
+ // X509_get0_tbs_sigalg returns the signature algorithm in |x509|'s
1047
+ // TBSCertificate. For the outer signature algorithm, see |X509_get0_signature|.
1048
+ //
1049
+ // Certificates with mismatched signature algorithms will successfully parse,
1050
+ // but they will be rejected when verifying.
1051
+ OPENSSL_EXPORT const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x509);
1052
+
1053
+ // X509_REQ_set_version sets |req|'s version to |version|, which should be
1054
+ // |X509_REQ_VERSION_1|. It returns one on success and zero on error.
1055
+ //
1056
+ // Note no versions other than |X509_REQ_VERSION_1| are defined for CSRs.
1057
+ OPENSSL_EXPORT int X509_REQ_set_version(X509_REQ *req, long version);
1058
+
1059
+ // X509_REQ_set_subject_name sets |req|'s subject to a copy of |name|. It
1060
+ // returns one on success and zero on error.
1061
+ OPENSSL_EXPORT int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
1062
+
1063
+ // X509_REQ_get0_signature sets |*out_sig| and |*out_alg| to the signature and
1064
+ // signature algorithm of |req|, respectively. Either output pointer may be NULL
1065
+ // to ignore the value.
1066
+ OPENSSL_EXPORT void X509_REQ_get0_signature(const X509_REQ *req,
1067
+ const ASN1_BIT_STRING **out_sig,
1068
+ const X509_ALGOR **out_alg);
1069
+
1070
+ // X509_REQ_get_signature_nid returns the NID corresponding to |req|'s signature
1071
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
1072
+ // a known NID.
1073
+ OPENSSL_EXPORT int X509_REQ_get_signature_nid(const X509_REQ *req);
1074
+
1075
+ // i2d_re_X509_REQ_tbs serializes the CertificationRequestInfo (see RFC 2986)
1076
+ // portion of |req|. If |outp| is NULL, nothing is written. Otherwise, if
1077
+ // |*outp| is not NULL, the result is written to |*outp|, which must have enough
1078
+ // space available, and |*outp| is advanced just past the output. If |outp| is
1079
+ // non-NULL and |*outp| is NULL, it sets |*outp| to a newly-allocated buffer
1080
+ // containing the result. The caller is responsible for releasing the buffer
1081
+ // with |OPENSSL_free|. In all cases, this function returns the number of bytes
1082
+ // in the result, whether written or not, or a negative value on error.
1083
+ //
1084
+ // This function re-encodes the CertificationRequestInfo and may not reflect
1085
+ // |req|'s original encoding. It may be used to manually generate a signature
1086
+ // for a new certificate request.
1087
+ OPENSSL_EXPORT int i2d_re_X509_REQ_tbs(X509_REQ *req, uint8_t **outp);
1088
+
1089
+ // X509_REQ_set_pubkey sets |req|'s public key to |pkey|. It returns one on
1090
+ // success and zero on error. This function does not take ownership of |pkey|
1091
+ // and internally copies and updates reference counts as needed.
1092
+ OPENSSL_EXPORT int X509_REQ_set_pubkey(X509_REQ *req, EVP_PKEY *pkey);
1093
+
1094
+ // X509_REQ_get_pubkey returns |req|'s public key as an |EVP_PKEY|, or NULL if
1095
+ // the public key was unsupported or could not be decoded. This function returns
1096
+ // a reference to the |EVP_PKEY|. The caller must release the result with
1097
+ // |EVP_PKEY_free| when done.
1098
+ OPENSSL_EXPORT EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
1099
+
1100
+ // X509_REQ_extension_nid returns one if |nid| is a supported CSR attribute type
1101
+ // for carrying extensions and zero otherwise. The supported types are
1102
+ // |NID_ext_req| (pkcs-9-at-extensionRequest from RFC 2985) and |NID_ms_ext_req|
1103
+ // (a Microsoft szOID_CERT_EXTENSIONS variant).
1104
+ OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
1105
+
1106
+ // X509_REQ_get_extensions decodes the list of requested extensions in |req| and
1107
+ // returns a newly-allocated |STACK_OF(X509_EXTENSION)| containing the result.
1108
+ // It returns NULL on error, or if |req| did not request extensions.
1109
+ //
1110
+ // This function supports both pkcs-9-at-extensionRequest from RFC 2985 and the
1111
+ // Microsoft szOID_CERT_EXTENSIONS variant.
1112
+ OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
1113
+
1114
+ // X509_REQ_add_extensions_nid adds an attribute to |req| of type |nid|, to
1115
+ // request the certificate extensions in |exts|. It returns one on success and
1116
+ // zero on error. |nid| should be |NID_ext_req| or |NID_ms_ext_req|.
1117
+ OPENSSL_EXPORT int X509_REQ_add_extensions_nid(
1118
+ X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid);
1119
+
1120
+ // X509_REQ_add_extensions behaves like |X509_REQ_add_extensions_nid|, using the
1121
+ // standard |NID_ext_req| for the attribute type.
1122
+ OPENSSL_EXPORT int X509_REQ_add_extensions(
1123
+ X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts);
1124
+
1125
+ // X509_REQ_get_attr_count returns the number of attributes in |req|.
1126
+ OPENSSL_EXPORT int X509_REQ_get_attr_count(const X509_REQ *req);
1127
+
1128
+ // X509_REQ_get_attr_by_NID returns the index of the attribute in |req| of type
1129
+ // |nid|, or a negative number if not found. If found, callers can use
1130
+ // |X509_REQ_get_attr| to look up the attribute by index.
1131
+ //
1132
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1133
+ // can thus loop over all matching attributes by first passing -1 and then
1134
+ // passing the previously-returned value until no match is returned.
1135
+ OPENSSL_EXPORT int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid,
1136
+ int lastpos);
1137
+
1138
+ // X509_REQ_get_attr_by_OBJ behaves like |X509_REQ_get_attr_by_NID| but looks
1139
+ // for attributes of type |obj|.
1140
+ OPENSSL_EXPORT int X509_REQ_get_attr_by_OBJ(const X509_REQ *req,
1141
+ const ASN1_OBJECT *obj,
1142
+ int lastpos);
1143
+
1144
+ // X509_REQ_get_attr returns the attribute at index |loc| in |req|, or NULL if
1145
+ // out of bounds.
1146
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc);
1147
+
1148
+ // X509_REQ_delete_attr removes the attribute at index |loc| in |req|. It
1149
+ // returns the removed attribute to the caller, or NULL if |loc| was out of
1150
+ // bounds. If non-NULL, the caller must release the result with
1151
+ // |X509_ATTRIBUTE_free| when done. It is also safe, but not necessary, to call
1152
+ // |X509_ATTRIBUTE_free| if the result is NULL.
1153
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc);
1154
+
1155
+ // X509_REQ_add1_attr appends a copy of |attr| to |req|'s list of attributes. It
1156
+ // returns one on success and zero on error.
1157
+ //
1158
+ // TODO(https://crbug.com/boringssl/407): |attr| should be const.
1159
+ OPENSSL_EXPORT int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr);
1160
+
1161
+ // X509_REQ_add1_attr_by_OBJ appends a new attribute to |req| with type |obj|.
1162
+ // It returns one on success and zero on error. The value is determined by
1163
+ // |X509_ATTRIBUTE_set1_data|.
1164
+ //
1165
+ // WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
1166
+ // error-prone. See |X509_ATTRIBUTE_set1_data| for details.
1167
+ OPENSSL_EXPORT int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,
1168
+ const ASN1_OBJECT *obj,
1169
+ int attrtype,
1170
+ const unsigned char *data,
1171
+ int len);
1172
+
1173
+ // X509_REQ_add1_attr_by_NID behaves like |X509_REQ_add1_attr_by_OBJ| except the
1174
+ // attribute type is determined by |nid|.
1175
+ OPENSSL_EXPORT int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid,
1176
+ int attrtype,
1177
+ const unsigned char *data,
1178
+ int len);
1179
+
1180
+ // X509_REQ_add1_attr_by_txt behaves like |X509_REQ_add1_attr_by_OBJ| except the
1181
+ // attribute type is determined by calling |OBJ_txt2obj| with |attrname|.
1182
+ OPENSSL_EXPORT int X509_REQ_add1_attr_by_txt(X509_REQ *req,
1183
+ const char *attrname, int attrtype,
1184
+ const unsigned char *data,
1185
+ int len);
1186
+
1187
+ // X509_CRL_set_version sets |crl|'s version to |version|, which should be one
1188
+ // of the |X509_CRL_VERSION_*| constants. It returns one on success and zero on
1189
+ // error.
1190
+ //
1191
+ // If unsure, use |X509_CRL_VERSION_2|. Note that, unlike certificates, CRL
1192
+ // versions are only defined up to v2. Callers should not use |X509_VERSION_3|.
1193
+ OPENSSL_EXPORT int X509_CRL_set_version(X509_CRL *crl, long version);
1194
+
1195
+ // X509_CRL_set_issuer_name sets |crl|'s issuer to a copy of |name|. It returns
1196
+ // one on success and zero on error.
1197
+ OPENSSL_EXPORT int X509_CRL_set_issuer_name(X509_CRL *crl, X509_NAME *name);
1198
+
1199
+ OPENSSL_EXPORT int X509_CRL_sort(X509_CRL *crl);
1200
+
1201
+ // X509_CRL_up_ref adds one to the reference count of |crl| and returns one.
1202
+ OPENSSL_EXPORT int X509_CRL_up_ref(X509_CRL *crl);
1203
+
1204
+ // X509_CRL_get0_signature sets |*out_sig| and |*out_alg| to the signature and
1205
+ // signature algorithm of |crl|, respectively. Either output pointer may be NULL
1206
+ // to ignore the value.
1207
+ //
1208
+ // This function outputs the outer signature algorithm, not the one in the
1209
+ // TBSCertList. CRLs with mismatched signature algorithms will successfully
1210
+ // parse, but they will be rejected when verifying.
1211
+ OPENSSL_EXPORT void X509_CRL_get0_signature(const X509_CRL *crl,
1212
+ const ASN1_BIT_STRING **out_sig,
1213
+ const X509_ALGOR **out_alg);
1214
+
1215
+ // X509_CRL_get_signature_nid returns the NID corresponding to |crl|'s signature
1216
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
1217
+ // a known NID.
1218
+ OPENSSL_EXPORT int X509_CRL_get_signature_nid(const X509_CRL *crl);
1219
+
1220
+ // i2d_re_X509_CRL_tbs serializes the TBSCertList portion of |crl|. If |outp| is
1221
+ // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
1222
+ // written to |*outp|, which must have enough space available, and |*outp| is
1223
+ // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
1224
+ // sets |*outp| to a newly-allocated buffer containing the result. The caller is
1225
+ // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
1226
+ // function returns the number of bytes in the result, whether written or not,
1227
+ // or a negative value on error.
1228
+ //
1229
+ // This function re-encodes the TBSCertList and may not reflect |crl|'s original
1230
+ // encoding. It may be used to manually generate a signature for a new CRL. To
1231
+ // verify CRLs, use |i2d_X509_CRL_tbs| instead.
1232
+ OPENSSL_EXPORT int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
1233
+
1234
+ // i2d_X509_CRL_tbs serializes the TBSCertList portion of |crl|. If |outp| is
1235
+ // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
1236
+ // written to |*outp|, which must have enough space available, and |*outp| is
1237
+ // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
1238
+ // sets |*outp| to a newly-allocated buffer containing the result. The caller is
1239
+ // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
1240
+ // function returns the number of bytes in the result, whether written or not,
1241
+ // or a negative value on error.
1242
+ //
1243
+ // This function preserves the original encoding of the TBSCertList and may not
1244
+ // reflect modifications made to |crl|. It may be used to manually verify the
1245
+ // signature of an existing CRL. To generate CRLs, use |i2d_re_X509_CRL_tbs|
1246
+ // instead.
1247
+ OPENSSL_EXPORT int i2d_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
1248
+
1249
+ // X509_CRL_set1_signature_algo sets |crl|'s signature algorithm to |algo| and
1250
+ // returns one on success or zero on error. It updates both the signature field
1251
+ // of the TBSCertList structure, and the signatureAlgorithm field of the CRL.
1252
+ OPENSSL_EXPORT int X509_CRL_set1_signature_algo(X509_CRL *crl,
1253
+ const X509_ALGOR *algo);
1254
+
1255
+ // X509_CRL_set1_signature_value sets |crl|'s signature to a copy of the
1256
+ // |sig_len| bytes pointed by |sig|. It returns one on success and zero on
1257
+ // error.
1258
+ //
1259
+ // Due to a specification error, X.509 CRLs store signatures in ASN.1 BIT
1260
+ // STRINGs, but signature algorithms return byte strings rather than bit
1261
+ // strings. This function creates a BIT STRING containing a whole number of
1262
+ // bytes, with the bit order matching the DER encoding. This matches the
1263
+ // encoding used by all X.509 signature algorithms.
1264
+ OPENSSL_EXPORT int X509_CRL_set1_signature_value(X509_CRL *crl,
1265
+ const uint8_t *sig,
1266
+ size_t sig_len);
1267
+
1268
+ // X509_REVOKED_get0_serialNumber returns the serial number of the certificate
1269
+ // revoked by |revoked|.
1270
+ OPENSSL_EXPORT const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(
1271
+ const X509_REVOKED *revoked);
1272
+
1273
+ // X509_REVOKED_set_serialNumber sets |revoked|'s serial number to |serial|. It
1274
+ // returns one on success or zero on error.
1275
+ OPENSSL_EXPORT int X509_REVOKED_set_serialNumber(X509_REVOKED *revoked,
1276
+ const ASN1_INTEGER *serial);
1277
+
1278
+ // X509_REVOKED_get0_revocationDate returns the revocation time of the
1279
+ // certificate revoked by |revoked|.
1280
+ OPENSSL_EXPORT const ASN1_TIME *X509_REVOKED_get0_revocationDate(
1281
+ const X509_REVOKED *revoked);
1282
+
1283
+ // X509_REVOKED_set_revocationDate sets |revoked|'s revocation time to |tm|. It
1284
+ // returns one on success or zero on error.
1285
+ OPENSSL_EXPORT int X509_REVOKED_set_revocationDate(X509_REVOKED *revoked,
1286
+ const ASN1_TIME *tm);
1287
+
1288
+ // X509_REVOKED_get0_extensions returns |r|'s extensions list, or NULL if |r|
1289
+ // omits it.
1290
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_REVOKED_get0_extensions(
1291
+ const X509_REVOKED *r);
1292
+
1293
+ OPENSSL_EXPORT X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer,
1294
+ EVP_PKEY *skey, const EVP_MD *md,
1295
+ unsigned int flags);
1296
+
1297
+ OPENSSL_EXPORT int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey);
1298
+
1299
+ OPENSSL_EXPORT int X509_check_private_key(X509 *x509, const EVP_PKEY *pkey);
1300
+ OPENSSL_EXPORT int X509_chain_check_suiteb(int *perror_depth, X509 *x,
1301
+ STACK_OF(X509) *chain,
1302
+ unsigned long flags);
1303
+ OPENSSL_EXPORT int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk,
1304
+ unsigned long flags);
1305
+
1306
+ // X509_chain_up_ref returns a newly-allocated |STACK_OF(X509)| containing a
1307
+ // shallow copy of |chain|, or NULL on error. That is, the return value has the
1308
+ // same contents as |chain|, and each |X509|'s reference count is incremented by
1309
+ // one.
1310
+ OPENSSL_EXPORT STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain);
1311
+
1312
+ OPENSSL_EXPORT int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b);
1313
+
1314
+ OPENSSL_EXPORT int X509_issuer_name_cmp(const X509 *a, const X509 *b);
1315
+ OPENSSL_EXPORT unsigned long X509_issuer_name_hash(X509 *a);
1316
+
1317
+ OPENSSL_EXPORT int X509_subject_name_cmp(const X509 *a, const X509 *b);
1318
+ OPENSSL_EXPORT unsigned long X509_subject_name_hash(X509 *x);
1319
+
1320
+ OPENSSL_EXPORT unsigned long X509_issuer_name_hash_old(X509 *a);
1321
+ OPENSSL_EXPORT unsigned long X509_subject_name_hash_old(X509 *x);
1322
+
1323
+ OPENSSL_EXPORT int X509_cmp(const X509 *a, const X509 *b);
1324
+ OPENSSL_EXPORT int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b);
1325
+ OPENSSL_EXPORT unsigned long X509_NAME_hash(X509_NAME *x);
1326
+ OPENSSL_EXPORT unsigned long X509_NAME_hash_old(X509_NAME *x);
1327
+
1328
+ OPENSSL_EXPORT int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
1329
+ OPENSSL_EXPORT int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
1330
+ OPENSSL_EXPORT int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
1331
+ unsigned long cflag);
1332
+ OPENSSL_EXPORT int X509_print_fp(FILE *bp, X509 *x);
1333
+ OPENSSL_EXPORT int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
1334
+ OPENSSL_EXPORT int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
1335
+ OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
1336
+ int indent, unsigned long flags);
1337
+
1338
+ OPENSSL_EXPORT int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
1339
+ OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,
1340
+ unsigned long flags);
1341
+ OPENSSL_EXPORT int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag,
1342
+ unsigned long cflag);
1343
+ OPENSSL_EXPORT int X509_print(BIO *bp, X509 *x);
1344
+ OPENSSL_EXPORT int X509_ocspid_print(BIO *bp, X509 *x);
1345
+ OPENSSL_EXPORT int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent);
1346
+ OPENSSL_EXPORT int X509_CRL_print(BIO *bp, X509_CRL *x);
1347
+ OPENSSL_EXPORT int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag,
1348
+ unsigned long cflag);
1349
+ OPENSSL_EXPORT int X509_REQ_print(BIO *bp, X509_REQ *req);
1350
+
1351
+ OPENSSL_EXPORT int X509_NAME_entry_count(const X509_NAME *name);
1352
+ OPENSSL_EXPORT int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid,
1353
+ char *buf, int len);
1354
+ OPENSSL_EXPORT int X509_NAME_get_text_by_OBJ(const X509_NAME *name,
1355
+ const ASN1_OBJECT *obj, char *buf,
1356
+ int len);
1357
+
1358
+ // NOTE: you should be passsing -1, not 0 as lastpos. The functions that use
1359
+ // lastpos, search after that position on.
1360
+ OPENSSL_EXPORT int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid,
1361
+ int lastpos);
1362
+ OPENSSL_EXPORT int X509_NAME_get_index_by_OBJ(const X509_NAME *name,
1363
+ const ASN1_OBJECT *obj,
1364
+ int lastpos);
1365
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name,
1366
+ int loc);
1367
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name,
1368
+ int loc);
1369
+ OPENSSL_EXPORT int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne,
1370
+ int loc, int set);
1371
+ OPENSSL_EXPORT int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj,
1372
+ int type,
1373
+ const unsigned char *bytes,
1374
+ int len, int loc, int set);
1375
+ OPENSSL_EXPORT int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid,
1376
+ int type,
1377
+ const unsigned char *bytes,
1378
+ int len, int loc, int set);
1379
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(
1380
+ X509_NAME_ENTRY **ne, const char *field, int type,
1381
+ const unsigned char *bytes, int len);
1382
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(
1383
+ X509_NAME_ENTRY **ne, int nid, int type, const unsigned char *bytes,
1384
+ int len);
1385
+ OPENSSL_EXPORT int X509_NAME_add_entry_by_txt(X509_NAME *name,
1386
+ const char *field, int type,
1387
+ const unsigned char *bytes,
1388
+ int len, int loc, int set);
1389
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(
1390
+ X509_NAME_ENTRY **ne, const ASN1_OBJECT *obj, int type,
1391
+ const unsigned char *bytes, int len);
1392
+ OPENSSL_EXPORT int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne,
1393
+ const ASN1_OBJECT *obj);
1394
+ OPENSSL_EXPORT int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
1395
+ const unsigned char *bytes,
1396
+ int len);
1397
+ OPENSSL_EXPORT ASN1_OBJECT *X509_NAME_ENTRY_get_object(
1398
+ const X509_NAME_ENTRY *ne);
1399
+ OPENSSL_EXPORT ASN1_STRING *X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne);
1400
+
1401
+ // X509v3_get_ext_count returns the number of extensions in |x|.
1402
+ OPENSSL_EXPORT int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
1403
+
1404
+ // X509v3_get_ext_by_NID returns the index of the first extension in |x| with
1405
+ // type |nid|, or a negative number if not found. If found, callers can use
1406
+ // |X509v3_get_ext| to look up the extension by index.
1407
+ //
1408
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1409
+ // can thus loop over all matching extensions by first passing -1 and then
1410
+ // passing the previously-returned value until no match is returned.
1411
+ OPENSSL_EXPORT int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
1412
+ int nid, int lastpos);
1413
+
1414
+ // X509v3_get_ext_by_OBJ behaves like |X509v3_get_ext_by_NID| but looks for
1415
+ // extensions matching |obj|.
1416
+ OPENSSL_EXPORT int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x,
1417
+ const ASN1_OBJECT *obj, int lastpos);
1418
+
1419
+ // X509v3_get_ext_by_critical returns the index of the first extension in |x|
1420
+ // whose critical bit matches |crit|, or a negative number if no such extension
1421
+ // was found.
1422
+ //
1423
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1424
+ // can thus loop over all matching extensions by first passing -1 and then
1425
+ // passing the previously-returned value until no match is returned.
1426
+ OPENSSL_EXPORT int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x,
1427
+ int crit, int lastpos);
1428
+
1429
+ // X509v3_get_ext returns the extension in |x| at index |loc|, or NULL if |loc|
1430
+ // is out of bounds.
1431
+ OPENSSL_EXPORT X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x,
1432
+ int loc);
1433
+
1434
+ // X509v3_delete_ext removes the extension in |x| at index |loc| and returns the
1435
+ // removed extension, or NULL if |loc| was out of bounds. If an extension was
1436
+ // returned, the caller must release it with |X509_EXTENSION_free|.
1437
+ OPENSSL_EXPORT X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x,
1438
+ int loc);
1439
+
1440
+ // X509v3_add_ext adds a copy of |ex| to the extension list in |*x|. If |*x| is
1441
+ // NULL, it allocates a new |STACK_OF(X509_EXTENSION)| to hold the copy and sets
1442
+ // |*x| to the new list. It returns |*x| on success and NULL on error. The
1443
+ // caller retains ownership of |ex| and can release it independently of |*x|.
1444
+ //
1445
+ // The new extension is inserted at index |loc|, shifting extensions to the
1446
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1447
+ // list.
1448
+ OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509v3_add_ext(
1449
+ STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc);
1450
+
1451
+ // X509_get_ext_count returns the number of extensions in |x|.
1452
+ OPENSSL_EXPORT int X509_get_ext_count(const X509 *x);
1453
+
1454
+ // X509_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches for
1455
+ // extensions in |x|.
1456
+ OPENSSL_EXPORT int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos);
1457
+
1458
+ // X509_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches for
1459
+ // extensions in |x|.
1460
+ OPENSSL_EXPORT int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj,
1461
+ int lastpos);
1462
+
1463
+ // X509_get_ext_by_critical behaves like |X509v3_get_ext_by_critical| but
1464
+ // searches for extensions in |x|.
1465
+ OPENSSL_EXPORT int X509_get_ext_by_critical(const X509 *x, int crit,
1466
+ int lastpos);
1467
+
1468
+ // X509_get_ext returns the extension in |x| at index |loc|, or NULL if |loc| is
1469
+ // out of bounds.
1470
+ OPENSSL_EXPORT X509_EXTENSION *X509_get_ext(const X509 *x, int loc);
1471
+
1472
+ // X509_delete_ext removes the extension in |x| at index |loc| and returns the
1473
+ // removed extension, or NULL if |loc| was out of bounds. If non-NULL, the
1474
+ // caller must release the result with |X509_EXTENSION_free|. It is also safe,
1475
+ // but not necessary, to call |X509_EXTENSION_free| if the result is NULL.
1476
+ OPENSSL_EXPORT X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
1477
+
1478
+ // X509_add_ext adds a copy of |ex| to |x|. It returns one on success and zero
1479
+ // on failure. The caller retains ownership of |ex| and can release it
1480
+ // independently of |x|.
1481
+ //
1482
+ // The new extension is inserted at index |loc|, shifting extensions to the
1483
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1484
+ // list.
1485
+ OPENSSL_EXPORT int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
1486
+
1487
+ // X509_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the extension in
1488
+ // |x509|'s extension list.
1489
+ //
1490
+ // WARNING: This function is difficult to use correctly. See the documentation
1491
+ // for |X509V3_get_d2i| for details.
1492
+ OPENSSL_EXPORT void *X509_get_ext_d2i(const X509 *x509, int nid,
1493
+ int *out_critical, int *out_idx);
1494
+
1495
+ // X509_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the extension to
1496
+ // |x|'s extension list.
1497
+ //
1498
+ // WARNING: This function may return zero or -1 on error. The caller must also
1499
+ // ensure |value|'s type matches |nid|. See the documentation for
1500
+ // |X509V3_add1_i2d| for details.
1501
+ OPENSSL_EXPORT int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,
1502
+ unsigned long flags);
1503
+
1504
+ // X509_CRL_get_ext_count returns the number of extensions in |x|.
1505
+ OPENSSL_EXPORT int X509_CRL_get_ext_count(const X509_CRL *x);
1506
+
1507
+ // X509_CRL_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches for
1508
+ // extensions in |x|.
1509
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid,
1510
+ int lastpos);
1511
+
1512
+ // X509_CRL_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches for
1513
+ // extensions in |x|.
1514
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_OBJ(const X509_CRL *x,
1515
+ const ASN1_OBJECT *obj, int lastpos);
1516
+
1517
+ // X509_CRL_get_ext_by_critical behaves like |X509v3_get_ext_by_critical| but
1518
+ // searches for extensions in |x|.
1519
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit,
1520
+ int lastpos);
1521
+
1522
+ // X509_CRL_get_ext returns the extension in |x| at index |loc|, or NULL if
1523
+ // |loc| is out of bounds.
1524
+ OPENSSL_EXPORT X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc);
1525
+
1526
+ // X509_CRL_delete_ext removes the extension in |x| at index |loc| and returns
1527
+ // the removed extension, or NULL if |loc| was out of bounds. If non-NULL, the
1528
+ // caller must release the result with |X509_EXTENSION_free|. It is also safe,
1529
+ // but not necessary, to call |X509_EXTENSION_free| if the result is NULL.
1530
+ OPENSSL_EXPORT X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc);
1531
+
1532
+ // X509_CRL_add_ext adds a copy of |ex| to |x|. It returns one on success and
1533
+ // zero on failure. The caller retains ownership of |ex| and can release it
1534
+ // independently of |x|.
1535
+ //
1536
+ // The new extension is inserted at index |loc|, shifting extensions to the
1537
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1538
+ // list.
1539
+ OPENSSL_EXPORT int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc);
1540
+
1541
+ // X509_CRL_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the
1542
+ // extension in |crl|'s extension list.
1543
+ //
1544
+ // WARNING: This function is difficult to use correctly. See the documentation
1545
+ // for |X509V3_get_d2i| for details.
1546
+ OPENSSL_EXPORT void *X509_CRL_get_ext_d2i(const X509_CRL *crl, int nid,
1547
+ int *out_critical, int *out_idx);
1548
+
1549
+ // X509_CRL_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the extension
1550
+ // to |x|'s extension list.
1551
+ //
1552
+ // WARNING: This function may return zero or -1 on error. The caller must also
1553
+ // ensure |value|'s type matches |nid|. See the documentation for
1554
+ // |X509V3_add1_i2d| for details.
1555
+ OPENSSL_EXPORT int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value,
1556
+ int crit, unsigned long flags);
1557
+
1558
+ // X509_REVOKED_get_ext_count returns the number of extensions in |x|.
1559
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_count(const X509_REVOKED *x);
1560
+
1561
+ // X509_REVOKED_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches
1562
+ // for extensions in |x|.
1563
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid,
1564
+ int lastpos);
1565
+
1566
+ // X509_REVOKED_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches
1567
+ // for extensions in |x|.
1568
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x,
1569
+ const ASN1_OBJECT *obj,
1570
+ int lastpos);
1571
+
1572
+ // X509_REVOKED_get_ext_by_critical behaves like |X509v3_get_ext_by_critical|
1573
+ // but searches for extensions in |x|.
1574
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x,
1575
+ int crit, int lastpos);
1576
+
1577
+ // X509_REVOKED_get_ext returns the extension in |x| at index |loc|, or NULL if
1578
+ // |loc| is out of bounds.
1579
+ OPENSSL_EXPORT X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x,
1580
+ int loc);
1581
+
1582
+ // X509_REVOKED_delete_ext removes the extension in |x| at index |loc| and
1583
+ // returns the removed extension, or NULL if |loc| was out of bounds. If
1584
+ // non-NULL, the caller must release the result with |X509_EXTENSION_free|. It
1585
+ // is also safe, but not necessary, to call |X509_EXTENSION_free| if the result
1586
+ // is NULL.
1587
+ OPENSSL_EXPORT X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x,
1588
+ int loc);
1589
+
1590
+ // X509_REVOKED_add_ext adds a copy of |ex| to |x|. It returns one on success
1591
+ // and zero on failure. The caller retains ownership of |ex| and can release it
1592
+ // independently of |x|.
1593
+ //
1594
+ // The new extension is inserted at index |loc|, shifting extensions to the
1595
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1596
+ // list.
1597
+ OPENSSL_EXPORT int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex,
1598
+ int loc);
1599
+
1600
+ // X509_REVOKED_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the
1601
+ // extension in |revoked|'s extension list.
1602
+ //
1603
+ // WARNING: This function is difficult to use correctly. See the documentation
1604
+ // for |X509V3_get_d2i| for details.
1605
+ OPENSSL_EXPORT void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *revoked,
1606
+ int nid, int *out_critical,
1607
+ int *out_idx);
1608
+
1609
+ // X509_REVOKED_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the
1610
+ // extension to |x|'s extension list.
1611
+ //
1612
+ // WARNING: This function may return zero or -1 on error. The caller must also
1613
+ // ensure |value|'s type matches |nid|. See the documentation for
1614
+ // |X509V3_add1_i2d| for details.
1615
+ OPENSSL_EXPORT int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid,
1616
+ void *value, int crit,
1617
+ unsigned long flags);
1618
+
1619
+ // X509_EXTENSION_create_by_NID creates a new |X509_EXTENSION| with type |nid|,
1620
+ // value |data|, and critical bit |crit|. It returns the newly-allocated
1621
+ // |X509_EXTENSION| on success, and false on error. |nid| should be a |NID_*|
1622
+ // constant.
1623
+ //
1624
+ // If |ex| and |*ex| are both non-NULL, it modifies and returns |*ex| instead of
1625
+ // creating a new object. If |ex| is non-NULL, but |*ex| is NULL, it sets |*ex|
1626
+ // to the new |X509_EXTENSION|, in addition to returning the result.
1627
+ OPENSSL_EXPORT X509_EXTENSION *X509_EXTENSION_create_by_NID(
1628
+ X509_EXTENSION **ex, int nid, int crit, const ASN1_OCTET_STRING *data);
1629
+
1630
+ // X509_EXTENSION_create_by_OBJ behaves like |X509_EXTENSION_create_by_NID|, but
1631
+ // the extension type is determined by an |ASN1_OBJECT|.
1632
+ OPENSSL_EXPORT X509_EXTENSION *X509_EXTENSION_create_by_OBJ(
1633
+ X509_EXTENSION **ex, const ASN1_OBJECT *obj, int crit,
1634
+ const ASN1_OCTET_STRING *data);
1635
+
1636
+ // X509_EXTENSION_set_object sets |ex|'s extension type to |obj|. It returns one
1637
+ // on success and zero on error.
1638
+ OPENSSL_EXPORT int X509_EXTENSION_set_object(X509_EXTENSION *ex,
1639
+ const ASN1_OBJECT *obj);
1640
+
1641
+ // X509_EXTENSION_set_critical sets |ex| to critical if |crit| is non-zero and
1642
+ // to non-critical if |crit| is zero.
1643
+ OPENSSL_EXPORT int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit);
1644
+
1645
+ // X509_EXTENSION_set_data set's |ex|'s extension value to a copy of |data|. It
1646
+ // returns one on success and zero on error.
1647
+ OPENSSL_EXPORT int X509_EXTENSION_set_data(X509_EXTENSION *ex,
1648
+ const ASN1_OCTET_STRING *data);
1649
+
1650
+ // X509_EXTENSION_get_object returns |ex|'s extension type.
1651
+ OPENSSL_EXPORT ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex);
1652
+
1653
+ // X509_EXTENSION_get_data returns |ne|'s extension value.
1654
+ OPENSSL_EXPORT ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne);
1655
+
1656
+ // X509_EXTENSION_get_critical returns one if |ex| is critical and zero
1657
+ // otherwise.
1658
+ OPENSSL_EXPORT int X509_EXTENSION_get_critical(const X509_EXTENSION *ex);
1659
+
1660
+ // X509at_get_attr_count returns the number of attributes in |x|.
1661
+ OPENSSL_EXPORT int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x);
1662
+
1663
+ // X509at_get_attr_by_NID returns the index of the attribute in |x| of type
1664
+ // |nid|, or a negative number if not found. If found, callers can use
1665
+ // |X509at_get_attr| to look up the attribute by index.
1666
+ //
1667
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1668
+ // can thus loop over all matching attributes by first passing -1 and then
1669
+ // passing the previously-returned value until no match is returned.
1670
+ OPENSSL_EXPORT int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x,
1671
+ int nid, int lastpos);
1672
+
1673
+ // X509at_get_attr_by_OBJ behaves like |X509at_get_attr_by_NID| but looks for
1674
+ // attributes of type |obj|.
1675
+ OPENSSL_EXPORT int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,
1676
+ const ASN1_OBJECT *obj, int lastpos);
1677
+
1678
+ // X509at_get_attr returns the attribute at index |loc| in |x|, or NULL if
1679
+ // out of bounds.
1680
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509at_get_attr(
1681
+ const STACK_OF(X509_ATTRIBUTE) *x, int loc);
1682
+
1683
+ // X509at_delete_attr removes the attribute at index |loc| in |x|. It returns
1684
+ // the removed attribute to the caller, or NULL if |loc| was out of bounds. If
1685
+ // non-NULL, the caller must release the result with |X509_ATTRIBUTE_free| when
1686
+ // done. It is also safe, but not necessary, to call |X509_ATTRIBUTE_free| if
1687
+ // the result is NULL.
1688
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x,
1689
+ int loc);
1690
+
1691
+ // X509at_add1_attr appends a copy of |attr| to the attribute list in |*x|. If
1692
+ // |*x| is NULL, it allocates a new |STACK_OF(X509_ATTRIBUTE)| to hold the copy
1693
+ // and sets |*x| to the new list. It returns |*x| on success and NULL on error.
1694
+ // The caller retains ownership of |attr| and can release it independently of
1695
+ // |*x|.
1696
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(
1697
+ STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr);
1698
+
1699
+ // X509at_add1_attr_by_OBJ behaves like |X509at_add1_attr|, but adds an
1700
+ // attribute created by |X509_ATTRIBUTE_create_by_OBJ|.
1701
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(
1702
+ STACK_OF(X509_ATTRIBUTE) **x, const ASN1_OBJECT *obj, int type,
1703
+ const unsigned char *bytes, int len);
1704
+
1705
+ // X509at_add1_attr_by_NID behaves like |X509at_add1_attr|, but adds an
1706
+ // attribute created by |X509_ATTRIBUTE_create_by_NID|.
1707
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(
1708
+ STACK_OF(X509_ATTRIBUTE) **x, int nid, int type, const unsigned char *bytes,
1709
+ int len);
1710
+
1711
+ // X509at_add1_attr_by_txt behaves like |X509at_add1_attr|, but adds an
1712
+ // attribute created by |X509_ATTRIBUTE_create_by_txt|.
1713
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(
1714
+ STACK_OF(X509_ATTRIBUTE) **x, const char *attrname, int type,
1715
+ const unsigned char *bytes, int len);
1716
+
1717
+ // X509_ATTRIBUTE_create_by_NID returns a newly-allocated |X509_ATTRIBUTE| of
1718
+ // type |nid|, or NULL on error. The value is determined as in
1719
+ // |X509_ATTRIBUTE_set1_data|.
1720
+ //
1721
+ // If |attr| is non-NULL, the resulting |X509_ATTRIBUTE| is also written to
1722
+ // |*attr|. If |*attr| was non-NULL when the function was called, |*attr| is
1723
+ // reused instead of creating a new object.
1724
+ //
1725
+ // WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
1726
+ // error-prone. See |X509_ATTRIBUTE_set1_data| for details.
1727
+ //
1728
+ // WARNING: The object reuse form is deprecated and may be removed in the
1729
+ // future. It also currently incorrectly appends to the reused object's value
1730
+ // set rather than overwriting it.
1731
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(
1732
+ X509_ATTRIBUTE **attr, int nid, int attrtype, const void *data, int len);
1733
+
1734
+ // X509_ATTRIBUTE_create_by_OBJ behaves like |X509_ATTRIBUTE_create_by_NID|
1735
+ // except the attribute's type is determined by |obj|.
1736
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(
1737
+ X509_ATTRIBUTE **attr, const ASN1_OBJECT *obj, int attrtype,
1738
+ const void *data, int len);
1739
+
1740
+ // X509_ATTRIBUTE_create_by_txt behaves like |X509_ATTRIBUTE_create_by_NID|
1741
+ // except the attribute's type is determined by calling |OBJ_txt2obj| with
1742
+ // |attrname|.
1743
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(
1744
+ X509_ATTRIBUTE **attr, const char *attrname, int type,
1745
+ const unsigned char *bytes, int len);
1746
+
1747
+ // X509_ATTRIBUTE_set1_object sets |attr|'s type to |obj|. It returns one on
1748
+ // success and zero on error.
1749
+ OPENSSL_EXPORT int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr,
1750
+ const ASN1_OBJECT *obj);
1751
+
1752
+ // X509_ATTRIBUTE_set1_data appends a value to |attr|'s value set and returns
1753
+ // one on success or zero on error. The value is determined as follows:
1754
+ //
1755
+ // If |attrtype| is a |MBSTRING_*| constant, the value is an ASN.1 string. The
1756
+ // string is determined by decoding |len| bytes from |data| in the encoding
1757
+ // specified by |attrtype|, and then re-encoding it in a form appropriate for
1758
+ // |attr|'s type. If |len| is -1, |strlen(data)| is used instead. See
1759
+ // |ASN1_STRING_set_by_NID| for details.
1760
+ //
1761
+ // TODO(davidben): Document |ASN1_STRING_set_by_NID| so the reference is useful.
1762
+ //
1763
+ // Otherwise, if |len| is not -1, the value is an ASN.1 string. |attrtype| is an
1764
+ // |ASN1_STRING| type value and the |len| bytes from |data| are copied as the
1765
+ // type-specific representation of |ASN1_STRING|. See |ASN1_STRING| for details.
1766
+ //
1767
+ // WARNING: If this form is used to construct a negative INTEGER or ENUMERATED,
1768
+ // |attrtype| includes the |V_ASN1_NEG| flag for |ASN1_STRING|, but the function
1769
+ // forgets to clear the flag for |ASN1_TYPE|. This matches OpenSSL but is
1770
+ // probably a bug. For now, do not use this form with negative values.
1771
+ //
1772
+ // Otherwise, if |len| is -1, the value is constructed by passing |attrtype| and
1773
+ // |data| to |ASN1_TYPE_set1|. That is, |attrtype| is an |ASN1_TYPE| type value,
1774
+ // and |data| is cast to the corresponding pointer type.
1775
+ //
1776
+ // WARNING: Despite the name, this function appends to |attr|'s value set,
1777
+ // rather than overwriting it. To overwrite the value set, create a new
1778
+ // |X509_ATTRIBUTE| with |X509_ATTRIBUTE_new|.
1779
+ //
1780
+ // WARNING: If using the |MBSTRING_*| form, pass a length rather than relying on
1781
+ // |strlen|. In particular, |strlen| will not behave correctly if the input is
1782
+ // |MBSTRING_BMP| or |MBSTRING_UNIV|.
1783
+ //
1784
+ // WARNING: This function currently misinterprets |V_ASN1_OTHER| as an
1785
+ // |MBSTRING_*| constant. This matches OpenSSL but means it is impossible to
1786
+ // construct a value with a non-universal tag.
1787
+ OPENSSL_EXPORT int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,
1788
+ const void *data, int len);
1789
+
1790
+ // X509_ATTRIBUTE_get0_data returns the |idx|th value of |attr| in a
1791
+ // type-specific representation to |attrtype|, or NULL if out of bounds or the
1792
+ // type does not match. |attrtype| is one of the type values in |ASN1_TYPE|. On
1793
+ // match, the return value uses the same representation as |ASN1_TYPE_set0|. See
1794
+ // |ASN1_TYPE| for details.
1795
+ OPENSSL_EXPORT void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
1796
+ int attrtype, void *unused);
1797
+
1798
+ // X509_ATTRIBUTE_count returns the number of values in |attr|.
1799
+ OPENSSL_EXPORT int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr);
1800
+
1801
+ // X509_ATTRIBUTE_get0_object returns the type of |attr|.
1802
+ OPENSSL_EXPORT ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr);
1803
+
1804
+ // X509_ATTRIBUTE_get0_type returns the |idx|th value in |attr|, or NULL if out
1805
+ // of bounds. Note this function returns one of |attr|'s values, not the type.
1806
+ OPENSSL_EXPORT ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr,
1807
+ int idx);
1808
+
1809
+ OPENSSL_EXPORT int X509_verify_cert(X509_STORE_CTX *ctx);
1810
+
1811
+ // lookup a cert from a X509 STACK
1812
+ OPENSSL_EXPORT X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk,
1813
+ X509_NAME *name,
1814
+ ASN1_INTEGER *serial);
1815
+ OPENSSL_EXPORT X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name);
1816
+
1817
+ // PKCS#8 utilities
1818
+
1819
+ DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO)
1820
+
1821
+ OPENSSL_EXPORT EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8);
1822
+ OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey);
1823
+
1824
+ OPENSSL_EXPORT int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,
1825
+ int version, int ptype, void *pval,
1826
+ unsigned char *penc, int penclen);
1827
+ OPENSSL_EXPORT int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg,
1828
+ const unsigned char **pk, int *ppklen,
1829
+ X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8);
1830
+
1831
+ // X509_PUBKEY_set0_param sets |pub| to a key with AlgorithmIdentifier
1832
+ // determined by |obj|, |param_type|, and |param_value|, and an encoded
1833
+ // public key of |key|. On success, it takes ownership of all its parameters and
1834
+ // returns one. Otherwise, it returns zero. |key| must have been allocated by
1835
+ // |OPENSSL_malloc|.
1836
+ //
1837
+ // |obj|, |param_type|, and |param_value| are interpreted as in
1838
+ // |X509_ALGOR_set0|. See |X509_ALGOR_set0| for details.
1839
+ OPENSSL_EXPORT int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *obj,
1840
+ int param_type, void *param_value,
1841
+ uint8_t *key, int key_len);
1842
+
1843
+ // X509_PUBKEY_get0_param outputs fields of |pub| and returns one. If |out_obj|
1844
+ // is not NULL, it sets |*out_obj| to AlgorithmIdentifier's OID. If |out_key|
1845
+ // is not NULL, it sets |*out_key| and |*out_key_len| to the encoded public key.
1846
+ // If |out_alg| is not NULL, it sets |*out_alg| to the AlgorithmIdentifier.
1847
+ //
1848
+ // Note: X.509 SubjectPublicKeyInfo structures store the encoded public key as a
1849
+ // BIT STRING. |*out_key| and |*out_key_len| will silently pad the key with zero
1850
+ // bits if |pub| did not contain a whole number of bytes. Use
1851
+ // |X509_PUBKEY_get0_public_key| to preserve this information.
1852
+ OPENSSL_EXPORT int X509_PUBKEY_get0_param(ASN1_OBJECT **out_obj,
1853
+ const uint8_t **out_key,
1854
+ int *out_key_len,
1855
+ X509_ALGOR **out_alg,
1856
+ X509_PUBKEY *pub);
1857
+
1858
+ // X509_PUBKEY_get0_public_key returns |pub|'s encoded public key.
1859
+ OPENSSL_EXPORT const ASN1_BIT_STRING *X509_PUBKEY_get0_public_key(
1860
+ const X509_PUBKEY *pub);
1861
+
1862
+ OPENSSL_EXPORT int X509_check_trust(X509 *x, int id, int flags);
1863
+ OPENSSL_EXPORT int X509_TRUST_get_count(void);
1864
+ OPENSSL_EXPORT X509_TRUST *X509_TRUST_get0(int idx);
1865
+ OPENSSL_EXPORT int X509_TRUST_get_by_id(int id);
1866
+ OPENSSL_EXPORT int X509_TRUST_add(int id, int flags,
1867
+ int (*ck)(X509_TRUST *, X509 *, int),
1868
+ char *name, int arg1, void *arg2);
1869
+ OPENSSL_EXPORT void X509_TRUST_cleanup(void);
1870
+ OPENSSL_EXPORT int X509_TRUST_get_flags(const X509_TRUST *xp);
1871
+ OPENSSL_EXPORT char *X509_TRUST_get0_name(const X509_TRUST *xp);
1872
+ OPENSSL_EXPORT int X509_TRUST_get_trust(const X509_TRUST *xp);
1873
+
1874
+
1875
+ struct rsa_pss_params_st {
1876
+ X509_ALGOR *hashAlgorithm;
1877
+ X509_ALGOR *maskGenAlgorithm;
1878
+ ASN1_INTEGER *saltLength;
1879
+ ASN1_INTEGER *trailerField;
1880
+ // OpenSSL caches the MGF hash on |RSA_PSS_PARAMS| in some cases. None of the
1881
+ // cases apply to BoringSSL, so this is always NULL, but Node expects the
1882
+ // field to be present.
1883
+ X509_ALGOR *maskHash;
1884
+ } /* RSA_PSS_PARAMS */;
1885
+
1886
+ DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS)
1887
+
1888
+ /*
1889
+ SSL_CTX -> X509_STORE
1890
+ -> X509_LOOKUP
1891
+ ->X509_LOOKUP_METHOD
1892
+ -> X509_LOOKUP
1893
+ ->X509_LOOKUP_METHOD
1894
+
1895
+ SSL -> X509_STORE_CTX
1896
+ ->X509_STORE
1897
+
1898
+ The X509_STORE holds the tables etc for verification stuff.
1899
+ A X509_STORE_CTX is used while validating a single certificate.
1900
+ The X509_STORE has X509_LOOKUPs for looking up certs.
1901
+ The X509_STORE then calls a function to actually verify the
1902
+ certificate chain.
1903
+ */
1904
+
1905
+ #define X509_LU_X509 1
1906
+ #define X509_LU_CRL 2
1907
+ #define X509_LU_PKEY 3
1908
+
1909
+ DEFINE_STACK_OF(X509_LOOKUP)
1910
+ DEFINE_STACK_OF(X509_OBJECT)
1911
+ DEFINE_STACK_OF(X509_VERIFY_PARAM)
1912
+
1913
+ typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
1914
+ typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *);
1915
+ typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, X509_STORE_CTX *ctx,
1916
+ X509 *x);
1917
+ typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, X509 *x,
1918
+ X509 *issuer);
1919
+ typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
1920
+ typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, X509_CRL **crl,
1921
+ X509 *x);
1922
+ typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl);
1923
+ typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl,
1924
+ X509 *x);
1925
+ typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx);
1926
+ typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx,
1927
+ X509_NAME *nm);
1928
+ typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(
1929
+ X509_STORE_CTX *ctx, X509_NAME *nm);
1930
+ typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx);
1931
+
1932
+ OPENSSL_EXPORT int X509_STORE_set_depth(X509_STORE *store, int depth);
1933
+
1934
+ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
1935
+
1936
+ #define X509_STORE_CTX_set_app_data(ctx, data) \
1937
+ X509_STORE_CTX_set_ex_data(ctx, 0, data)
1938
+ #define X509_STORE_CTX_get_app_data(ctx) X509_STORE_CTX_get_ex_data(ctx, 0)
1939
+
1940
+ #define X509_L_FILE_LOAD 1
1941
+ #define X509_L_ADD_DIR 2
1942
+
1943
+ #define X509_LOOKUP_load_file(x, name, type) \
1944
+ X509_LOOKUP_ctrl((x), X509_L_FILE_LOAD, (name), (long)(type), NULL)
1945
+
1946
+ #define X509_LOOKUP_add_dir(x, name, type) \
1947
+ X509_LOOKUP_ctrl((x), X509_L_ADD_DIR, (name), (long)(type), NULL)
1948
+
1949
+ #define X509_V_OK 0
1950
+ #define X509_V_ERR_UNSPECIFIED 1
1951
+
1952
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
1953
+ #define X509_V_ERR_UNABLE_TO_GET_CRL 3
1954
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
1955
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
1956
+ #define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
1957
+ #define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
1958
+ #define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
1959
+ #define X509_V_ERR_CERT_NOT_YET_VALID 9
1960
+ #define X509_V_ERR_CERT_HAS_EXPIRED 10
1961
+ #define X509_V_ERR_CRL_NOT_YET_VALID 11
1962
+ #define X509_V_ERR_CRL_HAS_EXPIRED 12
1963
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
1964
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
1965
+ #define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
1966
+ #define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
1967
+ #define X509_V_ERR_OUT_OF_MEM 17
1968
+ #define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
1969
+ #define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
1970
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
1971
+ #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
1972
+ #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22
1973
+ #define X509_V_ERR_CERT_REVOKED 23
1974
+ #define X509_V_ERR_INVALID_CA 24
1975
+ #define X509_V_ERR_PATH_LENGTH_EXCEEDED 25
1976
+ #define X509_V_ERR_INVALID_PURPOSE 26
1977
+ #define X509_V_ERR_CERT_UNTRUSTED 27
1978
+ #define X509_V_ERR_CERT_REJECTED 28
1979
+ // These are 'informational' when looking for issuer cert
1980
+ #define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29
1981
+ #define X509_V_ERR_AKID_SKID_MISMATCH 30
1982
+ #define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31
1983
+ #define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32
1984
+
1985
+ #define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33
1986
+ #define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
1987
+ #define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
1988
+ #define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
1989
+ #define X509_V_ERR_INVALID_NON_CA 37
1990
+ #define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
1991
+ #define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
1992
+ #define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
1993
+
1994
+ #define X509_V_ERR_INVALID_EXTENSION 41
1995
+ #define X509_V_ERR_INVALID_POLICY_EXTENSION 42
1996
+ #define X509_V_ERR_NO_EXPLICIT_POLICY 43
1997
+ #define X509_V_ERR_DIFFERENT_CRL_SCOPE 44
1998
+ #define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45
1999
+
2000
+ #define X509_V_ERR_UNNESTED_RESOURCE 46
2001
+
2002
+ #define X509_V_ERR_PERMITTED_VIOLATION 47
2003
+ #define X509_V_ERR_EXCLUDED_VIOLATION 48
2004
+ #define X509_V_ERR_SUBTREE_MINMAX 49
2005
+ #define X509_V_ERR_APPLICATION_VERIFICATION 50
2006
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51
2007
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52
2008
+ #define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53
2009
+ #define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54
2010
+
2011
+ // Suite B mode algorithm violation
2012
+ #define X509_V_ERR_SUITE_B_INVALID_VERSION 56
2013
+ #define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57
2014
+ #define X509_V_ERR_SUITE_B_INVALID_CURVE 58
2015
+ #define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59
2016
+ #define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60
2017
+ #define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61
2018
+
2019
+ // Host, email and IP check errors
2020
+ #define X509_V_ERR_HOSTNAME_MISMATCH 62
2021
+ #define X509_V_ERR_EMAIL_MISMATCH 63
2022
+ #define X509_V_ERR_IP_ADDRESS_MISMATCH 64
2023
+
2024
+ // Caller error
2025
+ #define X509_V_ERR_INVALID_CALL 65
2026
+ // Issuer lookup error
2027
+ #define X509_V_ERR_STORE_LOOKUP 66
2028
+
2029
+ #define X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS 67
2030
+
2031
+ // Certificate verify flags
2032
+
2033
+ // Send issuer+subject checks to verify_cb
2034
+ #define X509_V_FLAG_CB_ISSUER_CHECK 0x1
2035
+ // Use check time instead of current time
2036
+ #define X509_V_FLAG_USE_CHECK_TIME 0x2
2037
+ // Lookup CRLs
2038
+ #define X509_V_FLAG_CRL_CHECK 0x4
2039
+ // Lookup CRLs for whole chain
2040
+ #define X509_V_FLAG_CRL_CHECK_ALL 0x8
2041
+ // Ignore unhandled critical extensions
2042
+ #define X509_V_FLAG_IGNORE_CRITICAL 0x10
2043
+ // Does nothing as its functionality has been enabled by default.
2044
+ #define X509_V_FLAG_X509_STRICT 0x00
2045
+ // Enable proxy certificate validation
2046
+ #define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
2047
+ // Enable policy checking
2048
+ #define X509_V_FLAG_POLICY_CHECK 0x80
2049
+ // Policy variable require-explicit-policy
2050
+ #define X509_V_FLAG_EXPLICIT_POLICY 0x100
2051
+ // Policy variable inhibit-any-policy
2052
+ #define X509_V_FLAG_INHIBIT_ANY 0x200
2053
+ // Policy variable inhibit-policy-mapping
2054
+ #define X509_V_FLAG_INHIBIT_MAP 0x400
2055
+ // Notify callback that policy is OK
2056
+ #define X509_V_FLAG_NOTIFY_POLICY 0x800
2057
+ // Extended CRL features such as indirect CRLs, alternate CRL signing keys
2058
+ #define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
2059
+ // Delta CRL support
2060
+ #define X509_V_FLAG_USE_DELTAS 0x2000
2061
+ // Check selfsigned CA signature
2062
+ #define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000
2063
+ // Use trusted store first
2064
+ #define X509_V_FLAG_TRUSTED_FIRST 0x8000
2065
+ // Suite B 128 bit only mode: not normally used
2066
+ #define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000
2067
+ // Suite B 192 bit only mode
2068
+ #define X509_V_FLAG_SUITEB_192_LOS 0x20000
2069
+ // Suite B 128 bit mode allowing 192 bit algorithms
2070
+ #define X509_V_FLAG_SUITEB_128_LOS 0x30000
2071
+
2072
+ // Allow partial chains if at least one certificate is in trusted store
2073
+ #define X509_V_FLAG_PARTIAL_CHAIN 0x80000
2074
+
2075
+ // If the initial chain is not trusted, do not attempt to build an alternative
2076
+ // chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
2077
+ // will force the behaviour to match that of previous versions.
2078
+ #define X509_V_FLAG_NO_ALT_CHAINS 0x100000
2079
+
2080
+ #define X509_VP_FLAG_DEFAULT 0x1
2081
+ #define X509_VP_FLAG_OVERWRITE 0x2
2082
+ #define X509_VP_FLAG_RESET_FLAGS 0x4
2083
+ #define X509_VP_FLAG_LOCKED 0x8
2084
+ #define X509_VP_FLAG_ONCE 0x10
2085
+
2086
+ // Internal use: mask of policy related options
2087
+ #define X509_V_FLAG_POLICY_MASK \
2088
+ (X509_V_FLAG_POLICY_CHECK | X509_V_FLAG_EXPLICIT_POLICY | \
2089
+ X509_V_FLAG_INHIBIT_ANY | X509_V_FLAG_INHIBIT_MAP)
2090
+
2091
+ OPENSSL_EXPORT int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h,
2092
+ int type, X509_NAME *name);
2093
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_by_subject(
2094
+ STACK_OF(X509_OBJECT) *h, int type, X509_NAME *name);
2095
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h,
2096
+ X509_OBJECT *x);
2097
+ OPENSSL_EXPORT int X509_OBJECT_up_ref_count(X509_OBJECT *a);
2098
+ OPENSSL_EXPORT void X509_OBJECT_free_contents(X509_OBJECT *a);
2099
+ OPENSSL_EXPORT int X509_OBJECT_get_type(const X509_OBJECT *a);
2100
+ OPENSSL_EXPORT X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a);
2101
+ OPENSSL_EXPORT X509_STORE *X509_STORE_new(void);
2102
+ OPENSSL_EXPORT int X509_STORE_up_ref(X509_STORE *store);
2103
+ OPENSSL_EXPORT void X509_STORE_free(X509_STORE *v);
2104
+
2105
+ OPENSSL_EXPORT STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *st);
2106
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st,
2107
+ X509_NAME *nm);
2108
+ OPENSSL_EXPORT STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st,
2109
+ X509_NAME *nm);
2110
+ OPENSSL_EXPORT int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
2111
+ OPENSSL_EXPORT int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
2112
+ OPENSSL_EXPORT int X509_STORE_set_trust(X509_STORE *ctx, int trust);
2113
+ OPENSSL_EXPORT int X509_STORE_set1_param(X509_STORE *ctx,
2114
+ X509_VERIFY_PARAM *pm);
2115
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx);
2116
+
2117
+ OPENSSL_EXPORT void X509_STORE_set_verify(X509_STORE *ctx,
2118
+ X509_STORE_CTX_verify_fn verify);
2119
+ #define X509_STORE_set_verify_func(ctx, func) \
2120
+ X509_STORE_set_verify((ctx), (func))
2121
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
2122
+ X509_STORE_CTX_verify_fn verify);
2123
+ OPENSSL_EXPORT X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx);
2124
+ OPENSSL_EXPORT void X509_STORE_set_verify_cb(
2125
+ X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
2126
+ #define X509_STORE_set_verify_cb_func(ctx, func) \
2127
+ X509_STORE_set_verify_cb((ctx), (func))
2128
+ OPENSSL_EXPORT X509_STORE_CTX_verify_cb
2129
+ X509_STORE_get_verify_cb(X509_STORE *ctx);
2130
+ OPENSSL_EXPORT void X509_STORE_set_get_issuer(
2131
+ X509_STORE *ctx, X509_STORE_CTX_get_issuer_fn get_issuer);
2132
+ OPENSSL_EXPORT X509_STORE_CTX_get_issuer_fn
2133
+ X509_STORE_get_get_issuer(X509_STORE *ctx);
2134
+ OPENSSL_EXPORT void X509_STORE_set_check_issued(
2135
+ X509_STORE *ctx, X509_STORE_CTX_check_issued_fn check_issued);
2136
+ OPENSSL_EXPORT X509_STORE_CTX_check_issued_fn
2137
+ X509_STORE_get_check_issued(X509_STORE *ctx);
2138
+ OPENSSL_EXPORT void X509_STORE_set_check_revocation(
2139
+ X509_STORE *ctx, X509_STORE_CTX_check_revocation_fn check_revocation);
2140
+ OPENSSL_EXPORT X509_STORE_CTX_check_revocation_fn
2141
+ X509_STORE_get_check_revocation(X509_STORE *ctx);
2142
+ OPENSSL_EXPORT void X509_STORE_set_get_crl(X509_STORE *ctx,
2143
+ X509_STORE_CTX_get_crl_fn get_crl);
2144
+ OPENSSL_EXPORT X509_STORE_CTX_get_crl_fn
2145
+ X509_STORE_get_get_crl(X509_STORE *ctx);
2146
+ OPENSSL_EXPORT void X509_STORE_set_check_crl(
2147
+ X509_STORE *ctx, X509_STORE_CTX_check_crl_fn check_crl);
2148
+ OPENSSL_EXPORT X509_STORE_CTX_check_crl_fn
2149
+ X509_STORE_get_check_crl(X509_STORE *ctx);
2150
+ OPENSSL_EXPORT void X509_STORE_set_cert_crl(
2151
+ X509_STORE *ctx, X509_STORE_CTX_cert_crl_fn cert_crl);
2152
+ OPENSSL_EXPORT X509_STORE_CTX_cert_crl_fn
2153
+ X509_STORE_get_cert_crl(X509_STORE *ctx);
2154
+ OPENSSL_EXPORT void X509_STORE_set_lookup_certs(
2155
+ X509_STORE *ctx, X509_STORE_CTX_lookup_certs_fn lookup_certs);
2156
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_certs_fn
2157
+ X509_STORE_get_lookup_certs(X509_STORE *ctx);
2158
+ OPENSSL_EXPORT void X509_STORE_set_lookup_crls(
2159
+ X509_STORE *ctx, X509_STORE_CTX_lookup_crls_fn lookup_crls);
2160
+ #define X509_STORE_set_lookup_crls_cb(ctx, func) \
2161
+ X509_STORE_set_lookup_crls((ctx), (func))
2162
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_crls_fn
2163
+ X509_STORE_get_lookup_crls(X509_STORE *ctx);
2164
+ OPENSSL_EXPORT void X509_STORE_set_cleanup(X509_STORE *ctx,
2165
+ X509_STORE_CTX_cleanup_fn cleanup);
2166
+ OPENSSL_EXPORT X509_STORE_CTX_cleanup_fn
2167
+ X509_STORE_get_cleanup(X509_STORE *ctx);
2168
+
2169
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_new(void);
2170
+
2171
+ OPENSSL_EXPORT int X509_STORE_CTX_get1_issuer(X509 **issuer,
2172
+ X509_STORE_CTX *ctx, X509 *x);
2173
+
2174
+ OPENSSL_EXPORT void X509_STORE_CTX_zero(X509_STORE_CTX *ctx);
2175
+ OPENSSL_EXPORT void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
2176
+ OPENSSL_EXPORT int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
2177
+ X509 *x509, STACK_OF(X509) *chain);
2178
+ OPENSSL_EXPORT void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx,
2179
+ STACK_OF(X509) *sk);
2180
+ OPENSSL_EXPORT void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
2181
+
2182
+ OPENSSL_EXPORT X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
2183
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
2184
+
2185
+ OPENSSL_EXPORT X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v,
2186
+ X509_LOOKUP_METHOD *m);
2187
+
2188
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
2189
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
2190
+
2191
+ OPENSSL_EXPORT int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
2192
+ OPENSSL_EXPORT int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
2193
+
2194
+ OPENSSL_EXPORT int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type,
2195
+ X509_NAME *name, X509_OBJECT *ret);
2196
+
2197
+ OPENSSL_EXPORT int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
2198
+ long argl, char **ret);
2199
+
2200
+ #ifndef OPENSSL_NO_STDIO
2201
+ OPENSSL_EXPORT int X509_load_cert_file(X509_LOOKUP *ctx, const char *file,
2202
+ int type);
2203
+ OPENSSL_EXPORT int X509_load_crl_file(X509_LOOKUP *ctx, const char *file,
2204
+ int type);
2205
+ OPENSSL_EXPORT int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file,
2206
+ int type);
2207
+ #endif
2208
+
2209
+ OPENSSL_EXPORT X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);
2210
+ OPENSSL_EXPORT void X509_LOOKUP_free(X509_LOOKUP *ctx);
2211
+ OPENSSL_EXPORT int X509_LOOKUP_init(X509_LOOKUP *ctx);
2212
+ OPENSSL_EXPORT int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type,
2213
+ X509_NAME *name, X509_OBJECT *ret);
2214
+ OPENSSL_EXPORT int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type,
2215
+ X509_NAME *name,
2216
+ ASN1_INTEGER *serial,
2217
+ X509_OBJECT *ret);
2218
+ OPENSSL_EXPORT int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type,
2219
+ unsigned char *bytes, int len,
2220
+ X509_OBJECT *ret);
2221
+ OPENSSL_EXPORT int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str,
2222
+ int len, X509_OBJECT *ret);
2223
+ OPENSSL_EXPORT int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
2224
+
2225
+ #ifndef OPENSSL_NO_STDIO
2226
+ OPENSSL_EXPORT int X509_STORE_load_locations(X509_STORE *ctx, const char *file,
2227
+ const char *dir);
2228
+ OPENSSL_EXPORT int X509_STORE_set_default_paths(X509_STORE *ctx);
2229
+ #endif
2230
+
2231
+ OPENSSL_EXPORT int X509_STORE_CTX_get_ex_new_index(long argl, void *argp,
2232
+ CRYPTO_EX_unused *unused,
2233
+ CRYPTO_EX_dup *dup_unused,
2234
+ CRYPTO_EX_free *free_func);
2235
+ OPENSSL_EXPORT int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx,
2236
+ void *data);
2237
+ OPENSSL_EXPORT void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
2238
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
2239
+ OPENSSL_EXPORT void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s);
2240
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
2241
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
2242
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx);
2243
+ OPENSSL_EXPORT X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx);
2244
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(
2245
+ X509_STORE_CTX *ctx);
2246
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
2247
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
2248
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);
2249
+ OPENSSL_EXPORT void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x);
2250
+ OPENSSL_EXPORT void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,
2251
+ STACK_OF(X509) *sk);
2252
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(
2253
+ X509_STORE_CTX *ctx);
2254
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c,
2255
+ STACK_OF(X509_CRL) *sk);
2256
+ OPENSSL_EXPORT int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
2257
+ OPENSSL_EXPORT int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
2258
+ OPENSSL_EXPORT int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx,
2259
+ int def_purpose, int purpose,
2260
+ int trust);
2261
+ OPENSSL_EXPORT void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx,
2262
+ unsigned long flags);
2263
+ OPENSSL_EXPORT void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx,
2264
+ unsigned long flags, time_t t);
2265
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify_cb(
2266
+ X509_STORE_CTX *ctx, int (*verify_cb)(int, X509_STORE_CTX *));
2267
+
2268
+ OPENSSL_EXPORT X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(
2269
+ X509_STORE_CTX *ctx);
2270
+ OPENSSL_EXPORT int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
2271
+
2272
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(
2273
+ X509_STORE_CTX *ctx);
2274
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx,
2275
+ X509_VERIFY_PARAM *param);
2276
+ OPENSSL_EXPORT int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx,
2277
+ const char *name);
2278
+
2279
+ // X509_VERIFY_PARAM functions
2280
+
2281
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
2282
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
2283
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
2284
+ const X509_VERIFY_PARAM *from);
2285
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
2286
+ const X509_VERIFY_PARAM *from);
2287
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param,
2288
+ const char *name);
2289
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param,
2290
+ unsigned long flags);
2291
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
2292
+ unsigned long flags);
2293
+ OPENSSL_EXPORT unsigned long X509_VERIFY_PARAM_get_flags(
2294
+ X509_VERIFY_PARAM *param);
2295
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param,
2296
+ int purpose);
2297
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param,
2298
+ int trust);
2299
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param,
2300
+ int depth);
2301
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param,
2302
+ time_t t);
2303
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
2304
+ ASN1_OBJECT *policy);
2305
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_policies(
2306
+ X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies);
2307
+
2308
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,
2309
+ const char *name,
2310
+ size_t namelen);
2311
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,
2312
+ const char *name,
2313
+ size_t namelen);
2314
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
2315
+ unsigned int flags);
2316
+ OPENSSL_EXPORT char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *);
2317
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
2318
+ const char *email,
2319
+ size_t emaillen);
2320
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,
2321
+ const unsigned char *ip,
2322
+ size_t iplen);
2323
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param,
2324
+ const char *ipasc);
2325
+
2326
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
2327
+ OPENSSL_EXPORT const char *X509_VERIFY_PARAM_get0_name(
2328
+ const X509_VERIFY_PARAM *param);
2329
+
2330
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
2331
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_count(void);
2332
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
2333
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(
2334
+ const char *name);
2335
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_table_cleanup(void);
2336
+
2337
+ OPENSSL_EXPORT int X509_policy_check(X509_POLICY_TREE **ptree,
2338
+ int *pexplicit_policy,
2339
+ STACK_OF(X509) *certs,
2340
+ STACK_OF(ASN1_OBJECT) *policy_oids,
2341
+ unsigned int flags);
2342
+
2343
+ OPENSSL_EXPORT void X509_policy_tree_free(X509_POLICY_TREE *tree);
2344
+
2345
+ OPENSSL_EXPORT int X509_policy_tree_level_count(const X509_POLICY_TREE *tree);
2346
+ OPENSSL_EXPORT X509_POLICY_LEVEL *X509_policy_tree_get0_level(
2347
+ const X509_POLICY_TREE *tree, int i);
2348
+
2349
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(
2350
+ const X509_POLICY_TREE *tree);
2351
+
2352
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(
2353
+ const X509_POLICY_TREE *tree);
2354
+
2355
+ OPENSSL_EXPORT int X509_policy_level_node_count(X509_POLICY_LEVEL *level);
2356
+
2357
+ OPENSSL_EXPORT X509_POLICY_NODE *X509_policy_level_get0_node(
2358
+ X509_POLICY_LEVEL *level, int i);
2359
+
2360
+ OPENSSL_EXPORT const ASN1_OBJECT *X509_policy_node_get0_policy(
2361
+ const X509_POLICY_NODE *node);
2362
+
2363
+ OPENSSL_EXPORT STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(
2364
+ const X509_POLICY_NODE *node);
2365
+ OPENSSL_EXPORT const X509_POLICY_NODE *X509_policy_node_get0_parent(
2366
+ const X509_POLICY_NODE *node);
2367
+
2368
+
2369
+ #ifdef __cplusplus
2370
+ }
2371
+ #endif
2372
+
2373
+ #if !defined(BORINGSSL_NO_CXX)
2374
+ extern "C++" {
2375
+
2376
+ BSSL_NAMESPACE_BEGIN
2377
+
2378
+ BORINGSSL_MAKE_DELETER(NETSCAPE_SPKI, NETSCAPE_SPKI_free)
2379
+ BORINGSSL_MAKE_DELETER(RSA_PSS_PARAMS, RSA_PSS_PARAMS_free)
2380
+ BORINGSSL_MAKE_DELETER(X509, X509_free)
2381
+ BORINGSSL_MAKE_UP_REF(X509, X509_up_ref)
2382
+ BORINGSSL_MAKE_DELETER(X509_ALGOR, X509_ALGOR_free)
2383
+ BORINGSSL_MAKE_DELETER(X509_ATTRIBUTE, X509_ATTRIBUTE_free)
2384
+ BORINGSSL_MAKE_DELETER(X509_CRL, X509_CRL_free)
2385
+ BORINGSSL_MAKE_UP_REF(X509_CRL, X509_CRL_up_ref)
2386
+ BORINGSSL_MAKE_DELETER(X509_CRL_METHOD, X509_CRL_METHOD_free)
2387
+ BORINGSSL_MAKE_DELETER(X509_EXTENSION, X509_EXTENSION_free)
2388
+ BORINGSSL_MAKE_DELETER(X509_INFO, X509_INFO_free)
2389
+ BORINGSSL_MAKE_DELETER(X509_LOOKUP, X509_LOOKUP_free)
2390
+ BORINGSSL_MAKE_DELETER(X509_NAME, X509_NAME_free)
2391
+ BORINGSSL_MAKE_DELETER(X509_NAME_ENTRY, X509_NAME_ENTRY_free)
2392
+ BORINGSSL_MAKE_DELETER(X509_PKEY, X509_PKEY_free)
2393
+ BORINGSSL_MAKE_DELETER(X509_POLICY_TREE, X509_policy_tree_free)
2394
+ BORINGSSL_MAKE_DELETER(X509_PUBKEY, X509_PUBKEY_free)
2395
+ BORINGSSL_MAKE_DELETER(X509_REQ, X509_REQ_free)
2396
+ BORINGSSL_MAKE_DELETER(X509_REVOKED, X509_REVOKED_free)
2397
+ BORINGSSL_MAKE_DELETER(X509_SIG, X509_SIG_free)
2398
+ BORINGSSL_MAKE_DELETER(X509_STORE, X509_STORE_free)
2399
+ BORINGSSL_MAKE_UP_REF(X509_STORE, X509_STORE_up_ref)
2400
+ BORINGSSL_MAKE_DELETER(X509_STORE_CTX, X509_STORE_CTX_free)
2401
+ BORINGSSL_MAKE_DELETER(X509_VERIFY_PARAM, X509_VERIFY_PARAM_free)
2402
+
2403
+ BSSL_NAMESPACE_END
2404
+
2405
+ } // extern C++
2406
+ #endif // !BORINGSSL_NO_CXX
2407
+
2408
+ #define X509_R_AKID_MISMATCH 100
2409
+ #define X509_R_BAD_PKCS7_VERSION 101
2410
+ #define X509_R_BAD_X509_FILETYPE 102
2411
+ #define X509_R_BASE64_DECODE_ERROR 103
2412
+ #define X509_R_CANT_CHECK_DH_KEY 104
2413
+ #define X509_R_CERT_ALREADY_IN_HASH_TABLE 105
2414
+ #define X509_R_CRL_ALREADY_DELTA 106
2415
+ #define X509_R_CRL_VERIFY_FAILURE 107
2416
+ #define X509_R_IDP_MISMATCH 108
2417
+ #define X509_R_INVALID_BIT_STRING_BITS_LEFT 109
2418
+ #define X509_R_INVALID_DIRECTORY 110
2419
+ #define X509_R_INVALID_FIELD_NAME 111
2420
+ #define X509_R_INVALID_PSS_PARAMETERS 112
2421
+ #define X509_R_INVALID_TRUST 113
2422
+ #define X509_R_ISSUER_MISMATCH 114
2423
+ #define X509_R_KEY_TYPE_MISMATCH 115
2424
+ #define X509_R_KEY_VALUES_MISMATCH 116
2425
+ #define X509_R_LOADING_CERT_DIR 117
2426
+ #define X509_R_LOADING_DEFAULTS 118
2427
+ #define X509_R_NEWER_CRL_NOT_NEWER 119
2428
+ #define X509_R_NOT_PKCS7_SIGNED_DATA 120
2429
+ #define X509_R_NO_CERTIFICATES_INCLUDED 121
2430
+ #define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 122
2431
+ #define X509_R_NO_CRLS_INCLUDED 123
2432
+ #define X509_R_NO_CRL_NUMBER 124
2433
+ #define X509_R_PUBLIC_KEY_DECODE_ERROR 125
2434
+ #define X509_R_PUBLIC_KEY_ENCODE_ERROR 126
2435
+ #define X509_R_SHOULD_RETRY 127
2436
+ #define X509_R_UNKNOWN_KEY_TYPE 128
2437
+ #define X509_R_UNKNOWN_NID 129
2438
+ #define X509_R_UNKNOWN_PURPOSE_ID 130
2439
+ #define X509_R_UNKNOWN_TRUST_ID 131
2440
+ #define X509_R_UNSUPPORTED_ALGORITHM 132
2441
+ #define X509_R_WRONG_LOOKUP_TYPE 133
2442
+ #define X509_R_WRONG_TYPE 134
2443
+ #define X509_R_NAME_TOO_LONG 135
2444
+ #define X509_R_INVALID_PARAMETER 136
2445
+ #define X509_R_SIGNATURE_ALGORITHM_MISMATCH 137
2446
+ #define X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER 138
2447
+ #define X509_R_INVALID_FIELD_FOR_VERSION 139
2448
+ #define X509_R_INVALID_VERSION 140
2449
+
2450
+ #endif