summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2018-01-15 12:43:44 (GMT)
committerTobias Markmann <tm@ayena.de>2018-02-02 08:56:47 (GMT)
commit9e2eee27d47ff1523677eb3881b4edcf66d7c0db (patch)
treec354e42f8b5314e1727da4aa8d9a248311e4242a /Swiften/TLS/CertificateFactory.cpp
parent9eaa75b907a515a65ccb2002632fbf2f30c5aee8 (diff)
downloadswift-9e2eee27d47ff1523677eb3881b4edcf66d7c0db.zip
swift-9e2eee27d47ff1523677eb3881b4edcf66d7c0db.tar.bz2
Add support for extracting certificate chain from PEM string
Add PrivateKey class to simply encapsulate arbitrary private key data and the corresponding password. This enables easy unit testing by loading the certificate and key from within a test case. Test-Information: Added unit tests for certificate and key generated by OpenSSL. Tested on macOS 10.13.2 with OpenSSL. Change-Id: I1c9ffc3c70f61af65c4f1c48670badaf74b672b7
Diffstat (limited to 'Swiften/TLS/CertificateFactory.cpp')
-rw-r--r--Swiften/TLS/CertificateFactory.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/Swiften/TLS/CertificateFactory.cpp b/Swiften/TLS/CertificateFactory.cpp
index 487f7cd..303bcf7 100644
--- a/Swiften/TLS/CertificateFactory.cpp
+++ b/Swiften/TLS/CertificateFactory.cpp
@@ -1,14 +1,35 @@
/*
- * Copyright (c) 2010 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/TLS/CertificateFactory.h>
+#include <cassert>
+#include <memory>
+#include <sstream>
+#include <string>
+
+#include <boost/algorithm/string/predicate.hpp>
+#include <boost/optional.hpp>
+
+#include <Swiften/Base/Log.h>
+#include <Swiften/StringCodecs/Base64.h>
+#include <Swiften/TLS/PrivateKey.h>
+
namespace Swift {
CertificateFactory::~CertificateFactory() {
}
+std::vector<Certificate::ref> CertificateFactory::createCertificateChain(const ByteArray& /* data */) {
+ assert(false);
+ return std::vector<Certificate::ref>();
+}
+
+PrivateKey::ref CertificateFactory::createPrivateKey(const SafeByteArray& data, boost::optional<SafeByteArray> password) {
+ return std::make_shared<PrivateKey>(data, password);
+}
+
}