X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/e3d460c9de4426da6c630c3ae3f46173a99f82d8..dd5fb164cf5b32c462296bc65e289e100f74b59a:/OSX/libsecurity_codesigning/lib/cdbuilder.h diff --git a/OSX/libsecurity_codesigning/lib/cdbuilder.h b/OSX/libsecurity_codesigning/lib/cdbuilder.h index c4de2bec..761dcf63 100644 --- a/OSX/libsecurity_codesigning/lib/cdbuilder.h +++ b/OSX/libsecurity_codesigning/lib/cdbuilder.h @@ -59,10 +59,16 @@ public: Scatter *scatter(unsigned count); // allocate that many scatter elements (w/o sentinel) Scatter *scatter() { return mScatter; } // return already allocated scatter vector - + + void execSeg(uint64_t base, uint64_t limit, uint64_t flags) { + mExecSegOffset = base; mExecSegLimit = limit; mExecSegFlags = flags; } + void addExecSegFlags(uint64_t flags) { mExecSegFlags |= flags; } + size_t size(const uint32_t version); // calculate size CodeDirectory *build(); // build CodeDirectory and return it - const size_t fixedSize(const uint32_t version); // calculate fixed size of the CodeDirectory + size_t fixedSize(const uint32_t version); // calculate fixed size of the CodeDirectory + + uint32_t hashType() const { return mHashType; } DynamicHash *getHash() const { return CodeDirectory::hashFor(this->mHashType); } @@ -91,7 +97,11 @@ private: Scatter *mScatter; // scatter vector size_t mScatterSize; // number of scatter elements allocated (incl. sentinel) - + + uint64_t mExecSegOffset; // starting offset of executable segment + uint64_t mExecSegLimit; // limit of executable segment + uint64_t mExecSegFlags; // executable segment flags + CodeDirectory *mDir; // what we're building };