A digital signature is an electronic signature used to validate the authenticity and integrity of digital documents. When you sign a document digitally, the signature will serve as a confirmation that the document came from you and it has not been changed since you signed it.

In this article, you will learn how to add a digital signature to a PowerPoint in C#.

Use a PowerPoint Library to Sign PowerPoint Digitally

The Microsoft PowerPoint app provides functions that allow users to add digital signatures to their PPT and PPTX presentations.

However, to add a digital signature to a PowerPoint PPT or PPTX in C#, you have to use Aspose.Slides for .NET. The latter is a PowerPoint library that allows you to create, modify, and manipulate presentations using simple lines of code. For information on installing Aspose.Slides for .NET, see this Installation guide.

Get a Signing Certificate

Furthermore, to append a digital signature to a PowerPoint document, you need a signing or digital certificate. Such a certificate identifies and proves your identity. You can create your own certificate, or you can get one from a certification authority (that issues certificates).

When you send a PowerPoint presentation that you digitally signed to someone, you are effectively sending that person your certificate and public key.

Add Digital Signature to PowerPoint in C#

Assuming you have a digital certificate ready for use, you can go through these steps to add a digital signature to your PowerPoint presentation:

  1. Load the PowerPoint to which you want to add a digital signature through the Presentation class.
  2. Using the DigitalSignature class, create a digital signature object. Pass the digital signature PFX file and password to it.
  3. Add the digital signature to the PowerPoint presentation.
  4. Save the modified presentation.

This C# code shows you how to add a digital signature to a PowerPoint:

using (Presentation pres = new Presentation())
{
    // Creates a DigitalSignature object with the PFX file and PFX password 
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");

    // Comments new digital signature
    signature.Comments = "Aspose.Slides digital signing test.";

    // Adds digital signature to the presentation
    pres.DigitalSignatures.Add(signature);

    // Saves the modified presentation
    pres.Save("SomeSignedPresentation.pptx", SaveFormat.Pptx);
}

Verify a Digitally Signed PPT in C#

Besides adding a digital signature to a PowerPoint PPT, Aspose.Slides for .NET also allows you to verify a digitally signed presentation. The verification operation essentially checks whether the presentation has been modified since it was signed.

Go through these steps to verify a digitally signed PowerPoint presentation:

  1. Load the digitally signed PPT you want to verify through the Presentation class.
  2. Check whether the PowerPoint is signed.
  3. Check whether the signatures (used to sign the presentation) are valid.

This C# code shows you how to verify a digitally signed PowerPoint:

// Loads the presentation
using (Presentation pres = new Presentation("SomeSignedPresentation.pptx"))
{
    if (pres.DigitalSignatures.Count > 0)
    {
        bool allSignaturesAreValid = true;

        Console.WriteLine("Signatures used to sign the presentation: ");

        // Checks whether all the digital signatures are valid
        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("Presentation is genuine. All signatures are valid.");
        else
            Console.WriteLine("Presentation has been modified since signing.");
    }
}

Get a Free License

Want to test out Aspose.Slides features without limitations? Get a free temporary license.

Conclusion

In this article, we showed you how to add digital signatures to PowerPoint presentations in C# using a powerful .NET library. You may be interested in learning how to password protect a PowerPoint presentation.

To learn more about Aspose.Slides features, see our documentation. If you have questions, you can post them on our forum.

See Also