Sample code for 30+ languages & platforms
AutoIt

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

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

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

;  We can verify the detached signature like this
Local $bVerified = $oCrypt.VerifyBytes($oFileBytes,$oSigBytes)
If ($oCrypt.LastMethodSuccess <> True) Then
    ConsoleWrite($oCrypt.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("Verified = " & $bVerified & @CRLF)