Java에서 PDF 파일에 디지털 서명을 첨부하고 신뢰할 수있는 타임 스탬프 권한으로이 파일의 타임 스탬프를 지정하고 싶습니다.Java에서 디지털 서명 및 디지털 스탬프
어떻게하면됩니까?
Java에서 PDF 파일에 디지털 서명을 첨부하고 신뢰할 수있는 타임 스탬프 권한으로이 파일의 타임 스탬프를 지정하고 싶습니다.Java에서 디지털 서명 및 디지털 스탬프
어떻게하면됩니까?
개인 키로 디지털 인증서를 pfx 파일로 내 보냅니다. BouncyCastle와 iText를 사용
:
Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
PdfReader reader = new PdfReader(baos.toByteArray());
OutputStream os = new FileOutputStream("c:\\temp\\sign\\test.pdf");
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
// Creating the appearance
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setReason("REASON");
appearance.setLocation("LOCATION");
appearance.setVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "sig");
Security.addProvider(new BouncyCastleProvider());
FileInputStream fis = new FileInputStream("c:\\ssl\\test.pfx");
String password = "myPassword";
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(fis, password.toCharArray());
String alias = ks.aliases().nextElement();
PrivateKey pk = (PrivateKey) ks.getKey(alias, password.toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate(alias);
TSAClient tsc = new TSAClientBouncyCastle("http://timestampserverURL/");
ExternalDigest digest = new BouncyCastleDigest();
ExternalSignature signature = new PrivateKeySignature(pk, "SHA-1", "BC");
MakeSignature.signDetached(appearance, digest, signature, new Certificate[] { cert }, null, null, tsc, 0,
CryptoStandard.CMS);
메이븐 종속 관계 :
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.49</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bctsp-jdk15on</artifactId>
<version>1.46</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
당신은 HTTP의 RESTful 인터페이스를 통해의 Securo API 사용할 수 있습니다.
적용된 타임 스탬프는 RFC3161 분리 형식이며 모든 타임 스탬프는 EU 공인 인증 기관에서 발급합니다.
면책 사항 : create a free test account (그리고 테스트 서버에 액세스 할 수 있습니다) 때 securo
DigiStamp가 SecureTime의 API 툴킷의 PDF 서명과 타임 스탬프 기능을 제공의 공동 설립자, 당신은 그것에 대한 링크를 얻을. 이 툴킷은 BouncyCastle과 iText의 무료 버전을 사용합니다.
Qoppa has a newer toolkit 전체 PDF 기능이 포함되어 있지만 사용료가 부과됩니다.
면책 조항 : 나는 DigiStamp
에서 일