]> git.saurik.com Git - apple/security.git/blob - keychain/ot/OTSOSAdapter.h
Security-59306.11.20.tar.gz
[apple/security.git] / keychain / ot / OTSOSAdapter.h
1 #if OCTAGON
2
3 #import "keychain/ckks/CKKSPeer.h"
4 #import "keychain/ot/OTDefines.h"
5 #import "keychain/SecureObjectSync/SOSCloudCircle.h"
6
7 NS_ASSUME_NONNULL_BEGIN
8
9 @protocol OTSOSAdapter <CKKSPeerProvider>
10 @property bool sosEnabled;
11 - (SOSCCStatus)circleStatus:(NSError**)error;
12 - (id<CKKSSelfPeer> _Nullable)currentSOSSelf:(NSError**)error;
13 - (NSSet<id<CKKSRemotePeerProtocol>>* _Nullable)fetchTrustedPeers:(NSError**)error;
14 - (void)updateOctagonKeySetWithAccount:(id<CKKSSelfPeer>)currentSelfPeer error:(NSError**)error;
15 @end
16
17 @interface OTSOSActualAdapter : NSObject <OTSOSAdapter>
18 - (instancetype)init NS_UNAVAILABLE;
19 - (instancetype)initAsEssential:(BOOL)essential;
20
21 // Helper methods
22 + (NSArray<NSData*>*)peerPublicSigningKeySPKIs:(NSSet<id<CKKSPeer>>* _Nullable)peers;
23
24 + (NSSet<NSString*>*)sosCKKSViewList;
25 @end
26
27 // This adapter is for a platform which does not have SOS (e.g., aTV, Watch, HomePod)
28 @interface OTSOSMissingAdapter : NSObject <OTSOSAdapter>
29 @end
30
31 NS_ASSUME_NONNULL_END
32
33 #endif // OCTAGON