8#include <botan/credentials_manager.h>
10#include <botan/pkix_types.h>
11#include <botan/tls_external_psk.h>
12#include <botan/x509cert.h>
13#include <botan/internal/fmt.h>
23 const std::string& ) {
28 const std::string& context,
29 const std::string& identity) {
31 if(type ==
"tls-client") {
33 }
else if(type ==
"tls-server") {
57 return SymmetricKey(psks.front().extract_master_secret());
66 const std::vector<std::string>& ,
67 const std::optional<std::string>& ) {
73 const std::vector<std::string>& identities,
74 const std::optional<std::string>& prf) {
79 return std::move(psks.front());
84 const std::vector<std::string>& key_types,
85 const std::vector<AlgorithmIdentifier>& cert_signature_schemes,
86 const std::vector<X509_DN>& ,
87 const std::string& type,
88 const std::string& context) {
89 return cert_chain(key_types, cert_signature_schemes, type, context);
94 const std::string& ) {
99 const std::vector<AlgorithmIdentifier>& ,
101 const std::string& ) {
102 return std::vector<X509_Certificate>();
106 const std::string& cert_key_type,
107 const std::vector<AlgorithmIdentifier>& cert_signature_schemes,
108 const std::string& type,
109 const std::string& context) {
110 return find_cert_chain({cert_key_type}, cert_signature_schemes, std::vector<X509_DN>(), type, context);
115 const std::string& ) {
121 const std::string& ) {
134 const std::string& ) {
135 return std::vector<Certificate_Store*>();
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 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::optional< TLS::ExternalPSK > choose_preshared_key(std::string_view host, TLS::Connection_Side whoami, const std::vector< std::string > &identities, const std::optional< std::string > &prf=std::nullopt)
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::string fmt(std::string_view format, const T &... args)
std::vector< T, secure_allocator< T > > secure_vector