Mercurial > projects > dstep
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/security/SecKeychainItem.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,116 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 22, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.security.SecKeychainItem; + +import dstep.objc.bridge.TypeEncoding; +import dstep.security.SecBase; +import dstep.security.cssmapple; +import dstep.security.cssmtype; + +alias uint SecItemClass; +alias uint SecItemAttr; + +// This is needed otherwise the enums will fail compiling with gdc +version (GNU) +{ + private + { + const __kSecInternetPasswordItemClass = getOSType!("inet"); + const __kSecGenericPasswordItemClass = getOSType!("genp"); + const __kSecAppleSharePasswordItemClass = getOSType!("ashp"); + const __kSecCreationDateItemAttr = getOSType!("cdat"); + const __kSecModDateItemAttr = getOSType!("mdat"); + const __kSecDescriptionItemAttr = getOSType!("desc"); + const __kSecCommentItemAttr = getOSType!("icmt"); + const __kSecCreatorItemAttr = getOSType!("crtr"); + const __kSecTypeItemAttr = getOSType!("type"); + const __kSecScriptCodeItemAttr = getOSType!("scrp"); + const __kSecLabelItemAttr = getOSType!("labl"); + const __kSecInvisibleItemAttr = getOSType!("invi"); + const __kSecNegativeItemAttr = getOSType!("nega"); + const __kSecCustomIconItemAttr = getOSType!("cusi"); + const __kSecAccountItemAttr = getOSType!("acct"); + const __kSecServiceItemAttr = getOSType!("svce"); + const __kSecGenericItemAttr = getOSType!("gena"); + const __kSecSecurityDomainItemAttr = getOSType!("sdmn"); + const __kSecServerItemAttr = getOSType!("srvr"); + const __kSecAuthenticationTypeItemAttr = getOSType!("atyp"); + const __kSecPortItemAttr = getOSType!("port"); + const __kSecPathItemAttr = getOSType!("path"); + const __kSecVolumeItemAttr = getOSType!("vlme"); + const __kSecAddressItemAttr = getOSType!("addr"); + const __kSecSignatureItemAttr = getOSType!("ssig"); + const __kSecProtocolItemAttr = getOSType!("ptcl"); + const __kSecCertificateType = getOSType!("ctyp"); + const __kSecCertificateEncoding = getOSType!("cenc"); + const __kSecCrlType = getOSType!("crtp"); + const __kSecCrlEncoding = getOSType!("crnc"); + const __kSecAlias = getOSType!("alis"); + } +} + +enum +{ + kSecInternetPasswordItemClass = getOSType!("inet"), + kSecGenericPasswordItemClass = getOSType!("genp"), + kSecAppleSharePasswordItemClass = getOSType!("ashp"), + kSecCertificateItemClass = CSSM_DL_DB_RECORD_X509_CERTIFICATE, + kSecPublicKeyItemClass = CSSM_DL_DB_RECORD_PUBLIC_KEY, + kSecPrivateKeyItemClass = CSSM_DL_DB_RECORD_PRIVATE_KEY, + kSecSymmetricKeyItemClass = CSSM_DL_DB_RECORD_SYMMETRIC_KEY +} + +enum +{ + kSecCreationDateItemAttr = getOSType!("cdat"), + kSecModDateItemAttr = getOSType!("mdat"), + kSecDescriptionItemAttr = getOSType!("desc"), + kSecCommentItemAttr = getOSType!("icmt"), + kSecCreatorItemAttr = getOSType!("crtr"), + kSecTypeItemAttr = getOSType!("type"), + kSecScriptCodeItemAttr = getOSType!("scrp"), + kSecLabelItemAttr = getOSType!("labl"), + kSecInvisibleItemAttr = getOSType!("invi"), + kSecNegativeItemAttr = getOSType!("nega"), + kSecCustomIconItemAttr = getOSType!("cusi"), + kSecAccountItemAttr = getOSType!("acct"), + kSecServiceItemAttr = getOSType!("svce"), + kSecGenericItemAttr = getOSType!("gena"), + kSecSecurityDomainItemAttr = getOSType!("sdmn"), + kSecServerItemAttr = getOSType!("srvr"), + kSecAuthenticationTypeItemAttr = getOSType!("atyp"), + kSecPortItemAttr = getOSType!("port"), + kSecPathItemAttr = getOSType!("path"), + kSecVolumeItemAttr = getOSType!("vlme"), + kSecAddressItemAttr = getOSType!("addr"), + kSecSignatureItemAttr = getOSType!("ssig"), + kSecProtocolItemAttr = getOSType!("ptcl"), + kSecCertificateType = getOSType!("ctyp"), + kSecCertificateEncoding = getOSType!("cenc"), + kSecCrlType = getOSType!("crtp"), + kSecCrlEncoding = getOSType!("crnc"), + kSecAlias = getOSType!("alis") +} + +extern (C) +{ + uint SecKeychainItemGetTypeID (); + int SecKeychainItemModifyAttributesAndData (SecKeychainItemRef itemRef, SecKeychainAttributeList* attrList, uint length, void* data); + int SecKeychainItemCreateFromContent (uint itemClass, SecKeychainAttributeList* attrList, uint length, void* data, SecKeychainRef keychainRef, SecAccessRef initialAccess, SecKeychainItemRef* itemRef); + int SecKeychainItemModifyContent (SecKeychainItemRef itemRef, SecKeychainAttributeList* attrList, uint length, void* data); + int SecKeychainItemCopyContent (SecKeychainItemRef itemRef, SecItemClass* itemClass, SecKeychainAttributeList* attrList, uint* length, void** outData); + int SecKeychainItemFreeContent (SecKeychainAttributeList* attrList, void* data); + int SecKeychainItemCopyAttributesAndData (SecKeychainItemRef itemRef, SecKeychainAttributeInfo* info, SecItemClass* itemClass, SecKeychainAttributeList** attrList, uint* length, void** outData); + int SecKeychainItemFreeAttributesAndData (SecKeychainAttributeList* attrList, void* data); + int SecKeychainItemDelete (SecKeychainItemRef itemRef); + int SecKeychainItemCopyKeychain (SecKeychainItemRef itemRef, SecKeychainRef* keychainRef); + int SecKeychainItemCreateCopy (SecKeychainItemRef itemRef, SecKeychainRef destKeychainRef, SecAccessRef initialAccess, SecKeychainItemRef* itemCopy); + int SecKeychainItemGetDLDBHandle (SecKeychainItemRef keyItemRef, CSSM_DL_DB_HANDLE* dldbHandle); + int SecKeychainItemGetUniqueRecordID (SecKeychainItemRef itemRef, CSSM_DB_UNIQUE_RECORD** uniqueRecordID); + int SecKeychainItemCopyAccess (SecKeychainItemRef itemRef, SecAccessRef* access); + int SecKeychainItemSetAccess (SecKeychainItemRef itemRef, SecAccessRef access); +} \ No newline at end of file