/* * 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 #include "Swiften/Base/String.h" #include "Swiften/TLS/Certificate.h" namespace Swift { class OpenSSLCertificate : public Certificate { public: OpenSSLCertificate(boost::shared_ptr); OpenSSLCertificate(const ByteArray& der); String getCommonName() const { return commonName; } std::vector getSRVNames() const { return srvNames; } std::vector getDNSNames() const { return dnsNames; } std::vector getXMPPAddresses() const { return xmppAddresses; } ByteArray toDER() const; private: void parse(); void addSRVName(const String& name) { srvNames.push_back(name); } void addDNSName(const String& name) { dnsNames.push_back(name); } void addXMPPAddress(const String& addr) { xmppAddresses.push_back(addr); } void setCommonName(const String& commonName) { this->commonName = commonName; } private: boost::shared_ptr cert; String commonName; std::vector dnsNames; std::vector xmppAddresses; std::vector srvNames; }; }