2014-01-25 22:38:12 -05:00
|
|
|
using System.IO;
|
|
|
|
using KeePassLib;
|
|
|
|
using KeePassLib.Interfaces;
|
|
|
|
using KeePassLib.Keys;
|
|
|
|
using KeePassLib.Serialization;
|
|
|
|
|
|
|
|
namespace keepass2android
|
|
|
|
{
|
|
|
|
public class KdbxDatabaseLoader : IDatabaseLoader
|
|
|
|
{
|
|
|
|
private readonly KdbxFormat _format;
|
|
|
|
|
|
|
|
public KdbxDatabaseLoader(KdbxFormat format)
|
|
|
|
{
|
|
|
|
_format = format;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void PopulateDatabaseFromStream(PwDatabase db, CompositeKey key, Stream s, IStatusLogger slLogger)
|
|
|
|
{
|
|
|
|
KdbxFile kdbx = new KdbxFile(db);
|
|
|
|
kdbx.DetachBinaries = db.DetachBinaries;
|
|
|
|
|
|
|
|
kdbx.Load(s, _format, slLogger);
|
|
|
|
HashOfLastStream = kdbx.HashOfFileOnDisk;
|
|
|
|
s.Close();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public byte[] HashOfLastStream { get; private set; }
|
2014-01-26 06:51:55 -05:00
|
|
|
public bool CanWrite { get { return true; } }
|
2014-03-25 01:15:05 -04:00
|
|
|
public string SuccessMessage { get { return null; } }
|
2014-01-25 22:38:12 -05:00
|
|
|
}
|
|
|
|
}
|