8#ifndef BOTAN_CREDENTIALS_MANAGER_H_
9#define BOTAN_CREDENTIALS_MANAGER_H_
11#include <botan/asn1_obj.h>
12#include <botan/certstor.h>
13#include <botan/pk_keys.h>
14#include <botan/strong_type.h>
15#include <botan/symkey.h>
16#include <botan/tls_external_psk.h>
17#include <botan/tls_magic.h>
18#include <botan/x509cert.h>
48 const std::string& context);
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);
117 const std::
string& type,
118 const std::
string& context);
148 const std::
string& cert_key_type,
150 const std::
string& type,
151 const std::
string& context);
165 const std::
string& type,
166 const std::
string& context);
177 const std::
string& type,
178 const std::
string& context);
208 virtual std::
string psk_identity_hint(const std::
string& type, const std::
string& context);
220 virtual std::
string psk_identity(const std::
string& type,
221 const std::
string& context,
222 const std::
string& identity_hint);
246 virtual
SymmetricKey psk(const std::
string& type, const std::
string& context, const std::
string& identity);
272 TLS::Connection_Side whoami,
273 const std::vector<std::
string>& identities = {},
274 const std::optional<std::string>& prf = std::nullopt);
300 virtual std::optional<TLS::ExternalPSK> choose_preshared_key(
301 std::string_view host,
303 const std::vector<std::string>& identities,
304 const std::optional<std::string>& prf = std::nullopt);
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_DEPRECATED(msg)
virtual secure_vector< uint8_t > dtls_cookie_secret()
virtual std::vector< TLS::ExternalPSK > find_preshared_keys(std::string_view host, TLS::Connection_Side whoami, const std::vector< std::string > &identities={}, const std::optional< std::string > &prf=std::nullopt)
virtual std::vector< X509_Certificate > cert_chain(const std::vector< std::string > &cert_key_types, const std::vector< AlgorithmIdentifier > &cert_signature_schemes, const std::string &type, const std::string &context)
virtual std::string psk_identity(const std::string &type, const std::string &context, const std::string &identity_hint)
virtual std::string psk_identity_hint(const std::string &type, const std::string &context)
virtual ~Credentials_Manager()=default
virtual std::vector< Certificate_Store * > trusted_certificate_authorities(const std::string &type, const std::string &context)
virtual std::vector< X509_Certificate > find_cert_chain(const std::vector< std::string > &cert_key_types, const std::vector< AlgorithmIdentifier > &cert_signature_schemes, const std::vector< X509_DN > &acceptable_CAs, const std::string &type, const std::string &context)
virtual std::shared_ptr< Public_Key > find_raw_public_key(const std::vector< std::string > &key_types, const std::string &type, const std::string &context)
virtual SymmetricKey psk(const std::string &type, const std::string &context, const std::string &identity)
virtual std::shared_ptr< Private_Key > private_key_for(const X509_Certificate &cert, const std::string &type, const std::string &context)
virtual secure_vector< uint8_t > session_ticket_key()
std::vector< X509_Certificate > cert_chain_single_type(const std::string &cert_key_type, const std::vector< AlgorithmIdentifier > &cert_signature_schemes, const std::string &type, const std::string &context)
std::vector< T, secure_allocator< T > > secure_vector