mirror of
https://github.com/moparisthebest/keepass2android
synced 2024-11-25 02:32:26 -05:00
resolve bug with syncing on FTP
This commit is contained in:
parent
6c7802ab9c
commit
13eedf662a
@ -200,10 +200,16 @@ namespace keepass2android.Io
|
|||||||
public MemoryStream GetRemoteDataAndHash(IOConnectionInfo ioc, out string hash)
|
public MemoryStream GetRemoteDataAndHash(IOConnectionInfo ioc, out string hash)
|
||||||
{
|
{
|
||||||
MemoryStream remoteData = new MemoryStream();
|
MemoryStream remoteData = new MemoryStream();
|
||||||
using (
|
|
||||||
HashingStreamEx hashingRemoteStream = new HashingStreamEx(_cachedStorage.OpenFileForRead(ioc), false,
|
using (var remoteStream =_cachedStorage.OpenFileForRead(ioc))
|
||||||
new SHA256Managed()))
|
|
||||||
{
|
{
|
||||||
|
//note: directly copying to remoteData and hashing causes NullReferenceExceptions in FTP and with Digest auth
|
||||||
|
// -> use the temp data approach:
|
||||||
|
MemoryStream tempData = new MemoryStream();
|
||||||
|
remoteStream.CopyTo(tempData);
|
||||||
|
tempData.Position = 0;
|
||||||
|
HashingStreamEx hashingRemoteStream = new HashingStreamEx(tempData, false, new SHA256Managed());
|
||||||
|
|
||||||
hashingRemoteStream.CopyTo(remoteData);
|
hashingRemoteStream.CopyTo(remoteData);
|
||||||
hashingRemoteStream.Close();
|
hashingRemoteStream.Close();
|
||||||
hash = MemUtil.ByteArrayToHexString(hashingRemoteStream.Hash);
|
hash = MemUtil.ByteArrayToHexString(hashingRemoteStream.Hash);
|
||||||
|
Loading…
Reference in New Issue
Block a user