]> git.saurik.com Git - apple/libsecurity_codesigning.git/blobdiff - lib/reqinterp.h
libsecurity_codesigning-55037.15.tar.gz
[apple/libsecurity_codesigning.git] / lib / reqinterp.h
index fad9a478ee5bde5b0351e4c9918641acaa015157..ad1ddb8495e2b5ded914110d3856c64491eb6225 100644 (file)
@@ -41,7 +41,7 @@ namespace CodeSigning {
 //     
 class Requirement::Interpreter : public Requirement::Reader {  
 public:
-       Interpreter(const Requirement *req, const Context *ctx);
+       Interpreter(const Requirement *req, const Context *ctx) : Reader(req), mContext(ctx) { }
        
        bool evaluate();
        
@@ -52,7 +52,7 @@ protected:
                Match(CFStringRef value, MatchOperation op) : mValue(value), mOp(op) { } // explicit
                Match() : mValue(NULL), mOp(matchExists) { } // explict test for presence
                bool operator () (CFTypeRef candidate) const; // match to candidate
-               
+
        protected:
                bool inequality(CFTypeRef candidate, CFStringCompareFlags flags, CFComparisonResult outcome, bool negate) const;
                
@@ -67,6 +67,8 @@ protected:
        bool certFieldValue(const string &key, const Match &match, SecCertificateRef cert);
        bool certFieldGeneric(const string &key, const Match &match, SecCertificateRef cert);
        bool certFieldGeneric(const CssmOid &oid, const Match &match, SecCertificateRef cert);
+       bool certFieldPolicy(const string &key, const Match &match, SecCertificateRef cert);
+       bool certFieldPolicy(const CssmOid &oid, const Match &match, SecCertificateRef cert);
        bool verifyAnchor(SecCertificateRef cert, const unsigned char *digest);
        bool appleSigned();
        bool appleAnchored();