Digitale Signatur in PowerPoint

Digitales Zertifikat wird verwendet, um eine passwortgeschützte PowerPoint-Präsentation zu erstellen, die als von einer bestimmten Organisation oder Person erstellt gekennzeichnet ist. Ein digitales Zertifikat kann durch Kontaktaufnahme mit einer autorisierten Organisation - einer Zertifizierungsstelle - erhalten werden. Nach der Installation des digitalen Zertifikats im System kann es verwendet werden, um der Präsentation eine digitale Signatur hinzuzufügen über Datei -> Informationen -> Präsentation schützen:

todo:image_alt_text

Die Präsentation kann mehr als eine digitale Signatur enthalten. Nachdem die digitale Signatur zur Präsentation hinzugefügt wurde, erscheint eine spezielle Nachricht in PowerPoint:

todo:image_alt_text

Um die Präsentation zu signieren oder die Echtheit der Präsentationssignaturen zu überprüfen, bietet die Aspose.Slides API die IDigitalSignature Schnittstelle, die IDigitalSignatureCollection Schnittstelle und die IPresentation.getDigitalSignatures Methode. Derzeit werden digitale Signaturen nur für das PPTX-Format unterstützt.

Digitale Signatur aus PFX-Zertifikat hinzufügen

Das folgende Codebeispiel zeigt, wie man eine digitale Signatur aus einem PFX-Zertifikat hinzufügt:

  1. Öffnen Sie die PFX-Datei und übergeben Sie das PFX-Passwort an das DigitalSignature Objekt.
  2. Fügen Sie die erstellte Signatur dem Präsentationsobjekt hinzu.
  # Präsentationsdatei öffnen
  $pres = new Presentation();
  try {
    # DigitalSignature Objekt mit PFX-Datei und PFX-Passwort erstellen
    $signature = new DigitalSignature("testsignature1.pfx", "testpass1");
    # Bemerkung zur neuen digitalen Signatur
    $signature->setComments("Aspose.Slides digitale Signaturtest.");
    # Digitale Signatur zur Präsentation hinzufügen
    $pres->getDigitalSignatures()->add($signature);
    # Präsentation speichern
    $pres->save("SomePresentationSigned.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Jetzt ist es möglich zu überprüfen, ob die Präsentation digital signiert wurde und nicht modifiziert wurde:

  # Präsentation öffnen
  $pres = new Presentation("SomePresentationSigned.pptx");
  try {
    if (java_values($pres->getDigitalSignatures()->size()) > 0) {
      $allSignaturesAreValid = true;
      echo("Verwendete Signaturen zum Signieren der Präsentation: ");
      # Überprüfen, ob alle digitalen Signaturen gültig sind
      foreach($pres->getDigitalSignatures() as $signature) {
        echo($signature->getComments() . ", " . $signature->getSignTime()->toString() . " -- " . $signature->isValid() ? "GÜLTIG" : "UNGÜLTIG");
        $allSignaturesAreValid &= $signature->isValid();
      }
      if ($allSignaturesAreValid) {
        echo("Präsentation ist echt, alle Signaturen sind gültig.");
      } else {
        echo("Präsentation wurde seit der Signatur geändert.");
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }