comparison dstep/security/SecKeychainItem.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
comparison
equal deleted inserted replaced
10:27e00625790b 11:07194b026fa4
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Jul 22, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.security.SecKeychainItem;
8
9 import dstep.objc.bridge.TypeEncoding;
10 import dstep.security.SecBase;
11 import dstep.security.cssmapple;
12 import dstep.security.cssmtype;
13
14 alias uint SecItemClass;
15 alias uint SecItemAttr;
16
17 // This is needed otherwise the enums will fail compiling with gdc
18 version (GNU)
19 {
20 private
21 {
22 const __kSecInternetPasswordItemClass = getOSType!("inet");
23 const __kSecGenericPasswordItemClass = getOSType!("genp");
24 const __kSecAppleSharePasswordItemClass = getOSType!("ashp");
25 const __kSecCreationDateItemAttr = getOSType!("cdat");
26 const __kSecModDateItemAttr = getOSType!("mdat");
27 const __kSecDescriptionItemAttr = getOSType!("desc");
28 const __kSecCommentItemAttr = getOSType!("icmt");
29 const __kSecCreatorItemAttr = getOSType!("crtr");
30 const __kSecTypeItemAttr = getOSType!("type");
31 const __kSecScriptCodeItemAttr = getOSType!("scrp");
32 const __kSecLabelItemAttr = getOSType!("labl");
33 const __kSecInvisibleItemAttr = getOSType!("invi");
34 const __kSecNegativeItemAttr = getOSType!("nega");
35 const __kSecCustomIconItemAttr = getOSType!("cusi");
36 const __kSecAccountItemAttr = getOSType!("acct");
37 const __kSecServiceItemAttr = getOSType!("svce");
38 const __kSecGenericItemAttr = getOSType!("gena");
39 const __kSecSecurityDomainItemAttr = getOSType!("sdmn");
40 const __kSecServerItemAttr = getOSType!("srvr");
41 const __kSecAuthenticationTypeItemAttr = getOSType!("atyp");
42 const __kSecPortItemAttr = getOSType!("port");
43 const __kSecPathItemAttr = getOSType!("path");
44 const __kSecVolumeItemAttr = getOSType!("vlme");
45 const __kSecAddressItemAttr = getOSType!("addr");
46 const __kSecSignatureItemAttr = getOSType!("ssig");
47 const __kSecProtocolItemAttr = getOSType!("ptcl");
48 const __kSecCertificateType = getOSType!("ctyp");
49 const __kSecCertificateEncoding = getOSType!("cenc");
50 const __kSecCrlType = getOSType!("crtp");
51 const __kSecCrlEncoding = getOSType!("crnc");
52 const __kSecAlias = getOSType!("alis");
53 }
54 }
55
56 enum
57 {
58 kSecInternetPasswordItemClass = getOSType!("inet"),
59 kSecGenericPasswordItemClass = getOSType!("genp"),
60 kSecAppleSharePasswordItemClass = getOSType!("ashp"),
61 kSecCertificateItemClass = CSSM_DL_DB_RECORD_X509_CERTIFICATE,
62 kSecPublicKeyItemClass = CSSM_DL_DB_RECORD_PUBLIC_KEY,
63 kSecPrivateKeyItemClass = CSSM_DL_DB_RECORD_PRIVATE_KEY,
64 kSecSymmetricKeyItemClass = CSSM_DL_DB_RECORD_SYMMETRIC_KEY
65 }
66
67 enum
68 {
69 kSecCreationDateItemAttr = getOSType!("cdat"),
70 kSecModDateItemAttr = getOSType!("mdat"),
71 kSecDescriptionItemAttr = getOSType!("desc"),
72 kSecCommentItemAttr = getOSType!("icmt"),
73 kSecCreatorItemAttr = getOSType!("crtr"),
74 kSecTypeItemAttr = getOSType!("type"),
75 kSecScriptCodeItemAttr = getOSType!("scrp"),
76 kSecLabelItemAttr = getOSType!("labl"),
77 kSecInvisibleItemAttr = getOSType!("invi"),
78 kSecNegativeItemAttr = getOSType!("nega"),
79 kSecCustomIconItemAttr = getOSType!("cusi"),
80 kSecAccountItemAttr = getOSType!("acct"),
81 kSecServiceItemAttr = getOSType!("svce"),
82 kSecGenericItemAttr = getOSType!("gena"),
83 kSecSecurityDomainItemAttr = getOSType!("sdmn"),
84 kSecServerItemAttr = getOSType!("srvr"),
85 kSecAuthenticationTypeItemAttr = getOSType!("atyp"),
86 kSecPortItemAttr = getOSType!("port"),
87 kSecPathItemAttr = getOSType!("path"),
88 kSecVolumeItemAttr = getOSType!("vlme"),
89 kSecAddressItemAttr = getOSType!("addr"),
90 kSecSignatureItemAttr = getOSType!("ssig"),
91 kSecProtocolItemAttr = getOSType!("ptcl"),
92 kSecCertificateType = getOSType!("ctyp"),
93 kSecCertificateEncoding = getOSType!("cenc"),
94 kSecCrlType = getOSType!("crtp"),
95 kSecCrlEncoding = getOSType!("crnc"),
96 kSecAlias = getOSType!("alis")
97 }
98
99 extern (C)
100 {
101 uint SecKeychainItemGetTypeID ();
102 int SecKeychainItemModifyAttributesAndData (SecKeychainItemRef itemRef, SecKeychainAttributeList* attrList, uint length, void* data);
103 int SecKeychainItemCreateFromContent (uint itemClass, SecKeychainAttributeList* attrList, uint length, void* data, SecKeychainRef keychainRef, SecAccessRef initialAccess, SecKeychainItemRef* itemRef);
104 int SecKeychainItemModifyContent (SecKeychainItemRef itemRef, SecKeychainAttributeList* attrList, uint length, void* data);
105 int SecKeychainItemCopyContent (SecKeychainItemRef itemRef, SecItemClass* itemClass, SecKeychainAttributeList* attrList, uint* length, void** outData);
106 int SecKeychainItemFreeContent (SecKeychainAttributeList* attrList, void* data);
107 int SecKeychainItemCopyAttributesAndData (SecKeychainItemRef itemRef, SecKeychainAttributeInfo* info, SecItemClass* itemClass, SecKeychainAttributeList** attrList, uint* length, void** outData);
108 int SecKeychainItemFreeAttributesAndData (SecKeychainAttributeList* attrList, void* data);
109 int SecKeychainItemDelete (SecKeychainItemRef itemRef);
110 int SecKeychainItemCopyKeychain (SecKeychainItemRef itemRef, SecKeychainRef* keychainRef);
111 int SecKeychainItemCreateCopy (SecKeychainItemRef itemRef, SecKeychainRef destKeychainRef, SecAccessRef initialAccess, SecKeychainItemRef* itemCopy);
112 int SecKeychainItemGetDLDBHandle (SecKeychainItemRef keyItemRef, CSSM_DL_DB_HANDLE* dldbHandle);
113 int SecKeychainItemGetUniqueRecordID (SecKeychainItemRef itemRef, CSSM_DB_UNIQUE_RECORD** uniqueRecordID);
114 int SecKeychainItemCopyAccess (SecKeychainItemRef itemRef, SecAccessRef* access);
115 int SecKeychainItemSetAccess (SecKeychainItemRef itemRef, SecAccessRef access);
116 }