summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-04-25 07:26:20 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-04-25 07:48:15 (GMT)
commitd80935c165ac2709b1dfba1f38c06f2cc1d91ee9 (patch)
treec3e2b7dd23c89d07b17802686bd0a6db80b7b5d4 /Swift/Controllers/CertificateFileStorage.cpp
parent20f9d6330351b373d40b40222433e11a2a0f2713 (diff)
downloadswift-d80935c165ac2709b1dfba1f38c06f2cc1d91ee9.zip
swift-d80935c165ac2709b1dfba1f38c06f2cc1d91ee9.tar.bz2
Moved file storages to Swift.
Diffstat (limited to 'Swift/Controllers/CertificateFileStorage.cpp')
-rw-r--r--Swift/Controllers/CertificateFileStorage.cpp61
1 files changed, 0 insertions, 61 deletions
diff --git a/Swift/Controllers/CertificateFileStorage.cpp b/Swift/Controllers/CertificateFileStorage.cpp
deleted file mode 100644
index cf924ee..0000000
--- a/Swift/Controllers/CertificateFileStorage.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2010 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
- */
-
-#include <Swift/Controllers/CertificateFileStorage.h>
-
-#include <iostream>
-#include <boost/filesystem/fstream.hpp>
-
-#include <Swiften/StringCodecs/SHA1.h>
-#include <Swiften/StringCodecs/Hexify.h>
-#include <Swiften/TLS/CertificateFactory.h>
-#include <Swiften/Base/Log.h>
-
-namespace Swift {
-
-CertificateFileStorage::CertificateFileStorage(const boost::filesystem::path& path, CertificateFactory* certificateFactory) : path(path), certificateFactory(certificateFactory) {
-}
-
-bool CertificateFileStorage::hasCertificate(Certificate::ref certificate) const {
- boost::filesystem::path certificatePath = getCertificatePath(certificate);
- if (boost::filesystem::exists(certificatePath)) {
- ByteArray data;
- data.readFromFile(certificatePath.string());
- Certificate::ref storedCertificate = certificateFactory->createCertificateFromDER(data);
- if (storedCertificate && storedCertificate->toDER() == certificate->toDER()) {
- return true;
- }
- else {
- SWIFT_LOG(warning) << "Stored certificate does not match received certificate" << std::endl;
- return false;
- }
- }
- else {
- return false;
- }
-}
-
-void CertificateFileStorage::addCertificate(Certificate::ref certificate) {
- boost::filesystem::path certificatePath = getCertificatePath(certificate);
- if (!boost::filesystem::exists(certificatePath.parent_path())) {
- try {
- boost::filesystem::create_directories(certificatePath.parent_path());
- }
- catch (const boost::filesystem::filesystem_error& e) {
- std::cerr << "ERROR: " << e.what() << std::endl;
- }
- }
- boost::filesystem::ofstream file(certificatePath, boost::filesystem::ofstream::binary|boost::filesystem::ofstream::out);
- ByteArray data = certificate->toDER();
- file.write(reinterpret_cast<const char*>(data.getData()), data.getSize());
- file.close();
-}
-
-boost::filesystem::path CertificateFileStorage::getCertificatePath(Certificate::ref certificate) const {
- return path / Hexify::hexify(SHA1::getHash(certificate->toDER()));
-}
-
-}