aboutsummaryrefslogtreecommitdiffstats
path: root/src/credentials/credentials_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/credentials/credentials_manager.cpp')
-rw-r--r--src/credentials/credentials_manager.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/credentials/credentials_manager.cpp b/src/credentials/credentials_manager.cpp
index e7886d307..82da8a75d 100644
--- a/src/credentials/credentials_manager.cpp
+++ b/src/credentials/credentials_manager.cpp
@@ -49,4 +49,34 @@ Private_Key* Credentials_Manager::private_key_for(const X509_Certificate&,
return 0;
}
+std::vector<X509_Certificate>
+Credentials_Manager::trusted_certificate_authorities(
+ const std::string&,
+ const std::string&)
+ {
+ return std::vector<X509_Certificate>();
+ }
+
+void Credentials_Manager::verify_certificate_chain(
+ const std::vector<X509_Certificate>& cert_chain,
+ const std::string& purported_hostname)
+ {
+ if(cert_chain.empty())
+ throw std::invalid_argument("Certificate chain was empty");
+
+#if 0
+ if(!cert_chain[0].matches_dns_name(purported_hostname))
+ return false;
+
+ X509_Store store;
+
+ std::vector<X509_Certificate> CAs = trusted_certificate_authorities();
+
+ for(size_t i = 1; i != CAs.size(); ++i)
+ store.add_cert(CAs[i], true);
+ for(size_t i = 1; i != cert_chain.size(); ++i)
+ store.add_cert(cert_chain[i]);
+#endif
+ }
+
}