Firma digital en PowerPoint
Certificado digital se utiliza para crear una presentación de PowerPoint protegida por contraseña, marcada como creada por una organización o persona en particular. El certificado digital se puede obtener contactando a una organización autorizada - una autoridad de certificación. Después de instalar el certificado digital en el sistema, se puede utilizar para agregar una firma digital a la presentación a través de Archivo -> Información -> Proteger presentación:
La presentación puede contener más de una firma digital. Después de que se agrega la firma digital a la presentación, aparecerá un mensaje especial en PowerPoint:
Para firmar la presentación o verificar la autenticidad de las firmas de la presentación, Aspose.Slides API proporciona la interfaz IDigitalSignature, la interfaz IDigitalSignatureCollection y la propiedad IPresentation.DigitalSignatures. Actualmente, las firmas digitales son compatibles solo con el formato PPTX.
Agregar firma digital desde certificado PFX
El siguiente ejemplo de código demuestra cómo agregar una firma digital desde un certificado PFX:
- Abrir archivo PFX y pasar la contraseña PFX al objeto DigitalSignature.
- Agregar la firma creada al objeto de presentación.
#[TODO:Exception] RuntimeError: Error de proxy(FileNotFoundException): No se pudo cargar el archivo o ensamblado 'System.Security.Cryptography.Xml, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Archivo no encontrado.
import aspose.slides as slides
with slides.Presentation() as pres:
# Crear objeto DigitalSignature con archivo PFX y contraseña PFX
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# Comentar nueva firma digital
signature.comments = "Prueba de firma digital de Aspose.Slides."
# Agregar firma digital a la presentación
pres.digital_signatures.add(signature)
# guardar presentación
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
Ahora es posible verificar si la presentación fue firmada digitalmente y no ha sido modificada:
# Abrir presentación
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("Firmas utilizadas para firmar la presentación: ")
# Verificar si todas las firmas digitales son válidas
for signature in pres.digital_signatures :
print(signature.certificate.subject_name.name + ", "
+ signature.sign_time.strftime("yyyy-MM-dd HH:mm") + " -- " + "VÁLIDO" if signature.is_valid else "INVALIDO")
allSignaturesAreValid = allSignaturesAreValid and signature.is_valid
if allSignaturesAreValid:
print("La presentación es genuina, todas las firmas son válidas.")
else:
print("La presentación ha sido modificada desde la firma.")