+
+
+SOSPeerInfoRef SOSCCCopyApplication(CFErrorRef *error) {
+ secnotice("hsa2PB", "enter SOSCCCopyApplication applicant");
+ sec_trace_enter_api(NULL);
+
+ sec_trace_return_api(SOSPeerInfoRef, ^{
+ do_if_registered(soscc_CopyApplicant, error);
+ return peer_info_error_request(kSecXPCOpCopyApplication, error);
+ }, CFSTR("return=%@"));
+}
+
+CFDataRef SOSCCCopyCircleJoiningBlob(SOSPeerInfoRef applicant, CFErrorRef *error) {
+ secnotice("hsa2PB", "enter SOSCCCopyCircleJoiningBlob approver");
+ sec_trace_enter_api(NULL);
+
+ sec_trace_return_api(CFDataRef, ^{
+ CFDataRef result = NULL;
+ do_if_registered(soscc_CopyCircleJoiningBlob, applicant, error);
+ CFDataRef piData = SOSPeerInfoCopyEncodedData(applicant, kCFAllocatorDefault, error);
+ result = cfdata_error_request_returns_cfdata(kSecXPCOpCopyCircleJoiningBlob, piData, error);
+ CFReleaseNull(piData);
+ return result;
+ }, CFSTR("return=%@"));
+}
+
+bool SOSCCJoinWithCircleJoiningBlob(CFDataRef joiningBlob, CFErrorRef *error) {
+ secnotice("hsa2PB", "enter SOSCCJoinWithCircleJoiningBlob applicant");
+ sec_trace_enter_api(NULL);
+ sec_trace_return_bool_api(^{
+ do_if_registered(soscc_JoinWithCircleJoiningBlob, joiningBlob, error);
+
+ return cfdata_error_request_returns_bool(kSecXPCOpJoinWithCircleJoiningBlob, joiningBlob, error);
+ }, NULL)
+
+ return false;
+}
+
+bool SOSCCIsThisDeviceLastBackup(CFErrorRef *error) {
+ secnotice("peer", "enter SOSCCIsThisDeviceLastBackup");
+ sec_trace_enter_api(NULL);
+ sec_trace_return_bool_api(^{
+ do_if_registered(soscc_IsThisDeviceLastBackup, error);
+
+ return simple_bool_error_request(kSecXPCOpIsThisDeviceLastBackup, error);
+ }, NULL)
+}
+
+CFBooleanRef SOSCCPeersHaveViewsEnabled(CFArrayRef viewNames, CFErrorRef *error) {
+ secnotice("view-enabled", "enter SOSCCPeersHaveViewsEnabled");
+ sec_trace_enter_api(NULL);
+ sec_trace_return_api(CFBooleanRef, ^{
+ do_if_registered(soscc_SOSCCPeersHaveViewsEnabled, viewNames, error);
+
+ return cfarray_to_cfboolean_error_request(kSecXPCOpPeersHaveViewsEnabled, viewNames, error);
+ }, CFSTR("return=%@"))
+}
+