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:
PhilippC
2025-04-08 12:57:36 +02:00
committed by GitHub

View File

@@ -146,7 +146,20 @@ namespace KeeChallenge
{
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();
}
msDecrypt.Close();