Sample code for 30+ languages & platforms
AutoIt

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 AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oCert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

$oFac = ObjCreate("Chilkat.FileAccess")

Local $oFileBytes
$oFileBytes = $oFac.ReadEntireFile("qa_data/pdf/sample.pdf")
If ($oFac.LastMethodSuccess <> True) Then
    ConsoleWrite($oFac.LastErrorText & @CRLF)
    Exit
EndIf

$oCrypt = ObjCreate("Chilkat.Crypt2")

$bSuccess = $oCrypt.SetSigningCert($oCert)

;  We can sign any type of file.

Local $oSigBytes
$oSigBytes = $oCrypt.OpaqueSignBytes($oFileBytes)
If ($oCrypt.LastMethodSuccess <> True) Then
    ConsoleWrite($oCrypt.LastErrorText & @CRLF)
    Exit
EndIf

$bSuccess = $oFac.WriteEntireFile("qa_output/sample.pdf.p7m",$oSigBytes)
If ($oFac.LastMethodSuccess <> True) Then
    ConsoleWrite($oFac.LastErrorText & @CRLF)
    Exit
EndIf

;  We can verify the opaque signature and extract the original data like this
Local $oOriginalData
$oOriginalData = $oCrypt.OpaqueVerifyBytes($oSigBytes)
If ($oCrypt.LastMethodSuccess <> True) Then
    ConsoleWrite($oCrypt.LastErrorText & @CRLF)
    Exit
EndIf

$bSuccess = $oFac.WriteEntireFile("qa_output/sample.pdf",$oOriginalData)
If ($oFac.LastMethodSuccess <> True) Then
    ConsoleWrite($oFac.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("Signature is verified and the original data was extracted." & @CRLF)