📄 signatureinputstream.java
字号:
package net.sourceforge.jcetaglib.tools;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.Signature;
import java.security.SignatureException;
/**
* SignatureInputStream. As data is read it updates a MAC
*/
public class SignatureInputStream extends FilterInputStream {
private Signature sig = null;
public SignatureInputStream(InputStream st,
Signature sig) {
super(st);
this.sig = sig;
}
public int read()
throws IOException {
int n = in.read();
if (n > -1) {
try {
sig.update((byte) n);
} catch (SignatureException s_ex) {
throw(new IOException(s_ex.getMessage()));
}
}
return (n);
}
public int read(byte[] b)
throws IOException {
int n = in.read(b);
if (n > -1) {
try {
sig.update(b, 0, n);
} catch (SignatureException s_ex) {
throw new IOException(s_ex.getMessage());
}
}
return (n);
}
public int read(byte[] b,
int o,
int l)
throws IOException {
int n = in.read(b, o, l);
if (n > -1) {
try {
sig.update(b, o, n);
} catch (SignatureException s_ex) {
throw(new IOException(s_ex.getMessage()));
}
}
return (n);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -