/ OSX / sec / Security / SecItemShim.h
SecItemShim.h
 1  /*
 2   * Copyright (c) 2015 Apple Inc. All Rights Reserved.
 3   *
 4   * @APPLE_LICENSE_HEADER_START@
 5   *
 6   * This file contains Original Code and/or Modifications of Original Code
 7   * as defined in and that are subject to the Apple Public Source License
 8   * Version 2.0 (the 'License'). You may not use this file except in
 9   * compliance with the License. Please obtain a copy of the License at
10   * http://www.opensource.apple.com/apsl/ and read it before using this
11   * file.
12   *
13   * The Original Code and all software distributed under the License are
14   * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15   * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16   * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17   * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18   * Please see the License for the specific language governing rights and
19   * limitations under the License.
20   *
21   * @APPLE_LICENSE_HEADER_END@
22   */
23  
24  /*!
25   @header SecItemShim.h
26   SecItemShim defines functions and macros for shimming iOS Security
27   implementation to be used inside OSX.
28   */
29  
30  #ifndef _SECURITY_SECITEMSHIM_H_
31  #define _SECURITY_SECITEMSHIM_H_
32  
33  #import <Availability.h>
34  
35  #if TARGET_OS_OSX
36  
37  #include <CoreFoundation/CFDictionary.h>
38  #include <CoreFoundation/CFArray.h>
39  #include <CoreFoundation/CFData.h>
40  #include <Security/SecKey.h>
41  
42  __BEGIN_DECLS
43  
44  struct __SecKeyDescriptor;
45  
46  OSStatus SecItemAdd_ios(CFDictionaryRef attributes, CFTypeRef *result);
47  OSStatus SecItemCopyMatching_ios(CFDictionaryRef query, CFTypeRef *result);
48  OSStatus SecItemUpdate_ios(CFDictionaryRef query, CFDictionaryRef attributesToUpdate);
49  OSStatus SecItemDelete_ios(CFDictionaryRef query);
50  
51  OSStatus SecKeyGeneratePair_ios(CFDictionaryRef parameters, SecKeyRef *publicKey, SecKeyRef *privateKey);
52  SecKeyRef SecKeyCreateRandomKey_ios(CFDictionaryRef parameters, CFErrorRef *error);
53  
54  #if SECITEM_SHIM_OSX
55  
56  #define SecItemAdd SecItemAdd_ios
57  #define SecItemCopyMatching SecItemCopyMatching_ios
58  #define SecItemUpdate SecItemUpdate_ios
59  #define SecItemDelete SecItemDelete_ios
60  
61  #define SecKeyGeneratePair SecKeyGeneratePair_ios
62  #define SecKeyCreateRandomKey SecKeyCreateRandomKey_ios
63  
64  #endif
65  
66  __END_DECLS
67  
68  #endif // TARGET_OS_OSX
69  #endif /* !_SECURITY_SECITEMSHIM_H_ */