本文基于已生成的国密SM2证书及已修改过的BouncyCastle部份类。本文读取指定的签章图片文件,签名后对指定的pdf文件进行签章处理,如下:
SignReq.java 定义如下属性:
private InputStream srcStream;
private OutputStream outStream;
private InputStream privateKeyStream;
private char[] privateKeyPassword;
private String reason;
private String location;
private Rectangle rectangle;
private int page;
private String signerName;
private String imageDownloadUrl;
Pkcs7Cert.java - pdf签章处理
static{
Security.addProvider(bc);
Security.removeProvider("SunEC");
}
public static void sign(SignReq req) throws Exception{
/** 读取keystore,获取私钥和证书链 */
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(req.getPrivateKeyStream(), req.getPrivateKeyPassword());
String alias = (String)ks.aliases().nextElement();
PrivateKe