Sample code for 30+ languages & platforms
AutoIt

Sign a JWS with an HMAC Key from BinData

See more JSON Web Signatures (JWS) Examples

Demonstrates Jws.SetMacKeyBd, which sets the symmetric MAC key for a signature from the raw bytes in a BinData.

Background. This is the in-memory equivalent of SetMacKey, for when the key material is already available as bytes.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

$oJws = ObjCreate("Chilkat.Jws")

;  Protected header specifying HMAC-SHA256.
$oHeader = ObjCreate("Chilkat.JsonObject")
$oHeader.UpdateString("alg","HS256")
$bSuccess = $oJws.SetProtectedHeader(0,$oHeader)
If ($bSuccess = False) Then
    ConsoleWrite($oJws.LastErrorText & @CRLF)
    Exit
EndIf

Local $bIncludeBom = False
$bSuccess = $oJws.SetPayload("This is the content to sign.","utf-8",$bIncludeBom)
If ($bSuccess = False) Then
    ConsoleWrite($oJws.LastErrorText & @CRLF)
    Exit
EndIf

;  Set the symmetric MAC key for signature 0 from the raw bytes in a BinData.  In production, obtain
;  the key material from a secure source.
$oBdKey = ObjCreate("Chilkat.BinData")
$oBdKey.AppendEncoded("YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU=","base64")
$bSuccess = $oJws.SetMacKeyBd(0,$oBdKey)
If ($bSuccess = False) Then
    ConsoleWrite($oJws.LastErrorText & @CRLF)
    Exit
EndIf

Local $sJwsCompact = $oJws.CreateJws()
If ($oJws.LastMethodSuccess = False) Then
    ConsoleWrite($oJws.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($sJwsCompact & @CRLF)