Signature numérique dans PowerPoint

Certificat numérique est utilisé pour créer une présentation PowerPoint protégée par un mot de passe, marquée comme créée par une organisation ou une personne particulière. Le certificat numérique peut être obtenu en contactant une organisation autorisée - une autorité de certification. Après l’installation du certificat numérique dans le système, il peut être utilisé pour ajouter une signature numérique à la présentation via Fichier -> Informations -> Protéger la présentation :

todo:image_alt_text

La présentation peut contenir plus d’une signature numérique. Après l’ajout de la signature numérique à la présentation, un message spécial apparaîtra dans PowerPoint :

todo:image_alt_text

Pour signer une présentation ou vérifier l’authenticité des signatures de la présentation, Aspose.Slides API fournit IDigitalSignature interface, IDigitalSignatureCollection interface et IPresentation.DigitalSignatures propriété. Actuellement, les signatures numériques ne sont prises en charge que pour le format PPTX.

Ajouter une signature numérique à partir d’un certificat PFX

L’exemple de code ci-dessous démontre comment ajouter une signature numérique à partir d’un certificat PFX :

  1. Ouvrir le fichier PFX et passer le mot de passe PFX à l’objet DigitalSignature .
  2. Ajouter la signature créée à l’objet présentation.
using (Presentation pres = new Presentation())
{
    // Créer un objet DigitalSignature avec le fichier PFX et le mot de passe PFX 
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");

    // Commenter la nouvelle signature numérique
    signature.Comments = "Test de signature numérique Aspose.Slides.";

    // Ajouter la signature numérique à la présentation
    pres.DigitalSignatures.Add(signature);

    // Sauvegarder la présentation
    pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}

Il est maintenant possible de vérifier si la présentation a été signée numériquement et n’a pas été modifiée :

// Ouvrir la présentation
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
    if (pres.DigitalSignatures.Count > 0)
    {
        bool allSignaturesAreValid = true;

        Console.WriteLine("Signatures utilisées pour signer la présentation : ");

        // Vérifier si toutes les signatures numériques sont valides
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "VALID" : "INVALID"));
            allSignaturesAreValid &= signature.IsValid;
        }

        if (allSignaturesAreValid)
            Console.WriteLine("La présentation est authentique, toutes les signatures sont valides.");
        else
            Console.WriteLine("La présentation a été modifiée depuis la signature.");
    }
}