mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Re-registering, generating new server passwords
This commit is contained in:
parent
021da47a99
commit
cfbcdc5a51
6 changed files with 17 additions and 13 deletions
|
@ -75,7 +75,7 @@
|
|||
+(PhoneManager*) phoneManager;
|
||||
|
||||
+(BOOL)isRegistered;
|
||||
-(void)setRegistered;
|
||||
+(void)setRegistered:(BOOL)status;
|
||||
+(void)resetAppData;
|
||||
|
||||
@end
|
||||
|
|
|
@ -152,7 +152,7 @@ static Environment* environment = nil;
|
|||
NSData *macKey = [SGNKeychainUtil signalingMacKey];
|
||||
NSData *extra = [SGNKeychainUtil signalingExtraKey];
|
||||
NSString *serverAuth = [SGNKeychainUtil serverAuthPassword];
|
||||
BOOL registered = [[NSUserDefaults standardUserDefaults] objectForKey:isRegisteredUserDefaultString];
|
||||
BOOL registered = [NSNumber numberWithBool:[[[NSUserDefaults standardUserDefaults] objectForKey:isRegisteredUserDefaultString] boolValue]];
|
||||
|
||||
if (signalingKey && macKey && extra && serverAuth && registered) {
|
||||
return YES;
|
||||
|
@ -161,7 +161,7 @@ static Environment* environment = nil;
|
|||
}
|
||||
}
|
||||
|
||||
-(void)setRegistered:(BOOL)status{
|
||||
+(void)setRegistered:(BOOL)status{
|
||||
[[NSUserDefaults standardUserDefaults] setObject:status?@YES:@NO forKey:isRegisteredUserDefaultString];
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
|
||||
@interface SGNKeychainUtil : NSObject
|
||||
|
||||
+(void)generateKeyingMaterial;
|
||||
+(void)generateSignaling;
|
||||
+(void)generateServerAuthPassword;
|
||||
|
||||
+(void)wipeKeychain;
|
||||
|
||||
#pragma mark Registered Phone Number
|
||||
|
|
|
@ -27,13 +27,17 @@
|
|||
|
||||
@implementation SGNKeychainUtil
|
||||
|
||||
+ (void)generateKeyingMaterial{
|
||||
+ (void)generateServerAuthPassword{
|
||||
[self storeString:[[CryptoTools generateSecureRandomData:SAVED_PASSWORD_LENGTH] encodedAsBase64] forKey:SAVED_PASSWORD_KEY];
|
||||
}
|
||||
|
||||
+ (void)generateSignaling{
|
||||
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_MAC_KEY_LENGTH] forKey:SIGNALING_MAC_KEY];
|
||||
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_CIPHER_KEY_LENGTH] forKey:SIGNALING_CIPHER_KEY];
|
||||
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_EXTRA_KEY_LENGTH] forKey:SIGNALING_EXTRA_KEY];
|
||||
|
||||
[self storeData:[CryptoTools generateSecureRandomData:ZID_LENGTH] forKey:ZID_KEY];
|
||||
[self storeString:[[CryptoTools generateSecureRandomData:SAVED_PASSWORD_LENGTH] encodedAsBase64] forKey:SAVED_PASSWORD_KEY];
|
||||
|
||||
}
|
||||
|
||||
+(void)wipeKeychain{
|
||||
|
|
|
@ -82,6 +82,7 @@
|
|||
|
||||
PhoneNumber* localPhoneNumber = [SGNKeychainUtil localNumber];
|
||||
NSString* query = [NSString stringWithFormat:@"/users/verification/%@", [localPhoneNumber toE164]];
|
||||
[SGNKeychainUtil generateSignaling];
|
||||
|
||||
NSData* signalingCipherKey = [SGNKeychainUtil signalingCipherKey];
|
||||
NSData* signalingMacKey = [SGNKeychainUtil signalingMacKey];
|
||||
|
|
|
@ -117,10 +117,8 @@
|
|||
}
|
||||
|
||||
-(Future*) asyncRegister:(PhoneNumber*)phoneNumber untilCancelled:(id<CancelToken>)cancelToken {
|
||||
// @todo: clear current registered status before making a new one, to avoid splinching issues?
|
||||
[SGNKeychainUtil generateServerAuthPassword];
|
||||
[SGNKeychainUtil setLocalNumberTo:phoneNumber];
|
||||
|
||||
[SGNKeychainUtil generateKeyingMaterial];
|
||||
|
||||
CancellableOperationStarter regStarter = ^Future *(id<CancelToken> internalUntilCancelledToken) {
|
||||
HttpRequest *registerRequest = [HttpRequest httpRequestToStartRegistrationOfPhoneNumber];
|
||||
|
@ -135,7 +133,7 @@
|
|||
|
||||
Future *futurePhoneRegistrationVerified = [futurePhoneRegistrationStarted then:^(id _) {
|
||||
[self showViewNumber:CHALLENGE_VIEW_NUMBER];
|
||||
[[Environment preferences] setIsRegistered:NO];
|
||||
[Environment setRegistered:YES];
|
||||
[self.challengeNumberLabel setText:[phoneNumber description]];
|
||||
[_registerCancelButton removeFromSuperview];
|
||||
[self startVoiceVerificationCountdownTimer];
|
||||
|
@ -214,7 +212,7 @@
|
|||
}];
|
||||
|
||||
[futureDone thenDo:^(id result) {
|
||||
[[Environment preferences] setIsRegistered:YES];
|
||||
[Environment setRegistered:YES];
|
||||
[[[Environment getCurrent] phoneDirectoryManager] forceUpdate];
|
||||
[registered trySetResult:@YES];
|
||||
[self dismissView];
|
||||
|
@ -229,7 +227,6 @@
|
|||
|
||||
- (void)showViewNumber:(NSInteger)viewNumber {
|
||||
|
||||
|
||||
if (viewNumber == REGISTER_VIEW_NUMBER) {
|
||||
[_registerActivityIndicator stopAnimating];
|
||||
_registerButton.enabled = YES;
|
||||
|
@ -274,7 +271,7 @@
|
|||
NSCalendar *sysCalendar = [NSCalendar currentCalendar];
|
||||
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
|
||||
NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:now toDate:timeoutDate options:0];
|
||||
NSString* timeLeft = [NSString stringWithFormat:@"%d:%02d",[conversionInfo minute],[conversionInfo second]];
|
||||
NSString* timeLeft = [NSString stringWithFormat:@"%ld:%02ld",(long)[conversionInfo minute],(long)[conversionInfo second]];
|
||||
|
||||
[self.voiceChallengeTextLabel setText:timeLeft];
|
||||
|
||||
|
|
Loading…
Reference in a new issue