PowerPointにおけるデジタル署名

デジタル証明書は、特定の組織または個人によって作成されたことを示すパスワード保護されたPowerPointプレゼンテーションを作成するために使用されます。デジタル証明書は、認可された組織、つまり証明書機関に連絡することで取得できます。システムにデジタル証明書をインストールした後、ファイル -> 情報 -> プレゼンテーションを保護からプレゼンテーションにデジタル署名を追加することができます:

todo:image_alt_text

プレゼンテーションには、複数のデジタル署名を含めることができます。プレゼンテーションにデジタル署名が追加されると、PowerPointに特別なメッセージが表示されます:

todo:image_alt_text

プレゼンテーションに署名したり、プレゼンテーションの署名の真正性を確認するために、Aspose.Slides APIIDigitalSignatureインターフェース、IDigitalSignatureCollectionインターフェース、およびIPresentation.DigitalSignaturesメソッドを提供します。現在、デジタル署名はPPTX形式のみサポートされています。

PFX証明書からデジタル署名を追加する

以下のコードサンプルは、PFX証明書からデジタル署名を追加する方法を示しています:

  1. PFXファイルを開き、PFXパスワードをDigitalSignatureオブジェクトに渡します。
  2. 作成した署名をプレゼンテーションオブジェクトに追加します。
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"署名後、プレゼンテーションが変更されました。");
    }
}