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