Hello,
I am trying to migrate my old digital signature program to the new
iText-5.3.0, but it failed.
I tried to test the digital signature in the iText-5.3.0 tutorial but it
not worked with Smartcard. It gots some exception:
java.security.NoSuchAlgorithmException: no such algorithm: SHA1 for
> provider SunPKCS11-GD
> at sun.security.jca.GetInstance.getService(GetInstance.java:70)
> at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
> at java.security.Security.getImpl(Security.java:662)
> at java.security.MessageDigest.getInstance(MessageDigest.java:185)
> at
> com.itextpdf.text.pdf.security.MakeSignature.signDetached(MakeSignature.java:128)
> at TestSign.sign(TestSign.java:46)
> at TestSign.main(TestSign.java:74)
>
>
The following is my example, please advise me if the codes exist mistakes.
import java.io.FileOutputStream;
> import java.io.IOException;
> import java.security.GeneralSecurityException;
> import java.security.KeyStore;
> import java.security.PrivateKey;
> import java.security.Security;
> import java.security.cert.Certificate;
>
> import sun.security.pkcs11.SunPKCS11;
>
> import com.itextpdf.text.DocumentException;
> import com.itextpdf.text.Rectangle;
> import com.itextpdf.text.pdf.PdfReader;
> import com.itextpdf.text.pdf.PdfSignatureAppearance;
> import com.itextpdf.text.pdf.PdfStamper;
> import com.itextpdf.text.pdf.security.DigestAlgorithms;
> import com.itextpdf.text.pdf.security.MakeSignature;
> import com.itextpdf.text.pdf.security.PrivateKeySignature;
>
> /**
> *
> */
>
> /**
> * @author Eric Chow (hkc)
> *
> */
> public class TestSign {
>
> public static void sign(PrivateKey pk, Certificate[] chain,
> String src, String dest, String provider,
> String reason, String location,
> String digestAlgorithm, boolean subfilter)
> throws GeneralSecurityException, IOException,
> DocumentException {
> // Creating the reader and the stamper
> PdfReader reader = new PdfReader(src);
> FileOutputStream os = new FileOutputStream(dest);
> 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");
> // Creating the signature
> PrivateKeySignature pks = new PrivateKeySignature(pk,
> digestAlgorithm, provider);
> MakeSignature.signDetached(appearance, pks, chain, null, null,
> null, provider, 0, subfilter);
>
> }
>
>
>
>
> /**
> * @param args
> */
> public static void main(String[] args) {
> String PASSWORD = "password";
> String SRC = "doc/test.pdf";
> String DEST = "doc/test_signed.pdf";
>
> try {
>
> SunPKCS11 pkcs11 = new SunPKCS11("pkcs11.cfg");
> Security.addProvider (pkcs11);
> KeyStore ks = KeyStore.getInstance("PKCS11");
>
> ks.load(null, PASSWORD.toCharArray());
>
> String alias = "885856b0-60b9-4727-9416-75c70810de4d";
>
> PrivateKey pk = (PrivateKey) ks.getKey(alias,
> PASSWORD.toCharArray());
> Certificate[] chain = ks.getCertificateChain(alias);
>
> sign(pk, chain, SRC, DEST, pkcs11.getName(), "Test 3",
> "Ghent", DigestAlgorithms.SHA1, MakeSignature.CADES);
> } catch(Exception e) {
> e.printStackTrace();
> }
> }
>
> }
>
>
Best regards,
Eric
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php