ESYAE-imza Kütüphaneleri

User Tools

Site Tools


esya:pades:eimza-pades-kutuphanesi

Bu, dökümanın eski bir sürümüdür!


PAdES E-İmza Kütüphanesi

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

  • ES_BES,
  • ES_EPES,
  • ES_T,
  • ES_XL ve
  • ES_A

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.

ES_BES imza atma

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()

İmza Doğrulama

// 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;

ES_T imza atma

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"));

LTV (ES_A) imza atma

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"));

esya/pades/eimza-pades-kutuphanesi.1388395333.txt.gz · Son değiştirilme: 2013/12/30 09:22 Değiştiren: Ahmet Yetgin