]>
git.saurik.com Git - apple/security.git/blob - OSX/sec/Security/ios_tapi_hacks.h
   2  * Copyright (c) 2017 Apple Inc. All Rights Reserved. 
   4  * @APPLE_LICENSE_HEADER_START@ 
   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 
  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. 
  21  * @APPLE_LICENSE_HEADER_END@ 
  23 #ifndef ios_tapi_hack_h 
  24 #define ios_tapi_hack_h 
  26 // This file is to work around TAPI's insistence that every exported symbol is in a header file. 
  27 // The Security project just simply rejects such ideas, so this is the pressure valve: 
  29 // One-offs in header files that shouldn't be exported in the real-live iOS Security framework 
  30 // can be added here, and TAPI will accept them. 
  32 // Please don't add anything here. 
  34 #ifndef SECURITY_PROJECT_TAPI_HACKS 
  35 #error This header is not for inclusion; it's a nasty hack to get the iOS Security framework to build with TAPI. 
  41 CFDataRef SecDistinguishedNameCopyNormalizedContent(CFDataRef distinguished_name); 
  42 CFDataRef _SecItemCreatePersistentRef(CFTypeRef iclass, sqlite_int64 rowid, CFDictionaryRef attributes); 
  43 CFDictionaryRef SecTokenItemValueCopy(CFDataRef db_value, CFErrorRef *error); 
  44 CFArrayRef SecItemCopyParentCertificates_ios(CFDataRef normalizedIssuer, CFArrayRef accessGroups, CFErrorRef *error); 
  45 bool SecItemCertificateExists(CFDataRef normalizedIssuer, CFDataRef serialNumber, CFArrayRef accessGroups, CFErrorRef *error); 
  46 bool _SecItemParsePersistentRef(CFDataRef persistent_ref, CFStringRef *return_class, 
  47                                 sqlite_int64 *return_rowid, CFDictionaryRef *return_token_attrs); 
  50 extern const CFStringRef kSecUseSystemKeychain; 
  54 typedef struct SecurityClient { 
  57 extern struct securityd *gSecurityd; 
  58 extern struct trustd *gTrustd; 
  59 extern SecurityClient * SecSecurityClientGet(void); 
  60 bool securityd_send_sync_and_do(enum SecXPCOperation op, CFErrorRef *error, 
  61                                 bool (^add_to_message)(xpc_object_t message, CFErrorRef* error), 
  62                                 bool (^handle_response)(xpc_object_t response, CFErrorRef* error)); 
  63 typedef void (^securityd_handler_t)(xpc_object_t reply, CFErrorRef error); 
  64 void securityd_send_async_and_do(enum SecXPCOperation op, dispatch_queue_t replyq, 
  65                                                                  bool (^add_to_message)(xpc_object_t message, CFErrorRef* error), 
  66                                                                  securityd_handler_t handler); 
  67 XPC_RETURNS_RETAINED xpc_object_t securityd_message_with_reply_sync(xpc_object_t message, CFErrorRef *error); 
  68 XPC_RETURNS_RETAINED xpc_object_t securityd_create_message(enum SecXPCOperation op, CFErrorRef *error); 
  69 bool securityd_message_no_error(xpc_object_t message, CFErrorRef *error); 
  71 @interface SecuritydXPCClient : NSObject 
  74 void SecAccessGroupsSetCurrent(CFArrayRef accessGroups); 
  75 CFArrayRef SecAccessGroupsGetCurrent(void); 
  77 #include <os/log_private.h> 
  78 extern os_log_t secLogObjForScope(const char *scope); 
  79 extern os_log_t secLogObjForCFScope(CFStringRef scope); 
  81 void SecSecuritySetMusrMode(bool mode, uid_t uid, int activeUser); 
  82 #endif // TARGET_OS_IOS 
  84 void SecServerSetTrustdMachServiceName(const char *name); 
  86 #endif /* ios_tapi_hacks_h */