grpc 1.33.0.pre1 → 1.34.0

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

Potentially problematic release.


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

Files changed (533) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +342 -134
  3. data/include/grpc/grpc.h +1 -2
  4. data/include/grpc/grpc_security.h +149 -172
  5. data/include/grpc/impl/codegen/grpc_types.h +9 -2
  6. data/include/grpc/impl/codegen/port_platform.h +22 -55
  7. data/src/core/ext/filters/client_channel/client_channel.cc +11 -34
  8. data/src/core/ext/filters/client_channel/config_selector.h +2 -3
  9. data/src/core/ext/filters/client_channel/health/health_check_client.cc +4 -1
  10. data/src/core/ext/filters/client_channel/health/health_check_client.h +2 -2
  11. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  12. data/src/core/ext/filters/client_channel/lb_policy.cc +5 -1
  13. data/src/core/ext/filters/client_channel/lb_policy.h +3 -3
  14. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +1 -1
  15. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +80 -71
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  18. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +2 -2
  19. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +47 -17
  20. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +2 -2
  21. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +8 -5
  22. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +1 -1
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +16 -243
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +53 -17
  26. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +809 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +20 -25
  28. data/src/core/ext/filters/client_channel/resolver.cc +3 -1
  29. data/src/core/ext/filters/client_channel/resolver.h +4 -1
  30. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +1 -1
  31. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -1
  32. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +1 -1
  33. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
  34. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  35. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +20 -0
  36. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +66 -7
  37. data/src/core/ext/filters/client_channel/resolver_registry.cc +4 -4
  38. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +13 -25
  39. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +1 -1
  40. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +2 -2
  41. data/src/core/ext/filters/client_channel/retry_throttle.h +1 -1
  42. data/src/core/ext/filters/client_channel/server_address.h +0 -4
  43. data/src/core/ext/filters/client_channel/service_config.cc +3 -1
  44. data/src/core/ext/filters/client_channel/service_config.h +1 -1
  45. data/src/core/ext/filters/client_channel/subchannel.cc +18 -15
  46. data/src/core/ext/filters/client_channel/subchannel.h +2 -2
  47. data/src/core/ext/filters/client_channel/subchannel_interface.h +7 -15
  48. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  49. data/src/core/ext/filters/deadline/deadline_filter.cc +83 -77
  50. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  51. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  52. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  53. data/src/core/ext/filters/max_age/max_age_filter.cc +1 -1
  54. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
  55. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +17 -3
  56. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  57. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +4 -24
  58. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -2
  59. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  60. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  61. data/src/core/ext/transport/chttp2/transport/internal.h +0 -1
  62. data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
  63. data/src/core/ext/transport/chttp2/transport/writing.cc +1 -2
  64. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  65. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  66. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  67. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  68. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
  69. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  70. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  71. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  72. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
  73. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  74. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  75. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  76. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
  77. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  78. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  79. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  80. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  81. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  82. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
  83. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
  84. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  86. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  87. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  88. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  89. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  91. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  92. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  94. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  95. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  96. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  97. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  98. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
  99. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  100. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  101. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  102. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
  103. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  104. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
  105. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  106. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  107. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  108. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  109. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  110. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  111. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  112. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
  113. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  114. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
  115. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  116. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
  117. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  118. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
  119. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  120. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
  121. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
  122. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  123. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  124. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
  125. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  126. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
  127. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  128. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  129. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  130. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
  131. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  132. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
  133. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  134. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
  135. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  136. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  137. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  138. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  139. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  140. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
  141. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
  142. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
  143. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  144. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
  145. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  146. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
  147. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  148. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
  149. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  150. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  151. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  152. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  153. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  154. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  155. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  156. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  157. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  158. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  159. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  160. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
  161. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  162. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  163. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  164. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  165. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  166. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  167. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  168. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  169. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
  170. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  171. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  172. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  173. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  174. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  175. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  176. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  177. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  178. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  179. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  180. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +38 -0
  181. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  182. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  183. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  184. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +39 -0
  185. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  186. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  187. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  188. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  189. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  190. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +39 -0
  191. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  192. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  193. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  194. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  195. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  196. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  197. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  198. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  199. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  200. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  201. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  202. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  203. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  204. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  205. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  206. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
  207. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
  208. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
  209. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
  210. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
  211. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
  212. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
  213. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
  214. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
  215. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
  216. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
  217. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
  218. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
  219. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  220. data/src/core/ext/xds/certificate_provider_factory.h +7 -5
  221. data/src/core/ext/xds/certificate_provider_store.cc +84 -0
  222. data/src/core/ext/xds/certificate_provider_store.h +65 -8
  223. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +119 -0
  224. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +72 -0
  225. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +28 -140
  226. data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +6 -4
  227. data/src/core/ext/xds/xds_api.cc +241 -718
  228. data/src/core/ext/xds/xds_api.h +50 -9
  229. data/src/core/ext/xds/xds_bootstrap.cc +172 -25
  230. data/src/core/ext/xds/xds_bootstrap.h +23 -7
  231. data/src/core/ext/xds/xds_certificate_provider.cc +240 -0
  232. data/src/core/ext/xds/xds_certificate_provider.h +74 -0
  233. data/src/core/ext/xds/xds_client.cc +161 -128
  234. data/src/core/ext/xds/xds_client.h +12 -11
  235. data/src/core/ext/xds/xds_client_stats.cc +41 -4
  236. data/src/core/ext/xds/xds_client_stats.h +2 -2
  237. data/src/core/lib/channel/channel_args.cc +2 -1
  238. data/src/core/lib/channel/channel_trace.cc +4 -2
  239. data/src/core/lib/channel/channelz.h +2 -2
  240. data/src/core/lib/channel/handshaker.h +2 -2
  241. data/src/core/lib/compression/compression.cc +8 -4
  242. data/src/core/lib/compression/compression_internal.cc +10 -5
  243. data/src/core/lib/compression/compression_internal.h +2 -1
  244. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  245. data/src/core/lib/debug/stats_data.cc +1 -0
  246. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  247. data/src/core/lib/gpr/log_linux.cc +17 -3
  248. data/src/core/lib/gpr/log_posix.cc +13 -1
  249. data/src/core/lib/gpr/log_windows.cc +16 -4
  250. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  251. data/src/core/lib/gpr/string.cc +1 -1
  252. data/src/core/lib/gpr/time_precise.cc +3 -2
  253. data/src/core/lib/gpr/tls.h +4 -0
  254. data/src/core/lib/gpr/tls_msvc.h +2 -0
  255. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  256. data/src/core/lib/gpr/useful.h +5 -4
  257. data/src/core/lib/gprpp/dual_ref_counted.h +44 -49
  258. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  259. data/src/core/lib/gprpp/examine_stack.h +46 -0
  260. data/src/core/lib/gprpp/fork.cc +2 -2
  261. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  262. data/src/core/lib/gprpp/orphanable.h +4 -8
  263. data/src/core/lib/gprpp/ref_counted.h +40 -46
  264. data/src/core/lib/gprpp/ref_counted_ptr.h +9 -11
  265. data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
  266. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  267. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  268. data/src/core/lib/gprpp/thd.h +2 -2
  269. data/src/core/lib/gprpp/thd_posix.cc +36 -36
  270. data/src/core/lib/http/parser.cc +46 -25
  271. data/src/core/lib/iomgr/error.cc +2 -1
  272. data/src/core/lib/iomgr/ev_epollex_linux.cc +8 -4
  273. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  274. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  275. data/src/core/lib/iomgr/executor/threadpool.h +3 -3
  276. data/src/core/lib/iomgr/parse_address.cc +84 -6
  277. data/src/core/lib/iomgr/parse_address.h +20 -0
  278. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
  279. data/src/core/lib/iomgr/python_util.h +3 -3
  280. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
  281. data/src/core/lib/iomgr/tcp_posix.cc +3 -2
  282. data/src/core/lib/iomgr/timer_custom.cc +2 -2
  283. data/src/core/lib/iomgr/unix_sockets_posix.cc +27 -15
  284. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  285. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  286. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  287. data/src/core/lib/json/json.h +2 -2
  288. data/src/core/lib/json/json_reader.cc +8 -4
  289. data/src/core/lib/json/json_util.h +167 -0
  290. data/src/core/lib/json/json_writer.cc +2 -1
  291. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +3 -1
  292. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +5 -4
  293. data/src/core/lib/security/authorization/mock_cel/cel_value.h +4 -0
  294. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +6 -6
  295. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +10 -9
  296. data/src/core/lib/security/context/security_context.h +3 -1
  297. data/src/core/lib/security/credentials/credentials.cc +1 -1
  298. data/src/core/lib/security/credentials/credentials.h +3 -3
  299. data/src/core/lib/security/credentials/external/aws_request_signer.cc +208 -0
  300. data/src/core/lib/security/credentials/external/aws_request_signer.h +73 -0
  301. data/src/core/lib/security/credentials/external/external_account_credentials.cc +311 -0
  302. data/src/core/lib/security/credentials/external/external_account_credentials.h +118 -0
  303. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
  304. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
  305. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +211 -0
  306. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +59 -0
  307. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +51 -0
  308. data/src/core/lib/security/credentials/jwt/json_token.cc +5 -2
  309. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  310. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -1
  311. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -2
  312. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +35 -5
  313. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +12 -8
  314. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +78 -0
  315. data/src/core/lib/security/{certificate_provider.h → credentials/tls/grpc_tls_certificate_provider.h} +32 -18
  316. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +77 -149
  317. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +58 -187
  318. data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
  319. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  320. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
  321. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +88 -0
  322. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +70 -0
  323. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  324. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  325. data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
  326. data/src/core/lib/security/security_connector/security_connector.cc +1 -1
  327. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  328. data/src/core/lib/security/security_connector/ssl_utils.h +4 -2
  329. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +293 -275
  330. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +106 -61
  331. data/src/core/lib/security/transport/security_handshaker.cc +1 -1
  332. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  333. data/src/core/lib/security/util/json_util.h +1 -0
  334. data/src/core/lib/slice/slice.cc +7 -4
  335. data/src/core/lib/slice/slice_buffer.cc +2 -1
  336. data/src/core/lib/slice/slice_intern.cc +2 -2
  337. data/src/core/lib/surface/call.cc +9 -8
  338. data/src/core/lib/surface/completion_queue.cc +7 -6
  339. data/src/core/lib/surface/server.cc +4 -2
  340. data/src/core/lib/surface/server.h +2 -2
  341. data/src/core/lib/surface/validate_metadata.h +3 -0
  342. data/src/core/lib/surface/version.cc +2 -2
  343. data/src/core/lib/transport/authority_override.h +2 -0
  344. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  345. data/src/core/lib/transport/byte_stream.h +3 -3
  346. data/src/core/lib/transport/connectivity_state.h +3 -3
  347. data/src/core/lib/transport/metadata.h +2 -2
  348. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  349. data/src/core/lib/transport/transport.cc +5 -3
  350. data/src/core/lib/transport/transport.h +1 -1
  351. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  352. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -3
  353. data/src/core/tsi/fake_transport_security.cc +1 -0
  354. data/src/core/tsi/local_transport_security.cc +5 -1
  355. data/src/core/tsi/local_transport_security.h +6 -7
  356. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
  357. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
  358. data/src/core/tsi/ssl_transport_security.cc +14 -7
  359. data/src/core/tsi/ssl_transport_security.h +3 -0
  360. data/src/core/tsi/transport_security.cc +4 -2
  361. data/src/ruby/ext/grpc/extconf.rb +1 -1
  362. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +22 -14
  363. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +36 -24
  364. data/src/ruby/lib/grpc/version.rb +1 -1
  365. data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
  366. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  367. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  368. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  369. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  370. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  371. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  372. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
  373. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  374. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  375. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
  376. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  377. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  378. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  379. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  380. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  381. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  382. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  383. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  384. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  385. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  386. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  387. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  388. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  389. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  390. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  391. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  392. data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
  393. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +2 -1
  394. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  395. data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
  396. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  397. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
  398. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
  399. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
  400. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
  401. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
  402. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
  403. data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
  404. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
  405. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
  406. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
  407. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
  408. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
  409. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
  410. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
  411. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
  412. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
  413. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
  414. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
  415. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  416. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
  417. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  418. data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
  419. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  420. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  421. data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
  422. data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
  423. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  424. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  425. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  426. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  427. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  428. data/third_party/abseil-cpp/absl/status/status.cc +4 -6
  429. data/third_party/abseil-cpp/absl/status/status.h +502 -113
  430. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
  431. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  432. data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
  433. data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
  434. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  435. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  436. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  437. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  438. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  439. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
  440. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  441. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  442. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  443. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  444. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  445. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  451. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  452. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  453. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  454. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  455. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  456. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  457. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  458. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  459. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  460. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  461. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  462. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +3 -3
  463. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
  464. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
  465. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
  466. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
  467. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
  468. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
  469. data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
  470. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  471. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  472. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  473. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  474. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  475. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  476. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  477. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  478. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  481. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  482. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  483. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  484. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  485. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  486. data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
  487. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  488. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  489. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  490. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  491. data/third_party/boringssl-with-bazel/err_data.c +340 -336
  492. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  494. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +46 -7
  495. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +90 -63
  497. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +60 -60
  498. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +179 -47
  499. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
  501. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  502. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
  503. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  504. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  505. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +7 -5
  506. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -2
  507. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  508. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  509. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  511. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +55 -1
  512. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
  513. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +31 -23
  514. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +435 -394
  515. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  516. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  517. data/third_party/boringssl-with-bazel/src/ssl/internal.h +36 -1
  518. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
  519. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +67 -0
  520. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
  521. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +216 -11
  522. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +53 -11
  523. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +133 -39
  524. data/third_party/upb/upb/def.c +2169 -0
  525. data/third_party/upb/upb/def.h +330 -0
  526. data/third_party/upb/upb/def.hpp +525 -0
  527. data/third_party/upb/upb/reflection.c +391 -0
  528. data/third_party/upb/upb/reflection.h +168 -0
  529. data/third_party/upb/upb/text_encode.c +398 -0
  530. data/third_party/upb/upb/text_encode.h +35 -0
  531. metadata +227 -37
  532. data/src/core/ext/filters/client_channel/lb_policy/xds/eds_drop.cc +0 -571
  533. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
@@ -2776,6 +2776,51 @@ OPENSSL_EXPORT void SSL_CTX_set_allow_unknown_alpn_protos(SSL_CTX *ctx,
2776
2776
  int enabled);
2777
2777
 
2778
2778
 
2779
+ // Application-layer protocol settings
2780
+ //
2781
+ // The ALPS extension (draft-vvv-tls-alps) allows exchanging application-layer
2782
+ // settings in the TLS handshake for applications negotiated with ALPN. Note
2783
+ // that, when ALPS is negotiated, the client and server each advertise their own
2784
+ // settings, so there are functions to both configure setting to send and query
2785
+ // received settings.
2786
+
2787
+ // SSL_add_application_settings configures |ssl| to enable ALPS with ALPN
2788
+ // protocol |proto|, sending an ALPS value of |settings|. It returns one on
2789
+ // success and zero on error. If |proto| is negotiated via ALPN and the peer
2790
+ // supports ALPS, |settings| will be sent to the peer. The peer's ALPS value can
2791
+ // be retrieved with |SSL_get0_peer_application_settings|.
2792
+ //
2793
+ // On the client, this function should be called before the handshake, once for
2794
+ // each supported ALPN protocol which uses ALPS. |proto| must be included in the
2795
+ // client's ALPN configuration (see |SSL_CTX_set_alpn_protos| and
2796
+ // |SSL_set_alpn_protos|). On the server, ALPS can be preconfigured for each
2797
+ // protocol as in the client, or configuration can be deferred to the ALPN
2798
+ // callback (see |SSL_CTX_set_alpn_select_cb|), in which case only the selected
2799
+ // protocol needs to be configured.
2800
+ //
2801
+ // ALPS can be independently configured from 0-RTT, however changes in protocol
2802
+ // settings will fallback to 1-RTT to negotiate the new value, so it is
2803
+ // recommended for |settings| to be relatively stable.
2804
+ OPENSSL_EXPORT int SSL_add_application_settings(SSL *ssl, const uint8_t *proto,
2805
+ size_t proto_len,
2806
+ const uint8_t *settings,
2807
+ size_t settings_len);
2808
+
2809
+ // SSL_get0_peer_application_settings sets |*out_data| and |*out_len| to a
2810
+ // buffer containing the peer's ALPS value, or the empty string if ALPS was not
2811
+ // negotiated. Note an empty string could also indicate the peer sent an empty
2812
+ // settings value. Use |SSL_has_application_settings| to check if ALPS was
2813
+ // negotiated. The output buffer is owned by |ssl| and is valid until the next
2814
+ // time |ssl| is modified.
2815
+ OPENSSL_EXPORT void SSL_get0_peer_application_settings(const SSL *ssl,
2816
+ const uint8_t **out_data,
2817
+ size_t *out_len);
2818
+
2819
+ // SSL_has_application_settings returns one if ALPS was negotiated on this
2820
+ // connection and zero otherwise.
2821
+ OPENSSL_EXPORT int SSL_has_application_settings(const SSL *ssl);
2822
+
2823
+
2779
2824
  // Certificate compression.
2780
2825
  //
2781
2826
  // Certificates in TLS 1.3 can be compressed[1]. BoringSSL supports this as both
@@ -3493,8 +3538,10 @@ enum ssl_early_data_reason_t BORINGSSL_ENUM_INT {
3493
3538
  ssl_early_data_ticket_age_skew = 12,
3494
3539
  // QUIC parameters differ between this connection and the original.
3495
3540
  ssl_early_data_quic_parameter_mismatch = 13,
3541
+ // The application settings did not match the session.
3542
+ ssl_early_data_alps_mismatch = 14,
3496
3543
  // The value of the largest entry.
3497
- ssl_early_data_reason_max_value = ssl_early_data_quic_parameter_mismatch,
3544
+ ssl_early_data_reason_max_value = ssl_early_data_alps_mismatch,
3498
3545
  };
3499
3546
 
3500
3547
  // SSL_get_early_data_reason returns details why 0-RTT was accepted or rejected
@@ -3502,6 +3549,11 @@ enum ssl_early_data_reason_t BORINGSSL_ENUM_INT {
3502
3549
  OPENSSL_EXPORT enum ssl_early_data_reason_t SSL_get_early_data_reason(
3503
3550
  const SSL *ssl);
3504
3551
 
3552
+ // SSL_early_data_reason_string returns a string representation for |reason|, or
3553
+ // NULL if |reason| is unknown. This function may be used for logging.
3554
+ OPENSSL_EXPORT const char *SSL_early_data_reason_string(
3555
+ enum ssl_early_data_reason_t reason);
3556
+
3505
3557
 
3506
3558
  // Alerts.
3507
3559
  //
@@ -5217,6 +5269,8 @@ BSSL_NAMESPACE_END
5217
5269
  #define SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED 305
5218
5270
  #define SSL_R_UNEXPECTED_COMPATIBILITY_MODE 306
5219
5271
  #define SSL_R_MISSING_ALPN 307
5272
+ #define SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN 308
5273
+ #define SSL_R_ALPS_MISMATCH_ON_EARLY_DATA 309
5220
5274
  #define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY 1000
5221
5275
  #define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
5222
5276
  #define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
@@ -235,6 +235,10 @@ extern "C" {
235
235
  // ExtensionType value from draft-ietf-tls-subcerts.
236
236
  #define TLSEXT_TYPE_delegated_credential 0x22
237
237
 
238
+ // ExtensionType value from draft-vvv-tls-alps. This is not an IANA defined
239
+ // extension number.
240
+ #define TLSEXT_TYPE_application_settings 17513
241
+
238
242
  // ExtensionType value from RFC6962
239
243
  #define TLSEXT_TYPE_certificate_timestamp 18
240
244
 
@@ -40,18 +40,12 @@ extern "C" {
40
40
  // PMBTokens and P-384.
41
41
  OPENSSL_EXPORT const TRUST_TOKEN_METHOD *TRUST_TOKEN_experiment_v1(void);
42
42
 
43
- // TRUST_TOKEN_experiment_v2_pp is an experimental Trust Tokens protocol using
44
- // PMBTokens (with no private metadata) and P-384 with up to 6 keys, without RR
45
- // verification.
46
- //
47
- // This version is incomplete and should not be used.
48
- // TODO(svaldez): Update to use the PrivacyPass primitive
49
- OPENSSL_EXPORT const TRUST_TOKEN_METHOD *TRUST_TOKEN_experiment_v2_pp(void);
43
+ // TRUST_TOKEN_experiment_v2_voprf is an experimental Trust Tokens protocol
44
+ // using VOPRFs and P-384 with up to 6 keys, without RR verification.
45
+ OPENSSL_EXPORT const TRUST_TOKEN_METHOD *TRUST_TOKEN_experiment_v2_voprf(void);
50
46
 
51
47
  // TRUST_TOKEN_experiment_v2_pmb is an experimental Trust Tokens protocol using
52
48
  // PMBTokens and P-384 with up to 3 keys, without RR verification.
53
- //
54
- // This version is incomplete and should not be used.
55
49
  OPENSSL_EXPORT const TRUST_TOKEN_METHOD *TRUST_TOKEN_experiment_v2_pmb(void);
56
50
 
57
51
  // trust_token_st represents a single-use token for the Trust Token protocol.
@@ -152,9 +146,9 @@ OPENSSL_EXPORT STACK_OF(TRUST_TOKEN) *
152
146
  // |token| and receive a signature over |data| and serializes the request into
153
147
  // a newly-allocated buffer, setting |*out| to that buffer and |*out_len| to
154
148
  // its length. |time| is the number of seconds since the UNIX epoch and used to
155
- // verify the validity of the issuer's response. The caller takes ownership of
156
- // the buffer and must call |OPENSSL_free| when done. It returns one on success
157
- // or zero on error.
149
+ // verify the validity of the issuer's response in TrustTokenV1 and ignored in
150
+ // other versions. The caller takes ownership of the buffer and must call
151
+ // |OPENSSL_free| when done. It returns one on success or zero on error.
158
152
  OPENSSL_EXPORT int TRUST_TOKEN_CLIENT_begin_redemption(
159
153
  TRUST_TOKEN_CLIENT *ctx, uint8_t **out, size_t *out_len,
160
154
  const TRUST_TOKEN *token, const uint8_t *data, size_t data_len,
@@ -165,12 +159,8 @@ OPENSSL_EXPORT int TRUST_TOKEN_CLIENT_begin_redemption(
165
159
  // |*out_rr| and |*out_rr_len| (respectively, |*out_sig| and |*out_sig_len|)
166
160
  // to a newly-allocated buffer containing the SRR (respectively, the SRR
167
161
  // signature). In other versions, it sets |*out_rr| and |*out_rr_len|
168
- // (respectively, |*out_sig| and |*out_sig_len|) to a newly-allocated buffer
169
- // containing the SRR (respectively, the SRR signature). It returns one on
170
- // success or zero on failure.
171
- //
172
- // TODO(svaldez): Return the entire response in |*out_rr| and omit |*out_sig| in
173
- // non-|TRUST_TOKEN_experiment_v1| versions.
162
+ // to a newly-allocated buffer containing |response| and leaves all validation
163
+ // to the caller. It returns one on success or zero on failure.
174
164
  OPENSSL_EXPORT int TRUST_TOKEN_CLIENT_finish_redemption(
175
165
  TRUST_TOKEN_CLIENT *ctx, uint8_t **out_rr, size_t *out_rr_len,
176
166
  uint8_t **out_sig, size_t *out_sig_len, const uint8_t *response,
@@ -234,16 +224,16 @@ OPENSSL_EXPORT int TRUST_TOKEN_ISSUER_issue(
234
224
  uint32_t public_metadata, uint8_t private_metadata, size_t max_issuance);
235
225
 
236
226
  // TRUST_TOKEN_ISSUER_redeem ingests a |request| for token redemption and
237
- // verifies the token. If the token is valid, a SRR is produced with a lifetime
227
+ // verifies the token. If the token is valid, a RR is produced with a lifetime
238
228
  // of |lifetime| (in seconds), signing over the requested data from the request
239
229
  // and the value of the token, storing the result into a newly-allocated buffer
240
230
  // and setting |*out| to that buffer and |*out_len| to its length. The extracted
241
231
  // |TRUST_TOKEN| is stored into a newly-allocated buffer and stored in
242
232
  // |*out_token|. The extracted client data is stored into a newly-allocated
243
- // buffer and stored in |*out_client_data|. The extracted redemption time is
244
- // stored in |*out_redemption_time|. The caller takes ownership of each output
245
- // buffer and must call |OPENSSL_free| when done. It returns one on success or
246
- // zero on error.
233
+ // buffer and stored in |*out_client_data|. In TrustTokenV1, the extracted
234
+ // redemption time is stored in |*out_redemption_time|. The caller takes
235
+ // ownership of each output buffer and must call |OPENSSL_free| when done. It
236
+ // returns one on success or zero on error.
247
237
  //
248
238
  // The caller must keep track of all values of |*out_token| seen globally before
249
239
  // returning the SRR to the client. If the value has been reused, the caller
@@ -255,6 +245,24 @@ OPENSSL_EXPORT int TRUST_TOKEN_ISSUER_redeem(
255
245
  size_t *out_client_data_len, uint64_t *out_redemption_time,
256
246
  const uint8_t *request, size_t request_len, uint64_t lifetime);
257
247
 
248
+ // TRUST_TOKEN_ISSUER_redeem_raw ingests a |request| for token redemption and
249
+ // verifies the token. The public metadata is stored in |*out_public|. The
250
+ // private metadata (if any) is stored in |*out_private|. The extracted
251
+ // |TRUST_TOKEN| is stored into a newly-allocated buffer and stored in
252
+ // |*out_token|. The extracted client data is stored into a newly-allocated
253
+ // buffer and stored in |*out_client_data|. The caller takes ownership of each
254
+ // output buffer and must call |OPENSSL_free| when done. It returns one on
255
+ // success or zero on error.
256
+ //
257
+ // The caller must keep track of all values of |*out_token| seen globally before
258
+ // returning a response to the client. If the value has been reused, the caller
259
+ // must report an error to the client. Returning a response with replayed values
260
+ // allows an attacker to double-spend tokens.
261
+ OPENSSL_EXPORT int TRUST_TOKEN_ISSUER_redeem_raw(
262
+ const TRUST_TOKEN_ISSUER *ctx, uint32_t *out_public, uint8_t *out_private,
263
+ TRUST_TOKEN **out_token, uint8_t **out_client_data,
264
+ size_t *out_client_data_len, const uint8_t *request, size_t request_len);
265
+
258
266
  // TRUST_TOKEN_decode_private_metadata decodes |encrypted_bit| using the
259
267
  // private metadata key specified by a |key| buffer of length |key_len| and the
260
268
  // nonce by a |nonce| buffer of length |nonce_len|. The nonce in
@@ -8,7 +8,7 @@
8
8
  * are met:
9
9
  *
10
10
  * 1. Redistributions of source code must retain the above copyright
11
- * notice, this list of conditions and the following disclaimer.
11
+ * notice, this list of conditions and the following disclaimer.
12
12
  *
13
13
  * 2. Redistributions in binary form must reproduce the above copyright
14
14
  * notice, this list of conditions and the following disclaimer in
@@ -57,153 +57,152 @@
57
57
 
58
58
  #include <openssl/bio.h>
59
59
  #include <openssl/conf.h>
60
- #include <openssl/x509.h>
61
60
  #include <openssl/lhash.h>
61
+ #include <openssl/x509.h>
62
62
 
63
63
  #ifdef __cplusplus
64
64
  extern "C" {
65
65
  #endif
66
66
 
67
67
 
68
- /* Legacy X.509 library.
69
- *
70
- * This header is part of OpenSSL's X.509 implementation. It is retained for
71
- * compatibility but otherwise underdocumented and not actively maintained. In
72
- * the future, a replacement library will be available. Meanwhile, minimize
73
- * dependencies on this header where possible. */
68
+ // Legacy X.509 library.
69
+ //
70
+ // This header is part of OpenSSL's X.509 implementation. It is retained for
71
+ // compatibility but otherwise underdocumented and not actively maintained. In
72
+ // the future, a replacement library will be available. Meanwhile, minimize
73
+ // dependencies on this header where possible.
74
74
 
75
75
 
76
- /* Forward reference */
76
+ // Forward reference
77
77
  struct v3_ext_method;
78
78
  struct v3_ext_ctx;
79
79
 
80
- /* Useful typedefs */
80
+ // Useful typedefs
81
81
 
82
- typedef void * (*X509V3_EXT_NEW)(void);
82
+ typedef void *(*X509V3_EXT_NEW)(void);
83
83
  typedef void (*X509V3_EXT_FREE)(void *);
84
- typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long);
84
+ typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
85
85
  typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
86
- typedef STACK_OF(CONF_VALUE) *
87
- (*X509V3_EXT_I2V)(const struct v3_ext_method *method, void *ext,
88
- STACK_OF(CONF_VALUE) *extlist);
89
- typedef void * (*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
- struct v3_ext_ctx *ctx,
91
- STACK_OF(CONF_VALUE) *values);
92
- typedef char * (*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
- typedef void * (*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
- struct v3_ext_ctx *ctx, const char *str);
86
+ typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(
87
+ const struct v3_ext_method *method, void *ext,
88
+ STACK_OF(CONF_VALUE) *extlist);
89
+ typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
+ struct v3_ext_ctx *ctx,
91
+ STACK_OF(CONF_VALUE) *values);
92
+ typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
+ typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
+ struct v3_ext_ctx *ctx, const char *str);
95
95
  typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext,
96
- BIO *out, int indent);
97
- typedef void * (*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
- struct v3_ext_ctx *ctx, const char *str);
96
+ BIO *out, int indent);
97
+ typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
+ struct v3_ext_ctx *ctx, const char *str);
99
99
 
100
- /* V3 extension structure */
100
+ // V3 extension structure
101
101
 
102
102
  struct v3_ext_method {
103
- int ext_nid;
104
- int ext_flags;
105
- /* If this is set the following four fields are ignored */
106
- ASN1_ITEM_EXP *it;
107
- /* Old style ASN1 calls */
108
- X509V3_EXT_NEW ext_new;
109
- X509V3_EXT_FREE ext_free;
110
- X509V3_EXT_D2I d2i;
111
- X509V3_EXT_I2D i2d;
112
-
113
- /* The following pair is used for string extensions */
114
- X509V3_EXT_I2S i2s;
115
- X509V3_EXT_S2I s2i;
116
-
117
- /* The following pair is used for multi-valued extensions */
118
- X509V3_EXT_I2V i2v;
119
- X509V3_EXT_V2I v2i;
120
-
121
- /* The following are used for raw extensions */
122
- X509V3_EXT_I2R i2r;
123
- X509V3_EXT_R2I r2i;
124
-
125
- void *usr_data; /* Any extension specific data */
103
+ int ext_nid;
104
+ int ext_flags;
105
+ // If this is set the following four fields are ignored
106
+ ASN1_ITEM_EXP *it;
107
+ // Old style ASN1 calls
108
+ X509V3_EXT_NEW ext_new;
109
+ X509V3_EXT_FREE ext_free;
110
+ X509V3_EXT_D2I d2i;
111
+ X509V3_EXT_I2D i2d;
112
+
113
+ // The following pair is used for string extensions
114
+ X509V3_EXT_I2S i2s;
115
+ X509V3_EXT_S2I s2i;
116
+
117
+ // The following pair is used for multi-valued extensions
118
+ X509V3_EXT_I2V i2v;
119
+ X509V3_EXT_V2I v2i;
120
+
121
+ // The following are used for raw extensions
122
+ X509V3_EXT_I2R i2r;
123
+ X509V3_EXT_R2I r2i;
124
+
125
+ void *usr_data; // Any extension specific data
126
126
  };
127
127
 
128
128
  typedef struct X509V3_CONF_METHOD_st {
129
- char * (*get_string)(void *db, const char *section, const char *value);
130
- STACK_OF(CONF_VALUE) * (*get_section)(void *db, const char *section);
131
- void (*free_string)(void *db, char * string);
132
- void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
129
+ char *(*get_string)(void *db, const char *section, const char *value);
130
+ STACK_OF(CONF_VALUE) *(*get_section)(void *db, const char *section);
131
+ void (*free_string)(void *db, char *string);
132
+ void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
133
133
  } X509V3_CONF_METHOD;
134
134
 
135
- /* Context specific info */
135
+ // Context specific info
136
136
  struct v3_ext_ctx {
137
137
  #define CTX_TEST 0x1
138
- int flags;
139
- X509 *issuer_cert;
140
- X509 *subject_cert;
141
- X509_REQ *subject_req;
142
- X509_CRL *crl;
143
- const X509V3_CONF_METHOD *db_meth;
144
- void *db;
145
- /* Maybe more here */
138
+ int flags;
139
+ X509 *issuer_cert;
140
+ X509 *subject_cert;
141
+ X509_REQ *subject_req;
142
+ X509_CRL *crl;
143
+ const X509V3_CONF_METHOD *db_meth;
144
+ void *db;
145
+ // Maybe more here
146
146
  };
147
147
 
148
148
  typedef struct v3_ext_method X509V3_EXT_METHOD;
149
149
 
150
150
  DEFINE_STACK_OF(X509V3_EXT_METHOD)
151
151
 
152
- /* ext_flags values */
153
- #define X509V3_EXT_DYNAMIC 0x1
154
- #define X509V3_EXT_CTX_DEP 0x2
155
- #define X509V3_EXT_MULTILINE 0x4
152
+ // ext_flags values
153
+ #define X509V3_EXT_DYNAMIC 0x1
154
+ #define X509V3_EXT_CTX_DEP 0x2
155
+ #define X509V3_EXT_MULTILINE 0x4
156
156
 
157
157
  typedef BIT_STRING_BITNAME ENUMERATED_NAMES;
158
158
 
159
159
  struct BASIC_CONSTRAINTS_st {
160
- int ca;
161
- ASN1_INTEGER *pathlen;
160
+ int ca;
161
+ ASN1_INTEGER *pathlen;
162
162
  };
163
163
 
164
164
 
165
165
  typedef struct otherName_st {
166
- ASN1_OBJECT *type_id;
167
- ASN1_TYPE *value;
166
+ ASN1_OBJECT *type_id;
167
+ ASN1_TYPE *value;
168
168
  } OTHERNAME;
169
169
 
170
170
  typedef struct EDIPartyName_st {
171
- ASN1_STRING *nameAssigner;
172
- ASN1_STRING *partyName;
171
+ ASN1_STRING *nameAssigner;
172
+ ASN1_STRING *partyName;
173
173
  } EDIPARTYNAME;
174
174
 
175
175
  typedef struct GENERAL_NAME_st {
176
-
177
- #define GEN_OTHERNAME 0
178
- #define GEN_EMAIL 1
179
- #define GEN_DNS 2
180
- #define GEN_X400 3
181
- #define GEN_DIRNAME 4
182
- #define GEN_EDIPARTY 5
183
- #define GEN_URI 6
184
- #define GEN_IPADD 7
185
- #define GEN_RID 8
186
-
187
- int type;
188
- union {
189
- char *ptr;
190
- OTHERNAME *otherName; /* otherName */
191
- ASN1_IA5STRING *rfc822Name;
192
- ASN1_IA5STRING *dNSName;
193
- ASN1_TYPE *x400Address;
194
- X509_NAME *directoryName;
195
- EDIPARTYNAME *ediPartyName;
196
- ASN1_IA5STRING *uniformResourceIdentifier;
197
- ASN1_OCTET_STRING *iPAddress;
198
- ASN1_OBJECT *registeredID;
199
-
200
- /* Old names */
201
- ASN1_OCTET_STRING *ip; /* iPAddress */
202
- X509_NAME *dirn; /* dirn */
203
- ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */
204
- ASN1_OBJECT *rid; /* registeredID */
205
- ASN1_TYPE *other; /* x400Address */
206
- } d;
176
+ #define GEN_OTHERNAME 0
177
+ #define GEN_EMAIL 1
178
+ #define GEN_DNS 2
179
+ #define GEN_X400 3
180
+ #define GEN_DIRNAME 4
181
+ #define GEN_EDIPARTY 5
182
+ #define GEN_URI 6
183
+ #define GEN_IPADD 7
184
+ #define GEN_RID 8
185
+
186
+ int type;
187
+ union {
188
+ char *ptr;
189
+ OTHERNAME *otherName; // otherName
190
+ ASN1_IA5STRING *rfc822Name;
191
+ ASN1_IA5STRING *dNSName;
192
+ ASN1_TYPE *x400Address;
193
+ X509_NAME *directoryName;
194
+ EDIPARTYNAME *ediPartyName;
195
+ ASN1_IA5STRING *uniformResourceIdentifier;
196
+ ASN1_OCTET_STRING *iPAddress;
197
+ ASN1_OBJECT *registeredID;
198
+
199
+ // Old names
200
+ ASN1_OCTET_STRING *ip; // iPAddress
201
+ X509_NAME *dirn; // dirn
202
+ ASN1_IA5STRING *ia5; // rfc822Name, dNSName, uniformResourceIdentifier
203
+ ASN1_OBJECT *rid; // registeredID
204
+ ASN1_TYPE *other; // x400Address
205
+ } d;
207
206
  } GENERAL_NAME;
208
207
 
209
208
  DEFINE_STACK_OF(GENERAL_NAME)
@@ -214,8 +213,8 @@ typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
214
213
  DEFINE_STACK_OF(GENERAL_NAMES)
215
214
 
216
215
  typedef struct ACCESS_DESCRIPTION_st {
217
- ASN1_OBJECT *method;
218
- GENERAL_NAME *location;
216
+ ASN1_OBJECT *method;
217
+ GENERAL_NAME *location;
219
218
  } ACCESS_DESCRIPTION;
220
219
 
221
220
  DEFINE_STACK_OF(ACCESS_DESCRIPTION)
@@ -226,34 +225,34 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
226
225
  typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;
227
226
 
228
227
  typedef struct DIST_POINT_NAME_st {
229
- int type;
230
- union {
231
- GENERAL_NAMES *fullname;
232
- STACK_OF(X509_NAME_ENTRY) *relativename;
233
- } name;
234
- /* If relativename then this contains the full distribution point name */
235
- X509_NAME *dpname;
228
+ int type;
229
+ union {
230
+ GENERAL_NAMES *fullname;
231
+ STACK_OF(X509_NAME_ENTRY) *relativename;
232
+ } name;
233
+ // If relativename then this contains the full distribution point name
234
+ X509_NAME *dpname;
236
235
  } DIST_POINT_NAME;
237
- /* All existing reasons */
238
- #define CRLDP_ALL_REASONS 0x807f
239
-
240
- #define CRL_REASON_NONE (-1)
241
- #define CRL_REASON_UNSPECIFIED 0
242
- #define CRL_REASON_KEY_COMPROMISE 1
243
- #define CRL_REASON_CA_COMPROMISE 2
244
- #define CRL_REASON_AFFILIATION_CHANGED 3
245
- #define CRL_REASON_SUPERSEDED 4
246
- #define CRL_REASON_CESSATION_OF_OPERATION 5
247
- #define CRL_REASON_CERTIFICATE_HOLD 6
248
- #define CRL_REASON_REMOVE_FROM_CRL 8
249
- #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
250
- #define CRL_REASON_AA_COMPROMISE 10
236
+ // All existing reasons
237
+ #define CRLDP_ALL_REASONS 0x807f
238
+
239
+ #define CRL_REASON_NONE (-1)
240
+ #define CRL_REASON_UNSPECIFIED 0
241
+ #define CRL_REASON_KEY_COMPROMISE 1
242
+ #define CRL_REASON_CA_COMPROMISE 2
243
+ #define CRL_REASON_AFFILIATION_CHANGED 3
244
+ #define CRL_REASON_SUPERSEDED 4
245
+ #define CRL_REASON_CESSATION_OF_OPERATION 5
246
+ #define CRL_REASON_CERTIFICATE_HOLD 6
247
+ #define CRL_REASON_REMOVE_FROM_CRL 8
248
+ #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
249
+ #define CRL_REASON_AA_COMPROMISE 10
251
250
 
252
251
  struct DIST_POINT_st {
253
- DIST_POINT_NAME *distpoint;
254
- ASN1_BIT_STRING *reasons;
255
- GENERAL_NAMES *CRLissuer;
256
- int dp_reasons;
252
+ DIST_POINT_NAME *distpoint;
253
+ ASN1_BIT_STRING *reasons;
254
+ GENERAL_NAMES *CRLissuer;
255
+ int dp_reasons;
257
256
  };
258
257
 
259
258
  typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;
@@ -262,36 +261,36 @@ DEFINE_STACK_OF(DIST_POINT)
262
261
  DECLARE_ASN1_SET_OF(DIST_POINT)
263
262
 
264
263
  struct AUTHORITY_KEYID_st {
265
- ASN1_OCTET_STRING *keyid;
266
- GENERAL_NAMES *issuer;
267
- ASN1_INTEGER *serial;
264
+ ASN1_OCTET_STRING *keyid;
265
+ GENERAL_NAMES *issuer;
266
+ ASN1_INTEGER *serial;
268
267
  };
269
268
 
270
269
  typedef struct NOTICEREF_st {
271
- ASN1_STRING *organization;
272
- STACK_OF(ASN1_INTEGER) *noticenos;
270
+ ASN1_STRING *organization;
271
+ STACK_OF(ASN1_INTEGER) *noticenos;
273
272
  } NOTICEREF;
274
273
 
275
274
  typedef struct USERNOTICE_st {
276
- NOTICEREF *noticeref;
277
- ASN1_STRING *exptext;
275
+ NOTICEREF *noticeref;
276
+ ASN1_STRING *exptext;
278
277
  } USERNOTICE;
279
278
 
280
279
  typedef struct POLICYQUALINFO_st {
281
- ASN1_OBJECT *pqualid;
282
- union {
283
- ASN1_IA5STRING *cpsuri;
284
- USERNOTICE *usernotice;
285
- ASN1_TYPE *other;
286
- } d;
280
+ ASN1_OBJECT *pqualid;
281
+ union {
282
+ ASN1_IA5STRING *cpsuri;
283
+ USERNOTICE *usernotice;
284
+ ASN1_TYPE *other;
285
+ } d;
287
286
  } POLICYQUALINFO;
288
287
 
289
288
  DEFINE_STACK_OF(POLICYQUALINFO)
290
289
  DECLARE_ASN1_SET_OF(POLICYQUALINFO)
291
290
 
292
291
  typedef struct POLICYINFO_st {
293
- ASN1_OBJECT *policyid;
294
- STACK_OF(POLICYQUALINFO) *qualifiers;
292
+ ASN1_OBJECT *policyid;
293
+ STACK_OF(POLICYQUALINFO) *qualifiers;
295
294
  } POLICYINFO;
296
295
 
297
296
  typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
@@ -300,8 +299,8 @@ DEFINE_STACK_OF(POLICYINFO)
300
299
  DECLARE_ASN1_SET_OF(POLICYINFO)
301
300
 
302
301
  typedef struct POLICY_MAPPING_st {
303
- ASN1_OBJECT *issuerDomainPolicy;
304
- ASN1_OBJECT *subjectDomainPolicy;
302
+ ASN1_OBJECT *issuerDomainPolicy;
303
+ ASN1_OBJECT *subjectDomainPolicy;
305
304
  } POLICY_MAPPING;
306
305
 
307
306
  DEFINE_STACK_OF(POLICY_MAPPING)
@@ -309,189 +308,174 @@ DEFINE_STACK_OF(POLICY_MAPPING)
309
308
  typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS;
310
309
 
311
310
  typedef struct GENERAL_SUBTREE_st {
312
- GENERAL_NAME *base;
313
- ASN1_INTEGER *minimum;
314
- ASN1_INTEGER *maximum;
311
+ GENERAL_NAME *base;
312
+ ASN1_INTEGER *minimum;
313
+ ASN1_INTEGER *maximum;
315
314
  } GENERAL_SUBTREE;
316
315
 
317
316
  DEFINE_STACK_OF(GENERAL_SUBTREE)
318
317
 
319
318
  struct NAME_CONSTRAINTS_st {
320
- STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
321
- STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
319
+ STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
320
+ STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
322
321
  };
323
322
 
324
323
  typedef struct POLICY_CONSTRAINTS_st {
325
- ASN1_INTEGER *requireExplicitPolicy;
326
- ASN1_INTEGER *inhibitPolicyMapping;
324
+ ASN1_INTEGER *requireExplicitPolicy;
325
+ ASN1_INTEGER *inhibitPolicyMapping;
327
326
  } POLICY_CONSTRAINTS;
328
327
 
329
- /* Proxy certificate structures, see RFC 3820 */
330
- typedef struct PROXY_POLICY_st
331
- {
332
- ASN1_OBJECT *policyLanguage;
333
- ASN1_OCTET_STRING *policy;
334
- } PROXY_POLICY;
328
+ // Proxy certificate structures, see RFC 3820
329
+ typedef struct PROXY_POLICY_st {
330
+ ASN1_OBJECT *policyLanguage;
331
+ ASN1_OCTET_STRING *policy;
332
+ } PROXY_POLICY;
335
333
 
336
- typedef struct PROXY_CERT_INFO_EXTENSION_st
337
- {
338
- ASN1_INTEGER *pcPathLengthConstraint;
339
- PROXY_POLICY *proxyPolicy;
340
- } PROXY_CERT_INFO_EXTENSION;
334
+ typedef struct PROXY_CERT_INFO_EXTENSION_st {
335
+ ASN1_INTEGER *pcPathLengthConstraint;
336
+ PROXY_POLICY *proxyPolicy;
337
+ } PROXY_CERT_INFO_EXTENSION;
341
338
 
342
339
  DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
343
340
  DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
344
341
 
345
- struct ISSUING_DIST_POINT_st
346
- {
347
- DIST_POINT_NAME *distpoint;
348
- int onlyuser;
349
- int onlyCA;
350
- ASN1_BIT_STRING *onlysomereasons;
351
- int indirectCRL;
352
- int onlyattr;
353
- };
354
-
355
- /* Values in idp_flags field */
356
- /* IDP present */
357
- #define IDP_PRESENT 0x1
358
- /* IDP values inconsistent */
359
- #define IDP_INVALID 0x2
360
- /* onlyuser true */
361
- #define IDP_ONLYUSER 0x4
362
- /* onlyCA true */
363
- #define IDP_ONLYCA 0x8
364
- /* onlyattr true */
365
- #define IDP_ONLYATTR 0x10
366
- /* indirectCRL true */
367
- #define IDP_INDIRECT 0x20
368
- /* onlysomereasons present */
369
- #define IDP_REASONS 0x40
370
-
371
- #define X509V3_conf_err(val) ERR_add_error_data(6, "section:", (val)->section, \
372
- ",name:", (val)->name, ",value:", (val)->value);
342
+ struct ISSUING_DIST_POINT_st {
343
+ DIST_POINT_NAME *distpoint;
344
+ int onlyuser;
345
+ int onlyCA;
346
+ ASN1_BIT_STRING *onlysomereasons;
347
+ int indirectCRL;
348
+ int onlyattr;
349
+ };
350
+
351
+ // Values in idp_flags field
352
+ // IDP present
353
+ #define IDP_PRESENT 0x1
354
+ // IDP values inconsistent
355
+ #define IDP_INVALID 0x2
356
+ // onlyuser true
357
+ #define IDP_ONLYUSER 0x4
358
+ // onlyCA true
359
+ #define IDP_ONLYCA 0x8
360
+ // onlyattr true
361
+ #define IDP_ONLYATTR 0x10
362
+ // indirectCRL true
363
+ #define IDP_INDIRECT 0x20
364
+ // onlysomereasons present
365
+ #define IDP_REASONS 0x40
366
+
367
+ #define X509V3_conf_err(val) \
368
+ ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, \
369
+ ",value:", (val)->value);
373
370
 
374
371
  #define X509V3_set_ctx_test(ctx) \
375
- X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
372
+ X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
376
373
  #define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
377
374
 
378
- #define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \
379
- 0,0,0,0, \
380
- 0,0, \
381
- (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
382
- (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \
383
- NULL, NULL, \
384
- (void *)(table)}
385
-
386
- #define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \
387
- 0,0,0,0, \
388
- (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
389
- (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \
390
- 0,0,0,0, \
391
- NULL}
392
-
393
- #define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
394
-
395
-
396
- /* X509_PURPOSE stuff */
397
-
398
- #define EXFLAG_BCONS 0x1
399
- #define EXFLAG_KUSAGE 0x2
400
- #define EXFLAG_XKUSAGE 0x4
401
- #define EXFLAG_NSCERT 0x8
402
-
403
- #define EXFLAG_CA 0x10
404
- /* Really self issued not necessarily self signed */
405
- #define EXFLAG_SI 0x20
406
- #define EXFLAG_V1 0x40
407
- #define EXFLAG_INVALID 0x80
408
- #define EXFLAG_SET 0x100
409
- #define EXFLAG_CRITICAL 0x200
410
- #define EXFLAG_PROXY 0x400
411
-
412
- #define EXFLAG_INVALID_POLICY 0x800
413
- #define EXFLAG_FRESHEST 0x1000
414
- /* Self signed */
415
- #define EXFLAG_SS 0x2000
416
-
417
- #define KU_DIGITAL_SIGNATURE 0x0080
418
- #define KU_NON_REPUDIATION 0x0040
419
- #define KU_KEY_ENCIPHERMENT 0x0020
420
- #define KU_DATA_ENCIPHERMENT 0x0010
421
- #define KU_KEY_AGREEMENT 0x0008
422
- #define KU_KEY_CERT_SIGN 0x0004
423
- #define KU_CRL_SIGN 0x0002
424
- #define KU_ENCIPHER_ONLY 0x0001
425
- #define KU_DECIPHER_ONLY 0x8000
426
-
427
- #define NS_SSL_CLIENT 0x80
428
- #define NS_SSL_SERVER 0x40
429
- #define NS_SMIME 0x20
430
- #define NS_OBJSIGN 0x10
431
- #define NS_SSL_CA 0x04
432
- #define NS_SMIME_CA 0x02
433
- #define NS_OBJSIGN_CA 0x01
434
- #define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA)
435
-
436
- #define XKU_SSL_SERVER 0x1
437
- #define XKU_SSL_CLIENT 0x2
438
- #define XKU_SMIME 0x4
439
- #define XKU_CODE_SIGN 0x8
440
- #define XKU_SGC 0x10
441
- #define XKU_OCSP_SIGN 0x20
442
- #define XKU_TIMESTAMP 0x40
443
- #define XKU_DVCS 0x80
444
- #define XKU_ANYEKU 0x100
445
-
446
- #define X509_PURPOSE_DYNAMIC 0x1
447
- #define X509_PURPOSE_DYNAMIC_NAME 0x2
375
+ #define EXT_BITSTRING(nid, table) \
376
+ { \
377
+ nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), 0, 0, 0, 0, 0, 0, \
378
+ (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
379
+ (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, NULL, NULL, (void *)(table) \
380
+ }
381
+
382
+ #define EXT_IA5STRING(nid) \
383
+ { \
384
+ nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), 0, 0, 0, 0, \
385
+ (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
386
+ (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, 0, 0, 0, 0, NULL \
387
+ }
388
+
389
+ #define EXT_END \
390
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
391
+
392
+
393
+ // X509_PURPOSE stuff
394
+
395
+ #define EXFLAG_BCONS 0x1
396
+ #define EXFLAG_KUSAGE 0x2
397
+ #define EXFLAG_XKUSAGE 0x4
398
+ #define EXFLAG_NSCERT 0x8
399
+
400
+ #define EXFLAG_CA 0x10
401
+ // Really self issued not necessarily self signed
402
+ #define EXFLAG_SI 0x20
403
+ #define EXFLAG_V1 0x40
404
+ #define EXFLAG_INVALID 0x80
405
+ #define EXFLAG_SET 0x100
406
+ #define EXFLAG_CRITICAL 0x200
407
+ #define EXFLAG_PROXY 0x400
408
+
409
+ #define EXFLAG_INVALID_POLICY 0x800
410
+ #define EXFLAG_FRESHEST 0x1000
411
+ // Self signed
412
+ #define EXFLAG_SS 0x2000
413
+
414
+ #define KU_DIGITAL_SIGNATURE 0x0080
415
+ #define KU_NON_REPUDIATION 0x0040
416
+ #define KU_KEY_ENCIPHERMENT 0x0020
417
+ #define KU_DATA_ENCIPHERMENT 0x0010
418
+ #define KU_KEY_AGREEMENT 0x0008
419
+ #define KU_KEY_CERT_SIGN 0x0004
420
+ #define KU_CRL_SIGN 0x0002
421
+ #define KU_ENCIPHER_ONLY 0x0001
422
+ #define KU_DECIPHER_ONLY 0x8000
423
+
424
+ #define NS_SSL_CLIENT 0x80
425
+ #define NS_SSL_SERVER 0x40
426
+ #define NS_SMIME 0x20
427
+ #define NS_OBJSIGN 0x10
428
+ #define NS_SSL_CA 0x04
429
+ #define NS_SMIME_CA 0x02
430
+ #define NS_OBJSIGN_CA 0x01
431
+ #define NS_ANY_CA (NS_SSL_CA | NS_SMIME_CA | NS_OBJSIGN_CA)
432
+
433
+ #define XKU_SSL_SERVER 0x1
434
+ #define XKU_SSL_CLIENT 0x2
435
+ #define XKU_SMIME 0x4
436
+ #define XKU_CODE_SIGN 0x8
437
+ #define XKU_SGC 0x10
438
+ #define XKU_OCSP_SIGN 0x20
439
+ #define XKU_TIMESTAMP 0x40
440
+ #define XKU_DVCS 0x80
441
+ #define XKU_ANYEKU 0x100
442
+
443
+ #define X509_PURPOSE_DYNAMIC 0x1
444
+ #define X509_PURPOSE_DYNAMIC_NAME 0x2
448
445
 
449
446
  typedef struct x509_purpose_st {
450
- int purpose;
451
- int trust; /* Default trust ID */
452
- int flags;
453
- int (*check_purpose)(const struct x509_purpose_st *,
454
- const X509 *, int);
455
- char *name;
456
- char *sname;
457
- void *usr_data;
447
+ int purpose;
448
+ int trust; // Default trust ID
449
+ int flags;
450
+ int (*check_purpose)(const struct x509_purpose_st *, const X509 *, int);
451
+ char *name;
452
+ char *sname;
453
+ void *usr_data;
458
454
  } X509_PURPOSE;
459
455
 
460
- #define X509_PURPOSE_SSL_CLIENT 1
461
- #define X509_PURPOSE_SSL_SERVER 2
462
- #define X509_PURPOSE_NS_SSL_SERVER 3
463
- #define X509_PURPOSE_SMIME_SIGN 4
464
- #define X509_PURPOSE_SMIME_ENCRYPT 5
465
- #define X509_PURPOSE_CRL_SIGN 6
466
- #define X509_PURPOSE_ANY 7
467
- #define X509_PURPOSE_OCSP_HELPER 8
468
- #define X509_PURPOSE_TIMESTAMP_SIGN 9
469
-
470
- #define X509_PURPOSE_MIN 1
471
- #define X509_PURPOSE_MAX 9
472
-
473
- /* Flags for X509V3_EXT_print() */
474
-
475
- #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
476
- /* Return error for unknown extensions */
477
- #define X509V3_EXT_DEFAULT 0
478
- /* Print error for unknown extensions */
479
- #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
480
- /* ASN1 parse unknown extensions */
481
- #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
482
- /* BIO_dump unknown extensions */
483
- #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
484
-
485
- /* Flags for X509V3_add1_i2d */
486
-
487
- #define X509V3_ADD_OP_MASK 0xfL
488
- #define X509V3_ADD_DEFAULT 0L
489
- #define X509V3_ADD_APPEND 1L
490
- #define X509V3_ADD_REPLACE 2L
491
- #define X509V3_ADD_REPLACE_EXISTING 3L
492
- #define X509V3_ADD_KEEP_EXISTING 4L
493
- #define X509V3_ADD_DELETE 5L
494
- #define X509V3_ADD_SILENT 0x10
456
+ #define X509_PURPOSE_SSL_CLIENT 1
457
+ #define X509_PURPOSE_SSL_SERVER 2
458
+ #define X509_PURPOSE_NS_SSL_SERVER 3
459
+ #define X509_PURPOSE_SMIME_SIGN 4
460
+ #define X509_PURPOSE_SMIME_ENCRYPT 5
461
+ #define X509_PURPOSE_CRL_SIGN 6
462
+ #define X509_PURPOSE_ANY 7
463
+ #define X509_PURPOSE_OCSP_HELPER 8
464
+ #define X509_PURPOSE_TIMESTAMP_SIGN 9
465
+
466
+ #define X509_PURPOSE_MIN 1
467
+ #define X509_PURPOSE_MAX 9
468
+
469
+ // Flags for X509V3_add1_i2d
470
+
471
+ #define X509V3_ADD_OP_MASK 0xfL
472
+ #define X509V3_ADD_DEFAULT 0L
473
+ #define X509V3_ADD_APPEND 1L
474
+ #define X509V3_ADD_REPLACE 2L
475
+ #define X509V3_ADD_REPLACE_EXISTING 3L
476
+ #define X509V3_ADD_KEEP_EXISTING 4L
477
+ #define X509V3_ADD_DELETE 5L
478
+ #define X509V3_ADD_SILENT 0x10
495
479
 
496
480
  DEFINE_STACK_OF(X509_PURPOSE)
497
481
 
@@ -506,36 +490,45 @@ OPENSSL_EXPORT int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
506
490
 
507
491
 
508
492
  OPENSSL_EXPORT ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
509
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
510
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
511
- ASN1_BIT_STRING *bits,
512
- STACK_OF(CONF_VALUE) *extlist);
513
-
514
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
493
+ X509V3_CTX *ctx,
494
+ STACK_OF(CONF_VALUE) *nval);
495
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(
496
+ X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
497
+ STACK_OF(CONF_VALUE) *extlist);
498
+
499
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(
500
+ X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
515
501
  OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
516
502
 
517
503
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
518
504
 
519
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method,
520
- GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist);
505
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(
506
+ X509V3_EXT_METHOD *method, GENERAL_NAMES *gen,
507
+ STACK_OF(CONF_VALUE) *extlist);
521
508
  OPENSSL_EXPORT GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,
522
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
509
+ X509V3_CTX *ctx,
510
+ STACK_OF(CONF_VALUE) *nval);
523
511
 
524
512
  DECLARE_ASN1_FUNCTIONS(OTHERNAME)
525
513
  DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME)
526
514
  OPENSSL_EXPORT int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b);
527
- OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value);
515
+ OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type,
516
+ void *value);
528
517
  OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
529
518
  OPENSSL_EXPORT int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,
530
- ASN1_OBJECT *oid, ASN1_TYPE *value);
531
- OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,
532
- ASN1_OBJECT **poid, ASN1_TYPE **pvalue);
519
+ ASN1_OBJECT *oid,
520
+ ASN1_TYPE *value);
521
+ OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,
522
+ ASN1_OBJECT **poid,
523
+ ASN1_TYPE **pvalue);
533
524
 
534
- OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, const ASN1_OCTET_STRING *ia5);
535
- OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
525
+ OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
526
+ const ASN1_OCTET_STRING *ia5);
527
+ OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(
528
+ X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
536
529
 
537
530
  DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
538
- OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION* a);
531
+ OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a);
539
532
 
540
533
  DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
541
534
  DECLARE_ASN1_FUNCTIONS(POLICYINFO)
@@ -548,7 +541,8 @@ DECLARE_ASN1_FUNCTIONS(DIST_POINT)
548
541
  DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME)
549
542
  DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
550
543
 
551
- OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname);
544
+ OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn,
545
+ X509_NAME *iname);
552
546
 
553
547
  OPENSSL_EXPORT int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc);
554
548
 
@@ -569,53 +563,71 @@ DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
569
563
  DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
570
564
 
571
565
  OPENSSL_EXPORT GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,
572
- const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
573
- int gen_type, char *value, int is_nc);
574
-
575
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
576
- CONF_VALUE *cnf);
577
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
578
- const X509V3_EXT_METHOD *method,
579
- X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc);
566
+ const X509V3_EXT_METHOD *method,
567
+ X509V3_CTX *ctx, int gen_type,
568
+ char *value, int is_nc);
569
+
570
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,
571
+ X509V3_CTX *ctx, CONF_VALUE *cnf);
572
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(
573
+ GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
574
+ CONF_VALUE *cnf, int is_nc);
580
575
  OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val);
581
576
 
582
577
  // X509V3_EXT_conf_nid contains the only exposed instance of an LHASH in our
583
578
  // public headers. The |conf| pointer must be NULL but cryptography.io wraps
584
579
  // this function so we cannot, yet, replace the type with a dummy struct.
585
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, char *value);
586
-
587
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value);
588
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value);
589
- OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK_OF(X509_EXTENSION) **sk);
590
- OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert);
591
- OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req);
592
- OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl);
580
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
581
+ X509V3_CTX *ctx, int ext_nid,
582
+ char *value);
583
+
584
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
585
+ int ext_nid, char *value);
586
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx,
587
+ char *name, char *value);
588
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx,
589
+ char *section,
590
+ STACK_OF(X509_EXTENSION) **sk);
591
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx,
592
+ char *section, X509 *cert);
593
+ OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx,
594
+ char *section, X509_REQ *req);
595
+ OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx,
596
+ char *section, X509_CRL *crl);
593
597
 
594
598
  OPENSSL_EXPORT int X509V3_add_value_bool_nf(char *name, int asn1_bool,
595
- STACK_OF(CONF_VALUE) **extlist);
599
+ STACK_OF(CONF_VALUE) **extlist);
596
600
  OPENSSL_EXPORT int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool);
597
601
  OPENSSL_EXPORT int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint);
598
602
  OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
599
603
 
600
- OPENSSL_EXPORT char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section);
601
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) * X509V3_get_section(X509V3_CTX *ctx, char *section);
604
+ OPENSSL_EXPORT char *X509V3_get_string(X509V3_CTX *ctx, char *name,
605
+ char *section);
606
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx,
607
+ char *section);
602
608
  OPENSSL_EXPORT void X509V3_string_free(X509V3_CTX *ctx, char *str);
603
- OPENSSL_EXPORT void X509V3_section_free( X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
609
+ OPENSSL_EXPORT void X509V3_section_free(X509V3_CTX *ctx,
610
+ STACK_OF(CONF_VALUE) *section);
604
611
  OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
605
- X509_REQ *req, X509_CRL *crl, int flags);
612
+ X509_REQ *req, X509_CRL *crl, int flags);
606
613
 
607
614
  OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value,
608
- STACK_OF(CONF_VALUE) **extlist);
609
- OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name, const unsigned char *value,
610
- STACK_OF(CONF_VALUE) **extlist);
615
+ STACK_OF(CONF_VALUE) **extlist);
616
+ OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name,
617
+ const unsigned char *value,
618
+ STACK_OF(CONF_VALUE) **extlist);
611
619
  OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool,
612
- STACK_OF(CONF_VALUE) **extlist);
620
+ STACK_OF(CONF_VALUE) **extlist);
613
621
  OPENSSL_EXPORT int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint,
614
- STACK_OF(CONF_VALUE) **extlist);
615
- OPENSSL_EXPORT char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
616
- OPENSSL_EXPORT ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value);
617
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
618
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
622
+ STACK_OF(CONF_VALUE) **extlist);
623
+ OPENSSL_EXPORT char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
624
+ ASN1_INTEGER *aint);
625
+ OPENSSL_EXPORT ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
626
+ char *value);
627
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth,
628
+ ASN1_ENUMERATED *aint);
629
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth,
630
+ ASN1_ENUMERATED *aint);
619
631
  OPENSSL_EXPORT int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
620
632
  OPENSSL_EXPORT int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
621
633
  OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from);
@@ -626,19 +638,46 @@ OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid);
626
638
  OPENSSL_EXPORT int X509V3_add_standard_extensions(void);
627
639
  OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line);
628
640
  OPENSSL_EXPORT void *X509V3_EXT_d2i(X509_EXTENSION *ext);
629
- OPENSSL_EXPORT void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx);
641
+ OPENSSL_EXPORT void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid,
642
+ int *crit, int *idx);
630
643
  OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data);
631
644
 
632
645
 
633
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
634
- OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags);
635
-
636
- OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent,
637
- int ml);
638
- OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
639
- OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
640
-
641
- OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
646
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit,
647
+ void *ext_struc);
648
+ OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid,
649
+ void *value, int crit, unsigned long flags);
650
+
651
+ #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
652
+
653
+ // X509V3_EXT_DEFAULT causes unknown extensions or syntax errors to return
654
+ // failure.
655
+ #define X509V3_EXT_DEFAULT 0
656
+ // X509V3_EXT_ERROR_UNKNOWN causes unknown extensions or syntax errors to print
657
+ // as "<Not Supported>" or "<Parse Error>", respectively.
658
+ #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
659
+ // X509V3_EXT_PARSE_UNKNOWN is deprecated and behaves like
660
+ // |X509V3_EXT_DUMP_UNKNOWN|.
661
+ #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
662
+ // X509V3_EXT_DUMP_UNKNOWN causes unknown extensions to be displayed as a
663
+ // hexdump.
664
+ #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
665
+
666
+ OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val,
667
+ int indent, int ml);
668
+ OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext,
669
+ unsigned long flag, int indent);
670
+ OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag,
671
+ int indent);
672
+
673
+ // X509V3_extensions_print prints |title|, followed by a human-readable
674
+ // representation of |exts| to |out|. It returns one on success and zero on
675
+ // error. The output is indented by |indent| spaces. |flag| is one of the
676
+ // |X509V3_EXT_*| constants and controls printing of unknown extensions and
677
+ // syntax errors.
678
+ OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title,
679
+ const STACK_OF(X509_EXTENSION) *exts,
680
+ unsigned long flag, int indent);
642
681
 
643
682
  OPENSSL_EXPORT int X509_check_ca(X509 *x);
644
683
  OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca);
@@ -694,12 +733,13 @@ OPENSSL_EXPORT const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x509);
694
733
  OPENSSL_EXPORT const ASN1_INTEGER *X509_get0_authority_serial(X509 *x509);
695
734
 
696
735
  OPENSSL_EXPORT int X509_PURPOSE_get_count(void);
697
- OPENSSL_EXPORT X509_PURPOSE * X509_PURPOSE_get0(int idx);
736
+ OPENSSL_EXPORT X509_PURPOSE *X509_PURPOSE_get0(int idx);
698
737
  OPENSSL_EXPORT int X509_PURPOSE_get_by_sname(char *sname);
699
738
  OPENSSL_EXPORT int X509_PURPOSE_get_by_id(int id);
700
739
  OPENSSL_EXPORT int X509_PURPOSE_add(int id, int trust, int flags,
701
- int (*ck)(const X509_PURPOSE *, const X509 *, int),
702
- char *name, char *sname, void *arg);
740
+ int (*ck)(const X509_PURPOSE *,
741
+ const X509 *, int),
742
+ char *name, char *sname, void *arg);
703
743
  OPENSSL_EXPORT char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp);
704
744
  OPENSSL_EXPORT char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp);
705
745
  OPENSSL_EXPORT int X509_PURPOSE_get_trust(const X509_PURPOSE *xp);
@@ -710,51 +750,52 @@ OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x);
710
750
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x);
711
751
  OPENSSL_EXPORT void X509_email_free(STACK_OF(OPENSSL_STRING) *sk);
712
752
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x);
713
- /* Flags for X509_check_* functions */
753
+ // Flags for X509_check_* functions
714
754
 
715
- /* Deprecated: this flag does nothing */
716
- #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
717
- /* Disable wildcard matching for dnsName fields and common name. */
718
- #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
719
- /* Wildcards must not match a partial label. */
755
+ // Deprecated: this flag does nothing
756
+ #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
757
+ // Disable wildcard matching for dnsName fields and common name.
758
+ #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
759
+ // Wildcards must not match a partial label.
720
760
  #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4
721
- /* Allow (non-partial) wildcards to match multiple labels. */
761
+ // Allow (non-partial) wildcards to match multiple labels.
722
762
  #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8
723
- /* Constraint verifier subdomain patterns to match a single labels. */
763
+ // Constraint verifier subdomain patterns to match a single labels.
724
764
  #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10
725
- /* Skip the subject common name fallback if subjectAltNames is missing. */
765
+ // Skip the subject common name fallback if subjectAltNames is missing.
726
766
  #define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20
727
- /*
728
- * Match reference identifiers starting with "." to any sub-domain.
729
- * This is a non-public flag, turned on implicitly when the subject
730
- * reference identity is a DNS name.
731
- */
767
+ //
768
+ // Match reference identifiers starting with "." to any sub-domain.
769
+ // This is a non-public flag, turned on implicitly when the subject
770
+ // reference identity is a DNS name.
732
771
  #define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000
733
772
 
734
773
  OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen,
735
- unsigned int flags, char **peername);
774
+ unsigned int flags, char **peername);
736
775
  OPENSSL_EXPORT int X509_check_email(X509 *x, const char *chk, size_t chklen,
737
- unsigned int flags);
738
- OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,
739
- unsigned int flags);
740
- OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags);
776
+ unsigned int flags);
777
+ OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk,
778
+ size_t chklen, unsigned int flags);
779
+ OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc,
780
+ unsigned int flags);
741
781
 
742
782
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc);
743
783
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc);
744
784
  OPENSSL_EXPORT int a2i_ipadd(unsigned char *ipout, const char *ipasc);
745
- OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk,
746
- unsigned long chtype);
785
+ OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm,
786
+ STACK_OF(CONF_VALUE) *dn_sk,
787
+ unsigned long chtype);
747
788
 
748
- OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent);
789
+ OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node,
790
+ int indent);
749
791
  DEFINE_STACK_OF(X509_POLICY_NODE)
750
792
 
751
- /* BEGIN ERROR CODES */
752
- /* The following lines are auto generated by the script mkerr.pl. Any changes
753
- * made after this point may be overwritten when the script is next run.
754
- */
793
+ // BEGIN ERROR CODES
794
+ // The following lines are auto generated by the script mkerr.pl. Any changes
795
+ // made after this point may be overwritten when the script is next run.
755
796
 
756
797
 
757
- #ifdef __cplusplus
798
+ #ifdef __cplusplus
758
799
  }
759
800
 
760
801
  extern "C++" {
@@ -770,7 +811,7 @@ BORINGSSL_MAKE_DELETER(POLICYINFO, POLICYINFO_free)
770
811
 
771
812
  BSSL_NAMESPACE_END
772
813
 
773
- } /* extern C++ */
814
+ } // extern C++
774
815
  #endif
775
816
 
776
817
  #define X509V3_R_BAD_IP_ADDRESS 100