Я пытаюсь использовать последнюю PDFBox 3 для подписи документов PDF. < /p> Rig < /strong >
Windows Machine с Java23 < /p> Сертификаты < /strong>
Я создал доменные сертификаты с Certbot 2.9.0 и openssl-3.0.7 в форматах jks, p12 и pem < /p> [code]:: certbot_to_p12.bat del tomcat.p12 openssl.exe pkcs12 -export -in C:\Certbot\live\tugalsan.com\fullchain.pem -inkey C:\Certbot\live\tugalsan.com\privkey.pem -out D:\dat\ssl\tomcat.p12 -name "MyAllias" -password pass:MyPass pause
//SIGNER var signer = new CreateVisibleSignature2(keystore, password.toString().toCharArray()); signer.setExternalSigning(useExternalSignScnerio);//true or false, it has no effect on outcome signer.signPDF( pathPdfInput.toFile(), pathPdfInput.resolveSibling(pathPdfInput.toFile().getName()+"_signed.pdf").toFile(), new Rectangle2D.Float(10,200,150,50), null, "aaa" ); [/code] [b]ВЫВОД[/b]
Я использовал сертификаты JKS и P12; но оба возвращают ошибку [code]SLF4J(W): No SLF4J providers were found. SLF4J(W): Defaulting to no-operation (NOP) logger implementation SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details. {Main}, {main}, {ERROR CAUSE: 'java.io.IOException: org.bouncycastle.operator.OperatorCreationException: cannot create signer: No installed provider supports this key: sun.security.ec.ECPrivateKeyImpl' ERROR TREE: org.apache.pdfbox.examples.signature.CreateSignatureBase.sign(CreateSignatureBase.java:155) org.apache.pdfbox.pdfwriter.COSWriter.doWriteSignature(COSWriter.java:915) org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1346) org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:429) org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1586) org.apache.pdfbox.pdmodel.PDDocument.saveIncremental(PDDocument.java:1095) org.apache.pdfbox.examples.signature.CreateVisibleSignature2.signPDF(CreateVisibleSignature2.java:297) ... [/code] [b]ССЫЛКИ ПО ТЕМЕ[/b]
[list] [*]Ниже есть ответ; но я не мог понять, как это реализовать.
Объект подписи JAVA — ни один установленный провайдер не поддерживает этот ключ: sun.security.rsa.RSAPrivateCrtKeyImpl [*]Я могу подпишите PDF-документы, указанные ниже. Но он использует pdfbox версии 2 https://github.com/intoolswetrust/jsignpdf [/list]
Я использую сертификат для сетевых запросов.
val keyStore = KeyStore.getInstance( PKCS12 )
keyStore.load(caFileInputStream, certPassword.toCharArray())
Когда я запускаю приложение с обфускацией на некоторых устройствах, я получаю исключение...
Когда я использую эту команду для подписи файла APK: «apksigner Sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk», я получил следующую ошибку:
Failed to load signer signer #1 java.io.IOException: Invalid keystore format at...