projects
/
libdcp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various attempts to clean up DCP comparison code.
[libdcp.git]
/
src
/
certificates.h
diff --git
a/src/certificates.h
b/src/certificates.h
index 96a8cbb7dee6995239cc318cc5ae738c374a4f4b..ebc4cc53560d42a7e6916a1a511ad4ec8028fab1 100644
(file)
--- a/
src/certificates.h
+++ b/
src/certificates.h
@@
-26,7
+26,6
@@
#undef X509_NAME
#include <openssl/x509.h>
#undef X509_NAME
#include <openssl/x509.h>
-#include <boost/shared_ptr.hpp>
#include <boost/filesystem.hpp>
#include <string>
#include <list>
#include <boost/filesystem.hpp>
#include <string>
#include <list>
@@
-42,16
+41,16
@@
namespace dcp {
/** @class Certificate
* @brief A wrapper for an X509 certificate.
*
/** @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
{
public:
Certificate ()
: _certificate (0)
*/
class Certificate
{
public:
Certificate ()
: _certificate (0)
+ , _public_key (0)
{}
{}
- Certificate (boost::filesystem::path);
Certificate (std::string);
Certificate (X509 *);
Certificate (Certificate const &);
Certificate (std::string);
Certificate (X509 *);
Certificate (Certificate const &);
@@
-65,6
+64,10
@@
public:
std::string subject () const;
std::string common_name () const;
std::string subject () const;
std::string common_name () const;
+ X509* x509 () const {
+ return _certificate;
+ }
+
RSA* public_key () const;
std::string thumbprint () const;
RSA* public_key () const;
std::string thumbprint () const;
@@
-80,6
+83,10
@@
private:
mutable RSA* _public_key;
};
mutable RSA* _public_key;
};
+bool operator== (Certificate const & a, Certificate const & b);
+bool operator< (Certificate const & a, Certificate const & b);
+std::ostream& operator<< (std::ostream&s, Certificate const & c);
+
/** @class CertificateChain
* @brief A chain of any number of certificates, from root to leaf.
*/
/** @class CertificateChain
* @brief A chain of any number of certificates, from root to leaf.
*/
@@
-88,16
+95,25
@@
class CertificateChain
public:
CertificateChain () {}
public:
CertificateChain () {}
- void add (boost::shared_ptr<Certificate> c);
+ void add (Certificate c);
+ void remove (Certificate c);
+ void remove (int);
-
boost::shared_ptr<Certificate>
root () const;
-
boost::shared_ptr<Certificate>
leaf () const;
+
Certificate
root () const;
+
Certificate
leaf () const;
- std::list<boost::shared_ptr<Certificate> > leaf_to_root () const;
+ typedef std::list<Certificate> List;
+
+ List leaf_to_root () const;
+ List root_to_leaf () const;
+
+ bool valid () const;
+ bool attempt_reorder ();
private:
friend class ::certificates;
private:
friend class ::certificates;
- std::list<boost::shared_ptr<Certificate> > _certificates;
+
+ List _certificates;
};
}
};
}