grpc 1.54.2 → 1.56.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +152 -91
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/impl/grpc_types.h +2 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -1
- data/src/core/ext/filters/client_channel/backend_metric.cc +4 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +98 -120
- data/src/core/ext/filters/client_channel/client_channel.h +26 -16
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +20 -19
- data/src/core/ext/filters/client_channel/client_channel_internal.h +22 -59
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
- data/src/core/ext/filters/client_channel/config_selector.h +9 -36
- data/src/core/ext/filters/client_channel/http_proxy.cc +34 -1
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +7 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +56 -24
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -11
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +52 -50
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +33 -41
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +6 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +54 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +4 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +16 -18
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +48 -51
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +10 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +16 -22
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +19 -118
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +549 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -13
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +30 -28
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +156 -66
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +23 -55
- data/src/core/ext/filters/client_channel/retry_service_config.cc +9 -8
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +7 -7
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +168 -75
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +78 -23
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -0
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -7
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -19
- data/src/core/ext/transport/chttp2/transport/writing.cc +14 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -60
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +481 -224
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +357 -210
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1572 -729
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +733 -404
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -264
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1839 -899
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +531 -334
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2017 -1131
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +139 -80
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +527 -274
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +666 -292
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +789 -440
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +228 -137
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1100 -501
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -211
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1072 -646
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +33 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +117 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +38 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +148 -64
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +145 -88
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +438 -241
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +175 -118
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +857 -442
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -27
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +159 -110
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +71 -45
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +505 -245
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +248 -139
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +933 -433
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +80 -49
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +616 -201
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1283 -776
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5422 -2519
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +95 -50
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +357 -167
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -20
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +245 -82
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +73 -51
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +474 -296
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2121 -1076
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +112 -78
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +72 -45
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +193 -138
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +119 -78
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -111
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +816 -419
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -177
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1284 -522
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +47 -30
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +52 -29
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +92 -62
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +13 -10
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +25 -22
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +13 -8
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
- data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
- data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
- data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
- data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +21 -12
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +45 -30
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +78 -38
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +182 -76
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -12
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +18 -11
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +35 -26
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +32 -19
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +150 -54
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +10 -7
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +18 -14
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +34 -21
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +161 -63
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +85 -52
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +430 -164
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +37 -22
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +92 -66
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +43 -22
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +91 -53
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -12
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +252 -253
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +44 -44
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +134 -128
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +379 -376
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
- data/src/core/ext/xds/certificate_provider_store.cc +8 -13
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/upb_utils.h +1 -1
- data/src/core/ext/xds/xds_api.cc +41 -18
- data/src/core/ext/xds/xds_api.h +5 -4
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap.cc +3 -3
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +35 -23
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +29 -7
- data/src/core/ext/xds/xds_client.h +1 -1
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +44 -51
- data/src/core/ext/xds/xds_cluster.h +1 -2
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +15 -11
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
- data/src/core/ext/xds/xds_common_types.cc +8 -5
- data/src/core/ext/xds/xds_endpoint.cc +5 -2
- data/src/core/ext/xds/xds_endpoint.h +1 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +18 -15
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -2
- data/src/core/ext/xds/xds_http_filters.h +7 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +158 -73
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -2
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +17 -13
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +3 -2
- data/src/core/ext/xds/xds_lb_policy_registry.cc +24 -36
- data/src/core/ext/xds/xds_listener.cc +11 -4
- data/src/core/ext/xds/xds_listener.h +1 -1
- data/src/core/ext/xds/xds_resource_type.h +2 -2
- data/src/core/ext/xds/xds_route_config.cc +48 -8
- data/src/core/ext/xds/xds_route_config.h +1 -1
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +163 -135
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +24 -20
- data/src/core/lib/channel/connected_channel.cc +99 -33
- data/src/core/lib/channel/promise_based_filter.cc +2 -12
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +34 -56
- data/src/core/lib/debug/trace.h +14 -4
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +41 -45
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -8
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +6 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +9 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/trace.cc +1 -0
- data/src/core/lib/event_engine/trace.h +6 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +69 -19
- data/src/core/lib/experiments/experiments.h +29 -20
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gpr/posix/time.cc +5 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/status_helper.cc +2 -2
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/validation_errors.cc +8 -3
- data/src/core/lib/gprpp/validation_errors.h +16 -9
- data/src/core/lib/iomgr/buffer_list.h +0 -1
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -0
- data/src/core/lib/iomgr/tcp_server_posix.cc +148 -107
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +17 -16
- data/src/core/lib/json/json.h +2 -218
- data/src/core/lib/json/json_object_loader.cc +24 -25
- data/src/core/lib/json/json_object_loader.h +30 -18
- data/src/core/lib/json/json_reader.cc +69 -42
- data/src/core/lib/json/json_reader.h +34 -0
- data/src/core/lib/json/json_util.cc +10 -15
- data/src/core/lib/json/json_util.h +5 -4
- data/src/core/lib/json/json_writer.cc +24 -25
- data/src/core/lib/json/json_writer.h +33 -0
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +9 -8
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +16 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +54 -49
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +64 -64
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +23 -21
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +29 -27
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +5 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +19 -16
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -5
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +40 -38
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -16
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/util/json_util.cc +6 -5
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +13 -6
- data/src/core/lib/slice/slice.h +2 -0
- data/src/core/lib/surface/call.cc +107 -47
- data/src/core/lib/surface/call.h +1 -5
- data/src/core/lib/surface/completion_queue.cc +8 -3
- data/src/core/lib/surface/server.cc +47 -19
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +48 -36
- data/src/core/lib/transport/metadata_batch.h +2 -59
- data/src/core/lib/transport/metadata_compression_traits.h +67 -0
- data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
- data/src/core/lib/transport/transport.h +3 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -6
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/base/config.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +33 -47
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +9 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +32 -2
- data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +11 -12
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +833 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +228 -56
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +596 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +17 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -72
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +18 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +7 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +8 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +758 -608
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +33 -18
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +82 -35
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +8 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +43 -92
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +19 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- data/third_party/upb/upb/{table_internal.h → alloc.h} +6 -6
- data/third_party/upb/upb/arena.h +4 -193
- data/third_party/upb/upb/array.h +4 -51
- data/third_party/upb/upb/base/descriptor_constants.h +104 -0
- data/third_party/upb/upb/base/log2.h +57 -0
- data/third_party/upb/upb/{status.c → base/status.c} +2 -7
- data/third_party/upb/upb/base/status.h +66 -0
- data/third_party/upb/upb/base/string_view.h +75 -0
- data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
- data/third_party/upb/upb/collections/array.h +85 -0
- data/third_party/upb/upb/collections/array_internal.h +135 -0
- data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
- data/third_party/upb/upb/collections/map.h +135 -0
- data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
- data/third_party/upb/upb/collections/map_internal.h +170 -0
- data/third_party/upb/upb/collections/map_sorter.c +166 -0
- data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
- data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
- data/third_party/upb/upb/decode.h +3 -62
- data/third_party/upb/upb/def.h +4 -384
- data/third_party/upb/upb/def.hpp +3 -411
- data/third_party/upb/upb/encode.h +3 -48
- data/third_party/upb/upb/extension_registry.h +3 -52
- data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
- data/third_party/upb/upb/hash/common.h +199 -0
- data/third_party/upb/upb/hash/int_table.h +102 -0
- data/third_party/upb/upb/hash/str_table.h +161 -0
- data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
- data/third_party/upb/upb/json/decode.h +52 -0
- data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
- data/third_party/upb/upb/json/encode.h +70 -0
- data/third_party/upb/upb/json_decode.h +4 -15
- data/third_party/upb/upb/json_encode.h +4 -33
- data/third_party/upb/upb/lex/atoi.c +68 -0
- data/third_party/upb/upb/lex/atoi.h +53 -0
- data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
- data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
- data/third_party/upb/upb/lex/strtod.c +97 -0
- data/third_party/upb/upb/lex/strtod.h +46 -0
- data/third_party/upb/upb/lex/unicode.c +57 -0
- data/third_party/upb/upb/lex/unicode.h +77 -0
- data/third_party/upb/upb/map.h +4 -85
- data/third_party/upb/upb/mem/alloc.c +47 -0
- data/third_party/upb/upb/mem/alloc.h +98 -0
- data/third_party/upb/upb/mem/arena.c +367 -0
- data/third_party/upb/upb/mem/arena.h +160 -0
- data/third_party/upb/upb/mem/arena_internal.h +114 -0
- data/third_party/upb/upb/message/accessors.c +68 -0
- data/third_party/upb/upb/message/accessors.h +379 -0
- data/third_party/upb/upb/message/accessors_internal.h +325 -0
- data/third_party/upb/upb/message/extension_internal.h +83 -0
- data/third_party/upb/upb/message/internal.h +135 -0
- data/third_party/upb/upb/message/message.c +180 -0
- data/third_party/upb/upb/message/message.h +69 -0
- data/third_party/upb/upb/mini_table/common.c +128 -0
- data/third_party/upb/upb/mini_table/common.h +170 -0
- data/third_party/upb/upb/mini_table/common_internal.h +111 -0
- data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
- data/third_party/upb/upb/mini_table/decode.h +179 -0
- data/third_party/upb/upb/mini_table/encode.c +300 -0
- data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
- data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
- data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
- data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
- data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
- data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
- data/third_party/upb/upb/mini_table/field_internal.h +192 -0
- data/third_party/upb/upb/mini_table/file_internal.h +47 -0
- data/third_party/upb/upb/mini_table/message_internal.h +136 -0
- data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
- data/third_party/upb/upb/mini_table/types.h +40 -0
- data/third_party/upb/upb/mini_table.h +4 -157
- data/third_party/upb/upb/msg.h +3 -38
- data/third_party/upb/upb/port/atomic.h +101 -0
- data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
- data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
- data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
- data/third_party/upb/upb/reflection/common.h +67 -0
- data/third_party/upb/upb/reflection/def.h +42 -0
- data/third_party/upb/upb/reflection/def.hpp +610 -0
- data/third_party/upb/upb/reflection/def_builder.c +357 -0
- data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
- data/third_party/upb/upb/reflection/def_pool.c +462 -0
- data/third_party/upb/upb/reflection/def_pool.h +108 -0
- data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
- data/third_party/upb/upb/reflection/def_type.c +50 -0
- data/third_party/upb/upb/reflection/def_type.h +81 -0
- data/third_party/upb/upb/reflection/desc_state.c +53 -0
- data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
- data/third_party/upb/upb/reflection/enum_def.c +310 -0
- data/third_party/upb/upb/reflection/enum_def.h +80 -0
- data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
- data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
- data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
- data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
- data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
- data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
- data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/extension_range.c +93 -0
- data/third_party/upb/upb/reflection/extension_range.h +55 -0
- data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
- data/third_party/upb/upb/reflection/field_def.c +930 -0
- data/third_party/upb/upb/reflection/field_def.h +91 -0
- data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
- data/third_party/upb/upb/reflection/file_def.c +370 -0
- data/third_party/upb/upb/reflection/file_def.h +77 -0
- data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/message.c +233 -0
- data/third_party/upb/upb/reflection/message.h +102 -0
- data/third_party/upb/upb/reflection/message.hpp +37 -0
- data/third_party/upb/upb/reflection/message_def.c +718 -0
- data/third_party/upb/upb/reflection/message_def.h +174 -0
- data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
- data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
- data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
- data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
- data/third_party/upb/upb/reflection/method_def.c +124 -0
- data/third_party/upb/upb/reflection/method_def.h +59 -0
- data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
- data/third_party/upb/upb/reflection/oneof_def.c +226 -0
- data/third_party/upb/upb/reflection/oneof_def.h +66 -0
- data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/service_def.c +128 -0
- data/third_party/upb/upb/reflection/service_def.h +60 -0
- data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
- data/third_party/upb/upb/reflection.h +4 -78
- data/third_party/upb/upb/reflection.hpp +3 -7
- data/third_party/upb/upb/status.h +4 -34
- data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
- data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
- data/third_party/upb/upb/text/encode.h +69 -0
- data/third_party/upb/upb/text_encode.h +4 -32
- data/third_party/upb/upb/upb.h +6 -151
- data/third_party/upb/upb/upb.hpp +10 -18
- data/third_party/upb/upb/wire/common.h +44 -0
- data/third_party/upb/upb/wire/common_internal.h +50 -0
- data/third_party/upb/upb/wire/decode.c +1343 -0
- data/third_party/upb/upb/wire/decode.h +108 -0
- data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
- data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
- data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
- data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
- data/third_party/upb/upb/wire/encode.h +92 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
- data/third_party/upb/upb/wire/reader.c +67 -0
- data/third_party/upb/upb/wire/reader.h +227 -0
- data/third_party/upb/upb/wire/swap_internal.h +63 -0
- data/third_party/upb/upb/wire/types.h +41 -0
- data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
- data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
- metadata +202 -51
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
- data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
- data/third_party/upb/upb/arena.c +0 -277
- data/third_party/upb/upb/decode.c +0 -1221
- data/third_party/upb/upb/def.c +0 -3269
- data/third_party/upb/upb/internal/table.h +0 -385
- data/third_party/upb/upb/msg.c +0 -368
- data/third_party/upb/upb/msg_internal.h +0 -837
- data/third_party/upb/upb/reflection.c +0 -323
- /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
- /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -277,6 +277,12 @@ OPENSSL_EXPORT int X509_get_signature_nid(const X509 *x509);
|
|
277
277
|
// |i2d_re_X509_tbs| instead.
|
278
278
|
OPENSSL_EXPORT int i2d_X509_tbs(X509 *x509, unsigned char **outp);
|
279
279
|
|
280
|
+
// X509_verify checks that |x509| has a valid signature by |pkey|. It returns
|
281
|
+
// one if the signature is valid and zero otherwise. Note this function only
|
282
|
+
// checks the signature itself and does not perform a full certificate
|
283
|
+
// validation.
|
284
|
+
OPENSSL_EXPORT int X509_verify(X509 *x509, EVP_PKEY *pkey);
|
285
|
+
|
280
286
|
|
281
287
|
// Issuing certificates.
|
282
288
|
//
|
@@ -342,16 +348,17 @@ OPENSSL_EXPORT X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
|
|
342
348
|
OPENSSL_EXPORT int X509_add_ext(X509 *x, const X509_EXTENSION *ex, int loc);
|
343
349
|
|
344
350
|
// X509_sign signs |x509| with |pkey| and replaces the signature algorithm and
|
345
|
-
// signature fields. It returns
|
346
|
-
// uses digest algorithm |md|, or |pkey|'s default if
|
347
|
-
// parameters use |pkey|'s defaults. To customize them, use
|
351
|
+
// signature fields. It returns the length of the signature on success and zero
|
352
|
+
// on error. This function uses digest algorithm |md|, or |pkey|'s default if
|
353
|
+
// NULL. Other signing parameters use |pkey|'s defaults. To customize them, use
|
354
|
+
// |X509_sign_ctx|.
|
348
355
|
OPENSSL_EXPORT int X509_sign(X509 *x509, EVP_PKEY *pkey, const EVP_MD *md);
|
349
356
|
|
350
357
|
// X509_sign_ctx signs |x509| with |ctx| and replaces the signature algorithm
|
351
|
-
// and signature fields. It returns
|
352
|
-
// signature algorithm and parameters come from |ctx|, which
|
353
|
-
// initialized with |EVP_DigestSignInit|. The caller should
|
354
|
-
// corresponding |EVP_PKEY_CTX| before calling this function.
|
358
|
+
// and signature fields. It returns the length of the signature on success and
|
359
|
+
// zero on error. The signature algorithm and parameters come from |ctx|, which
|
360
|
+
// must have been initialized with |EVP_DigestSignInit|. The caller should
|
361
|
+
// configure the corresponding |EVP_PKEY_CTX| before calling this function.
|
355
362
|
OPENSSL_EXPORT int X509_sign_ctx(X509 *x509, EVP_MD_CTX *ctx);
|
356
363
|
|
357
364
|
// i2d_re_X509_tbs serializes the TBSCertificate portion of |x509|, as described
|
@@ -413,13 +420,13 @@ OPENSSL_EXPORT X509 *d2i_X509_AUX(X509 **x509, const unsigned char **inp,
|
|
413
420
|
// NULL, the alias is cleared instead. Aliases are not part of the certificate
|
414
421
|
// itself and will not be serialized by |i2d_X509|.
|
415
422
|
OPENSSL_EXPORT int X509_alias_set1(X509 *x509, const unsigned char *name,
|
416
|
-
|
423
|
+
ossl_ssize_t len);
|
417
424
|
|
418
425
|
// X509_keyid_set1 sets |x509|'s key ID to |len| bytes from |id|. If |id| is
|
419
426
|
// NULL, the key ID is cleared instead. Key IDs are not part of the certificate
|
420
427
|
// itself and will not be serialized by |i2d_X509|.
|
421
428
|
OPENSSL_EXPORT int X509_keyid_set1(X509 *x509, const unsigned char *id,
|
422
|
-
|
429
|
+
ossl_ssize_t len);
|
423
430
|
|
424
431
|
// X509_alias_get0 looks up |x509|'s alias. If found, it sets |*out_len| to the
|
425
432
|
// alias's length and returns a pointer to a buffer containing the contents. If
|
@@ -576,6 +583,10 @@ OPENSSL_EXPORT int X509_CRL_get_signature_nid(const X509_CRL *crl);
|
|
576
583
|
// instead.
|
577
584
|
OPENSSL_EXPORT int i2d_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
|
578
585
|
|
586
|
+
// X509_CRL_verify checks that |crl| has a valid signature by |pkey|. It returns
|
587
|
+
// one if the signature is valid and zero otherwise.
|
588
|
+
OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey);
|
589
|
+
|
579
590
|
|
580
591
|
// Issuing certificate revocation lists.
|
581
592
|
//
|
@@ -624,18 +635,18 @@ OPENSSL_EXPORT int X509_CRL_add_ext(X509_CRL *x, const X509_EXTENSION *ex,
|
|
624
635
|
int loc);
|
625
636
|
|
626
637
|
// X509_CRL_sign signs |crl| with |pkey| and replaces the signature algorithm
|
627
|
-
// and signature fields. It returns
|
628
|
-
// function uses digest algorithm |md|, or |pkey|'s default
|
629
|
-
// signing parameters use |pkey|'s defaults. To customize them,
|
630
|
-
// |X509_CRL_sign_ctx|.
|
638
|
+
// and signature fields. It returns the length of the signature on success and
|
639
|
+
// zero on error. This function uses digest algorithm |md|, or |pkey|'s default
|
640
|
+
// if NULL. Other signing parameters use |pkey|'s defaults. To customize them,
|
641
|
+
// use |X509_CRL_sign_ctx|.
|
631
642
|
OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *crl, EVP_PKEY *pkey,
|
632
643
|
const EVP_MD *md);
|
633
644
|
|
634
645
|
// X509_CRL_sign_ctx signs |crl| with |ctx| and replaces the signature algorithm
|
635
|
-
// and signature fields. It returns
|
636
|
-
// signature algorithm and parameters come from |ctx|, which
|
637
|
-
// initialized with |EVP_DigestSignInit|. The caller should
|
638
|
-
// corresponding |EVP_PKEY_CTX| before calling this function.
|
646
|
+
// and signature fields. It returns the length of the signature on success and
|
647
|
+
// zero on error. The signature algorithm and parameters come from |ctx|, which
|
648
|
+
// must have been initialized with |EVP_DigestSignInit|. The caller should
|
649
|
+
// configure the corresponding |EVP_PKEY_CTX| before calling this function.
|
639
650
|
OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *crl, EVP_MD_CTX *ctx);
|
640
651
|
|
641
652
|
// i2d_re_X509_CRL_tbs serializes the TBSCertList portion of |crl|, as described
|
@@ -710,7 +721,6 @@ OPENSSL_EXPORT X509_REQ *d2i_X509_REQ(X509_REQ **out, const uint8_t **inp,
|
|
710
721
|
// mutated.
|
711
722
|
OPENSSL_EXPORT int i2d_X509_REQ(X509_REQ *req, uint8_t **outp);
|
712
723
|
|
713
|
-
|
714
724
|
// X509_REQ_VERSION_1 is the version constant for |X509_REQ| objects. No other
|
715
725
|
// versions are defined.
|
716
726
|
#define X509_REQ_VERSION_1 0
|
@@ -731,6 +741,46 @@ OPENSSL_EXPORT X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req);
|
|
731
741
|
// |EVP_PKEY_free| when done.
|
732
742
|
OPENSSL_EXPORT EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
|
733
743
|
|
744
|
+
// X509_REQ_get_attr_count returns the number of attributes in |req|.
|
745
|
+
OPENSSL_EXPORT int X509_REQ_get_attr_count(const X509_REQ *req);
|
746
|
+
|
747
|
+
// X509_REQ_get_attr returns the attribute at index |loc| in |req|, or NULL if
|
748
|
+
// out of bounds.
|
749
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc);
|
750
|
+
|
751
|
+
// X509_REQ_get_attr_by_NID returns the index of the attribute in |req| of type
|
752
|
+
// |nid|, or a negative number if not found. If found, callers can use
|
753
|
+
// |X509_REQ_get_attr| to look up the attribute by index.
|
754
|
+
//
|
755
|
+
// If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
|
756
|
+
// can thus loop over all matching attributes by first passing -1 and then
|
757
|
+
// passing the previously-returned value until no match is returned.
|
758
|
+
OPENSSL_EXPORT int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid,
|
759
|
+
int lastpos);
|
760
|
+
|
761
|
+
// X509_REQ_get_attr_by_OBJ behaves like |X509_REQ_get_attr_by_NID| but looks
|
762
|
+
// for attributes of type |obj|.
|
763
|
+
OPENSSL_EXPORT int X509_REQ_get_attr_by_OBJ(const X509_REQ *req,
|
764
|
+
const ASN1_OBJECT *obj,
|
765
|
+
int lastpos);
|
766
|
+
|
767
|
+
// X509_REQ_extension_nid returns one if |nid| is a supported CSR attribute type
|
768
|
+
// for carrying extensions and zero otherwise. The supported types are
|
769
|
+
// |NID_ext_req| (pkcs-9-at-extensionRequest from RFC 2985) and |NID_ms_ext_req|
|
770
|
+
// (a Microsoft szOID_CERT_EXTENSIONS variant).
|
771
|
+
OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
|
772
|
+
|
773
|
+
// X509_REQ_get_extensions decodes the list of requested extensions in |req| and
|
774
|
+
// returns a newly-allocated |STACK_OF(X509_EXTENSION)| containing the result.
|
775
|
+
// It returns NULL on error, or if |req| did not request extensions.
|
776
|
+
//
|
777
|
+
// CSRs do not store extensions directly. Instead there are attribute types
|
778
|
+
// which are defined to hold extensions. See |X509_REQ_extension_nid|. This
|
779
|
+
// function supports both pkcs-9-at-extensionRequest from RFC 2985 and the
|
780
|
+
// Microsoft szOID_CERT_EXTENSIONS variant. If both are present,
|
781
|
+
// pkcs-9-at-extensionRequest is preferred.
|
782
|
+
OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
|
783
|
+
|
734
784
|
// X509_REQ_get0_signature sets |*out_sig| and |*out_alg| to the signature and
|
735
785
|
// signature algorithm of |req|, respectively. Either output pointer may be NULL
|
736
786
|
// to ignore the value.
|
@@ -743,6 +793,10 @@ OPENSSL_EXPORT void X509_REQ_get0_signature(const X509_REQ *req,
|
|
743
793
|
// a known NID.
|
744
794
|
OPENSSL_EXPORT int X509_REQ_get_signature_nid(const X509_REQ *req);
|
745
795
|
|
796
|
+
// X509_REQ_verify checks that |req| has a valid signature by |pkey|. It returns
|
797
|
+
// one if the signature is valid and zero otherwise.
|
798
|
+
OPENSSL_EXPORT int X509_REQ_verify(X509_REQ *req, EVP_PKEY *pkey);
|
799
|
+
|
746
800
|
|
747
801
|
// Issuing certificate requests.
|
748
802
|
//
|
@@ -770,19 +824,68 @@ OPENSSL_EXPORT int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
|
|
770
824
|
// and internally copies and updates reference counts as needed.
|
771
825
|
OPENSSL_EXPORT int X509_REQ_set_pubkey(X509_REQ *req, EVP_PKEY *pkey);
|
772
826
|
|
827
|
+
// X509_REQ_delete_attr removes the attribute at index |loc| in |req|. It
|
828
|
+
// returns the removed attribute to the caller, or NULL if |loc| was out of
|
829
|
+
// bounds. If non-NULL, the caller must release the result with
|
830
|
+
// |X509_ATTRIBUTE_free| when done. It is also safe, but not necessary, to call
|
831
|
+
// |X509_ATTRIBUTE_free| if the result is NULL.
|
832
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc);
|
833
|
+
|
834
|
+
// X509_REQ_add1_attr appends a copy of |attr| to |req|'s list of attributes. It
|
835
|
+
// returns one on success and zero on error.
|
836
|
+
OPENSSL_EXPORT int X509_REQ_add1_attr(X509_REQ *req,
|
837
|
+
const X509_ATTRIBUTE *attr);
|
838
|
+
|
839
|
+
// X509_REQ_add1_attr_by_OBJ appends a new attribute to |req| with type |obj|.
|
840
|
+
// It returns one on success and zero on error. The value is determined by
|
841
|
+
// |X509_ATTRIBUTE_set1_data|.
|
842
|
+
//
|
843
|
+
// WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
|
844
|
+
// error-prone. See |X509_ATTRIBUTE_set1_data| for details.
|
845
|
+
OPENSSL_EXPORT int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,
|
846
|
+
const ASN1_OBJECT *obj,
|
847
|
+
int attrtype,
|
848
|
+
const unsigned char *data,
|
849
|
+
int len);
|
850
|
+
|
851
|
+
// X509_REQ_add1_attr_by_NID behaves like |X509_REQ_add1_attr_by_OBJ| except the
|
852
|
+
// attribute type is determined by |nid|.
|
853
|
+
OPENSSL_EXPORT int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid,
|
854
|
+
int attrtype,
|
855
|
+
const unsigned char *data,
|
856
|
+
int len);
|
857
|
+
|
858
|
+
// X509_REQ_add1_attr_by_txt behaves like |X509_REQ_add1_attr_by_OBJ| except the
|
859
|
+
// attribute type is determined by calling |OBJ_txt2obj| with |attrname|.
|
860
|
+
OPENSSL_EXPORT int X509_REQ_add1_attr_by_txt(X509_REQ *req,
|
861
|
+
const char *attrname, int attrtype,
|
862
|
+
const unsigned char *data,
|
863
|
+
int len);
|
864
|
+
|
865
|
+
// X509_REQ_add_extensions_nid adds an attribute to |req| of type |nid|, to
|
866
|
+
// request the certificate extensions in |exts|. It returns one on success and
|
867
|
+
// zero on error. |nid| should be |NID_ext_req| or |NID_ms_ext_req|.
|
868
|
+
OPENSSL_EXPORT int X509_REQ_add_extensions_nid(
|
869
|
+
X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid);
|
870
|
+
|
871
|
+
// X509_REQ_add_extensions behaves like |X509_REQ_add_extensions_nid|, using the
|
872
|
+
// standard |NID_ext_req| for the attribute type.
|
873
|
+
OPENSSL_EXPORT int X509_REQ_add_extensions(
|
874
|
+
X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts);
|
875
|
+
|
773
876
|
// X509_REQ_sign signs |req| with |pkey| and replaces the signature algorithm
|
774
|
-
// and signature fields. It returns
|
775
|
-
// function uses digest algorithm |md|, or |pkey|'s default
|
776
|
-
// signing parameters use |pkey|'s defaults. To customize them,
|
777
|
-
// |X509_REQ_sign_ctx|.
|
877
|
+
// and signature fields. It returns the length of the signature on success and
|
878
|
+
// zero on error. This function uses digest algorithm |md|, or |pkey|'s default
|
879
|
+
// if NULL. Other signing parameters use |pkey|'s defaults. To customize them,
|
880
|
+
// use |X509_REQ_sign_ctx|.
|
778
881
|
OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *req, EVP_PKEY *pkey,
|
779
882
|
const EVP_MD *md);
|
780
883
|
|
781
884
|
// X509_REQ_sign_ctx signs |req| with |ctx| and replaces the signature algorithm
|
782
|
-
// and signature fields. It returns
|
783
|
-
// signature algorithm and parameters come from |ctx|, which
|
784
|
-
// initialized with |EVP_DigestSignInit|. The caller should
|
785
|
-
// corresponding |EVP_PKEY_CTX| before calling this function.
|
885
|
+
// and signature fields. It returns the length of the signature on success and
|
886
|
+
// zero on error. The signature algorithm and parameters come from |ctx|, which
|
887
|
+
// must have been initialized with |EVP_DigestSignInit|. The caller should
|
888
|
+
// configure the corresponding |EVP_PKEY_CTX| before calling this function.
|
786
889
|
OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *req, EVP_MD_CTX *ctx);
|
787
890
|
|
788
891
|
// i2d_re_X509_REQ_tbs serializes the CertificationRequestInfo (see RFC 2986)
|
@@ -940,22 +1043,25 @@ OPENSSL_EXPORT int X509_NAME_add_entry(X509_NAME *name,
|
|
940
1043
|
// |set| as in |X509_NAME_add_entry|.
|
941
1044
|
OPENSSL_EXPORT int X509_NAME_add_entry_by_OBJ(X509_NAME *name,
|
942
1045
|
const ASN1_OBJECT *obj, int type,
|
943
|
-
const uint8_t *bytes,
|
944
|
-
|
1046
|
+
const uint8_t *bytes,
|
1047
|
+
ossl_ssize_t len, int loc,
|
1048
|
+
int set);
|
945
1049
|
|
946
1050
|
// X509_NAME_add_entry_by_NID behaves like |X509_NAME_add_entry_by_OBJ| but sets
|
947
1051
|
// the entry's attribute type to |nid|, which should be one of the |NID_*|
|
948
1052
|
// constants.
|
949
1053
|
OPENSSL_EXPORT int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid,
|
950
1054
|
int type, const uint8_t *bytes,
|
951
|
-
|
1055
|
+
ossl_ssize_t len, int loc,
|
1056
|
+
int set);
|
952
1057
|
|
953
1058
|
// X509_NAME_add_entry_by_txt behaves like |X509_NAME_add_entry_by_OBJ| but sets
|
954
1059
|
// the entry's attribute type to |field|, which is passed to |OBJ_txt2obj|.
|
955
1060
|
OPENSSL_EXPORT int X509_NAME_add_entry_by_txt(X509_NAME *name,
|
956
1061
|
const char *field, int type,
|
957
|
-
const uint8_t *bytes,
|
958
|
-
|
1062
|
+
const uint8_t *bytes,
|
1063
|
+
ossl_ssize_t len, int loc,
|
1064
|
+
int set);
|
959
1065
|
|
960
1066
|
// X509_NAME_ENTRY is an |ASN1_ITEM| whose ASN.1 type is AttributeTypeAndValue
|
961
1067
|
// (RFC 5280) and C type is |X509_NAME_ENTRY*|.
|
@@ -1021,7 +1127,8 @@ OPENSSL_EXPORT ASN1_STRING *X509_NAME_ENTRY_get_data(
|
|
1021
1127
|
// See |ASN1_STRING| for how to format ASN.1 types as an |ASN1_STRING|. If
|
1022
1128
|
// |type| is |V_ASN1_UNDEF| the previous |ASN1_STRING| type is reused.
|
1023
1129
|
OPENSSL_EXPORT int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *entry, int type,
|
1024
|
-
const uint8_t *bytes,
|
1130
|
+
const uint8_t *bytes,
|
1131
|
+
ossl_ssize_t len);
|
1025
1132
|
|
1026
1133
|
// X509_NAME_ENTRY_set returns the zero-based index of the RDN which contains
|
1027
1134
|
// |entry|. Consecutive entries with the same index are part of the same RDN.
|
@@ -1037,19 +1144,20 @@ OPENSSL_EXPORT int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *entry);
|
|
1037
1144
|
// object at |*out| instead of allocating a new one.
|
1038
1145
|
OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(
|
1039
1146
|
X509_NAME_ENTRY **out, const ASN1_OBJECT *obj, int type,
|
1040
|
-
const uint8_t *bytes,
|
1147
|
+
const uint8_t *bytes, ossl_ssize_t len);
|
1041
1148
|
|
1042
1149
|
// X509_NAME_ENTRY_create_by_NID behaves like |X509_NAME_ENTRY_create_by_OBJ|
|
1043
1150
|
// except the attribute type is |nid|, which should be one of the |NID_*|
|
1044
1151
|
// constants.
|
1045
1152
|
OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(
|
1046
|
-
X509_NAME_ENTRY **out, int nid, int type, const uint8_t *bytes,
|
1153
|
+
X509_NAME_ENTRY **out, int nid, int type, const uint8_t *bytes,
|
1154
|
+
ossl_ssize_t len);
|
1047
1155
|
|
1048
1156
|
// X509_NAME_ENTRY_create_by_txt behaves like |X509_NAME_ENTRY_create_by_OBJ|
|
1049
1157
|
// except the attribute type is |field|, which is passed to |OBJ_txt2obj|.
|
1050
1158
|
OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(
|
1051
1159
|
X509_NAME_ENTRY **out, const char *field, int type, const uint8_t *bytes,
|
1052
|
-
|
1160
|
+
ossl_ssize_t len);
|
1053
1161
|
|
1054
1162
|
|
1055
1163
|
// Extensions.
|
@@ -1291,137 +1399,568 @@ OPENSSL_EXPORT void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
|
|
1291
1399
|
OPENSSL_EXPORT int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);
|
1292
1400
|
|
1293
1401
|
|
1294
|
-
//
|
1402
|
+
// Attributes.
|
1295
1403
|
//
|
1296
|
-
//
|
1297
|
-
//
|
1298
|
-
//
|
1299
|
-
|
1300
|
-
// X509_signature_dump writes a human-readable representation of |sig| to |bio|,
|
1301
|
-
// indented with |indent| spaces. It returns one on success and zero on error.
|
1302
|
-
OPENSSL_EXPORT int X509_signature_dump(BIO *bio, const ASN1_STRING *sig,
|
1303
|
-
int indent);
|
1304
|
-
|
1305
|
-
// X509_signature_print writes a human-readable representation of |alg| and
|
1306
|
-
// |sig| to |bio|. It returns one on success and zero on error.
|
1307
|
-
OPENSSL_EXPORT int X509_signature_print(BIO *bio, const X509_ALGOR *alg,
|
1308
|
-
const ASN1_STRING *sig);
|
1404
|
+
// Unlike certificates and CRLs, CSRs use a separate Attribute structure (RFC
|
1405
|
+
// 2985, RFC 2986) for extensibility. This is represented by the library as
|
1406
|
+
// |X509_ATTRIBUTE|.
|
1309
1407
|
|
1408
|
+
DEFINE_STACK_OF(X509_ATTRIBUTE)
|
1310
1409
|
|
1311
|
-
//
|
1410
|
+
// X509_ATTRIBUTE is an |ASN1_ITEM| whose ASN.1 type is Attribute (RFC 2986) and
|
1411
|
+
// C type is |X509_ATTRIBUTE*|.
|
1412
|
+
DECLARE_ASN1_ITEM(X509_ATTRIBUTE)
|
1312
1413
|
|
1313
|
-
//
|
1314
|
-
//
|
1315
|
-
//
|
1316
|
-
|
1317
|
-
// function returns one on success and zero on error.
|
1318
|
-
//
|
1319
|
-
// This hash omits the BIT STRING tag, length, and number of unused bits. It
|
1320
|
-
// also omits the AlgorithmIdentifier which describes the key type. It
|
1321
|
-
// corresponds to the OCSP KeyHash definition and is not suitable for other
|
1322
|
-
// purposes.
|
1323
|
-
OPENSSL_EXPORT int X509_pubkey_digest(const X509 *x509, const EVP_MD *md,
|
1324
|
-
uint8_t *out, unsigned *out_len);
|
1414
|
+
// X509_ATTRIBUTE_new returns a newly-allocated, empty |X509_ATTRIBUTE| object,
|
1415
|
+
// or NULL on error. |X509_ATTRIBUTE_set1_*| may be used to finish initializing
|
1416
|
+
// it.
|
1417
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_new(void);
|
1325
1418
|
|
1326
|
-
//
|
1327
|
-
//
|
1328
|
-
//
|
1329
|
-
|
1330
|
-
// Note this digest covers the entire certificate, not just the signed portion.
|
1331
|
-
OPENSSL_EXPORT int X509_digest(const X509 *x509, const EVP_MD *md, uint8_t *out,
|
1332
|
-
unsigned *out_len);
|
1419
|
+
// X509_ATTRIBUTE_dup returns a newly-allocated copy of |attr|, or NULL on
|
1420
|
+
// error. This function works by serializing the structure, so if |attr| is
|
1421
|
+
// incomplete, it may fail.
|
1422
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_dup(const X509_ATTRIBUTE *attr);
|
1333
1423
|
|
1334
|
-
//
|
1335
|
-
|
1336
|
-
// |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
|
1337
|
-
// of bytes written. This function returns one on success and zero on error.
|
1338
|
-
// Note this digest covers the entire CRL, not just the signed portion.
|
1339
|
-
OPENSSL_EXPORT int X509_CRL_digest(const X509_CRL *crl, const EVP_MD *md,
|
1340
|
-
uint8_t *out, unsigned *out_len);
|
1424
|
+
// X509_ATTRIBUTE_free releases memory associated with |attr|.
|
1425
|
+
OPENSSL_EXPORT void X509_ATTRIBUTE_free(X509_ATTRIBUTE *attr);
|
1341
1426
|
|
1342
|
-
//
|
1343
|
-
//
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
// portion.
|
1348
|
-
OPENSSL_EXPORT int X509_REQ_digest(const X509_REQ *req, const EVP_MD *md,
|
1349
|
-
uint8_t *out, unsigned *out_len);
|
1427
|
+
// d2i_X509_ATTRIBUTE parses up to |len| bytes from |*inp| as a DER-encoded
|
1428
|
+
// Attribute (RFC 2986), as described in |d2i_SAMPLE|.
|
1429
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **out,
|
1430
|
+
const uint8_t **inp,
|
1431
|
+
long len);
|
1350
1432
|
|
1351
|
-
//
|
1352
|
-
//
|
1353
|
-
|
1354
|
-
|
1355
|
-
OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *name, const EVP_MD *md,
|
1356
|
-
uint8_t *out, unsigned *out_len);
|
1433
|
+
// i2d_X509_ATTRIBUTE marshals |alg| as a DER-encoded Attribute (RFC 2986), as
|
1434
|
+
// described in |i2d_SAMPLE|.
|
1435
|
+
OPENSSL_EXPORT int i2d_X509_ATTRIBUTE(const X509_ATTRIBUTE *alg,
|
1436
|
+
uint8_t **outp);
|
1357
1437
|
|
1358
|
-
//
|
1359
|
-
//
|
1360
|
-
//
|
1361
|
-
// |
|
1362
|
-
OPENSSL_EXPORT
|
1363
|
-
|
1364
|
-
OPENSSL_EXPORT X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req);
|
1365
|
-
OPENSSL_EXPORT RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa);
|
1366
|
-
OPENSSL_EXPORT RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa);
|
1367
|
-
OPENSSL_EXPORT RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
|
1368
|
-
OPENSSL_EXPORT DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
|
1369
|
-
OPENSSL_EXPORT DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa);
|
1370
|
-
OPENSSL_EXPORT EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey);
|
1371
|
-
OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey);
|
1372
|
-
OPENSSL_EXPORT X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8);
|
1373
|
-
OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(
|
1374
|
-
BIO *bp, PKCS8_PRIV_KEY_INFO **p8inf);
|
1375
|
-
OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a);
|
1376
|
-
OPENSSL_EXPORT DH *d2i_DHparams_bio(BIO *bp, DH **dh);
|
1438
|
+
// X509_ATTRIBUTE_create returns a newly-allocated |X509_ATTRIBUTE|, or NULL on
|
1439
|
+
// error. The attribute has type |nid| and contains a single value determined by
|
1440
|
+
// |attrtype| and |value|, which are interpreted as in |ASN1_TYPE_set|. Note
|
1441
|
+
// this function takes ownership of |value|.
|
1442
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int attrtype,
|
1443
|
+
void *value);
|
1377
1444
|
|
1378
|
-
//
|
1379
|
-
//
|
1380
|
-
|
1445
|
+
// X509_ATTRIBUTE_create_by_NID returns a newly-allocated |X509_ATTRIBUTE| of
|
1446
|
+
// type |nid|, or NULL on error. The value is determined as in
|
1447
|
+
// |X509_ATTRIBUTE_set1_data|.
|
1448
|
+
//
|
1449
|
+
// If |attr| is non-NULL, the resulting |X509_ATTRIBUTE| is also written to
|
1450
|
+
// |*attr|. If |*attr| was non-NULL when the function was called, |*attr| is
|
1451
|
+
// reused instead of creating a new object.
|
1452
|
+
//
|
1453
|
+
// WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
|
1454
|
+
// error-prone. See |X509_ATTRIBUTE_set1_data| for details.
|
1455
|
+
//
|
1456
|
+
// WARNING: The object reuse form is deprecated and may be removed in the
|
1457
|
+
// future. It also currently incorrectly appends to the reused object's value
|
1458
|
+
// set rather than overwriting it.
|
1459
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(
|
1460
|
+
X509_ATTRIBUTE **attr, int nid, int attrtype, const void *data, int len);
|
1381
1461
|
|
1382
|
-
//
|
1383
|
-
//
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
OPENSSL_EXPORT int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl);
|
1388
|
-
OPENSSL_EXPORT int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req);
|
1389
|
-
OPENSSL_EXPORT int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa);
|
1390
|
-
OPENSSL_EXPORT int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa);
|
1391
|
-
OPENSSL_EXPORT int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
|
1392
|
-
OPENSSL_EXPORT int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
|
1393
|
-
OPENSSL_EXPORT int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa);
|
1394
|
-
OPENSSL_EXPORT int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey);
|
1395
|
-
OPENSSL_EXPORT int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey);
|
1396
|
-
OPENSSL_EXPORT int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8);
|
1397
|
-
OPENSSL_EXPORT int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
|
1398
|
-
PKCS8_PRIV_KEY_INFO *p8inf);
|
1399
|
-
OPENSSL_EXPORT int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey);
|
1400
|
-
OPENSSL_EXPORT int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey);
|
1401
|
-
OPENSSL_EXPORT int i2d_DHparams_bio(BIO *bp, const DH *dh);
|
1462
|
+
// X509_ATTRIBUTE_create_by_OBJ behaves like |X509_ATTRIBUTE_create_by_NID|
|
1463
|
+
// except the attribute's type is determined by |obj|.
|
1464
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(
|
1465
|
+
X509_ATTRIBUTE **attr, const ASN1_OBJECT *obj, int attrtype,
|
1466
|
+
const void *data, int len);
|
1402
1467
|
|
1403
|
-
//
|
1404
|
-
//
|
1405
|
-
//
|
1406
|
-
OPENSSL_EXPORT
|
1468
|
+
// X509_ATTRIBUTE_create_by_txt behaves like |X509_ATTRIBUTE_create_by_NID|
|
1469
|
+
// except the attribute's type is determined by calling |OBJ_txt2obj| with
|
1470
|
+
// |attrname|.
|
1471
|
+
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(
|
1472
|
+
X509_ATTRIBUTE **attr, const char *attrname, int type,
|
1473
|
+
const unsigned char *bytes, int len);
|
1407
1474
|
|
1408
|
-
//
|
1409
|
-
//
|
1410
|
-
OPENSSL_EXPORT
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1475
|
+
// X509_ATTRIBUTE_set1_object sets |attr|'s type to |obj|. It returns one on
|
1476
|
+
// success and zero on error.
|
1477
|
+
OPENSSL_EXPORT int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr,
|
1478
|
+
const ASN1_OBJECT *obj);
|
1479
|
+
|
1480
|
+
// X509_ATTRIBUTE_set1_data appends a value to |attr|'s value set and returns
|
1481
|
+
// one on success or zero on error. The value is determined as follows:
|
1482
|
+
//
|
1483
|
+
// If |attrtype| is a |MBSTRING_*| constant, the value is an ASN.1 string. The
|
1484
|
+
// string is determined by decoding |len| bytes from |data| in the encoding
|
1485
|
+
// specified by |attrtype|, and then re-encoding it in a form appropriate for
|
1486
|
+
// |attr|'s type. If |len| is -1, |strlen(data)| is used instead. See
|
1487
|
+
// |ASN1_STRING_set_by_NID| for details.
|
1488
|
+
//
|
1489
|
+
// Otherwise, if |len| is not -1, the value is an ASN.1 string. |attrtype| is an
|
1490
|
+
// |ASN1_STRING| type value and the |len| bytes from |data| are copied as the
|
1491
|
+
// type-specific representation of |ASN1_STRING|. See |ASN1_STRING| for details.
|
1492
|
+
//
|
1493
|
+
// WARNING: If this form is used to construct a negative INTEGER or ENUMERATED,
|
1494
|
+
// |attrtype| includes the |V_ASN1_NEG| flag for |ASN1_STRING|, but the function
|
1495
|
+
// forgets to clear the flag for |ASN1_TYPE|. This matches OpenSSL but is
|
1496
|
+
// probably a bug. For now, do not use this form with negative values.
|
1497
|
+
//
|
1498
|
+
// Otherwise, if |len| is -1, the value is constructed by passing |attrtype| and
|
1499
|
+
// |data| to |ASN1_TYPE_set1|. That is, |attrtype| is an |ASN1_TYPE| type value,
|
1500
|
+
// and |data| is cast to the corresponding pointer type.
|
1501
|
+
//
|
1502
|
+
// WARNING: Despite the name, this function appends to |attr|'s value set,
|
1503
|
+
// rather than overwriting it. To overwrite the value set, create a new
|
1504
|
+
// |X509_ATTRIBUTE| with |X509_ATTRIBUTE_new|.
|
1505
|
+
//
|
1506
|
+
// WARNING: If using the |MBSTRING_*| form, pass a length rather than relying on
|
1507
|
+
// |strlen|. In particular, |strlen| will not behave correctly if the input is
|
1508
|
+
// |MBSTRING_BMP| or |MBSTRING_UNIV|.
|
1509
|
+
//
|
1510
|
+
// WARNING: This function currently misinterprets |V_ASN1_OTHER| as an
|
1511
|
+
// |MBSTRING_*| constant. This matches OpenSSL but means it is impossible to
|
1512
|
+
// construct a value with a non-universal tag.
|
1513
|
+
OPENSSL_EXPORT int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,
|
1514
|
+
const void *data, int len);
|
1515
|
+
|
1516
|
+
// X509_ATTRIBUTE_get0_data returns the |idx|th value of |attr| in a
|
1517
|
+
// type-specific representation to |attrtype|, or NULL if out of bounds or the
|
1518
|
+
// type does not match. |attrtype| is one of the type values in |ASN1_TYPE|. On
|
1519
|
+
// match, the return value uses the same representation as |ASN1_TYPE_set0|. See
|
1520
|
+
// |ASN1_TYPE| for details.
|
1521
|
+
OPENSSL_EXPORT void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
|
1522
|
+
int attrtype, void *unused);
|
1523
|
+
|
1524
|
+
// X509_ATTRIBUTE_count returns the number of values in |attr|.
|
1525
|
+
OPENSSL_EXPORT int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr);
|
1526
|
+
|
1527
|
+
// X509_ATTRIBUTE_get0_object returns the type of |attr|.
|
1528
|
+
OPENSSL_EXPORT ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr);
|
1529
|
+
|
1530
|
+
// X509_ATTRIBUTE_get0_type returns the |idx|th value in |attr|, or NULL if out
|
1531
|
+
// of bounds. Note this function returns one of |attr|'s values, not the type.
|
1532
|
+
OPENSSL_EXPORT ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr,
|
1533
|
+
int idx);
|
1534
|
+
|
1535
|
+
|
1536
|
+
// SignedPublicKeyAndChallenge structures.
|
1537
|
+
//
|
1538
|
+
// The SignedPublicKeyAndChallenge (SPKAC) is a legacy structure to request
|
1539
|
+
// certificates, primarily in the legacy <keygen> HTML tag. An SPKAC structure
|
1540
|
+
// is represented by a |NETSCAPE_SPKI| structure.
|
1541
|
+
//
|
1542
|
+
// The structure is described in
|
1543
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen
|
1544
|
+
|
1545
|
+
// A Netscape_spki_st, or |NETSCAPE_SPKI|, represents a
|
1546
|
+
// SignedPublicKeyAndChallenge structure. Although this structure contains a
|
1547
|
+
// |spkac| field of type |NETSCAPE_SPKAC|, these are misnamed. The SPKAC is the
|
1548
|
+
// entire structure, not the signed portion.
|
1549
|
+
struct Netscape_spki_st {
|
1550
|
+
NETSCAPE_SPKAC *spkac;
|
1551
|
+
X509_ALGOR *sig_algor;
|
1552
|
+
ASN1_BIT_STRING *signature;
|
1553
|
+
} /* NETSCAPE_SPKI */;
|
1554
|
+
|
1555
|
+
// NETSCAPE_SPKI is an |ASN1_ITEM| whose ASN.1 type is
|
1556
|
+
// SignedPublicKeyAndChallenge and C type is |NETSCAPE_SPKI*|.
|
1557
|
+
DECLARE_ASN1_ITEM(NETSCAPE_SPKI)
|
1558
|
+
|
1559
|
+
// NETSCAPE_SPKI_new returns a newly-allocated, empty |NETSCAPE_SPKI| object, or
|
1560
|
+
// NULL on error.
|
1561
|
+
OPENSSL_EXPORT NETSCAPE_SPKI *NETSCAPE_SPKI_new(void);
|
1562
|
+
|
1563
|
+
// NETSCAPE_SPKI_free releases memory associated with |spki|.
|
1564
|
+
OPENSSL_EXPORT void NETSCAPE_SPKI_free(NETSCAPE_SPKI *spki);
|
1565
|
+
|
1566
|
+
// d2i_NETSCAPE_SPKI parses up to |len| bytes from |*inp| as a DER-encoded
|
1567
|
+
// SignedPublicKeyAndChallenge structure, as described in |d2i_SAMPLE|.
|
1568
|
+
OPENSSL_EXPORT NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **out,
|
1569
|
+
const uint8_t **inp, long len);
|
1570
|
+
|
1571
|
+
// i2d_NETSCAPE_SPKI marshals |spki| as a DER-encoded
|
1572
|
+
// SignedPublicKeyAndChallenge structure, as described in |i2d_SAMPLE|.
|
1573
|
+
OPENSSL_EXPORT int i2d_NETSCAPE_SPKI(const NETSCAPE_SPKI *spki, uint8_t **outp);
|
1574
|
+
|
1575
|
+
// NETSCAPE_SPKI_verify checks that |spki| has a valid signature by |pkey|. It
|
1576
|
+
// returns one if the signature is valid and zero otherwise.
|
1577
|
+
OPENSSL_EXPORT int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *spki, EVP_PKEY *pkey);
|
1578
|
+
|
1579
|
+
// NETSCAPE_SPKI_b64_decode decodes |len| bytes from |str| as a base64-encoded
|
1580
|
+
// SignedPublicKeyAndChallenge structure. It returns a newly-allocated
|
1581
|
+
// |NETSCAPE_SPKI| structure with the result, or NULL on error. If |len| is 0 or
|
1582
|
+
// negative, the length is calculated with |strlen| and |str| must be a
|
1583
|
+
// NUL-terminated C string.
|
1584
|
+
OPENSSL_EXPORT NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str,
|
1585
|
+
ossl_ssize_t len);
|
1586
|
+
|
1587
|
+
// NETSCAPE_SPKI_b64_encode encodes |spki| as a base64-encoded
|
1588
|
+
// SignedPublicKeyAndChallenge structure. It returns a newly-allocated
|
1589
|
+
// NUL-terminated C string with the result, or NULL on error. The caller must
|
1590
|
+
// release the memory with |OPENSSL_free| when done.
|
1591
|
+
OPENSSL_EXPORT char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki);
|
1592
|
+
|
1593
|
+
// NETSCAPE_SPKI_get_pubkey decodes and returns the public key in |spki| as an
|
1594
|
+
// |EVP_PKEY|, or NULL on error. The caller takes ownership of the resulting
|
1595
|
+
// pointer and must call |EVP_PKEY_free| when done.
|
1596
|
+
OPENSSL_EXPORT EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *spki);
|
1597
|
+
|
1598
|
+
// NETSCAPE_SPKI_set_pubkey sets |spki|'s public key to |pkey|. It returns one
|
1599
|
+
// on success or zero on error. This function does not take ownership of |pkey|,
|
1600
|
+
// so the caller may continue to manage its lifetime independently of |spki|.
|
1601
|
+
OPENSSL_EXPORT int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *spki,
|
1602
|
+
EVP_PKEY *pkey);
|
1603
|
+
|
1604
|
+
// NETSCAPE_SPKI_sign signs |spki| with |pkey| and replaces the signature
|
1605
|
+
// algorithm and signature fields. It returns the length of the signature on
|
1606
|
+
// success and zero on error. This function uses digest algorithm |md|, or
|
1607
|
+
// |pkey|'s default if NULL. Other signing parameters use |pkey|'s defaults.
|
1608
|
+
OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *spki, EVP_PKEY *pkey,
|
1609
|
+
const EVP_MD *md);
|
1610
|
+
|
1611
|
+
// A Netscape_spkac_st, or |NETSCAPE_SPKAC|, represents a PublicKeyAndChallenge
|
1612
|
+
// structure. This type is misnamed. The full SPKAC includes the signature,
|
1613
|
+
// which is represented with the |NETSCAPE_SPKI| type.
|
1614
|
+
struct Netscape_spkac_st {
|
1615
|
+
X509_PUBKEY *pubkey;
|
1616
|
+
ASN1_IA5STRING *challenge;
|
1617
|
+
} /* NETSCAPE_SPKAC */;
|
1618
|
+
|
1619
|
+
// NETSCAPE_SPKAC is an |ASN1_ITEM| whose ASN.1 type is PublicKeyAndChallenge
|
1620
|
+
// and C type is |NETSCAPE_SPKAC*|.
|
1621
|
+
DECLARE_ASN1_ITEM(NETSCAPE_SPKAC)
|
1622
|
+
|
1623
|
+
// NETSCAPE_SPKAC_new returns a newly-allocated, empty |NETSCAPE_SPKAC| object,
|
1624
|
+
// or NULL on error.
|
1625
|
+
OPENSSL_EXPORT NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void);
|
1626
|
+
|
1627
|
+
// NETSCAPE_SPKAC_free releases memory associated with |spkac|.
|
1628
|
+
OPENSSL_EXPORT void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *spkac);
|
1629
|
+
|
1630
|
+
// d2i_NETSCAPE_SPKAC parses up to |len| bytes from |*inp| as a DER-encoded
|
1631
|
+
// PublicKeyAndChallenge structure, as described in |d2i_SAMPLE|.
|
1632
|
+
OPENSSL_EXPORT NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **out,
|
1633
|
+
const uint8_t **inp,
|
1634
|
+
long len);
|
1635
|
+
|
1636
|
+
// i2d_NETSCAPE_SPKAC marshals |spkac| as a DER-encoded PublicKeyAndChallenge
|
1637
|
+
// structure, as described in |i2d_SAMPLE|.
|
1638
|
+
OPENSSL_EXPORT int i2d_NETSCAPE_SPKAC(const NETSCAPE_SPKAC *spkac,
|
1639
|
+
uint8_t **outp);
|
1640
|
+
|
1641
|
+
|
1642
|
+
// Printing functions.
|
1643
|
+
//
|
1644
|
+
// The following functions output human-readable representations of
|
1645
|
+
// X.509-related structures. They should only be used for debugging or logging
|
1646
|
+
// and not parsed programmatically. In many cases, the outputs are ambiguous, so
|
1647
|
+
// attempting to parse them can lead to string injection vulnerabilities.
|
1648
|
+
|
1649
|
+
// The following flags control |X509_print_ex| and |X509_REQ_print_ex|.
|
1650
|
+
|
1651
|
+
// X509_FLAG_COMPAT disables all flags. It additionally causes names to be
|
1652
|
+
// printed with a 16-byte indent.
|
1653
|
+
#define X509_FLAG_COMPAT 0
|
1654
|
+
|
1655
|
+
// X509_FLAG_NO_HEADER skips a header identifying the type of object printed.
|
1656
|
+
#define X509_FLAG_NO_HEADER 1L
|
1657
|
+
|
1658
|
+
// X509_FLAG_NO_VERSION skips printing the X.509 version number.
|
1659
|
+
#define X509_FLAG_NO_VERSION (1L << 1)
|
1660
|
+
|
1661
|
+
// X509_FLAG_NO_SERIAL skips printing the serial number. It is ignored in
|
1662
|
+
// |X509_REQ_print_fp|.
|
1663
|
+
#define X509_FLAG_NO_SERIAL (1L << 2)
|
1664
|
+
|
1665
|
+
// X509_FLAG_NO_SIGNAME skips printing the signature algorithm in the
|
1666
|
+
// TBSCertificate. It is ignored in |X509_REQ_print_fp|.
|
1667
|
+
#define X509_FLAG_NO_SIGNAME (1L << 3)
|
1668
|
+
|
1669
|
+
// X509_FLAG_NO_ISSUER skips printing the issuer.
|
1670
|
+
#define X509_FLAG_NO_ISSUER (1L << 4)
|
1671
|
+
|
1672
|
+
// X509_FLAG_NO_VALIDITY skips printing the notBefore and notAfter times. It is
|
1673
|
+
// ignored in |X509_REQ_print_fp|.
|
1674
|
+
#define X509_FLAG_NO_VALIDITY (1L << 5)
|
1675
|
+
|
1676
|
+
// X509_FLAG_NO_SUBJECT skips printing the subject.
|
1677
|
+
#define X509_FLAG_NO_SUBJECT (1L << 6)
|
1678
|
+
|
1679
|
+
// X509_FLAG_NO_PUBKEY skips printing the public key.
|
1680
|
+
#define X509_FLAG_NO_PUBKEY (1L << 7)
|
1681
|
+
|
1682
|
+
// X509_FLAG_NO_EXTENSIONS skips printing the extension list. It is ignored in
|
1683
|
+
// |X509_REQ_print_fp|. CSRs instead have attributes, which is controlled by
|
1684
|
+
// |X509_FLAG_NO_ATTRIBUTES|.
|
1685
|
+
#define X509_FLAG_NO_EXTENSIONS (1L << 8)
|
1686
|
+
|
1687
|
+
// X509_FLAG_NO_SIGDUMP skips printing the signature and outer signature
|
1688
|
+
// algorithm.
|
1689
|
+
#define X509_FLAG_NO_SIGDUMP (1L << 9)
|
1690
|
+
|
1691
|
+
// X509_FLAG_NO_AUX skips printing auxiliary properties. (See |d2i_X509_AUX| and
|
1692
|
+
// related functions.)
|
1693
|
+
#define X509_FLAG_NO_AUX (1L << 10)
|
1694
|
+
|
1695
|
+
// X509_FLAG_NO_ATTRIBUTES skips printing CSR attributes. It does nothing for
|
1696
|
+
// certificates and CRLs.
|
1697
|
+
#define X509_FLAG_NO_ATTRIBUTES (1L << 11)
|
1698
|
+
|
1699
|
+
// X509_FLAG_NO_IDS skips printing the issuerUniqueID and subjectUniqueID in a
|
1700
|
+
// certificate. It is ignored in |X509_REQ_print_fp|.
|
1701
|
+
#define X509_FLAG_NO_IDS (1L << 12)
|
1702
|
+
|
1703
|
+
// X509_print_ex writes a human-readable representation of |x| to |bp|. It
|
1704
|
+
// returns one on success and zero on error. |nmflags| is the flags parameter
|
1705
|
+
// for |X509_NAME_print_ex| when printing the subject and issuer. |cflag| should
|
1706
|
+
// be some combination of the |X509_FLAG_*| constants.
|
1707
|
+
OPENSSL_EXPORT int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag,
|
1708
|
+
unsigned long cflag);
|
1709
|
+
|
1710
|
+
// X509_print_ex_fp behaves like |X509_print_ex| but writes to |fp|.
|
1711
|
+
OPENSSL_EXPORT int X509_print_ex_fp(FILE *fp, X509 *x, unsigned long nmflag,
|
1712
|
+
unsigned long cflag);
|
1713
|
+
|
1714
|
+
// X509_print calls |X509_print_ex| with |XN_FLAG_COMPAT| and |X509_FLAG_COMPAT|
|
1715
|
+
// flags.
|
1716
|
+
OPENSSL_EXPORT int X509_print(BIO *bp, X509 *x);
|
1717
|
+
|
1718
|
+
// X509_print_fp behaves like |X509_print| but writes to |fp|.
|
1719
|
+
OPENSSL_EXPORT int X509_print_fp(FILE *fp, X509 *x);
|
1720
|
+
|
1721
|
+
// X509_CRL_print writes a human-readable representation of |x| to |bp|. It
|
1722
|
+
// returns one on success and zero on error.
|
1723
|
+
OPENSSL_EXPORT int X509_CRL_print(BIO *bp, X509_CRL *x);
|
1724
|
+
|
1725
|
+
// X509_CRL_print_fp behaves like |X509_CRL_print| but writes to |fp|.
|
1726
|
+
OPENSSL_EXPORT int X509_CRL_print_fp(FILE *fp, X509_CRL *x);
|
1727
|
+
|
1728
|
+
// X509_REQ_print_ex writes a human-readable representation of |x| to |bp|. It
|
1729
|
+
// returns one on success and zero on error. |nmflags| is the flags parameter
|
1730
|
+
// for |X509_NAME_print_ex|, when printing the subject. |cflag| should be some
|
1731
|
+
// combination of the |X509_FLAG_*| constants.
|
1732
|
+
OPENSSL_EXPORT int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag,
|
1733
|
+
unsigned long cflag);
|
1734
|
+
|
1735
|
+
// X509_REQ_print calls |X509_REQ_print_ex| with |XN_FLAG_COMPAT| and
|
1736
|
+
// |X509_FLAG_COMPAT| flags.
|
1737
|
+
OPENSSL_EXPORT int X509_REQ_print(BIO *bp, X509_REQ *req);
|
1738
|
+
|
1739
|
+
// X509_REQ_print_fp behaves like |X509_REQ_print| but writes to |fp|.
|
1740
|
+
OPENSSL_EXPORT int X509_REQ_print_fp(FILE *fp, X509_REQ *req);
|
1741
|
+
|
1742
|
+
// The following flags are control |X509_NAME_print_ex|. They must not collide
|
1743
|
+
// with |ASN1_STRFLGS_*|.
|
1744
|
+
//
|
1745
|
+
// TODO(davidben): This is far, far too many options and most of them are
|
1746
|
+
// useless. Trim this down.
|
1747
|
+
|
1748
|
+
// XN_FLAG_COMPAT prints with |X509_NAME_print|'s format and return value
|
1749
|
+
// convention.
|
1750
|
+
#define XN_FLAG_COMPAT 0
|
1751
|
+
|
1752
|
+
// XN_FLAG_SEP_MASK determines the separators to use between attributes.
|
1753
|
+
#define XN_FLAG_SEP_MASK (0xf << 16)
|
1754
|
+
|
1755
|
+
// XN_FLAG_SEP_COMMA_PLUS separates RDNs with "," and attributes within an RDN
|
1756
|
+
// with "+", as in RFC 2253.
|
1757
|
+
#define XN_FLAG_SEP_COMMA_PLUS (1 << 16)
|
1758
|
+
|
1759
|
+
// XN_FLAG_SEP_CPLUS_SPC behaves like |XN_FLAG_SEP_COMMA_PLUS| but adds spaces
|
1760
|
+
// between the separators.
|
1761
|
+
#define XN_FLAG_SEP_CPLUS_SPC (2 << 16)
|
1762
|
+
|
1763
|
+
// XN_FLAG_SEP_SPLUS_SPC separates RDNs with "; " and attributes within an RDN
|
1764
|
+
// with " + ".
|
1765
|
+
#define XN_FLAG_SEP_SPLUS_SPC (3 << 16)
|
1766
|
+
|
1767
|
+
// XN_FLAG_SEP_MULTILINE prints each attribute on one line.
|
1768
|
+
#define XN_FLAG_SEP_MULTILINE (4 << 16)
|
1769
|
+
|
1770
|
+
// XN_FLAG_DN_REV prints RDNs in reverse, from least significant to most
|
1771
|
+
// significant, as RFC 2253.
|
1772
|
+
#define XN_FLAG_DN_REV (1 << 20)
|
1773
|
+
|
1774
|
+
// XN_FLAG_FN_MASK determines how attribute types are displayed.
|
1775
|
+
#define XN_FLAG_FN_MASK (0x3 << 21)
|
1776
|
+
|
1777
|
+
// XN_FLAG_FN_SN uses the attribute type's short name, when available.
|
1778
|
+
#define XN_FLAG_FN_SN 0
|
1779
|
+
|
1780
|
+
// XN_FLAG_SPC_EQ wraps the "=" operator with spaces when printing attributes.
|
1781
|
+
#define XN_FLAG_SPC_EQ (1 << 23)
|
1782
|
+
|
1783
|
+
// XN_FLAG_DUMP_UNKNOWN_FIELDS causes unknown attribute types to be printed in
|
1784
|
+
// hex, as in RFC 2253.
|
1785
|
+
#define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
|
1786
|
+
|
1787
|
+
// XN_FLAG_RFC2253 prints like RFC 2253.
|
1788
|
+
#define XN_FLAG_RFC2253 \
|
1789
|
+
(ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | \
|
1790
|
+
XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS)
|
1791
|
+
|
1792
|
+
// XN_FLAG_ONELINE prints a one-line representation of the name.
|
1793
|
+
#define XN_FLAG_ONELINE \
|
1794
|
+
(ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | \
|
1795
|
+
XN_FLAG_SPC_EQ | XN_FLAG_FN_SN)
|
1796
|
+
|
1797
|
+
// X509_NAME_print_ex writes a human-readable representation of |nm| to |out|.
|
1798
|
+
// Each line of output is indented by |indent| spaces. It returns the number of
|
1799
|
+
// bytes written on success, and -1 on error. If |out| is NULL, it returns the
|
1800
|
+
// number of bytes it would have written but does not write anything. |flags|
|
1801
|
+
// should be some combination of |XN_FLAG_*| and |ASN1_STRFLGS_*| values and
|
1802
|
+
// determines the output. If unsure, use |XN_FLAG_RFC2253|.
|
1803
|
+
//
|
1804
|
+
// If |flags| is |XN_FLAG_COMPAT|, or zero, this function calls
|
1805
|
+
// |X509_NAME_print| instead. In that case, it returns one on success, rather
|
1806
|
+
// than the output length.
|
1807
|
+
OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,
|
1808
|
+
unsigned long flags);
|
1809
|
+
|
1810
|
+
// X509_NAME_print prints a human-readable representation of |name| to |bp|. It
|
1811
|
+
// returns one on success and zero on error. |obase| is ignored.
|
1812
|
+
//
|
1813
|
+
// This function outputs a legacy format that does not correctly handle string
|
1814
|
+
// encodings and other cases. Prefer |X509_NAME_print_ex| if printing a name for
|
1815
|
+
// debugging purposes.
|
1816
|
+
OPENSSL_EXPORT int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
|
1817
|
+
|
1818
|
+
// X509_NAME_oneline writes a human-readable representation to |name| to a
|
1819
|
+
// buffer as a NUL-terminated C string.
|
1820
|
+
//
|
1821
|
+
// If |buf| is NULL, returns a newly-allocated buffer containing the result on
|
1822
|
+
// success, or NULL on error. The buffer must be released with |OPENSSL_free|
|
1823
|
+
// when done.
|
1824
|
+
//
|
1825
|
+
// If |buf| is non-NULL, at most |size| bytes of output are written to |buf|
|
1826
|
+
// instead. |size| includes the trailing NUL. The function then returns |buf| on
|
1827
|
+
// success or NULL on error. If the output does not fit in |size| bytes, the
|
1828
|
+
// output is silently truncated at an attribute boundary.
|
1829
|
+
//
|
1830
|
+
// This function outputs a legacy format that does not correctly handle string
|
1831
|
+
// encodings and other cases. Prefer |X509_NAME_print_ex| if printing a name for
|
1832
|
+
// debugging purposes.
|
1833
|
+
OPENSSL_EXPORT char *X509_NAME_oneline(const X509_NAME *name, char *buf, int size);
|
1834
|
+
|
1835
|
+
// X509_NAME_print_ex_fp behaves like |X509_NAME_print_ex| but writes to |fp|.
|
1836
|
+
OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
|
1837
|
+
int indent, unsigned long flags);
|
1838
|
+
|
1839
|
+
// X509_signature_dump writes a human-readable representation of |sig| to |bio|,
|
1840
|
+
// indented with |indent| spaces. It returns one on success and zero on error.
|
1841
|
+
OPENSSL_EXPORT int X509_signature_dump(BIO *bio, const ASN1_STRING *sig,
|
1842
|
+
int indent);
|
1843
|
+
|
1844
|
+
// X509_signature_print writes a human-readable representation of |alg| and
|
1845
|
+
// |sig| to |bio|. It returns one on success and zero on error.
|
1846
|
+
OPENSSL_EXPORT int X509_signature_print(BIO *bio, const X509_ALGOR *alg,
|
1847
|
+
const ASN1_STRING *sig);
|
1848
|
+
|
1849
|
+
|
1850
|
+
// Convenience functions.
|
1851
|
+
|
1852
|
+
// X509_pubkey_digest hashes the contents of the BIT STRING in |x509|'s
|
1853
|
+
// subjectPublicKeyInfo field with |md| and writes the result to |out|.
|
1854
|
+
// |EVP_MD_CTX_size| bytes are written, which is at most |EVP_MAX_MD_SIZE|. If
|
1855
|
+
// |out_len| is not NULL, |*out_len| is set to the number of bytes written. This
|
1856
|
+
// function returns one on success and zero on error.
|
1857
|
+
//
|
1858
|
+
// This hash omits the BIT STRING tag, length, and number of unused bits. It
|
1859
|
+
// also omits the AlgorithmIdentifier which describes the key type. It
|
1860
|
+
// corresponds to the OCSP KeyHash definition and is not suitable for other
|
1861
|
+
// purposes.
|
1862
|
+
OPENSSL_EXPORT int X509_pubkey_digest(const X509 *x509, const EVP_MD *md,
|
1863
|
+
uint8_t *out, unsigned *out_len);
|
1864
|
+
|
1865
|
+
// X509_digest hashes |x509|'s DER encoding with |md| and writes the result to
|
1866
|
+
// |out|. |EVP_MD_CTX_size| bytes are written, which is at most
|
1867
|
+
// |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
|
1868
|
+
// of bytes written. This function returns one on success and zero on error.
|
1869
|
+
// Note this digest covers the entire certificate, not just the signed portion.
|
1870
|
+
OPENSSL_EXPORT int X509_digest(const X509 *x509, const EVP_MD *md, uint8_t *out,
|
1871
|
+
unsigned *out_len);
|
1872
|
+
|
1873
|
+
// X509_CRL_digest hashes |crl|'s DER encoding with |md| and writes the result
|
1874
|
+
// to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
|
1875
|
+
// |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
|
1876
|
+
// of bytes written. This function returns one on success and zero on error.
|
1877
|
+
// Note this digest covers the entire CRL, not just the signed portion.
|
1878
|
+
OPENSSL_EXPORT int X509_CRL_digest(const X509_CRL *crl, const EVP_MD *md,
|
1879
|
+
uint8_t *out, unsigned *out_len);
|
1880
|
+
|
1881
|
+
// X509_REQ_digest hashes |req|'s DER encoding with |md| and writes the result
|
1882
|
+
// to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
|
1883
|
+
// |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
|
1884
|
+
// of bytes written. This function returns one on success and zero on error.
|
1885
|
+
// Note this digest covers the entire certificate request, not just the signed
|
1886
|
+
// portion.
|
1887
|
+
OPENSSL_EXPORT int X509_REQ_digest(const X509_REQ *req, const EVP_MD *md,
|
1888
|
+
uint8_t *out, unsigned *out_len);
|
1889
|
+
|
1890
|
+
// X509_NAME_digest hashes |name|'s DER encoding with |md| and writes the result
|
1891
|
+
// to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
|
1892
|
+
// |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
|
1893
|
+
// of bytes written. This function returns one on success and zero on error.
|
1894
|
+
OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *name, const EVP_MD *md,
|
1895
|
+
uint8_t *out, unsigned *out_len);
|
1896
|
+
|
1897
|
+
// The following functions behave like the corresponding unsuffixed |d2i_*|
|
1898
|
+
// functions, but read the result from |bp| instead. Callers using these
|
1899
|
+
// functions with memory |BIO|s to parse structures already in memory should use
|
1900
|
+
// |d2i_*| instead.
|
1901
|
+
OPENSSL_EXPORT X509 *d2i_X509_bio(BIO *bp, X509 **x509);
|
1902
|
+
OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl);
|
1903
|
+
OPENSSL_EXPORT X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req);
|
1904
|
+
OPENSSL_EXPORT RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa);
|
1905
|
+
OPENSSL_EXPORT RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa);
|
1906
|
+
OPENSSL_EXPORT RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
|
1907
|
+
OPENSSL_EXPORT DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
|
1908
|
+
OPENSSL_EXPORT DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa);
|
1909
|
+
OPENSSL_EXPORT EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey);
|
1910
|
+
OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey);
|
1911
|
+
OPENSSL_EXPORT X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8);
|
1912
|
+
OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(
|
1913
|
+
BIO *bp, PKCS8_PRIV_KEY_INFO **p8inf);
|
1914
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a);
|
1915
|
+
OPENSSL_EXPORT DH *d2i_DHparams_bio(BIO *bp, DH **dh);
|
1916
|
+
|
1917
|
+
// d2i_PrivateKey_bio behaves like |d2i_AutoPrivateKey|, but reads from |bp|
|
1918
|
+
// instead.
|
1919
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a);
|
1920
|
+
|
1921
|
+
// The following functions behave like the corresponding unsuffixed |i2d_*|
|
1922
|
+
// functions, but write the result to |bp|. They return one on success and zero
|
1923
|
+
// on error. Callers using them with memory |BIO|s to encode structures to
|
1924
|
+
// memory should use |i2d_*| directly instead.
|
1925
|
+
OPENSSL_EXPORT int i2d_X509_bio(BIO *bp, X509 *x509);
|
1926
|
+
OPENSSL_EXPORT int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl);
|
1927
|
+
OPENSSL_EXPORT int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req);
|
1928
|
+
OPENSSL_EXPORT int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa);
|
1929
|
+
OPENSSL_EXPORT int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa);
|
1930
|
+
OPENSSL_EXPORT int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
|
1931
|
+
OPENSSL_EXPORT int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
|
1932
|
+
OPENSSL_EXPORT int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa);
|
1933
|
+
OPENSSL_EXPORT int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey);
|
1934
|
+
OPENSSL_EXPORT int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey);
|
1935
|
+
OPENSSL_EXPORT int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8);
|
1936
|
+
OPENSSL_EXPORT int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
|
1937
|
+
PKCS8_PRIV_KEY_INFO *p8inf);
|
1938
|
+
OPENSSL_EXPORT int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey);
|
1939
|
+
OPENSSL_EXPORT int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey);
|
1940
|
+
OPENSSL_EXPORT int i2d_DHparams_bio(BIO *bp, const DH *dh);
|
1941
|
+
|
1942
|
+
// i2d_PKCS8PrivateKeyInfo_bio encodes |key| as a PKCS#8 PrivateKeyInfo
|
1943
|
+
// structure (see |EVP_marshal_private_key|) and writes the result to |bp|. It
|
1944
|
+
// returns one on success and zero on error.
|
1945
|
+
OPENSSL_EXPORT int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key);
|
1946
|
+
|
1947
|
+
// The following functions behave like the corresponding |d2i_*_bio| functions,
|
1948
|
+
// but read from |fp| instead.
|
1949
|
+
OPENSSL_EXPORT X509 *d2i_X509_fp(FILE *fp, X509 **x509);
|
1950
|
+
OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl);
|
1951
|
+
OPENSSL_EXPORT X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req);
|
1952
|
+
OPENSSL_EXPORT RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa);
|
1953
|
+
OPENSSL_EXPORT RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa);
|
1954
|
+
OPENSSL_EXPORT RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa);
|
1955
|
+
OPENSSL_EXPORT DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
|
1956
|
+
OPENSSL_EXPORT DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
|
1957
|
+
OPENSSL_EXPORT EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey);
|
1958
|
+
OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey);
|
1959
|
+
OPENSSL_EXPORT X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8);
|
1960
|
+
OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(
|
1961
|
+
FILE *fp, PKCS8_PRIV_KEY_INFO **p8inf);
|
1962
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
|
1963
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
|
1425
1964
|
|
1426
1965
|
// The following functions behave like the corresponding |i2d_*_bio| functions,
|
1427
1966
|
// but write to |fp| instead.
|
@@ -1454,6 +1993,39 @@ OPENSSL_EXPORT X509 *X509_find_by_issuer_and_serial(const STACK_OF(X509) *sk,
|
|
1454
1993
|
OPENSSL_EXPORT X509 *X509_find_by_subject(const STACK_OF(X509) *sk,
|
1455
1994
|
X509_NAME *name);
|
1456
1995
|
|
1996
|
+
// X509_cmp_time compares |s| against |*t|. On success, it returns a negative
|
1997
|
+
// number if |s| <= |*t| and a positive number if |s| > |*t|. On error, it
|
1998
|
+
// returns zero. If |t| is NULL, it uses the current time instead of |*t|.
|
1999
|
+
//
|
2000
|
+
// WARNING: Unlike most comparison functions, this function returns zero on
|
2001
|
+
// error, not equality.
|
2002
|
+
OPENSSL_EXPORT int X509_cmp_time(const ASN1_TIME *s, time_t *t);
|
2003
|
+
|
2004
|
+
// X509_cmp_time_posix compares |s| against |t|. On success, it returns a
|
2005
|
+
// negative number if |s| <= |t| and a positive number if |s| > |t|. On error,
|
2006
|
+
// it returns zero.
|
2007
|
+
//
|
2008
|
+
// WARNING: Unlike most comparison functions, this function returns zero on
|
2009
|
+
// error, not equality.
|
2010
|
+
OPENSSL_EXPORT int X509_cmp_time_posix(const ASN1_TIME *s, int64_t t);
|
2011
|
+
|
2012
|
+
// X509_cmp_current_time behaves like |X509_cmp_time| but compares |s| against
|
2013
|
+
// the current time.
|
2014
|
+
OPENSSL_EXPORT int X509_cmp_current_time(const ASN1_TIME *s);
|
2015
|
+
|
2016
|
+
// X509_time_adj calls |X509_time_adj_ex| with |offset_day| equal to zero.
|
2017
|
+
OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec,
|
2018
|
+
time_t *t);
|
2019
|
+
|
2020
|
+
// X509_time_adj_ex behaves like |ASN1_TIME_adj|, but adds an offset to |*t|. If
|
2021
|
+
// |t| is NULL, it uses the current time instead of |*t|.
|
2022
|
+
OPENSSL_EXPORT ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day,
|
2023
|
+
long offset_sec, time_t *t);
|
2024
|
+
|
2025
|
+
// X509_gmtime_adj behaves like |X509_time_adj_ex| but adds |offset_sec| to the
|
2026
|
+
// current time.
|
2027
|
+
OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec);
|
2028
|
+
|
1457
2029
|
|
1458
2030
|
// ex_data functions.
|
1459
2031
|
//
|
@@ -1575,8 +2147,6 @@ struct X509_algor_st {
|
|
1575
2147
|
#define X509v3_KU_DECIPHER_ONLY 0x8000
|
1576
2148
|
#define X509v3_KU_UNDEF 0xffff
|
1577
2149
|
|
1578
|
-
DEFINE_STACK_OF(X509_ATTRIBUTE)
|
1579
|
-
|
1580
2150
|
// This stuff is certificate "auxiliary info"
|
1581
2151
|
// it contains details which are useful in certificate
|
1582
2152
|
// stores and databases. When used this is tagged onto
|
@@ -1626,74 +2196,6 @@ DEFINE_STACK_OF(X509_TRUST)
|
|
1626
2196
|
#define X509_TRUST_REJECTED 2
|
1627
2197
|
#define X509_TRUST_UNTRUSTED 3
|
1628
2198
|
|
1629
|
-
// Flags for X509_print_ex()
|
1630
|
-
|
1631
|
-
#define X509_FLAG_COMPAT 0
|
1632
|
-
#define X509_FLAG_NO_HEADER 1L
|
1633
|
-
#define X509_FLAG_NO_VERSION (1L << 1)
|
1634
|
-
#define X509_FLAG_NO_SERIAL (1L << 2)
|
1635
|
-
#define X509_FLAG_NO_SIGNAME (1L << 3)
|
1636
|
-
#define X509_FLAG_NO_ISSUER (1L << 4)
|
1637
|
-
#define X509_FLAG_NO_VALIDITY (1L << 5)
|
1638
|
-
#define X509_FLAG_NO_SUBJECT (1L << 6)
|
1639
|
-
#define X509_FLAG_NO_PUBKEY (1L << 7)
|
1640
|
-
#define X509_FLAG_NO_EXTENSIONS (1L << 8)
|
1641
|
-
#define X509_FLAG_NO_SIGDUMP (1L << 9)
|
1642
|
-
#define X509_FLAG_NO_AUX (1L << 10)
|
1643
|
-
#define X509_FLAG_NO_ATTRIBUTES (1L << 11)
|
1644
|
-
#define X509_FLAG_NO_IDS (1L << 12)
|
1645
|
-
|
1646
|
-
// Flags specific to X509_NAME_print_ex(). These flags must not collide with
|
1647
|
-
// |ASN1_STRFLGS_*|.
|
1648
|
-
|
1649
|
-
// The field separator information
|
1650
|
-
|
1651
|
-
#define XN_FLAG_SEP_MASK (0xf << 16)
|
1652
|
-
|
1653
|
-
#define XN_FLAG_COMPAT 0 // Traditional SSLeay: use old X509_NAME_print
|
1654
|
-
#define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC 2253 ,+
|
1655
|
-
#define XN_FLAG_SEP_CPLUS_SPC (2 << 16) // ,+ spaced: more readable
|
1656
|
-
#define XN_FLAG_SEP_SPLUS_SPC (3 << 16) // ;+ spaced
|
1657
|
-
#define XN_FLAG_SEP_MULTILINE (4 << 16) // One line per field
|
1658
|
-
|
1659
|
-
#define XN_FLAG_DN_REV (1 << 20) // Reverse DN order
|
1660
|
-
|
1661
|
-
// How the field name is shown
|
1662
|
-
|
1663
|
-
#define XN_FLAG_FN_MASK (0x3 << 21)
|
1664
|
-
|
1665
|
-
#define XN_FLAG_FN_SN 0 // Object short name
|
1666
|
-
#define XN_FLAG_FN_LN (1 << 21) // Object long name
|
1667
|
-
#define XN_FLAG_FN_OID (2 << 21) // Always use OIDs
|
1668
|
-
#define XN_FLAG_FN_NONE (3 << 21) // No field names
|
1669
|
-
|
1670
|
-
#define XN_FLAG_SPC_EQ (1 << 23) // Put spaces round '='
|
1671
|
-
|
1672
|
-
// This determines if we dump fields we don't recognise:
|
1673
|
-
// RFC 2253 requires this.
|
1674
|
-
|
1675
|
-
#define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
|
1676
|
-
|
1677
|
-
#define XN_FLAG_FN_ALIGN (1 << 25) // Align field names to 20 characters
|
1678
|
-
|
1679
|
-
// Complete set of RFC 2253 flags
|
1680
|
-
|
1681
|
-
#define XN_FLAG_RFC2253 \
|
1682
|
-
(ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | \
|
1683
|
-
XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS)
|
1684
|
-
|
1685
|
-
// readable oneline form
|
1686
|
-
|
1687
|
-
#define XN_FLAG_ONELINE \
|
1688
|
-
(ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | \
|
1689
|
-
XN_FLAG_SPC_EQ | XN_FLAG_FN_SN)
|
1690
|
-
|
1691
|
-
// readable multiline form
|
1692
|
-
|
1693
|
-
#define XN_FLAG_MULTILINE \
|
1694
|
-
(ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE | \
|
1695
|
-
XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN)
|
1696
|
-
|
1697
2199
|
DEFINE_STACK_OF(X509_REVOKED)
|
1698
2200
|
|
1699
2201
|
DECLARE_STACK_OF(GENERAL_NAMES)
|
@@ -1729,20 +2231,6 @@ struct X509_info_st {
|
|
1729
2231
|
|
1730
2232
|
DEFINE_STACK_OF(X509_INFO)
|
1731
2233
|
|
1732
|
-
// The next 2 structures and their 8 routines were sent to me by
|
1733
|
-
// Pat Richard <patr@x509.com> and are used to manipulate
|
1734
|
-
// Netscapes spki structures - useful if you are writing a CA web page
|
1735
|
-
struct Netscape_spkac_st {
|
1736
|
-
X509_PUBKEY *pubkey;
|
1737
|
-
ASN1_IA5STRING *challenge; // challenge sent in atlas >= PR2
|
1738
|
-
} /* NETSCAPE_SPKAC */;
|
1739
|
-
|
1740
|
-
struct Netscape_spki_st {
|
1741
|
-
NETSCAPE_SPKAC *spkac; // signed public key and challenge
|
1742
|
-
X509_ALGOR *sig_algor;
|
1743
|
-
ASN1_BIT_STRING *signature;
|
1744
|
-
} /* NETSCAPE_SPKI */;
|
1745
|
-
|
1746
2234
|
// X509_get_pathlen returns path length constraint from the basic constraints
|
1747
2235
|
// extension in |x509|. (See RFC 5280, section 4.2.1.9.) It returns -1 if the
|
1748
2236
|
// constraint is not present, or if some extension in |x509| was invalid.
|
@@ -1759,108 +2247,20 @@ OPENSSL_EXPORT void X509_SIG_get0(const X509_SIG *sig,
|
|
1759
2247
|
const X509_ALGOR **out_alg,
|
1760
2248
|
const ASN1_OCTET_STRING **out_digest);
|
1761
2249
|
|
1762
|
-
// X509_SIG_getm behaves like |X509_SIG_get0| but returns mutable pointers.
|
1763
|
-
OPENSSL_EXPORT void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **out_alg,
|
1764
|
-
ASN1_OCTET_STRING **out_digest);
|
1765
|
-
|
1766
|
-
// X509_verify_cert_error_string returns |err| as a human-readable string, where
|
1767
|
-
// |err| should be one of the |X509_V_*| values. If |err| is unknown, it returns
|
1768
|
-
// a default description.
|
1769
|
-
OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
|
1770
|
-
|
1771
|
-
// X509_verify checks that |x509| has a valid signature by |pkey|. It returns
|
1772
|
-
// one if the signature is valid and zero otherwise. Note this function only
|
1773
|
-
// checks the signature itself and does not perform a full certificate
|
1774
|
-
// validation.
|
1775
|
-
OPENSSL_EXPORT int X509_verify(X509 *x509, EVP_PKEY *pkey);
|
1776
|
-
|
1777
|
-
// X509_REQ_verify checks that |req| has a valid signature by |pkey|. It returns
|
1778
|
-
// one if the signature is valid and zero otherwise.
|
1779
|
-
OPENSSL_EXPORT int X509_REQ_verify(X509_REQ *req, EVP_PKEY *pkey);
|
1780
|
-
|
1781
|
-
// X509_CRL_verify checks that |crl| has a valid signature by |pkey|. It returns
|
1782
|
-
// one if the signature is valid and zero otherwise.
|
1783
|
-
OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey);
|
1784
|
-
|
1785
|
-
// NETSCAPE_SPKI_verify checks that |spki| has a valid signature by |pkey|. It
|
1786
|
-
// returns one if the signature is valid and zero otherwise.
|
1787
|
-
OPENSSL_EXPORT int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *spki, EVP_PKEY *pkey);
|
1788
|
-
|
1789
|
-
// NETSCAPE_SPKI_b64_decode decodes |len| bytes from |str| as a base64-encoded
|
1790
|
-
// Netscape signed public key and challenge (SPKAC) structure. It returns a
|
1791
|
-
// newly-allocated |NETSCAPE_SPKI| structure with the result, or NULL on error.
|
1792
|
-
// If |len| is 0 or negative, the length is calculated with |strlen| and |str|
|
1793
|
-
// must be a NUL-terminated C string.
|
1794
|
-
OPENSSL_EXPORT NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str,
|
1795
|
-
int len);
|
1796
|
-
|
1797
|
-
// NETSCAPE_SPKI_b64_encode encodes |spki| as a base64-encoded Netscape signed
|
1798
|
-
// public key and challenge (SPKAC) structure. It returns a newly-allocated
|
1799
|
-
// NUL-terminated C string with the result, or NULL on error. The caller must
|
1800
|
-
// release the memory with |OPENSSL_free| when done.
|
1801
|
-
OPENSSL_EXPORT char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki);
|
1802
|
-
|
1803
|
-
// NETSCAPE_SPKI_get_pubkey decodes and returns the public key in |spki| as an
|
1804
|
-
// |EVP_PKEY|, or NULL on error. The caller takes ownership of the resulting
|
1805
|
-
// pointer and must call |EVP_PKEY_free| when done.
|
1806
|
-
OPENSSL_EXPORT EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *spki);
|
1807
|
-
|
1808
|
-
// NETSCAPE_SPKI_set_pubkey sets |spki|'s public key to |pkey|. It returns one
|
1809
|
-
// on success or zero on error. This function does not take ownership of |pkey|,
|
1810
|
-
// so the caller may continue to manage its lifetime independently of |spki|.
|
1811
|
-
OPENSSL_EXPORT int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *spki,
|
1812
|
-
EVP_PKEY *pkey);
|
1813
|
-
|
1814
|
-
// NETSCAPE_SPKI_sign signs |spki| with |pkey| and replaces the signature
|
1815
|
-
// algorithm and signature fields. It returns one on success and zero on error.
|
1816
|
-
// This function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
|
1817
|
-
// signing parameters use |pkey|'s defaults.
|
1818
|
-
OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *spki, EVP_PKEY *pkey,
|
1819
|
-
const EVP_MD *md);
|
2250
|
+
// X509_SIG_getm behaves like |X509_SIG_get0| but returns mutable pointers.
|
2251
|
+
OPENSSL_EXPORT void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **out_alg,
|
2252
|
+
ASN1_OCTET_STRING **out_digest);
|
1820
2253
|
|
1821
|
-
//
|
1822
|
-
//
|
1823
|
-
//
|
1824
|
-
OPENSSL_EXPORT
|
2254
|
+
// X509_verify_cert_error_string returns |err| as a human-readable string, where
|
2255
|
+
// |err| should be one of the |X509_V_*| values. If |err| is unknown, it returns
|
2256
|
+
// a default description.
|
2257
|
+
OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
|
1825
2258
|
|
1826
2259
|
// X509_REVOKED_dup returns a newly-allocated copy of |rev|, or NULL on error.
|
1827
2260
|
// This function works by serializing the structure, so if |rev| is incomplete,
|
1828
2261
|
// it may fail.
|
1829
2262
|
OPENSSL_EXPORT X509_REVOKED *X509_REVOKED_dup(const X509_REVOKED *rev);
|
1830
2263
|
|
1831
|
-
// X509_cmp_time compares |s| against |*t|. On success, it returns a negative
|
1832
|
-
// number if |s| <= |*t| and a positive number if |s| > |*t|. On error, it
|
1833
|
-
// returns zero. If |t| is NULL, it uses the current time instead of |*t|.
|
1834
|
-
//
|
1835
|
-
// WARNING: Unlike most comparison functions, this function returns zero on
|
1836
|
-
// error, not equality.
|
1837
|
-
OPENSSL_EXPORT int X509_cmp_time(const ASN1_TIME *s, time_t *t);
|
1838
|
-
|
1839
|
-
// X509_cmp_time_posix compares |s| against |t|. On success, it returns a
|
1840
|
-
// negative number if |s| <= |t| and a positive number if |s| > |t|. On error,
|
1841
|
-
// it returns zero.
|
1842
|
-
//
|
1843
|
-
// WARNING: Unlike most comparison functions, this function returns zero on
|
1844
|
-
// error, not equality.
|
1845
|
-
OPENSSL_EXPORT int X509_cmp_time_posix(const ASN1_TIME *s, int64_t t);
|
1846
|
-
|
1847
|
-
// X509_cmp_current_time behaves like |X509_cmp_time| but compares |s| against
|
1848
|
-
// the current time.
|
1849
|
-
OPENSSL_EXPORT int X509_cmp_current_time(const ASN1_TIME *s);
|
1850
|
-
|
1851
|
-
// X509_time_adj calls |X509_time_adj_ex| with |offset_day| equal to zero.
|
1852
|
-
OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec,
|
1853
|
-
time_t *t);
|
1854
|
-
|
1855
|
-
// X509_time_adj_ex behaves like |ASN1_TIME_adj|, but adds an offset to |*t|. If
|
1856
|
-
// |t| is NULL, it uses the current time instead of |*t|.
|
1857
|
-
OPENSSL_EXPORT ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day,
|
1858
|
-
long offset_sec, time_t *t);
|
1859
|
-
|
1860
|
-
// X509_gmtime_adj behaves like |X509_time_adj_ex| but adds |offset_sec| to the
|
1861
|
-
// current time.
|
1862
|
-
OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec);
|
1863
|
-
|
1864
2264
|
OPENSSL_EXPORT const char *X509_get_default_cert_area(void);
|
1865
2265
|
OPENSSL_EXPORT const char *X509_get_default_cert_dir(void);
|
1866
2266
|
OPENSSL_EXPORT const char *X509_get_default_cert_file(void);
|
@@ -1883,15 +2283,6 @@ OPENSSL_EXPORT EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
|
|
1883
2283
|
|
1884
2284
|
DECLARE_ASN1_FUNCTIONS_const(X509_SIG)
|
1885
2285
|
|
1886
|
-
DECLARE_ASN1_FUNCTIONS_const(X509_ATTRIBUTE)
|
1887
|
-
|
1888
|
-
// X509_ATTRIBUTE_create returns a newly-allocated |X509_ATTRIBUTE|, or NULL on
|
1889
|
-
// error. The attribute has type |nid| and contains a single value determined by
|
1890
|
-
// |attrtype| and |value|, which are interpreted as in |ASN1_TYPE_set|. Note
|
1891
|
-
// this function takes ownership of |value|.
|
1892
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int attrtype,
|
1893
|
-
void *value);
|
1894
|
-
|
1895
2286
|
OPENSSL_EXPORT int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
|
1896
2287
|
OPENSSL_EXPORT int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj);
|
1897
2288
|
OPENSSL_EXPORT void X509_trust_clear(X509 *x);
|
@@ -1911,12 +2302,8 @@ OPENSSL_EXPORT int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret,
|
|
1911
2302
|
OPENSSL_EXPORT X509_PKEY *X509_PKEY_new(void);
|
1912
2303
|
OPENSSL_EXPORT void X509_PKEY_free(X509_PKEY *a);
|
1913
2304
|
|
1914
|
-
DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_SPKI)
|
1915
|
-
DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_SPKAC)
|
1916
|
-
|
1917
2305
|
OPENSSL_EXPORT X509_INFO *X509_INFO_new(void);
|
1918
2306
|
OPENSSL_EXPORT void X509_INFO_free(X509_INFO *a);
|
1919
|
-
OPENSSL_EXPORT char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
|
1920
2307
|
|
1921
2308
|
OPENSSL_EXPORT int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
|
1922
2309
|
unsigned char *md, unsigned int *len);
|
@@ -1939,93 +2326,6 @@ OPENSSL_EXPORT int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1,
|
|
1939
2326
|
ASN1_BIT_STRING *signature, void *asn,
|
1940
2327
|
EVP_MD_CTX *ctx);
|
1941
2328
|
|
1942
|
-
// X509_REQ_extension_nid returns one if |nid| is a supported CSR attribute type
|
1943
|
-
// for carrying extensions and zero otherwise. The supported types are
|
1944
|
-
// |NID_ext_req| (pkcs-9-at-extensionRequest from RFC 2985) and |NID_ms_ext_req|
|
1945
|
-
// (a Microsoft szOID_CERT_EXTENSIONS variant).
|
1946
|
-
OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
|
1947
|
-
|
1948
|
-
// X509_REQ_get_extensions decodes the list of requested extensions in |req| and
|
1949
|
-
// returns a newly-allocated |STACK_OF(X509_EXTENSION)| containing the result.
|
1950
|
-
// It returns NULL on error, or if |req| did not request extensions.
|
1951
|
-
//
|
1952
|
-
// This function supports both pkcs-9-at-extensionRequest from RFC 2985 and the
|
1953
|
-
// Microsoft szOID_CERT_EXTENSIONS variant.
|
1954
|
-
OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
|
1955
|
-
|
1956
|
-
// X509_REQ_add_extensions_nid adds an attribute to |req| of type |nid|, to
|
1957
|
-
// request the certificate extensions in |exts|. It returns one on success and
|
1958
|
-
// zero on error. |nid| should be |NID_ext_req| or |NID_ms_ext_req|.
|
1959
|
-
OPENSSL_EXPORT int X509_REQ_add_extensions_nid(
|
1960
|
-
X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid);
|
1961
|
-
|
1962
|
-
// X509_REQ_add_extensions behaves like |X509_REQ_add_extensions_nid|, using the
|
1963
|
-
// standard |NID_ext_req| for the attribute type.
|
1964
|
-
OPENSSL_EXPORT int X509_REQ_add_extensions(
|
1965
|
-
X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts);
|
1966
|
-
|
1967
|
-
// X509_REQ_get_attr_count returns the number of attributes in |req|.
|
1968
|
-
OPENSSL_EXPORT int X509_REQ_get_attr_count(const X509_REQ *req);
|
1969
|
-
|
1970
|
-
// X509_REQ_get_attr_by_NID returns the index of the attribute in |req| of type
|
1971
|
-
// |nid|, or a negative number if not found. If found, callers can use
|
1972
|
-
// |X509_REQ_get_attr| to look up the attribute by index.
|
1973
|
-
//
|
1974
|
-
// If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
|
1975
|
-
// can thus loop over all matching attributes by first passing -1 and then
|
1976
|
-
// passing the previously-returned value until no match is returned.
|
1977
|
-
OPENSSL_EXPORT int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid,
|
1978
|
-
int lastpos);
|
1979
|
-
|
1980
|
-
// X509_REQ_get_attr_by_OBJ behaves like |X509_REQ_get_attr_by_NID| but looks
|
1981
|
-
// for attributes of type |obj|.
|
1982
|
-
OPENSSL_EXPORT int X509_REQ_get_attr_by_OBJ(const X509_REQ *req,
|
1983
|
-
const ASN1_OBJECT *obj,
|
1984
|
-
int lastpos);
|
1985
|
-
|
1986
|
-
// X509_REQ_get_attr returns the attribute at index |loc| in |req|, or NULL if
|
1987
|
-
// out of bounds.
|
1988
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc);
|
1989
|
-
|
1990
|
-
// X509_REQ_delete_attr removes the attribute at index |loc| in |req|. It
|
1991
|
-
// returns the removed attribute to the caller, or NULL if |loc| was out of
|
1992
|
-
// bounds. If non-NULL, the caller must release the result with
|
1993
|
-
// |X509_ATTRIBUTE_free| when done. It is also safe, but not necessary, to call
|
1994
|
-
// |X509_ATTRIBUTE_free| if the result is NULL.
|
1995
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc);
|
1996
|
-
|
1997
|
-
// X509_REQ_add1_attr appends a copy of |attr| to |req|'s list of attributes. It
|
1998
|
-
// returns one on success and zero on error.
|
1999
|
-
//
|
2000
|
-
// TODO(https://crbug.com/boringssl/407): |attr| should be const.
|
2001
|
-
OPENSSL_EXPORT int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr);
|
2002
|
-
|
2003
|
-
// X509_REQ_add1_attr_by_OBJ appends a new attribute to |req| with type |obj|.
|
2004
|
-
// It returns one on success and zero on error. The value is determined by
|
2005
|
-
// |X509_ATTRIBUTE_set1_data|.
|
2006
|
-
//
|
2007
|
-
// WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
|
2008
|
-
// error-prone. See |X509_ATTRIBUTE_set1_data| for details.
|
2009
|
-
OPENSSL_EXPORT int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,
|
2010
|
-
const ASN1_OBJECT *obj,
|
2011
|
-
int attrtype,
|
2012
|
-
const unsigned char *data,
|
2013
|
-
int len);
|
2014
|
-
|
2015
|
-
// X509_REQ_add1_attr_by_NID behaves like |X509_REQ_add1_attr_by_OBJ| except the
|
2016
|
-
// attribute type is determined by |nid|.
|
2017
|
-
OPENSSL_EXPORT int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid,
|
2018
|
-
int attrtype,
|
2019
|
-
const unsigned char *data,
|
2020
|
-
int len);
|
2021
|
-
|
2022
|
-
// X509_REQ_add1_attr_by_txt behaves like |X509_REQ_add1_attr_by_OBJ| except the
|
2023
|
-
// attribute type is determined by calling |OBJ_txt2obj| with |attrname|.
|
2024
|
-
OPENSSL_EXPORT int X509_REQ_add1_attr_by_txt(X509_REQ *req,
|
2025
|
-
const char *attrname, int attrtype,
|
2026
|
-
const unsigned char *data,
|
2027
|
-
int len);
|
2028
|
-
|
2029
2329
|
OPENSSL_EXPORT int X509_CRL_sort(X509_CRL *crl);
|
2030
2330
|
|
2031
2331
|
// X509_REVOKED_get0_serialNumber returns the serial number of the certificate
|
@@ -2077,24 +2377,6 @@ OPENSSL_EXPORT unsigned long X509_NAME_hash_old(X509_NAME *x);
|
|
2077
2377
|
|
2078
2378
|
OPENSSL_EXPORT int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
|
2079
2379
|
OPENSSL_EXPORT int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
|
2080
|
-
OPENSSL_EXPORT int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
|
2081
|
-
unsigned long cflag);
|
2082
|
-
OPENSSL_EXPORT int X509_print_fp(FILE *bp, X509 *x);
|
2083
|
-
OPENSSL_EXPORT int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
|
2084
|
-
OPENSSL_EXPORT int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
|
2085
|
-
OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
|
2086
|
-
int indent, unsigned long flags);
|
2087
|
-
|
2088
|
-
OPENSSL_EXPORT int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
|
2089
|
-
OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,
|
2090
|
-
unsigned long flags);
|
2091
|
-
OPENSSL_EXPORT int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag,
|
2092
|
-
unsigned long cflag);
|
2093
|
-
OPENSSL_EXPORT int X509_print(BIO *bp, X509 *x);
|
2094
|
-
OPENSSL_EXPORT int X509_CRL_print(BIO *bp, X509_CRL *x);
|
2095
|
-
OPENSSL_EXPORT int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag,
|
2096
|
-
unsigned long cflag);
|
2097
|
-
OPENSSL_EXPORT int X509_REQ_print(BIO *bp, X509_REQ *req);
|
2098
2380
|
|
2099
2381
|
// X509_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the extension in
|
2100
2382
|
// |x509|'s extension list.
|
@@ -2190,153 +2472,6 @@ OPENSSL_EXPORT int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid,
|
|
2190
2472
|
void *value, int crit,
|
2191
2473
|
unsigned long flags);
|
2192
2474
|
|
2193
|
-
// X509at_get_attr_count returns the number of attributes in |x|.
|
2194
|
-
OPENSSL_EXPORT int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x);
|
2195
|
-
|
2196
|
-
// X509at_get_attr_by_NID returns the index of the attribute in |x| of type
|
2197
|
-
// |nid|, or a negative number if not found. If found, callers can use
|
2198
|
-
// |X509at_get_attr| to look up the attribute by index.
|
2199
|
-
//
|
2200
|
-
// If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
|
2201
|
-
// can thus loop over all matching attributes by first passing -1 and then
|
2202
|
-
// passing the previously-returned value until no match is returned.
|
2203
|
-
OPENSSL_EXPORT int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x,
|
2204
|
-
int nid, int lastpos);
|
2205
|
-
|
2206
|
-
// X509at_get_attr_by_OBJ behaves like |X509at_get_attr_by_NID| but looks for
|
2207
|
-
// attributes of type |obj|.
|
2208
|
-
OPENSSL_EXPORT int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,
|
2209
|
-
const ASN1_OBJECT *obj, int lastpos);
|
2210
|
-
|
2211
|
-
// X509at_get_attr returns the attribute at index |loc| in |x|, or NULL if
|
2212
|
-
// out of bounds.
|
2213
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509at_get_attr(
|
2214
|
-
const STACK_OF(X509_ATTRIBUTE) *x, int loc);
|
2215
|
-
|
2216
|
-
// X509at_delete_attr removes the attribute at index |loc| in |x|. It returns
|
2217
|
-
// the removed attribute to the caller, or NULL if |loc| was out of bounds. If
|
2218
|
-
// non-NULL, the caller must release the result with |X509_ATTRIBUTE_free| when
|
2219
|
-
// done. It is also safe, but not necessary, to call |X509_ATTRIBUTE_free| if
|
2220
|
-
// the result is NULL.
|
2221
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x,
|
2222
|
-
int loc);
|
2223
|
-
|
2224
|
-
// X509at_add1_attr appends a copy of |attr| to the attribute list in |*x|. If
|
2225
|
-
// |*x| is NULL, it allocates a new |STACK_OF(X509_ATTRIBUTE)| to hold the copy
|
2226
|
-
// and sets |*x| to the new list. It returns |*x| on success and NULL on error.
|
2227
|
-
// The caller retains ownership of |attr| and can release it independently of
|
2228
|
-
// |*x|.
|
2229
|
-
OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(
|
2230
|
-
STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr);
|
2231
|
-
|
2232
|
-
// X509at_add1_attr_by_OBJ behaves like |X509at_add1_attr|, but adds an
|
2233
|
-
// attribute created by |X509_ATTRIBUTE_create_by_OBJ|.
|
2234
|
-
OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(
|
2235
|
-
STACK_OF(X509_ATTRIBUTE) **x, const ASN1_OBJECT *obj, int type,
|
2236
|
-
const unsigned char *bytes, int len);
|
2237
|
-
|
2238
|
-
// X509at_add1_attr_by_NID behaves like |X509at_add1_attr|, but adds an
|
2239
|
-
// attribute created by |X509_ATTRIBUTE_create_by_NID|.
|
2240
|
-
OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(
|
2241
|
-
STACK_OF(X509_ATTRIBUTE) **x, int nid, int type, const unsigned char *bytes,
|
2242
|
-
int len);
|
2243
|
-
|
2244
|
-
// X509at_add1_attr_by_txt behaves like |X509at_add1_attr|, but adds an
|
2245
|
-
// attribute created by |X509_ATTRIBUTE_create_by_txt|.
|
2246
|
-
OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(
|
2247
|
-
STACK_OF(X509_ATTRIBUTE) **x, const char *attrname, int type,
|
2248
|
-
const unsigned char *bytes, int len);
|
2249
|
-
|
2250
|
-
// X509_ATTRIBUTE_create_by_NID returns a newly-allocated |X509_ATTRIBUTE| of
|
2251
|
-
// type |nid|, or NULL on error. The value is determined as in
|
2252
|
-
// |X509_ATTRIBUTE_set1_data|.
|
2253
|
-
//
|
2254
|
-
// If |attr| is non-NULL, the resulting |X509_ATTRIBUTE| is also written to
|
2255
|
-
// |*attr|. If |*attr| was non-NULL when the function was called, |*attr| is
|
2256
|
-
// reused instead of creating a new object.
|
2257
|
-
//
|
2258
|
-
// WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
|
2259
|
-
// error-prone. See |X509_ATTRIBUTE_set1_data| for details.
|
2260
|
-
//
|
2261
|
-
// WARNING: The object reuse form is deprecated and may be removed in the
|
2262
|
-
// future. It also currently incorrectly appends to the reused object's value
|
2263
|
-
// set rather than overwriting it.
|
2264
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(
|
2265
|
-
X509_ATTRIBUTE **attr, int nid, int attrtype, const void *data, int len);
|
2266
|
-
|
2267
|
-
// X509_ATTRIBUTE_create_by_OBJ behaves like |X509_ATTRIBUTE_create_by_NID|
|
2268
|
-
// except the attribute's type is determined by |obj|.
|
2269
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(
|
2270
|
-
X509_ATTRIBUTE **attr, const ASN1_OBJECT *obj, int attrtype,
|
2271
|
-
const void *data, int len);
|
2272
|
-
|
2273
|
-
// X509_ATTRIBUTE_create_by_txt behaves like |X509_ATTRIBUTE_create_by_NID|
|
2274
|
-
// except the attribute's type is determined by calling |OBJ_txt2obj| with
|
2275
|
-
// |attrname|.
|
2276
|
-
OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(
|
2277
|
-
X509_ATTRIBUTE **attr, const char *attrname, int type,
|
2278
|
-
const unsigned char *bytes, int len);
|
2279
|
-
|
2280
|
-
// X509_ATTRIBUTE_set1_object sets |attr|'s type to |obj|. It returns one on
|
2281
|
-
// success and zero on error.
|
2282
|
-
OPENSSL_EXPORT int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr,
|
2283
|
-
const ASN1_OBJECT *obj);
|
2284
|
-
|
2285
|
-
// X509_ATTRIBUTE_set1_data appends a value to |attr|'s value set and returns
|
2286
|
-
// one on success or zero on error. The value is determined as follows:
|
2287
|
-
//
|
2288
|
-
// If |attrtype| is a |MBSTRING_*| constant, the value is an ASN.1 string. The
|
2289
|
-
// string is determined by decoding |len| bytes from |data| in the encoding
|
2290
|
-
// specified by |attrtype|, and then re-encoding it in a form appropriate for
|
2291
|
-
// |attr|'s type. If |len| is -1, |strlen(data)| is used instead. See
|
2292
|
-
// |ASN1_STRING_set_by_NID| for details.
|
2293
|
-
//
|
2294
|
-
// Otherwise, if |len| is not -1, the value is an ASN.1 string. |attrtype| is an
|
2295
|
-
// |ASN1_STRING| type value and the |len| bytes from |data| are copied as the
|
2296
|
-
// type-specific representation of |ASN1_STRING|. See |ASN1_STRING| for details.
|
2297
|
-
//
|
2298
|
-
// WARNING: If this form is used to construct a negative INTEGER or ENUMERATED,
|
2299
|
-
// |attrtype| includes the |V_ASN1_NEG| flag for |ASN1_STRING|, but the function
|
2300
|
-
// forgets to clear the flag for |ASN1_TYPE|. This matches OpenSSL but is
|
2301
|
-
// probably a bug. For now, do not use this form with negative values.
|
2302
|
-
//
|
2303
|
-
// Otherwise, if |len| is -1, the value is constructed by passing |attrtype| and
|
2304
|
-
// |data| to |ASN1_TYPE_set1|. That is, |attrtype| is an |ASN1_TYPE| type value,
|
2305
|
-
// and |data| is cast to the corresponding pointer type.
|
2306
|
-
//
|
2307
|
-
// WARNING: Despite the name, this function appends to |attr|'s value set,
|
2308
|
-
// rather than overwriting it. To overwrite the value set, create a new
|
2309
|
-
// |X509_ATTRIBUTE| with |X509_ATTRIBUTE_new|.
|
2310
|
-
//
|
2311
|
-
// WARNING: If using the |MBSTRING_*| form, pass a length rather than relying on
|
2312
|
-
// |strlen|. In particular, |strlen| will not behave correctly if the input is
|
2313
|
-
// |MBSTRING_BMP| or |MBSTRING_UNIV|.
|
2314
|
-
//
|
2315
|
-
// WARNING: This function currently misinterprets |V_ASN1_OTHER| as an
|
2316
|
-
// |MBSTRING_*| constant. This matches OpenSSL but means it is impossible to
|
2317
|
-
// construct a value with a non-universal tag.
|
2318
|
-
OPENSSL_EXPORT int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,
|
2319
|
-
const void *data, int len);
|
2320
|
-
|
2321
|
-
// X509_ATTRIBUTE_get0_data returns the |idx|th value of |attr| in a
|
2322
|
-
// type-specific representation to |attrtype|, or NULL if out of bounds or the
|
2323
|
-
// type does not match. |attrtype| is one of the type values in |ASN1_TYPE|. On
|
2324
|
-
// match, the return value uses the same representation as |ASN1_TYPE_set0|. See
|
2325
|
-
// |ASN1_TYPE| for details.
|
2326
|
-
OPENSSL_EXPORT void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
|
2327
|
-
int attrtype, void *unused);
|
2328
|
-
|
2329
|
-
// X509_ATTRIBUTE_count returns the number of values in |attr|.
|
2330
|
-
OPENSSL_EXPORT int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr);
|
2331
|
-
|
2332
|
-
// X509_ATTRIBUTE_get0_object returns the type of |attr|.
|
2333
|
-
OPENSSL_EXPORT ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr);
|
2334
|
-
|
2335
|
-
// X509_ATTRIBUTE_get0_type returns the |idx|th value in |attr|, or NULL if out
|
2336
|
-
// of bounds. Note this function returns one of |attr|'s values, not the type.
|
2337
|
-
OPENSSL_EXPORT ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr,
|
2338
|
-
int idx);
|
2339
|
-
|
2340
2475
|
OPENSSL_EXPORT int X509_verify_cert(X509_STORE_CTX *ctx);
|
2341
2476
|
|
2342
2477
|
// PKCS#8 utilities
|
@@ -2565,7 +2700,7 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
|
|
2565
2700
|
#define X509_V_FLAG_X509_STRICT 0x00
|
2566
2701
|
// This flag does nothing as proxy certificate support has been removed.
|
2567
2702
|
#define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
|
2568
|
-
//
|
2703
|
+
// Does nothing as its functionality has been enabled by default.
|
2569
2704
|
#define X509_V_FLAG_POLICY_CHECK 0x80
|
2570
2705
|
// Policy variable require-explicit-policy
|
2571
2706
|
#define X509_V_FLAG_EXPLICIT_POLICY 0x100
|
@@ -2602,11 +2737,6 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
|
|
2602
2737
|
#define X509_VP_FLAG_LOCKED 0x8
|
2603
2738
|
#define X509_VP_FLAG_ONCE 0x10
|
2604
2739
|
|
2605
|
-
// Internal use: mask of policy related options
|
2606
|
-
#define X509_V_FLAG_POLICY_MASK \
|
2607
|
-
(X509_V_FLAG_POLICY_CHECK | X509_V_FLAG_EXPLICIT_POLICY | \
|
2608
|
-
X509_V_FLAG_INHIBIT_ANY | X509_V_FLAG_INHIBIT_MAP)
|
2609
|
-
|
2610
2740
|
OPENSSL_EXPORT int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h,
|
2611
2741
|
int type, X509_NAME *name);
|
2612
2742
|
OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_by_subject(
|
@@ -2640,6 +2770,11 @@ OPENSSL_EXPORT void X509_STORE_set_verify(X509_STORE *ctx,
|
|
2640
2770
|
OPENSSL_EXPORT void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
|
2641
2771
|
X509_STORE_CTX_verify_fn verify);
|
2642
2772
|
OPENSSL_EXPORT X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx);
|
2773
|
+
|
2774
|
+
// X509_STORE_set_verify_cb acts like |X509_STORE_CTX_set_verify_cb| but sets
|
2775
|
+
// the verify callback for any |X509_STORE_CTX| created from this |X509_STORE|
|
2776
|
+
//
|
2777
|
+
// Do not use this funciton. see |X509_STORE_CTX_set_verify_cb|.
|
2643
2778
|
OPENSSL_EXPORT void X509_STORE_set_verify_cb(
|
2644
2779
|
X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
|
2645
2780
|
#define X509_STORE_set_verify_cb_func(ctx, func) \
|
@@ -2780,8 +2915,27 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx,
|
|
2780
2915
|
OPENSSL_EXPORT void X509_STORE_CTX_set_time_posix(X509_STORE_CTX *ctx,
|
2781
2916
|
unsigned long flags,
|
2782
2917
|
int64_t t);
|
2918
|
+
|
2919
|
+
// X509_STORE_CTX_set_verify_cb configures a callback function for |ctx| that is
|
2920
|
+
// called multiple times during |X509_verify_cert|. The callback returns zero to
|
2921
|
+
// fail verification and non-zero to proceed. Typically, it will return |ok|,
|
2922
|
+
// which preserves the default behavior. Returning one when |ok| is zero will
|
2923
|
+
// proceed past some error. The callback may inspect |ctx| and the error queue
|
2924
|
+
// to attempt to determine the current stage of certificate verification, but
|
2925
|
+
// this is often unreliable.
|
2926
|
+
//
|
2927
|
+
// WARNING: Do not use this function. It is extremely fragile and unpredictable.
|
2928
|
+
// This callback exposes implementation details of certificate verification,
|
2929
|
+
// which change as the library evolves. Attempting to use it for security checks
|
2930
|
+
// can introduce vulnerabilities if making incorrect assumptions about when the
|
2931
|
+
// callback is called. Additionally, overriding |ok| may leave |ctx| in an
|
2932
|
+
// inconsistent state and break invariants.
|
2933
|
+
//
|
2934
|
+
// Instead, customize certificate verification by configuring options on the
|
2935
|
+
// |X509_STORE_CTX| before verification, or applying additional checks after
|
2936
|
+
// |X509_verify_cert| completes successfully.
|
2783
2937
|
OPENSSL_EXPORT void X509_STORE_CTX_set_verify_cb(
|
2784
|
-
X509_STORE_CTX *ctx, int (*verify_cb)(int, X509_STORE_CTX *));
|
2938
|
+
X509_STORE_CTX *ctx, int (*verify_cb)(int ok, X509_STORE_CTX *ctx));
|
2785
2939
|
|
2786
2940
|
OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(
|
2787
2941
|
X509_STORE_CTX *ctx);
|
@@ -2843,12 +2997,8 @@ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
|
|
2843
2997
|
OPENSSL_EXPORT const char *X509_VERIFY_PARAM_get0_name(
|
2844
2998
|
const X509_VERIFY_PARAM *param);
|
2845
2999
|
|
2846
|
-
OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
|
2847
|
-
OPENSSL_EXPORT int X509_VERIFY_PARAM_get_count(void);
|
2848
|
-
OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
|
2849
3000
|
OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(
|
2850
3001
|
const char *name);
|
2851
|
-
OPENSSL_EXPORT void X509_VERIFY_PARAM_table_cleanup(void);
|
2852
3002
|
|
2853
3003
|
|
2854
3004
|
#if defined(__cplusplus)
|