PowerPointにおけるデジタル署名

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

todo:image_alt_text

プレゼンテーションには一つ以上のデジタル署名が含まれている場合があります。デジタル署名がプレゼンテーションに追加されると、PowerPointに特別なメッセージが表示されます。

todo:image_alt_text

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

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

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

  1. PFXファイルを開き、PFXパスワードをDigitalSignatureオブジェクトに渡します。
  2. 作成した署名をプレゼンテーションオブジェクトに追加します。
  # プレゼンテーションファイルを開く
  $pres = new Presentation();
  try {
    # PFXファイルとPFXパスワードでDigitalSignatureオブジェクトを作成
    $signature = new DigitalSignature("testsignature1.pfx", "testpass1");
    # 新しいデジタル署名にコメントを追加
    $signature->setComments("Aspose.Slidesデジタル署名テスト。");
    # プレゼンテーションにデジタル署名を追加
    $pres->getDigitalSignatures()->add($signature);
    # プレゼンテーションを保存
    $pres->save("SomePresentationSigned.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

これで、プレゼンテーションがデジタル署名されており、変更されていないかどうかを確認できます。

  # プレゼンテーションを開く
  $pres = new Presentation("SomePresentationSigned.pptx");
  try {
    if (java_values($pres->getDigitalSignatures()->size()) > 0) {
      $allSignaturesAreValid = true;
      echo("プレゼンテーションに署名するために使用された署名: ");
      # すべてのデジタル署名が有効かどうかをチェック
      foreach($pres->getDigitalSignatures() as $signature) {
        echo($signature->getComments() . ", " . $signature->getSignTime()->toString() . " -- " . $signature->isValid() ? "有効" : "無効");
        $allSignaturesAreValid &= $signature->isValid();
      }
      if ($allSignaturesAreValid) {
        echo("プレゼンテーションは本物で、すべての署名は有効です。");
      } else {
        echo("プレゼンテーションは署名以降に変更されています。");
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }