]> git.saurik.com Git - apple/security.git/blob - keychain/ot/OTSOSAdapter.h
Security-59306.101.1.tar.gz
[apple/security.git] / keychain / ot / OTSOSAdapter.h
1 #if OCTAGON
2
3 #import "keychain/ckks/CKKSPeer.h"
4 #import "keychain/ckks/CKKSPeerProvider.h"
5 #import "keychain/ot/OTDefines.h"
6 #import "keychain/SecureObjectSync/SOSCloudCircle.h"
7
8 NS_ASSUME_NONNULL_BEGIN
9
10 @protocol OTSOSAdapter <CKKSPeerProvider>
11 @property bool sosEnabled;
12 - (SOSCCStatus)circleStatus:(NSError**)error;
13 - (id<CKKSSelfPeer> _Nullable)currentSOSSelf:(NSError**)error;
14 - (NSSet<id<CKKSRemotePeerProtocol>>* _Nullable)fetchTrustedPeers:(NSError**)error;
15 - (void)updateOctagonKeySetWithAccount:(id<CKKSSelfPeer>)currentSelfPeer error:(NSError**)error;
16 @end
17
18 @interface OTSOSActualAdapter : NSObject <OTSOSAdapter>
19 - (instancetype)init NS_UNAVAILABLE;
20 - (instancetype)initAsEssential:(BOOL)essential;
21
22 // Helper methods.
23 + (NSSet<NSString*>*)sosCKKSViewList;
24 @end
25
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 // Helper code
32 @interface OTSOSAdapterHelpers : NSObject
33 + (NSArray<NSData*>* _Nullable)peerPublicSigningKeySPKIsForCircle:(id<OTSOSAdapter>)sosAdapter error:(NSError**)error;
34 @end
35
36 NS_ASSUME_NONNULL_END
37
38 #endif // OCTAGON