/* * Copyright (c) 2015-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include namespace Swift { class SecureTransportCertificate : public Certificate { public: SecureTransportCertificate(SecCertificateRef certificate); SecureTransportCertificate(const ByteArray& der); virtual ~SecureTransportCertificate(); virtual std::string getSubjectName() const; virtual std::vector getCommonNames() const; virtual std::vector getSRVNames() const; virtual std::vector getDNSNames() const; virtual std::vector getXMPPAddresses() const; virtual ByteArray toDER() const; private: void parse(); typedef boost::remove_pointer::type SecCertificate; private: std::shared_ptr certificateHandle_; std::string subjectName_; std::vector commonNames_; std::vector srvNames_; std::vector dnsNames_; std::vector xmppAddresses_; }; }