]>
Commit | Line | Data |
---|---|---|
fa7225c8 A |
1 | // |
2 | // KCAccountKCCircleDelegate.m | |
3 | // Security | |
4 | // | |
5 | // Created by Mitch Adler on 4/11/16. | |
6 | // | |
7 | // | |
8 | ||
9 | #import <KeychainCircle/KCAccountKCCircleDelegate.h> | |
10 | ||
11 | #include <Security/SecureObjectSync/SOSCloudCircle.h> | |
12 | ||
13 | ||
14 | @implementation KCJoiningRequestAccountCircleDelegate | |
15 | /*! | |
16 | Get this devices peer info (As Application) | |
17 | ||
18 | @result | |
19 | SOSPeerInfoRef object or NULL if we had an error. | |
20 | */ | |
21 | - (SOSPeerInfoRef) copyPeerInfoError: (NSError**) error { | |
22 | CFErrorRef failure = NULL; | |
23 | SOSPeerInfoRef result = SOSCCCopyApplication(error ? &failure : NULL); | |
24 | if (failure != NULL && error != nil) { | |
25 | *error = (__bridge_transfer NSError*) failure; | |
26 | } | |
27 | return result; | |
28 | } | |
29 | ||
30 | /*! | |
31 | Handle recipt of confirmed circleJoinData over the channel | |
32 | ||
33 | @parameter circleJoinData | |
34 | Data the acceptor made to allow us to join the circle. | |
35 | ||
36 | */ | |
866f8763 | 37 | - (bool) processCircleJoinData: (NSData*) circleJoinData version:(PiggyBackProtocolVersion) version error: (NSError**)error { |
fa7225c8 | 38 | CFErrorRef failure = NULL; |
866f8763 | 39 | bool result = SOSCCJoinWithCircleJoiningBlob((__bridge CFDataRef) circleJoinData, version, &failure); |
fa7225c8 A |
40 | if (failure != NULL && error != nil) { |
41 | *error = (__bridge_transfer NSError*) failure; | |
42 | } | |
43 | return result; | |
44 | } | |
45 | ||
46 | + (instancetype) delegate { | |
47 | return [[KCJoiningRequestAccountCircleDelegate alloc] init]; | |
48 | } | |
49 | ||
50 | @end | |
51 | ||
52 | @implementation KCJoiningAcceptAccountCircleDelegate | |
53 | /*! | |
54 | Handle the request's peer info and get the blob they can use to get in circle | |
55 | @param peer | |
56 | SOSPeerInfo sent from requestor to apply to the circle | |
57 | @param error | |
58 | Error resulting in looking at peer and trying to produce circle join data | |
59 | @result | |
60 | Data containing blob the requestor can use to get in circle | |
61 | */ | |
62 | - (NSData*) circleJoinDataFor: (SOSPeerInfoRef) peer | |
63 | error: (NSError**) error { | |
64 | CFErrorRef failure = NULL; | |
65 | CFDataRef result = SOSCCCopyCircleJoiningBlob(peer, &failure); | |
66 | if (failure != NULL && error != nil) { | |
67 | *error = (__bridge_transfer NSError*) failure; | |
68 | } | |
69 | return (__bridge_transfer NSData*) result; | |
70 | } | |
71 | ||
7fb2cbd2 | 72 | -(NSData*) circleGetInitialSyncViews:(SOSInitialSyncFlags)flags error:(NSError**) error{ |
866f8763 | 73 | CFErrorRef failure = NULL; |
7fb2cbd2 | 74 | CFDataRef result = SOSCCCopyInitialSyncData(flags, &failure); |
866f8763 A |
75 | if (failure != NULL && error != nil) { |
76 | *error = (__bridge_transfer NSError*) failure; | |
77 | } | |
78 | return (__bridge_transfer NSData*) result; | |
79 | } | |
80 | ||
fa7225c8 A |
81 | + (instancetype) delegate { |
82 | return [[KCJoiningAcceptAccountCircleDelegate alloc] init]; | |
83 | } | |
84 | ||
85 | @end | |
86 |