2

PdfBox (および BouncyCastle) を使用して PDF にデジタル署名 (暗号化) しようとしています。

キーストアと証明書を作成しました:

%java_home%\bin\keytool -genkey -alias razor -keypass testkeypass -storepass teststorepass  -keystore test-keystore.jks -validity 360 -dname "CN=razor, OU=myorg, O=my.org, L=Mycity, C=PL"
%java_home%\bin\keytool -export -alias razor -keypass testkeypass -storepass teststorepass  -keystore test-keystore.jks -file test-cert.cer  

今、私は PdfBox を使用しようとしています

org.apache.pdfbox.PDFBox Encrypt -certFile test-cert.cer -canModify false -canPrint false test.pdf test-signed-out.pdf

そして私は持っています:

Encrypt failed with the following exception:
org.apache.pdfbox.exceptions.COSVisitorException: Cannot find any provider supporting 1.2.840.10040.4.1
    at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1025)
    at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:914)
    at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:895)
    at org.apache.pdfbox.Encrypt.encrypt(Encrypt.java:189)
    at org.apache.pdfbox.Encrypt.main(Encrypt.java:53)
    at org.apache.pdfbox.PDFBox.main(PDFBox.java:40)
org.apache.pdfbox.exceptions.CryptographyException: Cannot find any provider supporting 1.2.840.10040.4.1
    at org.apache.pdfbox.pdmodel.encryption.PublicKeySecurityHandler.prepareDocumentForEncryption(PublicKeySecurityHandler.java:344)
    at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1016)

どうしたの ?私が間違っていることは何ですか?

既に署名されている (iText による) PDF で PDFBox ShowCertificate を使用できます: 署名アルゴリズム: SHA1withDSA、OID = 1.2.840.10040.4.3

4

2 に答える 2

1

私は PDFBox に詳しくありませんが、「暗号化」コマンド ライン ツールが署名を行わないことが問題だと思います。DSA 証明書/キーを作成したようです。DSA はデジタル署名用です。この例外は、DSA が暗号化の有効なアルゴリズムではないという事実を反映しています。

PDFBoxで署名することについての言及を見ましたが、これが方法だとは思いません。

于 2011-09-11T06:44:07.463 に答える
-1

プロバイダーを追加する必要があります。

これは、1 行のコードで実行できます。

Security.addProvider(新しい BouncyCastleProvider());

セキュリティ - java.security.Security から

明らかに、最初に BouncyCastleProviderStuff をインポートする必要があります。


おっと-いくつかのPDFBoxツールを使用してコマンドラインから実行していることに気づきました。そこにプロバイダーを追加する方法がわかりません。

于 2011-10-06T14:52:13.853 に答える