KCJoiningSession.h [plain text]
#import <KeychainCircle/KCSRPContext.h>
#import <KeychainCircle/KCAESGCMDuplexSession.h>
#include <Security/SecureObjectSync/SOSPeerInfo.h>
#include <Security/SecureObjectSync/SOSCloudCircle.h>
NS_ASSUME_NONNULL_BEGIN
@protocol KCJoiningRequestCircleDelegate <NSObject>
- (SOSPeerInfoRef) copyPeerInfoError: (NSError**) error;
- (bool) processCircleJoinData: (NSData*) circleJoinData version:(PiggyBackProtocolVersion) version error: (NSError**)error;
@end
@protocol KCJoiningRequestSecretDelegate <NSObject>
- (NSString*) secret;
- (NSString*) verificationFailed: (bool) codeChanged;
- (bool) processAccountCode: (NSString*) accountCode error: (NSError**)error;
@end
@interface KCJoiningRequestSecretSession : NSObject
@property (nullable, readonly) KCAESGCMDuplexSession* session;
- (bool) isDone;
- (nullable NSData*) initialMessage: (NSError**) error;
- (nullable NSData*) processMessage: (NSData*) incomingMessage error: (NSError**) error;
+ (nullable instancetype)sessionWithSecretDelegate: (NSObject<KCJoiningRequestSecretDelegate>*) secretDelegate
dsid: (uint64_t)dsid
error: (NSError**) error;
- (nullable instancetype)initWithSecretDelegate: (NSObject<KCJoiningRequestSecretDelegate>*) secretDelegate
dsid: (uint64_t)dsid
error: (NSError**)error;
- (nullable instancetype)initWithSecretDelegate: (NSObject<KCJoiningRequestSecretDelegate>*) secretDelegate
dsid: (uint64_t)dsid
rng: (struct ccrng_state *)rng
error: (NSError**)error NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@end
@interface KCJoiningRequestCircleSession : NSObject
- (bool) isDone;
- (nullable NSData*) initialMessage: (NSError**) error;
- (nullable NSData*) processMessage: (NSData*) incomingMessage error: (NSError**) error;
+ (instancetype) sessionWithCircleDelegate: (NSObject<KCJoiningRequestCircleDelegate>*) circleDelegate
session: (KCAESGCMDuplexSession*) session
error: (NSError**) error;
- (instancetype) initWithCircleDelegate: (NSObject<KCJoiningRequestCircleDelegate>*) circleDelegate
session: (KCAESGCMDuplexSession*) session
error: (NSError**) error NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@end
@protocol KCJoiningAcceptCircleDelegate <NSObject>
- (NSData*) circleJoinDataFor: (SOSPeerInfoRef) peer
error: (NSError**) error;
-(NSData*) circleGetInitialSyncViews: (NSError**) error;
@end
typedef enum {
kKCRetryError = 0,
kKCRetryWithSameChallenge,
kKCRetryWithNewChallenge
} KCRetryOrNot;
@protocol KCJoiningAcceptSecretDelegate <NSObject>
- (NSString*) secret;
- (NSString*) accountCode;
- (KCRetryOrNot) verificationFailed: (NSError**) error;
@end
@interface KCJoiningAcceptSession : NSObject
+ (nullable instancetype) sessionWithInitialMessage: (NSData*) message
secretDelegate: (NSObject<KCJoiningAcceptSecretDelegate>*) delegate
circleDelegate: (NSObject<KCJoiningAcceptCircleDelegate>*) delegate
dsid: (uint64_t) dsid
error: (NSError**) error;
- (nullable instancetype)initWithSecretDelegate: (NSObject<KCJoiningAcceptSecretDelegate>*) delegate
circleDelegate: (NSObject<KCJoiningAcceptCircleDelegate>*) delegate
dsid: (uint64_t) dsid
rng: (struct ccrng_state *)rng
error: (NSError**) error NS_DESIGNATED_INITIALIZER;
- (nullable NSData*) processMessage: (NSData*) incomingMessage error: (NSError**) error;
- (bool) isDone;
- (id)init NS_UNAVAILABLE;
@end
NS_ASSUME_NONNULL_END