]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_codesigning/lib/piddiskrep.h
Security-59306.11.20.tar.gz
[apple/security.git] / OSX / libsecurity_codesigning / lib / piddiskrep.h
index fc1e32490dcac58e78c68ff1e6e473c0b2865269..c58430099d5d180123fb9b82bd345edb0b6de780 100644 (file)
 #ifndef _H_PIDDISKREP
 #define _H_PIDDISKREP
 
+#include <memory>
+
 #include "diskrep.h"
 
 namespace Security {
 namespace CodeSigning {
                 
                 
-//
-// A KernelDiskRep represents a (the) kernel on disk.
-// It has no write support, so we can't sign the kernel,
-// which is fine since we unconditionally trust it anyway.
-//
 class PidDiskRep : public DiskRep {
 public:
-        PidDiskRep(pid_t pid, CFDataRef infoPlist);
+        PidDiskRep(pid_t pid, audit_token_t *audit, CFDataRef infoPlist);
         ~PidDiskRep();
         
         CFDataRef component(CodeDirectory::SpecialSlot slot);
@@ -48,19 +45,28 @@ public:
         std::string mainExecutablePath();
         CFURLRef copyCanonicalPath();
         size_t signingLimit();
+               size_t execSegLimit(const Architecture *arch);
         std::string format();
         UnixPlusPlus::FileDesc &fd();
-        
+
         std::string recommendedIdentifier(const SigningContext &ctx);
         
         bool supportInfoPlist();
+       
+               void setCredentials(const CodeDirectory* cd);
+
+               bool appleInternalForcePlatform() const;
+
 private:
         const BlobCore *blob() { return (const BlobCore *)mBuffer; }
         void fetchData(void);
         pid_t mPid;
+        std::unique_ptr<audit_token_t> mAudit;
         uint8_t *mBuffer;
+               CFRef<CFDataRef> mInfoPlistHash;
         CFRef<CFDataRef> mInfoPlist;
         CFRef<CFURLRef> mBundleURL;
+               bool mDataFetched;
 };