Global Signを使用したPDFドキュメントのデジタル署名を検討しています。
Aspose.PDF for .NET で実装する場合のサンプルコードをご提供いただけませんでしょうか。
・署名の追加
・署名の詳細へ、理由、及び、場所を追加
・タイムスタンプの追加(有効期間の延長)
以上、ご支援よろしくお願い申し上げます。
Global Signを使用したPDFドキュメントのデジタル署名を検討しています。
Aspose.PDF for .NET で実装する場合のサンプルコードをご提供いただけませんでしょうか。
・署名の追加
・署名の詳細へ、理由、及び、場所を追加
・タイムスタンプの追加(有効期間の延長)
以上、ご支援よろしくお願い申し上げます。
お客様の要件の実現可能性を調査するために、チケットを PDFNET-50641 として記録しました。 詳細を調査し、チケットの解決状況をお知らせします。 しばらくお待ちください。
ご不便をおかけしてしまい申し訳ございません。
最後に次のコード例を試してみて、あなたの側でどうなるか教えてください。
var pfxPassword = "";
var pfxCertificate = File.ReadAllBytes(@"input.pfx");
var documentData = File.ReadAllBytes("Input.pdf");
using var pdfDoc = new Document(new MemoryStream(documentData));
var signature = new PKCS7Detached(new MemoryStream(pfxCertificate), pfxPassword)
{
UseLtv = true,
OcspSettings = new OcspSettings("http://ocsp2.globalsign.com/gspersonalsign2sha2g3"),
TimestampSettings = new TimestampSettings("https://freetsa.org/tsr", string.Empty)
};
var mdp = new DocMDPSignature(signature, DocMDPAccessPermissions.NoChanges);
using var pdfSign = new PdfFileSignature(pdfDoc);
pdfSign.Certify(
1,
"Manually signed document",
"SimpliGov LLC",
"SimpliGov LLC",
false,
new System.Drawing.Rectangle(10, 10, 200, 200),
mdp
);
using var stream = new MemoryStream();
pdfSign.Save(stream);
サンプルコードを参考にして、試した結果を添付します。(AsposePDF出力結果.png)
AsposePDF出力結果.png (29.9 キロバイト)
期待している出力結果のサンプルも添付します。(期待している出力結果.png)
期待している出力結果.png (39.3 キロバイト)
期待している結果を得るためには、コードをどのように変更すればよろしいでしょうか。
ご教示よろしくお願いいたします。
こちらで試したコードは以下の通りです。
Dim pfxCertificate = File.ReadAllBytes(certfilepath)
Dim pfxPassword As String = passwordstr
Dim documentData = File.ReadAllBytes("D:\デジタル署名テスト用PDF.pdf")
Using pdfDoc = New Document(New MemoryStream(documentData))
Dim Signature = New PKCS7Detached(New MemoryStream(pfxCertificate), PfxPassword)
Signature.UseLtv = True
Signature.OcspSettings = New OcspSettings("http://ocsp2.globalsign.com/gspersonalsign2sha2g3")
Signature.TimestampSettings = New TimestampSettings("https://freetsa.org/tsr", String.Empty)
Dim mdp = New DocMDPSignature(Signature, DocMDPAccessPermissions.NoChanges)
Using pdfSign = New PdfFileSignature(pdfDoc)
pdfSign.Certify(
1,
"〇〇によって署名されています。",
"(未記入)",
"(住所を記入)",
True,
New System.Drawing.Rectangle(10, 10, 200, 200),
mdp
)
pdfSign.Save("D:\out_デジタル署名テスト用PDF.pdf")
End Using
End Using
なお、「Using pdfSign = New PdfFileSignature(pdfDoc)」で、IsCertified.get の評価がタイムアウト、というエラーが発生しています。
また、「 pdfSign.Save(“D:\out_デジタル署名テスト用PDF.pdf”)」で、オブジェクト参照エラーが発生しますが、D:\out_デジタル署名テスト用PDF.pdf は生成されています。
「pdfSign.Save(“D:\out_デジタル署名テスト用PDF.pdf”)」で例外が発生する症状も変わりません。
StackTraceを添付します。
StackTrace.pdf (283.4 キロバイト)
> Aspose.PDF for Java を評価モードで使用しています。30 日間の一時ライセンスを取得し、PDF をインポートする前に適用してください。
使用しているのは、Aspose.PDF for .NET です。
念のため、お伝えします。
引き続き、ご支援の程、よろしくお願いいたします。
問題追跡システムに PDFNET-53407 としてあなたのケースの別のチケットを記録しました。 アップデートが利用可能になり次第、お知らせします。 ご不便をおかけして申し訳ございません。
ご回答ありがとうございます。
PDFNET-53407 に関しては、PdfFileSignature.Save() の改善をご検討ください。
なお、当方からの最初の質問にあたる、PDFNET-50641 に関して、現段階で、他のサンプルコードをご提供いただく事は可能でしょうか。
もしくは、PdfFileSignature.Save() の不具合が解決すれば、PDFNET-50641 も解決するとのご認識でしょうか。