Hi, Paulo.

Thanx for your nearly instant answer.


The solution has been changing SELF_SIGNED by WINCER_SIGNED.

Now everything works fine BUT do not tell me why...

My generated keytool keys are all 1024 bits long:


keytool -keystore $KEYSTORE \
          -genkey \
          -alias $ALIAS \
          -validity 365 \
          -keypass $PW  \
          -dname "$DNAME" \
          -keysize 1024 \                      
          -storepass $STOREPW


and I think, SELF_SIGNED should work as expected...

It works nearly fine, actually. It only fails ocasionally.

This is what really confuses me.




Paulo Soares wrote:
> 
> The SELF_SIGNED mode only supports 1024 bit long keys, that's an Acrobat
> imposition. The other examples given are for 1024 bit long key and use a
> 128 byte array, if you use a 2048 bit long key you'll need a 256 byte
> array and so on.
> 
> Paulo 
> 
>> -----Original Message-----
>> From: [EMAIL PROTECTED] 
>> [mailto:[EMAIL PROTECTED] On 
>> Behalf Of jesusaplsoft
>> Sent: Thursday, April 17, 2008 1:52 PM
>> To: [email protected]
>> Subject: Re: [iText-questions] RSA 2k
>> 
>> Hi,
>> I have a similar problem.
>> 
>> using:
>> itext-2.1.0
>> sun java-16_06
>> opensuse-10.3 last updated from internet
>> windows-xp last update from WindowsUpdate
>> 
>> problem: random arrayIndexOutOfBounds exception as I close stp.
>> I do not know when it is going to happen, actually.
>> If I run the program 20 times it may occur 2 and sometimes none.
>> It is a really strange error.
>> 
>> my code:
>> 
>> public void setSignature(String fileName) throws Exception {
>> 
>> // tmp file
>> String pdf = new TextBuilder(fileName.substring(0,
>> fileName.lastIndexOf(".") + 1)).append("fpdf")
>> .toString();
>> 
>> String keystore;
>> 
>> InputStream in;
>> 
>> if ((getProperty("PASSWORDK").length() != 0) &&
>> (getProperty("KEYSTORE").length() != 0) &&
>> (getProperty("PASSWORD").length() != 0)) {
>> KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
>> 
>> keystore = new TextBuilder(AswirP.ETC_FILE).append(
>> File.separator).append(getProperty("KEYSTORE"))
>> .toString();
>> 
>> 
>> ks.load(in = new FileInputStream(keystore),
>> getProperty("PASSWORDK").toCharArray());
>> in.close();
>> 
>> String alias = (String) ks.aliases().nextElement();
>> PrivateKey key = (PrivateKey) ks.getKey(alias,
>> getProperty("PASSWORD").toCharArray());
>> Certificate[] chain = ks.getCertificateChain(alias);
>> PdfReader reader = new PdfReader(nombreFichero);
>> 
>> FileOutputStream fout = new FileOutputStream(pdf);
>> PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
>> stp.setEncryption("".getBytes(),
>> getProperty("PASSWORD").getBytes(),
>> PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_SCREENREADERS |
>> PdfWriter.ALLOW_DEGRADED_PRINTING, true);
>> 
>> PdfSignatureAppearance sap = stp.getSignatureAppearance();
>> sap.setCrypto(key, chain, null, PdfSignatureAppearance.SELF_SIGNED);
>> 1409: stp.close();
>> File newFile = new File(pdf);
>> new File(fileName).delete();
>> newFile.renameTo(new File(fileName));
>> 
>> }
>> 
>> 
>> error:
>> 
>> java.lang.ArrayIndexOutOfBoundsException 
>> at java.lang.System.arraycopy(Native Method)
>> at com.lowagie.text.pdf.PdfStamper.close(Unknown Source)
>> at com.apl.aswir.tools.AswirPdf.setSignature(AswirPdf.java:1409)
>> 
>> 
>> 
>> 
>> 
>> 
>>      Alan Klikic-2 wrote:
>> 
>> 
>>      Hi.
>>      
>>       
>>      
>>      Can we sign pdf file using iText with key (size=2048 Bits).
>>      
>>      I tryed like this (part of code):
>>      
>>       
>>      
>>      ...
>>      
>>       
>>      
>>      PdfSigGenericPKCS genericPKCS = pdfSignatureAppearance
>>      
>>       
>>      .getSigStandard();
>>      
>>       
>>      
>>      PdfLiteral pdfLiteral = (PdfLiteral) 
>> genericPKCS.get(PdfName.CONTENTS);
>>      
>>       
>>      
>>      byte[] outc = new byte[(pdfLiteral.getPosLength()-2)/2];
>>      
>>      PdfPKCS7 sig = genericPKCS.getSigner();
>>      
>>       
>>      
>>      sig.setExternalDigest(signature, hash, "RSA");
>>      
>>      PdfDictionary pdfDictionary = new PdfDictionary();
>>      
>>      byte[] ssig = sig.getEncodedPKCS7();
>>      
>>                                         
>>      
>>      System.arraycopy(ssig, 0, outc, 0, ssig.length);
>>      
>>                                                     
>>      
>>      pdfDictionary.put(PdfName.CONTENTS, new
>>      PdfString(outc).setHexWriting(true));
>>      
>>       
>>      
>>      pdfSignatureAppearance.close(pdfDictionary);
>>      
>>       
>>      
>>      ...
>>      
>>       
>>      
>>      and i get ArrayIndexOutOfBoundsException because outc 
>> bytes size is
>>      smaller than ssig bytes size.
>>      
>>       
>>      
>>      If i put 
>>      
>>      byte[] outc = new byte[pdfLiteral.getPosLength()]; in 
>> code instead of  
>>      
>>      byte[] outc = new byte[(pdfLiteral.getPosLength()-2)/2];
>>      
>>       
>>      
>>      i get this exception
>>      
>>       
>>      
>>       
>>      
>>      java.lang.IllegalArgumentException: The key /Contents 
>> is too big. Is
>>      11074, reserved 5536
>>      
>>            at 
>> com.lowagie.text.pdf.PdfSignatureAppearance.close(Unknown
>>      Source)
>>      
>>            at
>>      
>> hr.logos.vasuite.luis.modules.pdf.PDFStamper.signPDF(PDFStampe
>> r.java:265
>>      )
>>      
>>            at
>>      
>> hr.logos.vasuite.luis.modules.pdf.PDFTimerOutModule.execute(PD
>> FTimerOutM
>>      odule.java:284)
>>      
>>            at hr.logos.vasuite.luis.main.Job.execute(Job.java:286)
>>      
>>            at
>>      
>> hr.logos.vasuite.luis.server.TimerServer.run(TimerServer.java:43)
>>      
>>            at
>>      
>> hr.logos.util.RunnableStarter$WrappedRunnable.run(RunnableStar
>> ter.java:3
>>      6)
>>      
>>            at java.lang.Thread.run(Unknown Source)
>>      
>>       
>>      
>>      That means that when i'm using 2k key to sign, encoded 
>> PKSC7 bytes size
>>      (11074) iz greater than outc bytes size. Outc should be 
>> less than
>>      reserved (5536).
>>      
>>       
>>      
>>      When i use smaller key in first example, it works fine 
>> (outc is greater
>>      than ssig).
>>      
>>      Thanx,
>>      
>>      Alan
> 
> 
> Aviso Legal:
> 
> Esta mensagem é destinada exclusivamente ao destinatário. Pode conter
> informação confidencial ou legalmente protegida. A incorrecta transmissão
> desta mensagem não significa a perca de confidencialidade. Se esta
> mensagem for recebida por engano, por favor envie-a de volta para o
> remetente e apague-a do seu sistema de imediato. É proibido a qualquer
> pessoa que não o destinatário de usar, revelar ou distribuir qualquer
> parte desta mensagem. 
> 
> 
> 
> Disclaimer:
> 
> This message is destined exclusively to the intended receiver. It may
> contain confidential or legally protected information. The incorrect
> transmission of this message does not mean the loss of its
> confidentiality. If this message is received by mistake, please send it
> back to the sender and delete it from your system immediately. It is
> forbidden to any person who is not the intended receiver to use,
> distribute or copy any part of this message.
> 
> 
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
> Don't miss this year's exciting event. There's still time to save $100. 
> Use priority code J8TL2D2. 
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> iText-questions mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/itext-questions
> 
> Do you like iText?
> Buy the iText book: http://www.1t3xt.com/docs/book.php
> Or leave a tip: https://tipit.to/itexttipjar
> 

-- 
View this message in context: 
http://www.nabble.com/RSA-2k-tp1233196p16763129.html
Sent from the iText - General mailing list archive at Nabble.com.
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Do you like iText?
Buy the iText book: http://www.1t3xt.com/docs/book.php
Or leave a tip: https://tipit.to/itexttipjar

Reply via email to