Updated to KeePassKit 3.0

Updated code to reflect changes in APIs for key creation and base32 decoding
This commit is contained in:
Michael Starke
2021-10-12 15:26:40 +02:00
parent 0b681f8d40
commit ea2796dd28
5 changed files with 35 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
github "sparkle-project/Sparkle" ~> 1.22
github "MacPass/TransformerKit" "a8b5bb73cc327ec6798569b865c32fec5eb2289f"
github "MacPass/KeePassKit" "2e4c2de06e704b2cf3670a6868e1dd7f938ab859"
github "MacPass/KeePassKit" ~> 3.0
github "mstarke/HNHUi" ~> 4.0

View File

@@ -1,5 +1,5 @@
github "MacPass/KeePassKit" "2e4c2de06e704b2cf3670a6868e1dd7f938ab859"
github "MacPass/KeePassKit" "3.0.0"
github "MacPass/KissXML" "933f04fe5ad95c2be07ec0c2f801e140007f20fa"
github "MacPass/TransformerKit" "a8b5bb73cc327ec6798569b865c32fec5eb2289f"
github "mstarke/HNHUi" "4.0.4"
github "robbiehanson/KissXML" "5.3.3"
github "sparkle-project/Sparkle" "1.24.0"

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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];