Bu, dökümanın eski bir sürümüdür!
PAdES(Pdf Advanced Electronic Signatures) PDS ISO 32000-1 standardında nasıl imza atılması gerektiğini açıklayan ve ETSI tarafından TS 102 778 teknik spesifikasyonu döküman seti ile açıklanmış imza standardıdır.
Bu dökümanlar ilk kısmı genel bakış olmak üzere 6 parçadan oluşmaktadır. ESYA PAdES kütüphanesi 3. kısım (BES ve EPES imza), 4. kısım (LTV- uzun dönemde doğrulanabilir imza) bölümlerini desteklemektedir.
Bu kütüphane ortak imza kütüphanesi arayüzleri ile kullanılmakta ve Elektronik imza ortak kütüphanesi tanımları ile
tipinde imza oluşturulabilmektedir.
PAdES kütüphanesi altyapısında IText pdf işleme kütüphanesi kullanmaktadır. Proje bağımlılıklarında IText kütüphanesi ayrıca temin edilmelidir.
SignatureContainer pc = SignatureFactory.createContainer(SignatureFormat.PAdES);
pc.read(new FileInputStream("hello.pdf"));
// add signature
Signature signature = pc.createSignature(SIGNER_CERTIFICATE);
signature.setSigningTime(Calendar.getInstance());
signature.sign(SIGNER);
pc.write()
// imzalı dosyayı oku
SignatureContainer pc = SignatureFactory.readContainer(
SignatureFormat.PAdES,
new FileInputStream("signed-est.pdf"), new Context());
// dogrula
ContainerValidationResult cvr = pc.verifyAll();
System.out.println(cvr);
assert cvr.getResultType() == ContainerValidationResultType.ALL_VALID;
PAdESContext context = new PAdESContext();
context.setSignWithTimestamp(true);
// pdf'i oku
SignatureContainer pc = SignatureFactory.readContainer(
SignatureFormat.PAdES,
new FileInputStream("hello.pdf"), context);
// add signature
Signature signature = pc.createSignature(SIGNER.getSignersCertificate());
signature.setSigningTime(Calendar.getInstance());
signature.sign(SIGNER);
// dosyaya yaz
pc.write(new FileOutputStream("signed-est.pdf"));
PAdESContext context = new PAdESContext();
// ilk imzayı ES_T olarak at
context.setSignWithTimestamp(true);
SignatureContainer pc = SignatureFactory.readContainer(SignatureFormat.PAdES,
new FileInputStream("hello.pdf"), context);
// imza ekle
Signature signature = pc.createSignature(SIGNER.getSignersCertificate());
signature.setSigningTime(Calendar.getInstance());
signature.sign(SIGNER);
// imzayı LTV tipine upgrade et
signature.upgrade(SignatureType.ES_A);
// dosyaya yaz
pc.write(new FileOutputStream("signed-lta.pdf"));