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.
PDF dosyası imza konteyneri olarak okunur. Daha sonra createSignature metodu ile imza yapısı PDF içerinde yaratılır.
// pdf dökümanı oku SignatureContainer pc = SignatureFactory.readContainer( SignatureFormat.PAdES, new FileInputStream("hello.pdf"), new Context()); // imza ekle Signature signature = pc.createSignature(SIGNER_CERTIFICATE); signature.setSigningTime(Calendar.getInstance()); signature.sign(SIGNER); // dosyaya yaz 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"));
Önceki: XAdES Eİmza | Ana sayfa | Sonraki: ASiC Eİmza Paketi |