diff options
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/io/MacInputStream.java')
-rw-r--r-- | core/src/main/java/org/bouncycastle/crypto/io/MacInputStream.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/io/MacInputStream.java b/core/src/main/java/org/bouncycastle/crypto/io/MacInputStream.java new file mode 100644 index 00000000..b78548c6 --- /dev/null +++ b/core/src/main/java/org/bouncycastle/crypto/io/MacInputStream.java @@ -0,0 +1,52 @@ +package org.bouncycastle.crypto.io; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.bouncycastle.crypto.Mac; + +public class MacInputStream + extends FilterInputStream +{ + protected Mac mac; + + public MacInputStream( + InputStream stream, + Mac mac) + { + super(stream); + this.mac = mac; + } + + public int read() + throws IOException + { + int b = in.read(); + + if (b >= 0) + { + mac.update((byte)b); + } + return b; + } + + public int read( + byte[] b, + int off, + int len) + throws IOException + { + int n = in.read(b, off, len); + if (n >= 0) + { + mac.update(b, off, n); + } + return n; + } + + public Mac getMac() + { + return mac; + } +} |