PowerPointにおけるデジタル署名

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

todo:image_alt_text

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

todo:image_alt_text

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

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

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

  1. PFXファイルを開き、DigitalSignatureオブジェクトにPFXパスワードを渡します。
  2. 作成した署名をプレゼンテーションオブジェクトに追加します。
using (Presentation pres = new Presentation())
{
    // PFXファイルとPFXパスワードを使ってDigitalSignatureオブジェクトを作成
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");

    // 新しいデジタル署名にコメントを追加
    signature.Comments = "Aspose.Slidesデジタル署名テスト。";

    // プレゼンテーションにデジタル署名を追加
    pres.DigitalSignatures.Add(signature);

    // プレゼンテーションを保存
    pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}

プレゼンテーションがデジタル署名されたかどうか、また修正されていないかを確認することができます:

// プレゼンテーションを開く
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
    if (pres.DigitalSignatures.Count > 0)
    {
        bool allSignaturesAreValid = true;

        Console.WriteLine("プレゼンテーションに署名された署名: ");

        // すべてのデジタル署名が有効か確認
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "有効" : "無効"));
            allSignaturesAreValid &= signature.IsValid;
        }

        if (allSignaturesAreValid)
            Console.WriteLine("プレゼンテーションは正真正銘であり、すべての署名が有効です。");
        else
            Console.WriteLine("プレゼンテーションは署名以降に修正されました。");
    }
}