/* * Copyright (c) 2012 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class SecureTransportCertificate : public Certificate { public: SecureTransportCertificate(SecCertificateRef); SecureTransportCertificate(const ByteArray& der); std::string getSubjectName() const { return subjectName; } std::vector getCommonNames() const { return commonNames; } 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 std::string& name) { srvNames.push_back(name); } void addDNSName(const std::string& name) { dnsNames.push_back(name); } void addXMPPAddress(const std::string& addr) { xmppAddresses.push_back(addr); } private: std::string subjectName; std::vector commonNames; std::vector dnsNames; std::vector xmppAddresses; std::vector srvNames; }; }