aboutsummaryrefslogtreecommitdiffstats
path: root/doc/examples/tls_server.cpp
diff options
context:
space:
mode:
authorlloyd <[email protected]>2012-01-23 23:36:19 +0000
committerlloyd <[email protected]>2012-01-23 23:36:19 +0000
commitf34cc48100c672824aa70869adfb59669055d173 (patch)
tree6cbcd0d984b1a38b8024cf3b0642edc2a0498368 /doc/examples/tls_server.cpp
parente3dc1e69f53f93e03411f258e976d2befcf45f91 (diff)
The credentials manager interface seems a much better place for cert
checking, allowed client auth CAs, etc than the policy class. With this change, most users won't ever need to modify the default policy which is likely a good thing. Remove copy and paste of the credentials manager implemenation in the examples.
Diffstat (limited to 'doc/examples/tls_server.cpp')
-rw-r--r--doc/examples/tls_server.cpp55
1 files changed, 2 insertions, 53 deletions
diff --git a/doc/examples/tls_server.cpp b/doc/examples/tls_server.cpp
index 0f6287599..e896b5bcc 100644
--- a/doc/examples/tls_server.cpp
+++ b/doc/examples/tls_server.cpp
@@ -8,6 +8,7 @@
#include <botan/secqueue.h>
#include "socket.h"
+#include "credentials.h"
using namespace Botan;
@@ -18,40 +19,6 @@ using namespace std::tr1::placeholders;
#include <iostream>
#include <memory>
-class Credentials_Manager_Simple : public Credentials_Manager
- {
- public:
- Credentials_Manager_Simple(RandomNumberGenerator& rng) : rng(rng) {}
-
- std::vector<X509_Certificate> cert_chain(
- const std::string& cert_key_type,
- const std::string& type,
- const std::string& context)
- {
- const std::string hostname = (context == "" ? "localhost" : context);
-
- X509_Certificate cert(hostname + ".crt");
- Private_Key* key = PKCS8::load_key(hostname + ".key", rng);
-
- certs_and_keys[cert] = key;
-
- std::vector<X509_Certificate> certs;
- certs.push_back(cert);
- return certs;
- }
-
- Private_Key* private_key_for(const X509_Certificate& cert,
- const std::string& type,
- const std::string& context)
- {
- return certs_and_keys[cert];
- }
-
- private:
- RandomNumberGenerator& rng;
- std::map<X509_Certificate, Private_Key*> certs_and_keys;
- };
-
bool handshake_complete(const TLS::Session& session)
{
printf("Handshake complete, protocol=%04X ciphersuite=%s compression=%d\n",
@@ -158,24 +125,6 @@ class Blocking_TLS_Server
bool exit;
};
-class Server_TLS_Policy : public TLS::Policy
- {
- public:
- //bool require_client_auth() const { return true; }
-
- bool check_cert(const std::vector<X509_Certificate>& certs) const
- {
- for(size_t i = 0; i != certs.size(); ++i)
- {
- std::cout << certs[i].to_string();
- }
-
- std::cout << "Warning: not checking cert signatures\n";
-
- return true;
- }
- };
-
int main(int argc, char* argv[])
{
int port = 4433;
@@ -192,7 +141,7 @@ int main(int argc, char* argv[])
Server_Socket listener(port);
- Server_TLS_Policy policy;
+ TLS::Policy policy;
TLS::Session_Manager_In_Memory sessions;