Sample code for 30+ languages & platforms
Chilkat2-Python

Sign a Byte Array to Create a Detached Signature in a Byte Array

See more Digital Signatures Examples

Signs data contained in a byte array to produce a detached signature (also in a byte array). Also shows how to verify the signature.

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.
# The result is a detached signature (a signature that does not contain the data being signed).

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

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

# We can verify the detached signature like this
verified = crypt.VerifyBytes(fileBytes,sigBytes)
if (crypt.LastMethodSuccess != True):
    print(crypt.LastErrorText)
    sys.exit()

print("Verified = " + str(verified))