Merge pull request #2827 from PhilippC/2816-bug-yubikey-not-working-in-112
fix reading of cryptostream. Fixes Yubikey/KeeChallenge regression in 1.12-r1 .. 1.12-r3
This commit is contained in:
@@ -146,7 +146,20 @@ namespace KeeChallenge
|
|||||||
{
|
{
|
||||||
using (CryptoStream csDecrypt = (CryptoStream)aes.DecryptStream(msDecrypt, key, inf.IV))
|
using (CryptoStream csDecrypt = (CryptoStream)aes.DecryptStream(msDecrypt, key, inf.IV))
|
||||||
{
|
{
|
||||||
csDecrypt.Read(secret, 0, secret.Length);
|
//read the secret from the stream
|
||||||
|
int totalBytesRead = 0;
|
||||||
|
byte[] buffer = new byte[secret.Length];
|
||||||
|
var secretOutputStream = new MemoryStream(secret);
|
||||||
|
|
||||||
|
int bytesRead = csDecrypt.Read(buffer, totalBytesRead, secret.Length - totalBytesRead);
|
||||||
|
while (bytesRead > 0 && totalBytesRead < secret.Length)
|
||||||
|
{
|
||||||
|
secretOutputStream.Write(buffer, 0, bytesRead);
|
||||||
|
totalBytesRead += bytesRead;
|
||||||
|
bytesRead = csDecrypt.Read(buffer, totalBytesRead, secret.Length - totalBytesRead);
|
||||||
|
}
|
||||||
|
secretOutputStream.Close();
|
||||||
|
|
||||||
csDecrypt.Close();
|
csDecrypt.Close();
|
||||||
}
|
}
|
||||||
msDecrypt.Close();
|
msDecrypt.Close();
|
||||||
|
|||||||
Reference in New Issue
Block a user