// A SecCode object represents running code in the system. It must be subclassed
// to implement a particular notion of code.
//
-class SecCodeSigner : public SecCFObject, public DiskRep::SigningContext {
+class SecCodeSigner : public SecCFObject {
NOCOPY(SecCodeSigner)
public:
class Parser;
void remove(SecStaticCode *code, SecCSFlags flags);
void returnDetachedSignature(BlobCore *blob, Signer &signer);
-
-protected:
- std::string sdkPath(const std::string &path) const;
- bool isAdhoc() const;
- SecCSFlags signingFlags() const;
-private:
+ const CodeDirectory::HashAlgorithms &digestAlgorithms() const { return mDigestAlgorithms; }
+
+public:
// parsed parameter set
SecCSFlags mOpFlags; // operation flags
CFRef<SecIdentityRef> mSigner; // signing identity
uint32_t mCdFlags; // CodeDirectory flags
uint32_t mPreserveMetadata; // metadata preservation options
bool mCdFlagsGiven; // CodeDirectory flags were specified
- CodeDirectory::HashAlgorithm mDigestAlgorithm; // interior digest (hash) algorithm
+ CodeDirectory::HashAlgorithms mDigestAlgorithms; // interior digest (hash) algorithm
std::string mIdentifier; // unique identifier override
std::string mIdentifierPrefix; // prefix for un-dotted default identifiers
std::string mTeamID; // teamID
bool mWantTimeStamp; // use a Timestamp server
bool mNoTimeStampCerts; // don't request certificates with timestamping request
LimitedAsync *mLimitedAsync; // limited async workers for verification
+ uint32_t mRuntimeVersionOverride; // runtime Version Override
+ bool mPreserveAFSC; // preserve AFSC compression
+ bool mOmitAdhocFlag; // don't add adhoc flag, even without signer identity
+ // Signature Editing
+ Architecture mEditArch; // architecture to edit (defaults to all if empty)
+ CFRef<CFDataRef> mEditCMS; // CMS to replace in the signature
+
};