| 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; |
| } |
| } |