我想购买第三方数字签名库,并且想使用客户端证书对 PDF 进行签名。它仅在我将文件存储在我的 PC 中时才有效。
由于我想使用存储在 USB 令牌中的证书来签署我的 PDF,我应该怎么做才能实现呢?
在这里,我有第三方代码,他们正在使用 DLL 文件
C:\Windows\System32\cmP11.dll
,但它不在我的系统中。下面代码中这个文件的任务是什么?
private static void signatureWithToken() {
// specify document to sign
PdfDocument pdfDocument = new PdfDocument("sample.pdf");
// specify info to find a key on the token
String tokenLibraryFilename = "C:\\Windows\\System32\\cmP11.dll"; // path to token PKCS#11 library
String tokenPin = "7777"; // token PIN
// key alias on the token,
// if null the first found key will be used
String tokenKeyAlias = "Key Alias";
SigningData signingData = SigningData.fromPkcs11Token(tokenLibraryFilename,
tokenKeyAlias, tokenPin);
// list available aliases
listAvailableAliases(signingData);
// specify rectangle for the signature
signingData.setFieldRectangle(new Rectangle2D.Float(300, 50, 275, 100));
// specify reason and location
signingData.setReason("I approve this invoice.");
signingData.setLocation("Camden");
// sign document
pdfDocument.signDocument(signingData, "sample_(signed_with_token).pdf");
}