Merge pull request #2345 from AlexCherrypi/patch-1

remember keyprovider for "Password + Key file + Challenge-Response for KeePass XC"
This commit is contained in:
PhilippC
2023-10-23 11:18:12 +02:00
committed by GitHub

View File

@@ -869,6 +869,15 @@ namespace keepass2android
KeyProviderTypes.Add(KeyProviders.KeyFile);
continue;
}
if (type.StartsWith(KeyProviders.ChallengeXC.ToString()+KeyProviders.KeyFile.ToString()))
{
_keyFile = WebUtility.UrlDecode((type.Substring(KeyProviders.ChallengeXC.ToString().Length)).Substring(KeyProviders.KeyFile.ToString().Length));
Kp2aLog.Log("Added XC key file of length " + _keyFile.Length);
KeyProviderTypes.Add(KeyProviders.ChallengeXC);
KeyProviderTypes.Add(KeyProviders.KeyFile);
continue;
}
foreach (KeyProviders providerType in Enum.GetValues(typeof(KeyProviders)))
{
if (type == providerType.ToString())
@@ -1239,9 +1248,13 @@ namespace keepass2android
case 6:
KeyProviderTypes.Add(KeyProviders.ChallengeXC);
break;
case 7:
KeyProviderTypes.Add(KeyProviders.ChallengeXC);
KeyProviderTypes.Add(KeyProviders.KeyFile);
case 7:
//don't set to "" to prevent losing the filename. (ItemSelected is also called during recreation!)
Kp2aLog.Log("key file length before: " + _keyFile?.Length);
_keyFile = (FindViewById(Resource.Id.label_keyfilename).Tag ?? "").ToString();
Kp2aLog.Log("key file length after: " + _keyFile?.Length);
KeyProviderTypes.Add(KeyProviders.ChallengeXC);
KeyProviderTypes.Add(KeyProviders.KeyFile);
break;
default:
throw new Exception("Unexpected position " + args.Position + " / " +
@@ -1256,7 +1269,6 @@ namespace keepass2android
RequestCodePrepareOtpAuxFile, false);
};
}
}
private void RestoreState(Bundle savedInstanceState)