SecIdentityPriv.h
1 /* 2 * Copyright (c) 2002-2011,2012-2013,2016 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 SecIdentityPriv 26 The functions provided in SecIdentityPriv.h implement a convenient way to 27 match private keys with certificates. 28 */ 29 30 #ifndef _SECURITY_SECIDENTITYPRIV_H_ 31 #define _SECURITY_SECIDENTITYPRIV_H_ 32 33 #include <Security/SecBase.h> 34 #include <Security/SecBasePriv.h> 35 #include <CoreFoundation/CFBase.h> 36 37 __BEGIN_DECLS 38 39 /*! @function SecIdentityCreate 40 @abstract create a new identity object from the provided certificate and its associated private key. 41 @param allocator CFAllocator to allocate the identity object. Pass NULL to use the default allocator. 42 @param certificate A certificate reference. 43 @param privateKey A private key reference. 44 @result An identity reference. 45 */ 46 SecIdentityRef SecIdentityCreate( 47 CFAllocatorRef allocator, 48 SecCertificateRef certificate, 49 SecKeyRef privateKey) 50 __SEC_MAC_AND_IOS_UNKNOWN; 51 //__OSX_AVAILABLE_STARTING(__MAC_10_3, __SEC_IPHONE_UNKNOWN); 52 53 #if SEC_OS_OSX 54 /*! 55 @function ConvertArrayToKeyUsage 56 @abstract Given an array of key usages defined in SecItem.h return the equivalent CSSM_KEYUSE 57 @param usage An CFArrayRef containing CFTypeRefs defined in SecItem.h 58 kSecAttrCanEncrypt, 59 kSecAttrCanDecrypt, 60 kSecAttrCanDerive, 61 kSecAttrCanSign, 62 kSecAttrCanVerify, 63 kSecAttrCanWrap, 64 kSecAttrCanUnwrap 65 If the CFArrayRef is NULL then the CSSM_KEYUSAGE will be CSSM_KEYUSE_ANY 66 @result A CSSM_KEYUSE. Derived from the passed in Array 67 */ 68 CSSM_KEYUSE ConvertArrayToKeyUsage(CFArrayRef usage) 69 __SEC_MAC_ONLY_UNKNOWN; 70 71 /*! 72 @function SecIdentityDeleteApplicationPreferenceItems 73 @abstract Delete identity preference items created by the calling application. 74 @result errSecSuccess on successful deletion, or errSecItemNotFound if no items 75 were found to be deleted. Other keychain error results may be possible (SecBase.h). 76 @discussion This function deletes all identity preference items which match the 77 application identifier of the caller. This implies that items to be deleted were 78 created with SecIdentitySetPreferred on a version of macOS where this function 79 is implemented, since older versions of macOS did not add application identifier 80 information. Note: currently, deletion is also limited to preference items whose 81 name is in URI format. 82 */ 83 OSStatus SecIdentityDeleteApplicationPreferenceItems(void); 84 85 #endif // SEC_OS_OSX 86 87 __END_DECLS 88 89 #endif /* _SECURITY_SECIDENTITYPRIV_H_ */