Sample code for 30+ languages & platforms
Tcl Requires Chilkat v11.0.0+

Workaround for the deprecated Crypt2.MacBytes method

Shows how to replace the deprecated MacBytes method. (Chilkat is moving away from the use of CkByteData.)

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set crypt [new_CkCrypt2]

#  Do HMAC using SHA-256.
CkCrypt2_put_MacAlgorithm $crypt "hmac"
CkCrypt2_put_HashAlgorithm $crypt "sha256"

set keyHex "000102030405060708090A0B0C0D0E0F"
set success [CkCrypt2_SetMacKeyEncoded $crypt $keyHex "hex"]

set path "c:/someDir/example.dat"

#  ------------------------------------------------------------------------
#  The MacBytes method is deprecated:

set inData [new_CkByteData]

CkByteData_loadFile $inData $path

set outData [new_CkByteData]

set success [CkCrypt2_MacBytes $crypt $inData $outData]

#  ------------------------------------------------------------------------
#  Workaround.
#  (Chilkat is moving away from using CkByteData)

set bdIn [new_CkBinData]

CkBinData_LoadFile $bdIn $path

#  Set to any supported Chilkat encoding: base64, hex, base64url, hex_lower, etc.
CkCrypt2_put_EncodingMode $crypt "base64"
set mac_base64 [CkCrypt2_macBdENC $crypt $bdIn]

puts "$mac_base64"

delete_CkCrypt2 $crypt
delete_CkByteData $inData
delete_CkByteData $outData
delete_CkBinData $bdIn