/ keychain / securityd / SecItemSchema.h
SecItemSchema.h
 1  /*
 2   * Copyright (c) 2013-2014 Apple Inc. All Rights Reserved.
 3   *
 4   * @APPLE_LICENSE_HEADER_START@
 5   * 
 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
11   * file.
12   * 
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.
20   * 
21   * @APPLE_LICENSE_HEADER_END@
22   */
23  
24  /*!
25   @header SecItemSchema.h - The thing that does the stuff with the gibli.
26   */
27  
28  #ifndef _SECURITYD_SECITEMSCHEMA_H_
29  #define _SECURITYD_SECITEMSCHEMA_H_
30  
31  #include "keychain/securityd/SecDbItem.h"
32  
33  __BEGIN_DECLS
34  
35  const SecDbSchema* current_schema(void);
36  const SecDbSchema * const * all_schemas(void);
37  
38  // class accessors for current schema
39  const SecDbClass* genp_class(void);
40  const SecDbClass* inet_class(void);
41  const SecDbClass* cert_class(void);
42  const SecDbClass* keys_class(void);
43  
44  // Not really a class per-se
45  const SecDbClass* identity_class(void);
46  
47  // Class with 1 element in it which is the database version.
48  const SecDbClass* tversion_class(void);
49  
50  // Direct attribute accessors
51  // If you change one of these, update it here
52  extern const SecDbAttr v6v_Data;
53  
54  extern const SecDbAttr v6agrp;
55  extern const SecDbAttr v6desc;
56  extern const SecDbAttr v6svce;
57  extern const SecDbAttr v7vwht;
58  extern const SecDbAttr v7tkid;
59  extern const SecDbAttr v7utomb;
60  extern const SecDbAttr v8musr;
61  extern const SecDbAttr v10itemuuid;
62  extern const SecDbAttr v10itempersistentref;
63  
64  // TODO: Directly expose other important attributes like
65  // kSecItemSyncAttr, kSecItemTombAttr, kSecItemCdatAttr, kSecItemMdatAttr, kSecItemDataAttr
66  // This will prevent having to do lookups in SecDbItem for things by kind.
67  
68  __END_DECLS
69  
70  #endif /* _SECURITYD_SECITEMSCHEMA_H_ */