0
最近、私は最近、オフィス文書のデジタル署名と検証をApache POIライブラリを使用して実装しました。私は今、これに検証を追加するために探しているので、その文書が信頼できるユーザーによって署名されたことを証明することができます。私は次のコードを試してみましたが、 "getSigningCertificateChain"への呼び出しが空であるとは思いますが、署名がそこにあるように正しくロードするための方法はわかりません。これは私の現在のコードです:POIデジタル署名の確認
pkg = OPCPackage.open(Dir, PackageAccess.READ);
sic = new SignatureConfig();
sic.setOpcPackage(pkg);
SignatureInfo si = new SignatureInfo();
si.setSignatureConfig(sic);
isValid = si.verifySignature();
X509Certificate x509a = (X509Certificate) sic.getSigningCertificateChain().get(0);
FileInputStream fin = new FileInputStream("C:\myCer.cer");
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
x509a.verify(pk);
誰もがこれを実装することで運がありました。
はあなたをした役立つことを願って[ドキュメント署名に関するApache POIユニットテスト](http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?view)をお試しください。 =マークアップ)? [ウェブサイトの暗号化セクション](http://poi.apache.org/encryption.html)には基本的な内容が含まれていますが、単体テストはおそらく完全な詳細に最適です – Gagravarr