diff dstep/security/SecImportExport.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 19885b43130e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/security/SecImportExport.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,78 @@
+/**
+ * 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.SecImportExport;
+
+import dstep.corefoundation.CoreFoundation;
+import dstep.security.SecAccess;
+import dstep.security.SecBase;
+import dstep.security.SecKeychain;
+import dstep.security.cssmtype;
+//import dstep.stdint;
+
+alias uint SecExternalFormat;
+alias uint SecExternalItemType;
+alias uint SecItemImportExportFlags;
+alias uint SecKeyImportExportFlags;
+
+enum
+{
+	kSecFormatUnknown = 0,
+	kSecFormatOpenSSL,
+	kSecFormatSSH,
+	kSecFormatBSAFE,
+	kSecFormatRawKey,
+	kSecFormatWrappedPKCS8,
+	kSecFormatWrappedOpenSSL,
+	kSecFormatWrappedSSH,
+	kSecFormatWrappedLSH,
+	kSecFormatX509Cert,
+	kSecFormatPEMSequence,
+	kSecFormatPKCS7,
+	kSecFormatPKCS12,
+	kSecFormatNetscapeCertSequence,
+	kSecFormatSSHv2
+}
+
+enum
+{
+	kSecItemTypeUnknown,
+	kSecItemTypePrivateKey,
+	kSecItemTypePublicKey,
+	kSecItemTypeSessionKey,
+	kSecItemTypeCertificate,
+	kSecItemTypeAggregate
+}
+
+enum
+{
+	kSecItemPemArmour = 0x00000001
+}
+
+enum
+{
+	kSecKeyImportOnlyOne = 0x00000001,
+	kSecKeySecurePassphrase = 0x00000002,
+	kSecKeyNoAccessControl = 0x00000004
+}
+
+struct SecKeyImportExportParameters
+{
+	uint version_;
+	uint flags;
+	CFTypeRef passphrase;
+	CFStringRef alertTitle;
+	CFStringRef alertPrompt;
+	SecAccessRef accessRef;
+	uint keyUsage;
+	uint keyAttributes;
+}
+
+extern (C)
+{
+	int SecKeychainItemExport (CFTypeRef keychainItemOrArray, uint outputFormat, uint flags, SecKeyImportExportParameters* keyParams, CFDataRef* exportedData);
+	int SecKeychainItemImport (CFDataRef importedData, CFStringRef fileNameOrExtension, SecExternalFormat* inputFormat, SecExternalItemType* itemType, uint flags, SecKeyImportExportParameters* keyParams, SecKeychainRef importKeychain, CFArrayRef* outItems);
+}
\ No newline at end of file