]> git.saurik.com Git - apple/libsecurity_codesigning.git/blobdiff - lib/csdatabase.h
libsecurity_codesigning-55037.15.tar.gz
[apple/libsecurity_codesigning.git] / lib / csdatabase.h
index 94ff92020faefd4ba8a8ea851689b8e06ff033a1..95f8e1b104ee468d2616824cfd68317e8552a5dc 100644 (file)
@@ -44,22 +44,32 @@ namespace SQLite = SQLite3;
 class SignatureDatabase : public SQLite::Database {
 public:
        SignatureDatabase(const char *path = defaultPath,
-               int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
+               int flags = SQLITE_OPEN_READONLY);
        virtual ~SignatureDatabase();
        
        FilterRep *findCode(DiskRep *rep);
+
+public:
+       static const char defaultPath[];
+};
+
+
+class SignatureDatabaseWriter : public SignatureDatabase {
+public:
+       SignatureDatabaseWriter(const char *path = defaultPath,
+               int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE)
+               : SignatureDatabase(path, flags) { }
+
        void storeCode(const BlobCore *sig, const char *location);
        
 private:
        SQLite::int64 insertGlobal(const char *location, const BlobCore *blob);
        void insertCode(SQLite::int64 globid, int arch, const EmbeddedSignatureBlob *sig);
-
-public:
-       static const char defaultPath[];
 };
 
 
 extern ModuleNexus<SignatureDatabase> signatureDatabase;
+extern ModuleNexus<SignatureDatabaseWriter> signatureDatabaseWriter;
 
 
 } // end namespace CodeSigning