Aggiungi firme digitali alle presentazioni in JavaScript

Introduzione

Certificato digitale è usato per creare una presentazione PowerPoint protetta da password, contrassegnata come creata da una particolare organizzazione o persona. Il certificato digitale può essere ottenuto contattando un’organizzazione autorizzata – un’autorità di certificazione. Dopo aver installato il certificato digitale nel sistema, può essere usato per aggiungere una firma digitale alla presentazione tramite File -> Info -> Proteggi presentazione:

todo:image_alt_text

Una presentazione può contenere più di una firma digitale. Dopo che la firma digitale è stata aggiunta alla presentazione, verrà visualizzato un messaggio speciale in PowerPoint:

todo:image_alt_text

Per firmare una presentazione o verificare l’autenticità delle firme della presentazione, Aspose.Slides API fornisce la classe DigitalSignature, la classe DigitalSignatureCollection e il metodo Presentation.getDigitalSignatures. Attualmente, le firme digitali sono supportate solo per il formato PPTX.

Aggiungi firma digitale da certificato PFX

Il campione di codice qui sotto dimostra come aggiungere una firma digitale da un certificato PFX:

  1. Apri il file PFX e passa la password PFX all’oggetto DigitalSignature.
  2. Aggiungi la firma creata all’oggetto presentazione.
// Apertura del file di presentazione
var pres = new aspose.slides.Presentation();
try {
    // Crea l'oggetto DigitalSignature con file PFX e password PFX
    var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
    // Commenta la nuova firma digitale
    signature.setComments("Aspose.Slides digital signing test.");
    // Aggiungi firma digitale alla presentazione
    pres.getDigitalSignatures().add(signature);
    // Salva la presentazione
    pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

Ora è possibile verificare se la presentazione è stata firmata digitalmente e non è stata modificata:

// Apri la presentazione
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: ");
        // Verifica se tutte le firme digitali sono valide
        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();
    }
}

FAQ

Posso rimuovere le firme esistenti da un file?

Sì. La collezione di firme digitali supporta la rimozione di singoli elementi e la cancellazione completa; dopo aver salvato il file, la presentazione non avrà firme.

Il file diventa “sola lettura” dopo la firma?

No. Una firma preserva l’integrità e la paternità ma non blocca le modifiche. Per limitare la modifica, combinatela con “Read-only” or a password.

La firma verrà visualizzata correttamente in diverse versioni di PowerPoint?

La firma è creata per il contenitore OOXML (PPTX). Le versioni moderne di PowerPoint che supportano le firme OOXML visualizzano correttamente lo stato di tali firme.