2424#include < botan/rng.h>
2525#include < botan/x509cert.h>
2626#include < botan/x509_ca.h>
27- // #include <botan/x509path.h>
2827#include < botan/x509self.h>
2928#include < memory>
3029
@@ -59,24 +58,22 @@ class Credman : public Botan::Credentials_Manager
5958
6059 std::vector<Botan::X509_Certificate> cert_chain (
6160 const std::vector<std::string>& cert_key_types,
62- const std::string& type ,
61+ const std::string&,
6362 const std::string&) override
6463 {
6564 std::vector<Botan::X509_Certificate> chain;
6665
67- if (type == " tls-server" || (type == " tls-client" && m_provides_client_certs))
66+ bool have_match = false ;
67+ for (size_t i = 0 ; i != cert_key_types.size (); ++i)
68+ if (cert_key_types[i] == m_server_key->algo_name ())
69+ have_match = true ;
70+
71+ if (have_match)
6872 {
69- bool have_match = false ;
70- for (size_t i = 0 ; i != cert_key_types.size (); ++i)
71- if (cert_key_types[i] == m_server_key->algo_name ())
72- have_match = true ;
73-
74- if (have_match)
75- {
76- chain.push_back (m_server_cert);
77- chain.push_back (m_ca_cert);
78- }
73+ chain.push_back (m_server_cert);
74+ chain.push_back (m_ca_cert);
7975 }
76+
8077 return chain;
8178 }
8279
@@ -87,17 +84,8 @@ class Credman : public Botan::Credentials_Manager
8784 return m_server_key.get ();
8885 }
8986
90- Botan::SymmetricKey psk (const std::string&,
91- const std::string&,
92- const std::string&) override
93- {
94- // if (type == "tls-server" && context == "session-ticket")
95- // return Botan::SymmetricKey("AABBCCDDEEFF012345678012345678");
96-
97- return Botan::SymmetricKey (" 20B602D1475F2DF888FCB60D2AE03AFD" ); // PSK key
98- }
99-
10087 static Credman* create (
88+ const std::string& name,
10189 Botan::RandomNumberGenerator& rng,
10290 std::unique_ptr<Botan::Private_Key> ca_key,
10391 Botan::X509_Certificate ca_cert,
@@ -118,6 +106,7 @@ class Credman : public Botan::Credentials_Manager
118106 *
119107**/
120108inline Credman* Credman::create (
109+ const std::string& server_name,
121110 Botan::RandomNumberGenerator& rng,
122111 std::unique_ptr<Botan::Private_Key> ca_key,
123112 Botan::X509_Certificate ca_cert,
@@ -132,7 +121,7 @@ inline Credman* Credman::create(
132121
133122 // create certificate request
134123 Botan::X509_Cert_Options server_opts;
135- server_opts.common_name = " server.example.com " ;
124+ server_opts.common_name = server_name ;
136125 server_opts.country = " VT" ;
137126
138127 auto req = Botan::X509::create_cert_req (server_opts, *server_key, " SHA-256" , rng);
0 commit comments