diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/digests/NonMemoableDigest.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/digests/NonMemoableDigest.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/digests/NonMemoableDigest.java b/core/src/main/java/org/spongycastle/crypto/digests/NonMemoableDigest.java new file mode 100644 index 00000000..7ce89469 --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/digests/NonMemoableDigest.java @@ -0,0 +1,64 @@ +package org.spongycastle.crypto.digests; + +import org.spongycastle.crypto.ExtendedDigest; + +/** + * Wrapper removes exposure to the Memoable interface on an ExtendedDigest implementation. + */ +public class NonMemoableDigest + implements ExtendedDigest +{ + private ExtendedDigest baseDigest; + + /** + * Base constructor. + * + * @param baseDigest underlying digest to use. + * @exception IllegalArgumentException if baseDigest is null + */ + public NonMemoableDigest( + ExtendedDigest baseDigest) + { + if (baseDigest == null) + { + throw new IllegalArgumentException("baseDigest must not be null"); + } + + this.baseDigest = baseDigest; + } + + public String getAlgorithmName() + { + return baseDigest.getAlgorithmName(); + } + + public int getDigestSize() + { + return baseDigest.getDigestSize(); + } + + public void update(byte in) + { + baseDigest.update(in); + } + + public void update(byte[] in, int inOff, int len) + { + baseDigest.update(in, inOff, len); + } + + public int doFinal(byte[] out, int outOff) + { + return baseDigest.doFinal(out, outOff); + } + + public void reset() + { + baseDigest.reset(); + } + + public int getByteLength() + { + return baseDigest.getByteLength(); + } +} |