2  * Copyright (c) 2012-2014 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@ 
  25 #ifndef _SECURITY_SOSCLOUDCIRCLEINTERNAL_H_ 
  26 #define _SECURITY_SOSCLOUDCIRCLEINTERNAL_H_ 
  28 #include <Security/SecureObjectSync/SOSCloudCircle.h> 
  29 #include <Security/SecureObjectSync/SOSPeerInfo.h> 
  32 #include <Security/SecKey.h> 
  33 //#include <Security/SecureObjectSync/SOSRing.h>    // only included for SOSRingStatus, see rdar://problem/20831215 before uncommenting 
  37 // Use the kSecAttrViewHint* constants in SecItemPriv.h instead 
  39 extern const CFStringRef kSOSViewHintPCSMasterKey DEPRECATED_ATTRIBUTE
; 
  40 extern const CFStringRef kSOSViewHintPCSiCloudDrive DEPRECATED_ATTRIBUTE
; 
  41 extern const CFStringRef kSOSViewHintPCSPhotos DEPRECATED_ATTRIBUTE
; 
  42 extern const CFStringRef kSOSViewHintPCSCloudKit DEPRECATED_ATTRIBUTE
; 
  43 extern const CFStringRef kSOSViewHintPCSEscrow DEPRECATED_ATTRIBUTE
; 
  44 extern const CFStringRef kSOSViewHintPCSFDE DEPRECATED_ATTRIBUTE
; 
  45 extern const CFStringRef kSOSViewHintPCSMailDrop DEPRECATED_ATTRIBUTE
; 
  46 extern const CFStringRef kSOSViewHintPCSiCloudBackup DEPRECATED_ATTRIBUTE
; 
  47 extern const CFStringRef kSOSViewHintPCSNotes DEPRECATED_ATTRIBUTE
; 
  48 extern const CFStringRef kSOSViewHintPCSiMessage DEPRECATED_ATTRIBUTE
; 
  50 extern const CFStringRef kSOSViewHintAppleTV DEPRECATED_ATTRIBUTE
; 
  51 extern const CFStringRef kSOSViewHintHomeKit DEPRECATED_ATTRIBUTE
; 
  53 CFArrayRef 
SOSCCCopyConcurringPeerPeerInfo(CFErrorRef
* error
); 
  55 bool SOSCCPurgeUserCredentials(CFErrorRef
* error
); 
  57 CFStringRef 
SOSCCGetStatusDescription(SOSCCStatus status
); 
  58 SecKeyRef 
SOSCCGetUserPrivKey(CFErrorRef 
*error
); 
  59 SecKeyRef 
SOSCCGetUserPubKey(CFErrorRef 
*error
); 
  62  @function SOSCCHandleIDSMessage 
  63  @abstract Handles an IDS message from IDSKeychainSyncingProxy 
  64  @param IDS The incoming IDS message 
  65  @param error What went wrong if we returned false 
  67 HandleIDSMessageReason 
SOSCCHandleIDSMessage(CFDictionaryRef IDS
, CFErrorRef
* error
); 
  70  @function SOSCCProcessSyncWithAllPeers 
  71  @abstract Returns the information (string, hopefully URL) that will lead to an explanation of why you have an incompatible circle. 
  72  @param error What went wrong if we returned NULL. 
  75 SyncWithAllPeersReason 
SOSCCProcessSyncWithAllPeers(CFErrorRef
* error
); 
  77 bool SOSCCProcessEnsurePeerRegistration(CFErrorRef
* error
); 
  80 CFStringRef 
SOSCCGetAllTheRings(CFErrorRef 
*error
); 
  82 bool SOSCCApplyToARing(CFStringRef ringName
, CFErrorRef
* error
); 
  83 bool SOSCCWithdrawlFromARing(CFStringRef ringName
, CFErrorRef
* error
); 
  84 int SOSCCRingStatus(CFStringRef ringName
, CFErrorRef
* error
);   // TODO: this returns SOSRingStatus 
  85 bool SOSCCEnableRing(CFStringRef ringName
, CFErrorRef
* error
); 
  90  @function SOSCCCopyMyPeerInfo 
  91  @abstract Returns a copy of my peer info 
  92  @param error What went wrong if we returned NULL 
  94 SOSPeerInfoRef 
SOSCCCopyMyPeerInfo(CFErrorRef 
*error
); 
  97  @function SOSCCIDSServiceRegistrationTest 
  98  @abstract Attempts to send a message over IDS to test IDS service set up 
  99  @param message The message to send over IDS 
 100  @param error What went wrong if we returned false 
 102 bool SOSCCIDSServiceRegistrationTest(CFStringRef message
, CFErrorRef 
*error
); 
 105  @function SOSCCIDSPingTest 
 106  @abstract Attempts to ping devices within an IDS Account, check device availability 
 107  @param message The message to send over IDS 
 108  @param error What went wrong if we returned false 
 110 bool SOSCCIDSPingTest(CFStringRef message
, CFErrorRef 
*error
); 
 113  @function SOSCCIDSDeviceIDIsAvailableTest 
 114  @abstract Attempts to communicate with IDSKeychainSyncingProxy to retrieve the device ID using IDS framework 
 115  @param error What went wrong if we returned false 
 117 bool SOSCCIDSDeviceIDIsAvailableTest(CFErrorRef 
*error
);