mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-24 00:39:22 +00:00
Updated to KeePassKit 3.0
Updated code to reflect changes in APIs for key creation and base32 decoding
This commit is contained in:
@@ -107,7 +107,6 @@
|
||||
/* General */
|
||||
KPKMetaData *metaData = ((MPDocument *)self.document).tree.metaData;
|
||||
/* TODO move settingsChanged updates to KeePassKit as it's the models responsibility */
|
||||
metaData.settingsChanged = NSDate.date;
|
||||
metaData.databaseDescription = self.databaseDescriptionTextView.string;
|
||||
metaData.databaseName = self.databaseNameTextField.stringValue;
|
||||
|
||||
|
||||
@@ -150,10 +150,39 @@ typedef NS_ENUM(NSUInteger, MPPasswordEditKeyError) {
|
||||
|
||||
- (IBAction)generateKey:(id)sender {
|
||||
MPDocument *document = self.document;
|
||||
NSData *data = [NSData kpk_generateKeyfileDataForFormat:document.tree.minimumVersion.format];
|
||||
KPKFileVersion fileVersion = document.tree.minimumVersion;
|
||||
NSArray *fileTypes = @[];
|
||||
KPKKeyFileType keyFileType;
|
||||
|
||||
if(fileVersion.format == KPKDatabaseFormatUnknown) {
|
||||
return;
|
||||
}
|
||||
else if(fileVersion.format == KPKDatabaseFormatKdb) {
|
||||
fileTypes = @[@"key"];
|
||||
keyFileType = KPKKeyFileTypeBinary;
|
||||
}
|
||||
else {
|
||||
if(fileVersion.version <= kKPKKdbxFileVersion3) {
|
||||
keyFileType = KPKKeyFileTypeXMLVersion1;
|
||||
fileTypes = @[@"key"];
|
||||
}
|
||||
else if(fileVersion.version <=kKPKKdbxFileVersion4) {
|
||||
keyFileType = KPKKeyFileTypeXMLVersion1;
|
||||
fileTypes = @[@"key"];
|
||||
}
|
||||
else if(fileVersion.version <= kKPKKdbxFileVersion4_1) {
|
||||
keyFileType = KPKKeyFileTypeXMLVersion2;
|
||||
fileTypes = @[@"keyx"];
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
NSData *data = [NSData kpk_generateKeyfileDataOfType:keyFileType];
|
||||
if(data) {
|
||||
NSSavePanel *savePanel = [NSSavePanel savePanel];
|
||||
savePanel.allowedFileTypes = @[@"key", @"xml"];
|
||||
savePanel.allowedFileTypes = fileTypes;
|
||||
savePanel.canCreateDirectories = YES;
|
||||
savePanel.title = NSLocalizedString(@"SAVE_KEYFILE", "Button title to save the generated key file");
|
||||
[savePanel beginWithCompletionHandler:^(NSInteger result) {
|
||||
|
||||
@@ -185,7 +185,7 @@ typedef NS_ENUM(NSUInteger, MPOTPType) {
|
||||
}
|
||||
|
||||
/* secret */
|
||||
NSString *secret = [generator.key base32EncodedString];
|
||||
NSString *secret = [generator.key base32EncodedStringWithOptions:0];
|
||||
self.secretTextField.stringValue = secret ? secret : @"";
|
||||
|
||||
[self.algorithmPopUpButton selectItemWithTag:generator.hashAlgorithm];
|
||||
|
||||
Reference in New Issue
Block a user