OSDN Git Service

Change when encrypting, ask password twice.
authorHirami <tomohisa.hirami@nifty.com>
Wed, 11 Apr 2012 15:30:02 +0000 (00:30 +0900)
committerHirami <tomohisa.hirami@nifty.com>
Wed, 11 Apr 2012 15:30:02 +0000 (00:30 +0900)
Because if password is misspelled, user can't decrypt forever.

iOS/Tombo/Tombo/PasswordManager.m
iOS/Tombo/Tombo/SinglePasswordDialog.h
iOS/Tombo/Tombo/SinglePasswordDialog.m

index d8170a7..de6edbb 100644 (file)
@@ -6,7 +6,8 @@
 @synthesize password = _password;
 
 - (BOOL)preparePassword {
-    SinglePasswordDialog *dialog = [[SinglePasswordDialog alloc] initWithDefault];
+    SinglePasswordDialog *dialog = [[SinglePasswordDialog alloc] initWithTitle:@"Password" 
+                                                                       message:@"Please input password"];
     NSString *pass = [dialog showAndWait];
     if (pass == nil) return NO;
     
 }
 
 - (BOOL)preparePasswordConfirm {
-    //TOOD: implement
-    return [self preparePassword];
+    SinglePasswordDialog *dialog = [[SinglePasswordDialog alloc] initWithTitle:@"Password" 
+                                                                       message:@"Please input password"];
+    NSString *pass1 = [dialog showAndWait];
+    if (pass1 == nil) return NO;
+
+    dialog = [[SinglePasswordDialog alloc] initWithTitle:@"Confirm" message:@"Input password again"];
+    NSString *pass2 = [dialog showAndWait];
+    if (pass2 == nil) return NO;
+
+    if (![pass1 isEqualToString:pass2]) {
+        UIAlertView *mismatch = [[UIAlertView alloc] initWithTitle:@"Warn" message:@"Password mismatch." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
+        [mismatch show];
+        return NO;
+    }
+    return YES;
 }
 @end
index c719b41..1c50c2a 100644 (file)
@@ -4,7 +4,7 @@
 
 @property (strong,nonatomic) NSString *password;
 
-- (id)initWithDefault;
+- (id)initWithTitle:(NSString *)title message:(NSString *)message;
 
 - (NSString *)showAndWait;
 @end
index 75b1d30..c8c1d39 100644 (file)
@@ -6,9 +6,9 @@
 
 @synthesize password=_password;
 
-- (id)initWithDefault {
-    return [self initWithTitle:@"Password" message:@"Please input password" delegate:self
-             cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
+- (id)initWithTitle:(NSString *)title message:(NSString *)message {
+    return [self initWithTitle:title message:message
+                      delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
 }
 
 - (NSString *)showAndWait {