Sample code for 30+ languages & platforms
Chilkat2-Python

Sign a Byte Array to Create an Opaque Signature in a Byte Array

See more Digital Signatures Examples

Signs data contained in a byte array to produce an opaque signature (also in a byte array). An opaque signature is a PKCS7 signature (also known as CAdES) that embeds the signed data. Also shows how to verify the signature and extract the original data.

Chilkat Chilkat2-Python Downloads

Chilkat2-Python
import sys
import chilkat2

success = False

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

cert = chilkat2.Cert()
success = cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
if (success == False):
    print(cert.LastErrorText)
    sys.exit()

fac = chilkat2.FileAccess()

# fileBytes is a memoryview
fileBytes = fac.ReadEntireFile("qa_data/pdf/sample.pdf")
if (fac.LastMethodSuccess != True):
    print(fac.LastErrorText)
    sys.exit()

crypt = chilkat2.Crypt2()

success = crypt.SetSigningCert(cert)

# We can sign any type of file.

# sigBytes is a memoryview
sigBytes = crypt.OpaqueSignBytes(fileBytes)
if (crypt.LastMethodSuccess != True):
    print(crypt.LastErrorText)
    sys.exit()

success = fac.WriteEntireFile("qa_output/sample.pdf.p7m",sigBytes)
if (fac.LastMethodSuccess != True):
    print(fac.LastErrorText)
    sys.exit()

# We can verify the opaque signature and extract the original data like this

# originalData is a memoryview
originalData = crypt.OpaqueVerifyBytes(sigBytes)
if (crypt.LastMethodSuccess != True):
    print(crypt.LastErrorText)
    sys.exit()

success = fac.WriteEntireFile("qa_output/sample.pdf",originalData)
if (fac.LastMethodSuccess != True):
    print(fac.LastErrorText)
    sys.exit()

print("Signature is verified and the original data was extracted.")