Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) HMAC Hex StringDemonstrates how to compute an HMAC using a hexidecimal key and data.
Use ChilkatAx-9.5.0-win32.pkg Procedure Test Handle hoCrypt Boolean iSuccess String sKeyHex String sDataHex Variant vBd Handle hoBd String sMacHex String sTemp1 Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Get ComUnlockComponent Of hoCrypt "Anything for 30-day trial" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End // Set the MAC algorithm to HMAC Set ComMacAlgorithm Of hoCrypt To "hmac" // Our HMAC key will be the bytes represented in the following hex string. // In other words, the HMAC key is composed of the bytes 0x41, 0xC2, 0x1C, ... // (It is not composed of the us-ascii string '4', '1', 'C', ...) Move "41C21CB9D7A02FC5D4FADB9E4755B9DE" To sKeyHex Get ComSetMacKeyEncoded Of hoCrypt sKeyHex "hex" To iSuccess // Our desire is to HMAC the bytes represented in the following string: Move "C22078065B01460001000000010062043BF5B18228C8E02D17BCFE4E00561FA6DEC216EA97195CEB579942E275C21932258E3CD391E507FF4E7FD4C787A8447DA111C54A9C1795E7FF4C0BAA2EDA" To sDataHex // We'll need to decode the hex to binary: Get Create (RefClass(cComChilkatBinData)) To hoBd If (Not(IsComObjectCreated(hoBd))) Begin Send CreateComObject of hoBd End Get ComAppendEncoded Of hoBd sDataHex "hex" To iSuccess // Do the HMAC-SHA256 hash and return as a hex string: Set ComEncodingMode Of hoCrypt To "hex" Set ComHashAlgorithm Of hoCrypt To "sha-256" Get pvComObject of hoBd to vBd Get ComMacBdENC Of hoCrypt vBd To sMacHex Showln sMacHex End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.