diff --git a/crypto/src/crypto/digests/ShakeDigest.cs b/crypto/src/crypto/digests/ShakeDigest.cs
index a7bddccba..13e8838c1 100644
--- a/crypto/src/crypto/digests/ShakeDigest.cs
+++ b/crypto/src/crypto/digests/ShakeDigest.cs
@@ -64,10 +64,10 @@ namespace Org.BouncyCastle.Crypto.Digests
{
if (!squeezing)
{
- Absorb(new byte[] { 0x0F }, 0, 4);
+ AbsorbBits(0x0F, 4);
}
- Squeeze(output, outOff, ((long)outLen) * 8);
+ Squeeze(output, outOff, outLen);
return outLen;
}
@@ -94,19 +94,17 @@ namespace Org.BouncyCastle.Crypto.Digests
if (finalBits >= 8)
{
- oneByte[0] = (byte)finalInput;
- Absorb(oneByte, 0, 8);
+ Absorb(new byte[]{ (byte)finalInput }, 0, 1);
finalBits -= 8;
finalInput >>= 8;
}
if (finalBits > 0)
{
- oneByte[0] = (byte)finalInput;
- Absorb(oneByte, 0, finalBits);
+ AbsorbBits(finalInput, finalBits);
}
- Squeeze(output, outOff, ((long)outLen) * 8);
+ Squeeze(output, outOff, outLen);
Reset();
|