]>
git.saurik.com Git - apple/securityd.git/blob - src/tempdatabase.h
   2  * Copyright (c) 2004 Apple Computer, Inc. All Rights Reserved. 
   4  * @APPLE_LICENSE_HEADER_START@ 
   6  * This file contains Original Code and/or Modifications of Original Code 
   7  * as defined in and that are subject to the Apple Public Source License 
   8  * Version 2.0 (the 'License'). You may not use this file except in 
   9  * compliance with the License. Please obtain a copy of the License at 
  10  * http://www.opensource.apple.com/apsl/ and read it before using this 
  13  * The Original Code and all software distributed under the License are 
  14  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  15  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  16  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  17  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  18  * Please see the License for the specific language governing rights and 
  19  * limitations under the License. 
  21  * @APPLE_LICENSE_HEADER_END@ 
  26 // tempdatabase - temporary (scratch) storage for keys 
  28 // A TempDatabase locally manages keys using the AppleCSP while providing 
  29 // no persistent storage. Keys live until they are no longer referenced in 
  30 // client space, at which point they are destroyed. 
  32 #ifndef _H_TEMPDATABASE 
  33 #define _H_TEMPDATABASE 
  35 #include "localdatabase.h" 
  39 // A TempDatabase is simply a container of (a subclass of) LocalKey. 
  40 // When it dies, all its contents irretrievably vanish. There is no DbCommon 
  41 // or global object; each TempDatabase is completely distinct. 
  42 // Database ACLs are not (currently) supported on TempDatabases. 
  44 class TempDatabase 
: public LocalDatabase 
{ 
  46         TempDatabase(Process 
&proc
); 
  48         const char *dbName() const; 
  49         bool transient() const; 
  51         RefPointer
<Key
> makeKey(const CssmKey 
&newKey
, uint32 moreAttributes
, 
  52                 const AclEntryPrototype 
*owner
); 
  54         void generateKey(const Context 
&context
, 
  55                  const AccessCredentials 
*cred
,  
  56                  const AclEntryPrototype 
*owner
, uint32 usage
,  
  57                  uint32 attrs
, RefPointer
<Key
> &newKey
); 
  60         void getSecurePassphrase(const Context 
&context
, string 
&passphrase
); 
  61         void makeSecurePassphraseKey(const Context 
&context
, const AccessCredentials 
*cred
,  
  62                                                                  const AclEntryPrototype 
*owner
, uint32 usage
,  
  63                                                                  uint32 attrs
, RefPointer
<Key
> &newKey
); 
  66 #endif //_H_TEMPDATABASE