Přidání digitálních podpisů do prezentací v JavaScriptu

Úvod

Digitální certifikát se používá k vytvoření prezentace PowerPoint chráněné heslem, označené jako vytvořenou konkrétní organizací nebo osobou. Digitální certifikát lze získat kontaktováním oprávněné organizace – certifikační autority. Po nainstalování digitálního certifikátu do systému jej lze použít k přidání digitálního podpisu do prezentace přes Soubor → Informace → Ochrana prezentace:

todo:image_alt_text

Prezentace může obsahovat více než jeden digitální podpis. Po přidání digitálního podpisu do prezentace se v PowerPointu zobrazí speciální zpráva:

todo:image_alt_text

Pro podepsání prezentace nebo kontrolu pravosti podpisů prezentace poskytuje Aspose.Slides API třídu DigitalSignature, třídu DigitalSignatureCollection a metodu Presentation.getDigitalSignatures. V současné době jsou digitální podpisy podporovány pouze pro formát PPTX.

Přidání digitálního podpisu z PFX certifikátu

Níže uvedený ukázkový kód demonstruje, jak přidat digitální podpis z PFX certifikátu:

  1. Otevřete soubor PFX a předjte heslo PFX objektu DigitalSignature.
  2. Přidejte vytvořený podpis do objektu prezentace.
// Otevírání souboru prezentace
var pres = new aspose.slides.Presentation();
try {
    // Vytvořit objekt DigitalSignature s PFX souborem a PFX heslem
    var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
    // Komentář k novému digitálnímu podpisu
    signature.setComments("Aspose.Slides digital signing test.");
    // Přidat digitální podpis do prezentace
    pres.getDigitalSignatures().add(signature);
    // Uložit prezentaci
    pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

Nyní je možné zkontrolovat, zda byla prezentace digitálně podepsána a nebyla upravena:

// Open presentation
var pres = new aspose.slides.Presentation("SomePresentationSigned.pptx");
try {
    if (pres.getDigitalSignatures().size() > 0) {
        var allSignaturesAreValid = true;
        console.log("Signatures used to sign the presentation: ");
        // Check if all digital signatures are valid
        for (let i = 0; i < pres.getDigitalSignatures().size(); i++) {
        let signature = pres.getDigitalSignatures().get_Item(i);
            console.log((((signature.getComments() + ", ") + signature.getSignTime().toString()) + " -- ") + (signature.isValid() ? "VALID" : "INVALID"));
            allSignaturesAreValid &= signature.isValid();
        }
        if (allSignaturesAreValid) {
            console.log("Presentation is genuine, all signatures are valid.");
        } else {
            console.log("Presentation has been modified since signing.");
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Často kladené otázky

Mohu odstranit existující podpisy ze souboru?

Ano. Kolekce digitálních podpisů podporuje odstranění jednotlivých položek a úplné vymazání; po uložení souboru nebude v prezentaci žádný podpis.

Stane se soubor po podpisu „pouze pro čtení“?

Ne. Podpis zachovává integritu a autorství, ale neblokuje úpravy. Pro omezení úprav jej kombinujte s “Read-only” or a password.

Zobrazí se podpis správně v různých verzích PowerPointu?

Podpis je vytvořen pro kontejner OOXML (PPTX). Moderní verze PowerPointu, které podporují OOXML podpisy, správně zobrazují stav takových podpisů.