47 virtual std::vector<Certificate_Store*> trusted_certificate_authorities(
const std::string& type,
48 const std::string& context);
71 virtual std::vector<X509_Certificate> find_cert_chain(
72 const std::vector<std::string>& cert_key_types,
73 const std::vector<AlgorithmIdentifier>& cert_signature_schemes,
74 const std::vector<X509_DN>& acceptable_CAs,
75 const std::string& type,
76 const std::string& context);
91 virtual std::shared_ptr<Public_Key> find_raw_public_key(
const std::vector<std::string>& key_types,
92 const std::string& type,
93 const std::string& context);
116 virtual std::vector<X509_Certificate> cert_chain(
const std::vector<std::string>& cert_key_types,
117 const std::vector<AlgorithmIdentifier>& cert_signature_schemes,
118 const std::string& type,
119 const std::string& context);
138 std::vector<X509_Certificate> cert_chain_single_type(
139 const std::string& cert_key_type,
140 const std::vector<AlgorithmIdentifier>& cert_signature_schemes,
141 const std::string& type,
142 const std::string& context);
150 virtual std::shared_ptr<Private_Key> private_key_for(
const X509_Certificate& cert,
151 const std::string& type,
152 const std::string& context);
162 virtual std::shared_ptr<Private_Key> private_key_for(
const Public_Key& raw_public_key,
163 const std::string& type,
164 const std::string& context);
191 virtual std::string psk_identity_hint(
const std::string& type,
const std::string& context);
199 virtual std::string psk_identity(
const std::string& type,
200 const std::string& context,
201 const std::string& identity_hint);
225 virtual SymmetricKey psk(
const std::string& type,
const std::string& context,
const std::string& identity);
250 virtual std::vector<TLS::ExternalPSK> find_preshared_keys(std::string_view host,
252 const std::vector<std::string>& identities = {},
253 const std::optional<std::string>& prf = std::nullopt);
279 virtual std::optional<TLS::ExternalPSK> choose_preshared_key(
280 std::string_view host,
282 const std::vector<std::string>& identities,
283 const std::optional<std::string>& prf = std::nullopt);