14 static std::string compute_cert_valid_to_string(
15 const std::string& valid_from,
size_t validity_period_days)
17 using namespace std::chrono_literals;
20 auto valid_to = ccf::ds::time_point_from_string(valid_from) +
21 std::chrono::days(validity_period_days) - 1s;
22 return ccf::ds::to_x509_time_string(valid_to);
25 static Pem create_self_signed_cert(
27 const std::string& subject_name,
28 const std::vector<SubjectAltName>& subject_alt_names,
29 const std::string& valid_from,
30 const std::string& valid_to)
32 return key_pair->self_sign(
33 subject_name, valid_from, valid_to, subject_alt_names,
true );
36 static Pem create_self_signed_cert(
38 const std::string& subject_name,
39 const std::vector<SubjectAltName>& subject_alt_names,
40 const std::string& valid_from,
41 size_t validity_period_days)
43 return create_self_signed_cert(
48 compute_cert_valid_to_string(valid_from, validity_period_days));
51 static Pem create_endorsed_cert(
53 const std::string& valid_from,
54 const std::string& valid_to,
55 const Pem& issuer_private_key,
56 const Pem& issuer_cert)
59 ->sign_csr(issuer_cert, csr, valid_from, valid_to,
false );
62 static Pem create_endorsed_cert(
64 const std::string& valid_from,
65 size_t validity_period_days,
66 const Pem& issuer_private_key,
67 const Pem& issuer_cert)
69 return create_endorsed_cert(
72 compute_cert_valid_to_string(valid_from, validity_period_days),
77 static Pem create_endorsed_cert(
79 const std::string& subject_name,
80 const std::vector<SubjectAltName>& subject_alt_names,
81 const std::string& valid_from,
82 size_t validity_period_days,
83 const Pem& issuer_private_key,
84 const Pem& issuer_cert)
86 return create_endorsed_cert(
87 subject_key_pair->create_csr(subject_name, subject_alt_names),
94 static Pem create_endorsed_cert(
95 const Pem& public_key,
96 const std::string& subject_name,
97 const std::vector<SubjectAltName>& subject_alt_names,
98 const std::string& valid_from,
99 const std::string& valid_to,
100 const Pem& issuer_private_key,
101 const Pem& issuer_cert,
106 issuer_key_pair->create_csr(subject_name, subject_alt_names, public_key);
107 return issuer_key_pair->sign_csr(
111 static Pem create_endorsed_cert(
112 const Pem& public_key,
113 const std::string& subject_name,
114 const std::vector<SubjectAltName>& subject_alt_names,
115 const std::pair<std::string, std::string>& validity_period,
116 const Pem& issuer_private_key,
117 const Pem& issuer_cert,
120 return create_endorsed_cert(
124 validity_period.first,
125 validity_period.second,
std::shared_ptr< KeyPair > KeyPairPtr
Definition key_pair.h:145
KeyPairPtr make_key_pair(CurveID curve_id=service_identity_curve_choice)
Definition key_pair.cpp:35