Mercurial > projects > dstep
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 } |