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