#include <list>
#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
+#undef X509_NAME
#include <openssl/x509.h>
class certificates;
class Certificate : public boost::noncopyable
{
public:
+ Certificate ()
+ : _certificate (0)
+ {}
+
+ Certificate (std::string const &);
Certificate (X509 *);
~Certificate ();
std::string thumbprint () const;
- static std::string name_for_xml (std::string const &);
-
private:
+ static std::string name_for_xml (X509_NAME *);
+ static std::string asn_to_utf8 (ASN1_STRING *);
+ static std::string get_name_part (X509_NAME *, int);
+
X509* _certificate;
};
{
public:
CertificateChain () {}
- CertificateChain (std::string const &);
+
+ void add (boost::shared_ptr<Certificate>);
boost::shared_ptr<Certificate> root () const;
boost::shared_ptr<Certificate> leaf () const;