mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 10:32:26 +00:00
Fixed #392. Wrongfully cleared internal data on failed password input.
Signed-off-by: michael starke <michael.starke@hicknhack-software.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="MPDatabaseSettingsWindowController">
|
<customObject id="-2" userLabel="File's Owner" customClass="MPDatabaseSettingsWindowController">
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
<rect key="contentRect" x="196" y="240" width="547" height="335"/>
|
<rect key="contentRect" x="196" y="240" width="547" height="335"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
|
||||||
<view key="contentView" id="2">
|
<view key="contentView" id="2">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="547" height="335"/>
|
<rect key="frame" x="0.0" y="0.0" width="547" height="335"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
|||||||
@@ -287,11 +287,12 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey
|
|||||||
- (BOOL)unlockWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL error:(NSError *__autoreleasing*)error{
|
- (BOOL)unlockWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL error:(NSError *__autoreleasing*)error{
|
||||||
self.compositeKey = [[KPKCompositeKey alloc] initWithPassword:password key:keyFileURL];
|
self.compositeKey = [[KPKCompositeKey alloc] initWithPassword:password key:keyFileURL];
|
||||||
self.tree = [[KPKTree alloc] initWithData:self.encryptedData password:self.compositeKey error:error];
|
self.tree = [[KPKTree alloc] initWithData:self.encryptedData password:self.compositeKey error:error];
|
||||||
/* clear out the encrypted data as we do not need it for now */
|
|
||||||
self.encryptedData = nil;
|
|
||||||
|
|
||||||
BOOL isUnlocked = (nil != self.tree);
|
BOOL isUnlocked = (nil != self.tree);
|
||||||
|
|
||||||
if(isUnlocked) {
|
if(isUnlocked) {
|
||||||
|
/* only clear the data if we actually do not need it anymore */
|
||||||
|
self.encryptedData = nil;
|
||||||
self.unlockCount += 1;
|
self.unlockCount += 1;
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidUnlockDatabaseNotification object:self];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidUnlockDatabaseNotification object:self];
|
||||||
/* Make sure to only store */
|
/* Make sure to only store */
|
||||||
|
|||||||
@@ -87,13 +87,13 @@
|
|||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Private
|
#pragma mark Private
|
||||||
- (IBAction)_decrypt:(id)sender {
|
- (IBAction)_decrypt:(id)sender {
|
||||||
MPDocument *document = [[self windowController] document];
|
MPDocument *document = self.windowController.document;
|
||||||
if(document) {
|
if(document) {
|
||||||
NSError *error = nil;
|
NSError *error = nil;
|
||||||
/* No password is different than an empty password */
|
/* No password is different than an empty password */
|
||||||
NSString *password = self.enablePassword ? [self.passwordTextField stringValue] : nil;
|
NSString *password = self.enablePassword ? self.passwordTextField.stringValue : nil;
|
||||||
if(![document unlockWithPassword:password
|
if(![document unlockWithPassword:password
|
||||||
keyFileURL:[self.keyPathControl URL]
|
keyFileURL:self.keyPathControl.URL
|
||||||
error:&error]) {
|
error:&error]) {
|
||||||
[self _showError:error];
|
[self _showError:error];
|
||||||
[[[self view] window] shakeWindow:nil];
|
[[[self view] window] shakeWindow:nil];
|
||||||
|
|||||||
Reference in New Issue
Block a user