Comment fixes.
[libdcp.git] / src / certificates.h
index 8cb570c043ac64405aed705d41d90f401c8d880a..aba6d5cfa2b8f1534c44638884f7834bef99df87 100644 (file)
@@ -26,7 +26,6 @@
 
 #undef X509_NAME
 #include <openssl/x509.h>
-#include <boost/noncopyable.hpp>
 #include <boost/shared_ptr.hpp>
 #include <boost/filesystem.hpp>
 #include <string>
@@ -43,7 +42,7 @@ namespace dcp {
 /** @class Certificate
  *  @brief A wrapper for an X509 certificate.
  *
- *  This class can take a Certificate from a file, a string or an OpenSSL X509 object.
+ *  This class can take a Certificate from a string or an OpenSSL X509 object.
  */
 class Certificate
 {
@@ -52,7 +51,6 @@ public:
                : _certificate (0)
        {}
 
-       Certificate (boost::filesystem::path);
        Certificate (std::string);
        Certificate (X509 *);
        Certificate (Certificate const &);
@@ -66,6 +64,10 @@ public:
        std::string subject () const;
        std::string common_name () const;
 
+       X509* x509 () const {
+               return _certificate;
+       }
+
        RSA* public_key () const;
 
        std::string thumbprint () const;
@@ -89,16 +91,25 @@ class CertificateChain
 public:
        CertificateChain () {}
 
-       void add (boost::shared_ptr<Certificate> c);
+       void add (boost::shared_ptr<const Certificate> c);
+       void remove (boost::shared_ptr<const Certificate> c);
+       void remove (int);
+
+       boost::shared_ptr<const Certificate> root () const;
+       boost::shared_ptr<const Certificate> leaf () const;
 
-       boost::shared_ptr<Certificate> root () const;
-       boost::shared_ptr<Certificate> leaf () const;
+       typedef std::list<boost::shared_ptr<const Certificate> > List;
+       
+       List leaf_to_root () const;
+       List root_to_leaf () const;
 
-       std::list<boost::shared_ptr<Certificate> > leaf_to_root () const;
+       bool valid () const;
+       bool attempt_reorder ();
 
 private:
        friend class ::certificates;
-       std::list<boost::shared_ptr<Certificate> > _certificates;
+
+       List _certificates;
 };
 
 }