PowerPointにおけるデジタル署名
Contents
[
Hide
]
デジタル証明書は、特定の組織または個人によって作成されたことを示すパスワード保護されたPowerPointプレゼンテーションを作成するために使用されます。デジタル証明書は、認可された組織、つまり証明書機関に連絡することで取得できます。システムにデジタル証明書をインストールした後、ファイル -> 情報 -> プレゼンテーションを保護からプレゼンテーションにデジタル署名を追加することができます:
プレゼンテーションには、複数のデジタル署名を含めることができます。プレゼンテーションにデジタル署名が追加されると、PowerPointに特別なメッセージが表示されます:
プレゼンテーションに署名したり、プレゼンテーションの署名の真正性を確認するために、Aspose.Slides APIはIDigitalSignatureインターフェース、IDigitalSignatureCollectionインターフェース、およびIPresentation.DigitalSignaturesメソッドを提供します。現在、デジタル署名はPPTX形式のみサポートされています。
PFX証明書からデジタル署名を追加する
以下のコードサンプルは、PFX証明書からデジタル署名を追加する方法を示しています:
- PFXファイルを開き、PFXパスワードをDigitalSignatureオブジェクトに渡します。
- 作成した署名をプレゼンテーションオブジェクトに追加します。
auto pres = System::MakeObject<Presentation>();
// PFXファイルとPFXパスワードでDigitalSignatureオブジェクトを作成
auto signature = System::MakeObject<DigitalSignature>(u"testsignature1.pfx", u"testpass1");
// 新しいデジタル署名にコメントを追加
signature->set_Comments(u"Aspose.Slidesデジタル署名テスト。");
// プレゼンテーションにデジタル署名を追加
pres->get_DigitalSignatures()->Add(signature);
// プレゼンテーションを保存
pres->Save(u"SomePresentationSigned.pptx", SaveFormat::Pptx);
プレゼンテーションがデジタル署名されており、変更されていないか確認することができます:
// プレゼンテーションを開く
auto pres = System::MakeObject<Presentation>(u"SomePresentationSigned.pptx");
if (pres->get_DigitalSignatures()->get_Count() > 0)
{
bool allSignaturesAreValid = true;
Console::WriteLine(u"プレゼンテーションに署名するために使用された署名: ");
// すべてのデジタル署名が有効か確認
for (auto signature : pres->get_DigitalSignatures())
{
Console::WriteLine(signature->get_Certificate()->get_SubjectName()->get_Name()
+ u", "
+ signature->get_SignTime().ToString(u"yyyy-MM-dd HH:mm")
+ u" -- "
+ (signature->get_IsValid() ? System::String(u"有効") : System::String(u"無効")));
allSignaturesAreValid &= signature->get_IsValid();
}
if (allSignaturesAreValid)
{
Console::WriteLine(u"プレゼンテーションは本物で、すべての署名が有効です。");
}
else
{
Console::WriteLine(u"署名後、プレゼンテーションが変更されました。");
}
}