/ KeychainCircle / KCSRPContext.h
KCSRPContext.h
1 // 2 // SRPSession.h 3 // KeychainCircle 4 // 5 // 6 7 #import <Foundation/Foundation.h> 8 9 #include <corecrypto/ccdigest.h> 10 #include <corecrypto/ccrng.h> 11 #include <corecrypto/ccsrp.h> 12 13 NS_ASSUME_NONNULL_BEGIN 14 15 @interface KCSRPContext : NSObject 16 17 - (instancetype) init NS_UNAVAILABLE; 18 19 - (instancetype) initWithUser: (NSString*) user 20 digestInfo: (const struct ccdigest_info *) di 21 group: (ccsrp_const_gp_t) gp 22 randomSource: (struct ccrng_state *) rng NS_DESIGNATED_INITIALIZER; 23 24 - (bool) isAuthenticated; 25 26 // Returns an NSData that refers to the key in the context. 27 // It becomes invalid when this context is released. 28 - (NSData* _Nullable) getKey; 29 30 @end 31 32 @interface KCSRPClientContext : KCSRPContext 33 34 - (nullable NSData*) copyStart: (NSError**) error; 35 - (nullable NSData*) copyResposeToChallenge: (NSData*) B_data 36 password: (NSString*) password 37 salt: (NSData*) salt 38 error: (NSError**) error; 39 - (bool) verifyConfirmation: (NSData*) HAMK_data 40 error: (NSError**) error; 41 42 @end 43 44 @interface KCSRPServerContext : KCSRPContext 45 @property (readonly) NSData* salt; 46 47 - (instancetype) initWithUser: (NSString*) user 48 salt: (NSData*) salt 49 verifier: (NSData*) verifier 50 digestInfo: (const struct ccdigest_info *) di 51 group: (ccsrp_const_gp_t) gp 52 randomSource: (struct ccrng_state *) rng NS_DESIGNATED_INITIALIZER; 53 54 - (instancetype) initWithUser: (NSString*)user 55 password: (NSString*)password 56 digestInfo: (const struct ccdigest_info *) di 57 group: (ccsrp_const_gp_t) gp 58 randomSource: (struct ccrng_state *) rng NS_DESIGNATED_INITIALIZER; 59 60 - (instancetype) initWithUser: (NSString*) user 61 digestInfo: (const struct ccdigest_info *) di 62 group: (ccsrp_const_gp_t) gp 63 randomSource: (struct ccrng_state *) rng NS_UNAVAILABLE; 64 65 66 - (bool) resetWithPassword: (NSString*) password 67 error: (NSError**) error; 68 69 - (nullable NSData*) copyChallengeFor: (NSData*) A_data 70 error: (NSError**) error; 71 - (nullable NSData*) copyConfirmationFor: (NSData*) M_data 72 error: (NSError**) error; 73 74 @end 75 76 NS_ASSUME_NONNULL_END