0

私はPDF文書に署名するつもりです。itext を使用した例を見てきました。

KeyTool を使用して証明書を作成しました。そして、私は書類に署名します。PDFリーダーは、すべてが大丈夫で、文書が署名されていることを教えてくれます。

コードを見ると、次のことに気付きます。

ExternalDigest digest = new BouncyCastleDigest();
MakeSignature.signDetached(appearance, digest, pks, chain,null, null, null, 0, CryptoStandard.CMS);

私は 1 つのことを理解していません - ハッシュされた PDF ドキュメントはDigestです。ドキュメントのハッシュを計算する関数 (SHA 256 など) t はDIGESTです。しかし、この例では

ExternalDigest ダイジェスト = 新しい BouncyCastleDigest();

どういう意味ですか?それはpdfドキュメントハッシュですか?...

itext ドキュメントからの完全なコードは次のとおりです。

public static void sign(String src, String dest, PrivateKey pk,String digestAlgorithm, String provider) {

        PdfReader reader = new PdfReader(src);
        FileOutputStream os = new FileOutputStream(dest);
        PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();               
        appearance.setVisibleSignature(new Rectangle(0, 10,20, 15), 1, "sig");
        ExternalDigest digest = new BouncyCastleDigest();
        ExternalSignature signature = new PrivateKeySignature(pk, digestAlgorithm, provider);
        MakeSignature.signDetached(appearance, digest, signature, chain, null,null, null, 0, subfilter);


    }
4

1 に答える 1