Planet PDF Forum Archive

Planet PDF ForumWowsers! This is page is old, head to the LIVE Planet PDF Forum. It features more than 10 conferences, covering everything from beginner to in-depth developer and pre-press discussions. If you wish to continue... one & two archive covers 1999-2011 (160,000 pages).


New Forum | Previous | Next | (P-PDF) Developers


Topic: Digital Signature in PDF w/o using Adobe products
Conf: (P-PDF) Developers, Msg: 66176
From: hammaas
Date: 6/4/2002 09:34 PM

Hi all,

I want to write an application in Java that adds a digital signature to a pdf doc.

I have to use the profile created by the user, where the private key, certificate & public key are stored.

Problem is... I don't know the structure or format of the apf file in which this profile is stored in, so I tried trial-&-error ...
& ended up with error !!

I get an "Unknown key spec" error. I'm attaching the code & the error that is displayed :

========= CODE START =========
RandomAccessFile rafPrivKey = new RandomAccessFile("PrivKey.txt", "r");
String strPrivKey = rafPrivKey.readLine();
rafPrivKey.close();
byte[] abPrivKey = ConvertHexStrToByteArr(strPrivKey);

RC4 rc4Tmp = new
RC4(ConvertHexStrToByteArr("a86fc80b199beb9388172909825e5ef92362df1b1147257c8f9649a9e30d311edac3bdcaa6ce9094"));
rc4Tmp.Initialize();
byte[] abDecPrivKey = new byte[abPrivKey.length];
rc4Tmp.Update(abPrivKey, abDecPrivKey);
rc4Tmp.Finalize();

KeyFactory kfTmp = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec pkcs8Tmp = new PKCS8EncodedKeySpec(abDecPrivKey);
RSAPrivateKey privKey = (RSAPrivateKey)kfTmp.generatePrivate(pkcs8Tmp); // exception raised here !!!!!!!!!!!!!!!!!!!!!

RandomAccessFile rafDataFile = new RandomAccessFile("Test.pdf", "r");
byte[] abData = new byte[(int)rafDataFile.length()];
rafDataFile.read(abData);
rafDataFile.close();

Signature sigTmp = Signature.getInstance("SHA1withRSA");
sigTmp.initSign(privKey);
sigTmp.update(abData);
byte[] abSign = sigTmp.sign();

RandomAccessFile rafHashFile = new RandomAccessFile("Hash.txt", "rw");
rafHashFile.writeBytes(ConvertByteArrToHexStr(abSign));
rafHashFile.close();
========= CODE END =========

========= ERROR START =========
java.lang.reflect.InvocationTargetException: java.security.spec.InvalidKeySpecException: Unknown key spec.
at com.sun.rsajca.JS_KeyFactory.engineGeneratePrivate([DashoPro-V1.2-120198])
at java.security.KeyFactory.generatePrivate(KeyFactory.java:202)
at PDFDigSig.Test.PDFDigSigTestAdbPrivKey(Test.java:71)
at PDFDigSig.Test.main(Test.java:139)
at java.lang.reflect.Method.invoke(Native Method)
at com.borland.jbuilder.util.BootStrap.invokeMain(Unknown Source)
at com.borland.jbuilder.util.BootStrap.main(Unknown Source)
========= ERROR END =========

Any kind of help will be highly appreciated !!!!!!


Thanx in advance...
UNTIL NEXT TIME ...
TAKE CARE & ENJOY !!!
HUSSAIN - HUSH

PDF In-Depth Free Product Trials Ubiquitous PDF

Debenu Aerialist

The ultimate plug-in for Adobe Acrobat. Advanced splitting, merging, stamping, bookmarking, and link...

Download free demo

Debenu PDF Tools Pro

It's simple to use and will let you preview and edit PDF files, it's a Windows application that makes...

Download free demo

Back to the past, 15 years ago! Open Publish 2002

Looking back to 2002, it's amazing how much of the prediction became a reality. Take a read and see what you think!

September 14, 2017
Platinum Sponsor





Search Planet PDF
more searching options...
Planet PDF Newsletter
Most Popular Articles
Featured Product

Debenu PDF Aerialist

The ultimate plug-in for Adobe Acrobat. Advanced splitting, merging, stamping, bookmarking, and link control. Take Acrobat to the next level.

Features

Adding a PDF Stamp Comment

OK, so you want to stamp your document. Maybe you need to give reviewers some advice about the document's status or sensitivity. This tip from author Ted Padova demonstrates how to add stamps with the Stamp Tool along with related comments.