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