rsatrio / PDF-Signature-Check

Simple Checking of PDF Digital Signature CLI
MIT License
5 stars 4 forks source link

Signature verification error #1

Closed gidravlic closed 2 years ago

gidravlic commented 2 years ago

Hello! Abobe pdf reader verify signature successful, but with you utility with jdk8 i got error:

2022-08-16 14:13:32,163 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Signature null Filter:Adobe.PPKLite
2022-08-16 14:13:32,166 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Signature null SubFilter:ETSI.CAdES.detached
2022-08-16 14:13:32,166 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Signature null ContactInfo:John Doe 
2022-08-16 14:13:32,166 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Signature null Reason:My organization
2022-08-16 14:13:32,222 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Digest Algorithm used:2.16.840.1.101.3.4.2.1
2022-08-16 14:13:32,222 INFO com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Signature ID 3db6c5776c110dc461090d962382d96d contains timestamp
2022-08-16 14:13:32,258 ERROR com.rizky.pdf.cli.CheckPdfSignature [CheckPdfSignature] Error processing Signature
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: Invalid RSA public key
        at java.base/sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:239)
        at java.base/java.security.KeyFactory.generatePublic(KeyFactory.java:352)
        at com.rizky.pdf.cli.CheckPdfSignature.processSignature(CheckPdfSignature.java:149)
        at com.rizky.pdf.cli.CheckPdfSignature.lambda$call$0(CheckPdfSignature.java:66)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
        at com.rizky.pdf.cli.CheckPdfSignature.call(CheckPdfSignature.java:64)
        at com.rizky.pdf.cli.CheckPdfSignature.call(CheckPdfSignature.java:32)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at com.rizky.pdf.cli.MainCli.main(MainCli.java:17)
Caused by: java.security.InvalidKeyException: Invalid RSA public key
        at java.base/sun.security.rsa.RSAPublicKeyImpl.parseKeyBits(RSAPublicKeyImpl.java:189)
        at java.base/sun.security.x509.X509Key.decode(X509Key.java:390)
        at java.base/sun.security.x509.X509Key.decode(X509Key.java:401)
        at java.base/sun.security.rsa.RSAPublicKeyImpl.<init>(RSAPublicKeyImpl.java:122)
        at java.base/sun.security.rsa.RSAKeyFactory.generatePublic(RSAKeyFactory.java:330)
        at java.base/sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:235)
        ... 14 common frames omitted
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=79, too big.
        at java.base/sun.security.util.DerInputStream.getLength(DerInputStream.java:606)
        at java.base/sun.security.util.DerValue.<init>(DerValue.java:257)
        at java.base/sun.security.util.DerInputStream.getDerValue(DerInputStream.java:457)
        at java.base/sun.security.rsa.RSAPublicKeyImpl.parseKeyBits(RSAPublicKeyImpl.java:178)
        ... 19 common frames omitted
2022-08-16 14:13:32,260 INFO com.rizky.pdf.cli.MainCli [MainCli] Elapsed Time: 351 ms
rsatrio commented 2 years ago

HI gidravlic, From the error it is most likely that the signature did not use RSA Algorithm. This library only cover RSA Algorithm. If possible, could you share the pdf file?