summary refs log tree commit diff
path: root/Crypto/src/crypto/digests/NullDigest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Crypto/src/crypto/digests/NullDigest.cs')
-rw-r--r--Crypto/src/crypto/digests/NullDigest.cs49
1 files changed, 49 insertions, 0 deletions
diff --git a/Crypto/src/crypto/digests/NullDigest.cs b/Crypto/src/crypto/digests/NullDigest.cs
new file mode 100644

index 000000000..e598cb145 --- /dev/null +++ b/Crypto/src/crypto/digests/NullDigest.cs
@@ -0,0 +1,49 @@ +using System; +using System.IO; + +namespace Org.BouncyCastle.Crypto.Digests +{ + public class NullDigest : IDigest + { + private readonly MemoryStream bOut = new MemoryStream(); + + public string AlgorithmName + { + get { return "NULL"; } + } + + public int GetByteLength() + { + // TODO Is this okay? + return 0; + } + + public int GetDigestSize() + { + return (int) bOut.Length; + } + + public void Update(byte b) + { + bOut.WriteByte(b); + } + + public void BlockUpdate(byte[] inBytes, int inOff, int len) + { + bOut.Write(inBytes, inOff, len); + } + + public int DoFinal(byte[] outBytes, int outOff) + { + byte[] res = bOut.ToArray(); + res.CopyTo(outBytes, outOff); + Reset(); + return res.Length; + } + + public void Reset() + { + bOut.SetLength(0); + } + } +}