unable to digitally sign pdf using itext and java -


i trying put basic digital signature on pdf file. trying use code provided on itext website.the code follows-

 public class digisign { public static void main(string a[]) {     try {          keystore ks = keystore.getinstance(keystore.getdefaulttype());         ks.load(new fileinputstream("c:\\wsr\\keystore.ks"), "password".tochararray());         string alias = (string) ks.aliases().nextelement();         privatekey key = (privatekey) ks.getkey(alias, "password".tochararray());         java.security.cert.certificate[] chain = ks.getcertificatechain(alias);         pdfreader reader = new pdfreader("c:\\wsr\\a.pdf");         fileoutputstream fout = new fileoutputstream("c:\\wsr\\signed.pdf");         pdfstamper stp = pdfstamper.createsignature(reader, fout, '\0');         pdfsignatureappearance sap = stp.getsignatureappearance();         sap.setcrypto(key, chain, null, pdfsignatureappearance.wincer_signed);         sap.setreason("arpit");         sap.setlocation("arpit");         // comment next line have invisible signature         sap.setvisiblesignature(new rectangle(10, 10, 20, 20), 1, null);         stp.close();     } catch (exception ex) {         logger.getlogger(digisign.class.getname()).log(level.severe, null, ex);     } } 

}

i created key using

keytool -genkey -keyalg rsa -alias myname -keypass password -keystore keystore.ks -dname "cn=paulo soares, c=pt" , set abc123 password. when run code exception

 exception in thread "main" java.lang.noclassdeffounderror: org/bouncycastle/asn1/derencodable     @ com.lowagie.text.pdf.pdfsignatureappearance.getappearance(unknown source)     @ com.lowagie.text.pdf.pdfsignatureappearance.preclose(unknown source)     @ com.lowagie.text.pdf.pdfsignatureappearance.preclose(unknown source)     @ com.lowagie.text.pdf.pdfstamper.close(unknown source)     @ digisign.main(digisign.java:42)    caused by: java.lang.classnotfoundexception: org.bouncycastle.asn1.derencodable     @ java.net.urlclassloader$1.run(urlclassloader.java:202)     @ java.security.accesscontroller.doprivileged(native method)     @ java.net.urlclassloader.findclass(urlclassloader.java:190)     @ java.lang.classloader.loadclass(classloader.java:306)     @ sun.misc.launcher$appclassloader.loadclass(launcher.java:301)     @ java.lang.classloader.loadclass(classloader.java:247) 

what doing wrong?

(just formulate cause answer has been presented comment before:)

for security low level operations itext based on bouncycastle libraries. concerns creation , verification of integrated pdf signatures handling of encrypted documents. in these use cases, therefore, appropriate bouncycastle provider libs required on class path of application.

the primary exception information

java.lang.noclassdeffounderror: org/bouncycastle/asn1/derencodable 

indicates requirement not fullfilled, either bouncycastle not present @ or @ least not present in required version. meanwhile has been confirmed @user1946152 configuration.

p.s.: in case @ hand op still uses pre-5.x version of itext. while there conditions enforcing (e.g. management not being willing decide when buy license sigh), should definitively update current version of itext. there meanwhile have been many big changes, in fields of electronic signatures, content parsing, , creation of pdf/a documents.


Comments

Popular posts from this blog

ios - iPhone/iPad different view orientations in different views , and apple approval process -

java Extracting Zip file -

C# WinForm - loading screen -