/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include namespace Swift { /** * A certificate trust checker that trusts certificates in a certificate storage. */ class CertificateStorageTrustChecker : public CertificateTrustChecker { public: CertificateStorageTrustChecker(CertificateStorage* storage) : storage(storage) { } virtual bool isCertificateTrusted(const std::vector& certificateChain) { lastCertificateChain = std::vector(certificateChain.begin(), certificateChain.end()); return certificateChain.empty() ? false : storage->hasCertificate(certificateChain[0]); } const std::vector& getLastCertificateChain() const { return lastCertificateChain; } private: CertificateStorage* storage; std::vector lastCertificateChain; }; }