2010-12-02 20 views
1

JavaやC#のいずれかでX509証明書を使用して、オープンなオフィスのXML Docxドキュメントにプログラムでデジタル署名します。X509証明書を使用してオープンオフィスのXML Docxドキュメントにプログラムでデジタル署名する方法は?

このリンクはSystem.IO.PackagingからPackageDigitalSignatureManagerを使ってC#で見事にそれをしない:このAltough http://blogs.infosupport.com/blogs/wouterv/archive/2007/02/24/Signing-Office-Open-XML-documents-using-the-Packaging-API.aspx

それが認証されたデジタルのためのPIN番号のために彼を依頼するユーザダイアログを促し終わりに、正常に動作します署名。

このPIN番号をプログラム的に設定する方法は知っていますか?

乾杯


は、詳細な回答をいただき、ありがとうございます。 基本的には、電子文書に署名するための証明書を持つ電子IDスマートカードを使用しています。

通常、X509CertificateタイプのパブリックキーをPackageDigitalSignatureManager Sign()メソッドに渡します。

この方法では文書に署名しますが、スマートカードに保存されている秘密鍵を取得するためにPINを入力するよう求めます。

公開鍵/秘密鍵のペアをPKCS12ファイルに含むオブジェクトをPackageDigitalSignatureManagerに渡すことはできません。その場合、ユーザーにPIN番号の入力を求めません。証明書が格納されている場所#2を疑問視する

乾杯、

答えて

0

答えは、より重要なのは、あなたが使用しているものの技術に依存し。

Java鍵ストレージ(JKS)証明書はパスワードで保護されており、これらのパスワードはコードで渡されます。

Windows証明書ストレージ(.NET暗号化クラスで使用する場所)の証明書は、ほとんどのcryptoproviderのコードでは設定できないPINを使用して保護されています(PINを設定する拡張コマンドがありますが、ユーザは秘密鍵へのアクセスを手作業で確認する必要がある。

PKCS12ファイルに格納された証明書を使用する場合は、ファイルのパスワードもコードで設定されます。

興味深い場合は、.NETでオフィス文書に署名するためのコンポーネントを提供しています(check here)。ほとんどのサンプルコードとは異なり、これらは維持管理され、サポートされています。

0

答えはMSDNです。それはそれをカバーしています。 3ステップ必要