From 1479ecf03f4145ad0d4bcd9ed7677ef8d66512a7 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Sat, 24 Oct 2020 09:46:11 +0200 Subject: [PATCH] allow to open .xml files (as unencrypted database) in read-only mode, closes https://github.com/PhilippC/keepass2android/issues/1450 --- src/KeePassLib2Android/Serialization/ProtoBuf/KdbpFile.cs | 6 +++--- src/Kp2aBusinessLogic/database/KdbxDatabaseFormat.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/KeePassLib2Android/Serialization/ProtoBuf/KdbpFile.cs b/src/KeePassLib2Android/Serialization/ProtoBuf/KdbpFile.cs index 3b47bffb..c5b5f669 100644 --- a/src/KeePassLib2Android/Serialization/ProtoBuf/KdbpFile.cs +++ b/src/KeePassLib2Android/Serialization/ProtoBuf/KdbpFile.cs @@ -28,9 +28,9 @@ namespace KeePassLib.Serialization /// public static KdbxFormat GetFormatToUse(string fileExt) { - // If the filename ends in .kdbp, use ProtocolBuffers format. - return fileExt.Equals(KdbpFile.FileNameExtension, StringComparison.OrdinalIgnoreCase) ? KdbxFormat.ProtocolBuffers : KdbxFormat.Default; - } + return fileExt.Equals(KdbpFile.FileNameExtension, StringComparison.OrdinalIgnoreCase) ? KdbxFormat.ProtocolBuffers : + (fileExt.Equals("xml", StringComparison.OrdinalIgnoreCase) ? KdbxFormat.PlainXml : KdbxFormat.Default); + } public static void WriteDocument(PwDatabase database, Stream stream, byte[] protectedStreamKey, byte[] hashOfHeader) { diff --git a/src/Kp2aBusinessLogic/database/KdbxDatabaseFormat.cs b/src/Kp2aBusinessLogic/database/KdbxDatabaseFormat.cs index f8204bc4..210c9ecf 100644 --- a/src/Kp2aBusinessLogic/database/KdbxDatabaseFormat.cs +++ b/src/Kp2aBusinessLogic/database/KdbxDatabaseFormat.cs @@ -27,7 +27,7 @@ namespace keepass2android } public byte[] HashOfLastStream { get; private set; } - public bool CanWrite { get { return true; } } + public bool CanWrite { get { return _format != KdbxFormat.PlainXml; } } public string SuccessMessage { get { return null; } } public void Save(PwDatabase kpDatabase, Stream stream) {