feat: updates
This commit is contained in:
@@ -19,6 +19,8 @@ public class SignPdfArgs {
|
||||
String location;
|
||||
@CommandLine.Option(names = {"--reason"}, description = "Reason")
|
||||
String reason;
|
||||
@CommandLine.Option(names = {"--contact-info"}, description = "Contact info")
|
||||
String contactInfo;
|
||||
|
||||
@CommandLine.Option(names = {"-h", "--help"}, usageHelp = true, description = "Display a help message")
|
||||
boolean helpRequested = false;
|
||||
|
||||
@@ -31,6 +31,7 @@ public class SignPdfMain {
|
||||
signOptions.setName(signPdfArgs.name);
|
||||
signOptions.setLocation(signPdfArgs.location);
|
||||
signOptions.setReason(signPdfArgs.reason);
|
||||
signOptions.setContactInfo(signPdfArgs.contactInfo);
|
||||
|
||||
final File inFile = new File(signPdfArgs.in);
|
||||
final File outFile = new File(signPdfArgs.out);
|
||||
@@ -49,10 +50,10 @@ public class SignPdfMain {
|
||||
RFile.from("__priv.pem").string()
|
||||
);
|
||||
|
||||
final X509Certificate[] chain = certs.toArray(new X509Certificate[0]);
|
||||
final String signatureAlgorithm = SigUtils.getSignatureAlgorithm(chain[0]);
|
||||
final X509Certificate[] certificateChain = certs.toArray(new X509Certificate[0]);
|
||||
final String signatureAlgorithm = SigUtils.getSignatureAlgorithm(certificateChain[0]);
|
||||
final ContentSigner contentSigner = new JcaContentSignerBuilder(signatureAlgorithm).build(privateKey);
|
||||
final CreateSignature signing = new CreateSignature(signOptions, chain, contentSigner);
|
||||
final CreateSignature signing = new CreateSignature(certificateChain, contentSigner, signOptions);
|
||||
// signing.setExternalSigning(true);
|
||||
|
||||
final String tsaUrl = StringUtil.def(signOptions.getTsaUrl(), TSAClient.DEFAULT_TSA_URL);
|
||||
|
||||
@@ -4,6 +4,7 @@ public class SignOptions {
|
||||
private String name;
|
||||
private String location;
|
||||
private String reason;
|
||||
private String contactInfo;
|
||||
private String tsaUrl;
|
||||
|
||||
public String getName() {
|
||||
@@ -30,6 +31,14 @@ public class SignOptions {
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
public String getContactInfo() {
|
||||
return contactInfo;
|
||||
}
|
||||
|
||||
public void setContactInfo(String contactInfo) {
|
||||
this.contactInfo = contactInfo;
|
||||
}
|
||||
|
||||
public String getTsaUrl() {
|
||||
return tsaUrl;
|
||||
}
|
||||
|
||||
@@ -8,9 +8,6 @@ import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureOptions;
|
||||
import org.bouncycastle.operator.ContentSigner;
|
||||
|
||||
import java.io.*;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.UnrecoverableKeyException;
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.Calendar;
|
||||
@@ -32,8 +29,8 @@ import java.util.Calendar;
|
||||
public class CreateSignature extends CreateSignatureBase {
|
||||
private final SignOptions signOptions;
|
||||
|
||||
public CreateSignature(SignOptions signOptions, X509Certificate[] certificateChain, ContentSigner contentSigner)
|
||||
throws KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException, CertificateException, IOException {
|
||||
public CreateSignature(X509Certificate[] certificateChain, ContentSigner contentSigner, SignOptions signOptions)
|
||||
throws CertificateException {
|
||||
super(certificateChain, contentSigner);
|
||||
this.signOptions = signOptions;
|
||||
}
|
||||
@@ -68,6 +65,7 @@ public class CreateSignature extends CreateSignatureBase {
|
||||
signature.setName(signOptions.getName());
|
||||
signature.setLocation(signOptions.getLocation());
|
||||
signature.setReason(signOptions.getReason());
|
||||
signature.setContactInfo(signOptions.getContactInfo());
|
||||
|
||||
// the signing date, needed for valid signature
|
||||
signature.setSignDate(Calendar.getInstance());
|
||||
|
||||
Reference in New Issue
Block a user