diff options
author | Donald Stufft <donald@stufft.io> | 2015-06-08 00:53:15 -0400 |
---|---|---|
committer | Donald Stufft <donald@stufft.io> | 2015-06-08 00:53:15 -0400 |
commit | 4ff26abc0f48db53fcc0b321162a7129fd7fbdc6 (patch) | |
tree | 64fd7468325fad0d35244451dfa0e7710d4ed801 /src/_cffi_src/commoncrypto/secimport.py | |
parent | 014b68ead801e23a33e06524c20d2f290ba6772f (diff) | |
parent | 73f06c71d6fa8db403dc5999b033552463d48d5e (diff) | |
download | cryptography-4ff26abc0f48db53fcc0b321162a7129fd7fbdc6.tar.gz cryptography-4ff26abc0f48db53fcc0b321162a7129fd7fbdc6.tar.bz2 cryptography-4ff26abc0f48db53fcc0b321162a7129fd7fbdc6.zip |
Merge pull request #1986 from reaperhulk/cffi10
cffi 1.0
Diffstat (limited to 'src/_cffi_src/commoncrypto/secimport.py')
-rw-r--r-- | src/_cffi_src/commoncrypto/secimport.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/_cffi_src/commoncrypto/secimport.py b/src/_cffi_src/commoncrypto/secimport.py new file mode 100644 index 00000000..41a799f9 --- /dev/null +++ b/src/_cffi_src/commoncrypto/secimport.py @@ -0,0 +1,88 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +from __future__ import absolute_import, division, print_function + +INCLUDES = """ +#include <Security/SecImportExport.h> +""" + +TYPES = """ +typedef ... *SecAccessRef; + +CFStringRef kSecImportExportPassphrase; +CFStringRef kSecImportExportKeychain; +CFStringRef kSecImportExportAccess; + +typedef uint32_t SecExternalItemType; +enum { + kSecItemTypeUnknown, + kSecItemTypePrivateKey, + kSecItemTypePublicKey, + kSecItemTypeSessionKey, + kSecItemTypeCertificate, + kSecItemTypeAggregate +}; + + +typedef uint32_t SecExternalFormat; +enum { + kSecFormatUnknown = 0, + kSecFormatOpenSSL, + kSecFormatSSH, + kSecFormatBSAFE, + kSecFormatRawKey, + kSecFormatWrappedPKCS8, + kSecFormatWrappedOpenSSL, + kSecFormatWrappedSSH, + kSecFormatWrappedLSH, + kSecFormatX509Cert, + kSecFormatPEMSequence, + kSecFormatPKCS7, + kSecFormatPKCS12, + kSecFormatNetscapeCertSequence, + kSecFormatSSHv2 +}; + +typedef uint32_t SecItemImportExportFlags; +enum { + kSecKeyImportOnlyOne = 0x00000001, + kSecKeySecurePassphrase = 0x00000002, + kSecKeyNoAccessControl = 0x00000004 +}; +typedef uint32_t SecKeyImportExportFlags; + +typedef struct { + /* for import and export */ + uint32_t version; + SecKeyImportExportFlags flags; + CFTypeRef passphrase; + CFStringRef alertTitle; + CFStringRef alertPrompt; + + /* for import only */ + SecAccessRef accessRef; + CFArrayRef keyUsage; + + CFArrayRef keyAttributes; +} SecItemImportExportKeyParameters; +""" + +FUNCTIONS = """ +OSStatus SecItemImport(CFDataRef, CFStringRef, SecExternalFormat *, + SecExternalItemType *, SecItemImportExportFlags, + const SecItemImportExportKeyParameters *, + SecKeychainRef, CFArrayRef *); +OSStatus SecPKCS12Import(CFDataRef, CFDictionaryRef, CFArrayRef *); +OSStatus SecItemExport(CFTypeRef, SecExternalFormat, SecItemImportExportFlags, + const SecItemImportExportKeyParameters *, CFDataRef *); +""" + +MACROS = """ +""" + +CUSTOMIZATIONS = """ +""" + +CONDITIONAL_NAMES = {} |