]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_apple_cspdl/lib/SSDatabase.h
Security-57031.1.35.tar.gz
[apple/security.git] / libsecurity_apple_cspdl / lib / SSDatabase.h
diff --git a/libsecurity_apple_cspdl/lib/SSDatabase.h b/libsecurity_apple_cspdl/lib/SSDatabase.h
deleted file mode 100644 (file)
index c1f6ea8..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
- * 
- * The contents of this file constitute Original Code as defined in and are
- * subject to the Apple Public Source License Version 1.2 (the 'License').
- * You may not use this file except in compliance with the License. Please obtain
- * a copy of the License at http://www.apple.com/publicsource and read it before
- * using this file.
- * 
- * This 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.
- */
-
-
-//
-// SSDatabase.h - Security Server database object
-//
-#ifndef        _H_SSDATABASE_
-#define _H_SSDATABASE_
-
-#include <security_cdsa_client/dlclient.h>
-#include <security_utilities/unix++.h>
-#include <securityd_client/ssclient.h>
-
-class SSCSPDLSession;
-class SSUniqueRecord;
-
-//
-// Protected please ignore this class unless subclassing SSDatabase.
-//
-class SSDatabase;
-
-class SSDatabaseImpl : public CssmClient::DbImpl
-{
-public:
-       static const char *const DBBlobRelationName;
-       static const CSSM_DB_RECORDTYPE DBBlobRelationID =
-               CSSM_DB_RECORDTYPE_APP_DEFINED_START + 0x8000;
-
-public:
-       SSDatabaseImpl(SecurityServer::ClientSession &inClientSession,
-                                  const CssmClient::DL &dl,
-                                  const char *inDbName, const CSSM_NET_ADDRESS *inDbLocation);
-       virtual ~SSDatabaseImpl();
-
-       void create(const DLDbIdentifier &dlDbIdentifier);
-       void createWithBlob(const DLDbIdentifier &dlDbIdentifier, const CSSM_DATA &blob);
-       void open(const DLDbIdentifier &dlDbIdentifier);
-       SSUniqueRecord insert(CSSM_DB_RECORDTYPE recordType,
-                                                 const CSSM_DB_RECORD_ATTRIBUTE_DATA *attributes,
-                                                 const CSSM_DATA *data, bool);
-       void authenticate(CSSM_DB_ACCESS_TYPE inAccessRequest,
-                                               const CSSM_ACCESS_CREDENTIALS *inAccessCredentials);
-
-       // Passthrough functions (only implemented by AppleCSPDL).
-       void lock();
-       void unlock();
-       void unlock(const CSSM_DATA &password);
-    void stash();
-    void stashCheck();
-       void getSettings(uint32 &outIdleTimeout, bool &outLockOnSleep);
-       void setSettings(uint32 inIdleTimeout, bool inLockOnSleep);
-       bool isLocked();
-       void changePassphrase(const CSSM_ACCESS_CREDENTIALS *cred);
-       void recode(const CssmData &data, const CssmData &extraData);
-       // DbUniqueRecordMaker
-       CssmClient::DbUniqueRecordImpl *newDbUniqueRecord();
-
-       // New methods not inherited from DbImpl
-       SecurityServer::DbHandle dbHandle();
-
-       void getRecordIdentifier(const CSSM_DB_UNIQUE_RECORD_PTR uniqueRecord, CSSM_DATA &data);
-       void copyBlob(CSSM_DATA &blob);
-       
-protected:
-       CssmClient::DbUniqueRecord getDbBlobId(CssmDataContainer *dbb = NULL);
-       void commonCreate (const DLDbIdentifier &dlDbIdentifier, bool &autocommit);
-
-private:
-       // 5 minute default autolock time
-       static const uint32 kDefaultIdleTimeout = 5 * 60;
-       static const uint8 kDefaultLockOnSleep = true;
-       static const unsigned kNumIDWords = 4;
-
-       DLDbIdentifier mIdentifier;
-       UnixPlusPlus::ForkMonitor mForked;
-       
-       SecurityServer::ClientSession &mClientSession;
-       SecurityServer::DbHandle mSSDbHandle;
-};
-
-
-//
-// SSDatabase --  A Security Server aware Db object.
-//
-class SSDatabase : public CssmClient::Db
-{
-public:
-       typedef SSDatabaseImpl Impl;
-
-       explicit SSDatabase(SSDatabaseImpl *impl) : CssmClient::Db(impl) {}
-       SSDatabase() : CssmClient::Db(NULL) {}
-       SSDatabase(SecurityServer::ClientSession &inClientSession,
-                          const CssmClient::DL &dl,
-                          const char *inDbName, const CSSM_NET_ADDRESS *inDbLocation)
-       : CssmClient::Db(new SSDatabaseImpl(inClientSession, dl, inDbName, inDbLocation)) {}
-
-       SSDatabaseImpl *operator ->() const { return &impl<SSDatabaseImpl>(); }
-       SSDatabaseImpl &operator *() const { return impl<SSDatabaseImpl>(); }
-
-       // For convinience only
-       SecurityServer::DbHandle dbHandle() { return (*this) ? (*this)->dbHandle() : SecurityServer::noDb; }
-};
-
-
-class SSUniqueRecordImpl : public CssmClient::DbUniqueRecordImpl
-{
-public:
-       SSUniqueRecordImpl(const SSDatabase &db);
-       virtual ~SSUniqueRecordImpl();
-
-       SSDatabase database() const;
-};
-
-
-class SSUniqueRecord : public CssmClient::DbUniqueRecord
-{
-public:
-       typedef SSUniqueRecordImpl Impl;
-
-       explicit SSUniqueRecord(SSUniqueRecordImpl *impl) : CssmClient::DbUniqueRecord(impl) {}
-       SSUniqueRecord() : CssmClient::DbUniqueRecord(NULL) {}
-       SSUniqueRecord(const SSDatabase &db) : CssmClient::DbUniqueRecord(new SSUniqueRecordImpl(db)) {}
-
-       SSUniqueRecordImpl *operator ->() const { return &impl<SSUniqueRecordImpl>(); }
-       SSUniqueRecordImpl &operator *() const { return impl<SSUniqueRecordImpl>(); }
-};
-
-
-#endif // _H_SSDATABASE_