CCF
Loading...
Searching...
No Matches
acme_subsystem_interface.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ccf/crypto/pem.h"
7#include "ccf/http_status.h"
11
12#include <optional>
13#include <string>
14#include <vector>
15
16namespace ccf
17{
19 {
20 public:
21 virtual ~ACMESubsystemInterface() = default;
22
23 static char const* get_subsystem_name()
24 {
25 return "ACME";
26 }
27
28 virtual std::optional<const ccf::ACMEClientConfig*> config(
30
32
34 const ccf::NodeInfoNetwork::RpcInterfaceID& interface_id,
35 std::shared_ptr<ACMEChallengeHandler> h) = 0;
36
37 virtual void make_http_request(
38 const std::string& method,
39 const std::string& url,
40 const http::HeaderMap& headers,
41 const std::vector<uint8_t>& body,
42 std::function<bool(
44 const http::HeaderMap&,
45 const std::vector<uint8_t>&)> callback,
46 const std::vector<std::string>& ca_certs = {},
47 const std::string& app_protocol = "HTTP1",
48 bool use_node_client_certificate = false) = 0;
49 };
50}
Definition acme_subsystem_interface.h:19
virtual void make_http_request(const std::string &method, const std::string &url, const http::HeaderMap &headers, const std::vector< uint8_t > &body, std::function< bool(const http_status &http_status, const http::HeaderMap &, const std::vector< uint8_t > &)> callback, const std::vector< std::string > &ca_certs={}, const std::string &app_protocol="HTTP1", bool use_node_client_certificate=false)=0
virtual void install_challenge_handler(const ccf::NodeInfoNetwork::RpcInterfaceID &interface_id, std::shared_ptr< ACMEChallengeHandler > h)=0
virtual std::optional< const ccf::ACMEClientConfig * > config(const NodeInfoNetwork::RpcInterfaceID &id)=0
virtual ccf::crypto::Pem network_cert()=0
virtual ~ACMESubsystemInterface()=default
static char const * get_subsystem_name()
Definition acme_subsystem_interface.h:23
Definition node_subsystem_interface.h:8
Definition pem.h:18
std::map< std::string, std::string, std::less<> > HeaderMap
Definition http_header_map.h:10
Definition app_interface.h:14
llhttp_status http_status
Definition http_status.h:9
std::string RpcInterfaceID
Definition node_info_network.h:87