]> git.saurik.com Git - apple/security.git/blobdiff - Security/libsecurity_manifest/lib/ManifestInternal.h
Security-57336.1.9.tar.gz
[apple/security.git] / Security / libsecurity_manifest / lib / ManifestInternal.h
diff --git a/Security/libsecurity_manifest/lib/ManifestInternal.h b/Security/libsecurity_manifest/lib/ManifestInternal.h
deleted file mode 100644 (file)
index a6fcc09..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- *  Copyright (c) 2004,2011,2014 Apple Inc. All Rights Reserved.
- *
- *  @APPLE_LICENSE_HEADER_START@
- *  
- *  This file contains Original Code and/or Modifications of Original Code
- *  as defined in and that are subject to the Apple Public Source License
- *  Version 2.0 (the 'License'). You may not use this file except in
- *  compliance with the License. Please obtain a copy of the License at
- *  http://www.opensource.apple.com/apsl/ and read it before using this
- *  file.
- *  
- *  The Original Code and all software distributed under the License are
- *  distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- *  EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- *  INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- *  FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- *  Please see the License for the specific language governing rights and
- *  limitations under the License.
- *  
- *  @APPLE_LICENSE_HEADER_END@
- */
-
-#ifndef _SECURITY_MANIFEST_H_
-#define _SECURITY_MANIFEST_H_
-
-
-#include <Security/Security.h>
-#include <security_utilities/security_utilities.h>
-#include <security_utilities/cfclass.h>
-#include <security_cdsa_client/cspclient.h>
-#include "SecManifest.h"
-#include <vector>
-#include <set>
-
-
-// note:  The error range for the file signing library is -22040 through -22079
-
-class ManifestItem;
-
-class CSSMInitializer
-{
-protected:
-       static ModuleNexus<CSSMInitializer> mInstance;
-
-       CssmClient::Module mModule;
-       CssmClient::CSP mCSP;
-
-public:
-       CSSMInitializer ();
-       ~CSSMInitializer ();
-
-       static CssmClient::CSP* GetCSP ();
-};
-
-
-
-const int kSHA1DigestSize = 20;
-typedef unsigned char SHA1Digest[kSHA1DigestSize];
-
-typedef std::set<std::string> StringSet;
-
-class ManifestItemList : private std::vector<ManifestItem*>
-{
-private:
-
-friend class FileSystemItemList;
-
-       typedef std::vector<ManifestItem*> ParentClass;
-
-       void ConvertToStringSet (const char* path, CFArrayRef array, StringSet& stringSet);
-
-protected:
-       void DecodeURL (CFURLRef url, char *pathBuffer, CFIndex maxBufLen);
-       void AddDataObject (CFDataRef data);
-
-public:
-       ManifestItemList ();
-       ~ManifestItemList ();
-       
-       void AddFileSystemObject (char* path, StringSet& exceptions, bool isRoot, bool hasAppleDoubleResourceFork);
-       void AddObject (CFTypeRef object, CFArrayRef exceptionList);
-       
-       using ParentClass::push_back;
-       using ParentClass::size;
-       // using ParentClass::operator[];
-
-       ManifestItem* operator[] (int n) {return ParentClass::operator[] (n);}
-};
-
-
-
-class FileSystemItemList : public ManifestItemList
-{
-public:
-       void Compare (FileSystemItemList &itemList, bool compareOwnerAndGroup);
-};
-
-
-
-class RootItemList : public ManifestItemList
-{
-public:
-       void Compare (RootItemList& itemList, bool compareOwnerAndGroup);
-};
-
-
-
-class ManifestInternal
-{
-protected:
-       RootItemList mManifestItems;
-
-public:
-       ManifestInternal ();
-       
-       virtual ~ManifestInternal ();
-       
-       ManifestItemList& GetItemList () {return mManifestItems;}
-       
-       static void CompareManifests (ManifestInternal& m1,  ManifestInternal& m2, SecManifestCompareOptions options);
-};
-
-
-
-enum ManifestItemType {kManifestDataBlobItemType, kManifestFileItemType, kManifestDirectoryItemType, kManifestSymLinkItemType,
-                                          kManifestOtherType};
-
-// base class for our internal object representation
-class ManifestItem
-{
-public:
-       virtual ~ManifestItem ();
-       
-       virtual ManifestItemType GetItemType ()  = 0;
-       virtual void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup) = 0;
-};
-
-
-
-class ManifestDataBlobItem : public ManifestItem
-{
-protected:
-       SHA1Digest mSHA1Digest;
-       size_t mLength;
-
-public:
-       ManifestDataBlobItem ();
-       virtual ~ManifestDataBlobItem ();
-       
-       ManifestItemType GetItemType ();
-       
-       const SHA1Digest* GetDigest ();
-       void SetDigest (const SHA1Digest *sha1Digest);
-       size_t GetLength ();
-       void SetLength (size_t length);
-       void Compare (ManifestItem* item, bool compareOwnerAndGroup);
-};
-
-
-
-class FileSystemEntryItem : public ManifestItem
-{
-protected:
-       std::string mPath, mName;
-       uid_t mUserID;
-       gid_t mGroupID;
-       mode_t mMode;
-
-public:
-       FileSystemEntryItem ();
-       virtual ~FileSystemEntryItem ();
-       
-       void SetName (char* name);
-       void SetPath (char* path);
-       void SetUID (uid_t uid);
-       void SetGID (gid_t gid);
-       void SetMode (mode_t mode);
-       
-       const char* GetName () const;
-       const std::string& GetNameAsString () const {return mName;}
-       uid_t GetUID () const;
-       gid_t GetGID () const;
-       mode_t GetMode () const;
-
-       void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup);
-};
-
-
-
-const int kMaxForks = 2;
-
-class ManifestFileItem : public FileSystemEntryItem
-{
-protected:
-       SHA1Digest mDigest[kMaxForks];
-       size_t mFileLengths[kMaxForks];
-
-       bool FileSystemHasTrueForks (char* pathToFile);
-       bool HasResourceFork (char* path, std::string &pathName, struct stat &st);
-       std::string ResourceFileName (char* path);
-       bool FileIsMachOBinary (char* path);
-       void ComputeDigestForFile (char* path, SHA1Digest &digest, size_t &length, struct stat &st);
-       void ComputeDigestForAppleDoubleResourceFork (char* path, SHA1Digest &digest, size_t &length);
-
-       int mNumForks;
-
-public:
-       ManifestFileItem ();
-       virtual ~ManifestFileItem ();
-       
-       u_int32_t GetNumberOfForks ();
-       void SetNumberOfForks (u_int32_t numForks);
-       void ComputeRepresentations (struct stat &st, bool hasAppleDoubleResourceFork);
-       void GetItemRepresentation (int whichFork, void* &itemRep, size_t &size);
-       void SetItemRepresentation (int whichFork, const void* itemRep, size_t size);
-       void SetForkLength (int whichFork, size_t length);
-       size_t GetForkLength (int whichFork);
-
-       ManifestItemType GetItemType ();
-       
-       void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup);
-};
-
-
-
-class ManifestDirectoryItem : public FileSystemEntryItem
-{
-protected:
-       FileSystemItemList mDirectoryItems;
-
-public:
-       ManifestDirectoryItem ();
-       virtual ~ManifestDirectoryItem ();
-       
-       void SetPath (char* path, StringSet &exceptions, bool isRoot);
-       ManifestItemType GetItemType ();
-       ManifestItemList& GetItemList () {return mDirectoryItems;}
-       
-       void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup);
-};
-
-
-
-class ManifestSymLinkItem : public FileSystemEntryItem
-{
-protected:
-       std::string mContent;
-       SHA1Digest mDigest;
-
-public:
-       ManifestSymLinkItem ();
-       virtual ~ManifestSymLinkItem ();
-       
-       const SHA1Digest* GetDigest ();
-       void SetDigest (const SHA1Digest* sha1Digest);
-       void ComputeRepresentation ();
-       ManifestItemType GetItemType ();
-       
-       void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup);
-};
-
-
-
-class ManifestOtherItem : public FileSystemEntryItem
-{
-protected:
-       std::string mPath, mName;
-
-public:
-       ManifestOtherItem ();
-       virtual ~ManifestOtherItem ();
-       
-       ManifestItemType GetItemType ();
-       
-       void Compare (ManifestItem *manifestItem, bool compareOwnerAndGroup);
-};
-
-#endif