X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fcertificate_chain.h;h=8b54604d2f6d38e4a2a549231e6e8368ecb35b63;hb=a266fc2;hp=b5954d5b6288ff59ef1abc2552d16ffeabb1f271;hpb=45fd7558122b679e017eaf9c1f6d10061ada72a8;p=libdcp.git diff --git a/src/certificate_chain.h b/src/certificate_chain.h index b5954d5b..8b54604d 100644 --- a/src/certificate_chain.h +++ b/src/certificate_chain.h @@ -47,6 +47,15 @@ namespace xmlpp { class Node; } +struct certificates_validation1; +struct certificates_validation2; +struct certificates_validation3; +struct certificates_validation4; +struct certificates_validation5; +struct certificates_validation6; +struct certificates_validation7; +struct certificates_validation8; + namespace dcp { /** @class CertificateChain @@ -87,12 +96,14 @@ public: List leaf_to_root () const; List root_to_leaf () const; + List unordered () const; bool valid (std::string* reason = 0) const; - bool attempt_reorder (); + bool chain_valid () const; + bool private_key_valid () const; void sign (xmlpp::Element* parent, Standard standard) const; - void add_signature_value (xmlpp::Node* parent, std::string ns) const; + void add_signature_value (xmlpp::Element* parent, std::string ns) const; boost::optional key () const { return _key; @@ -105,8 +116,18 @@ public: std::string chain () const; private: - friend class ::certificates; - + friend struct ::certificates_validation1; + friend struct ::certificates_validation2; + friend struct ::certificates_validation3; + friend struct ::certificates_validation4; + friend struct ::certificates_validation5; + friend struct ::certificates_validation6; + friend struct ::certificates_validation7; + friend struct ::certificates_validation8; + + bool chain_valid (List const & chain) const; + + /** Our certificates, not in any particular order */ List _certificates; /** Leaf certificate's private key, if known */ boost::optional _key;