Delphi DLL Requires Chilkat v11.0.0+
Delphi DLL
Workaround for the deprecated Crypt2.MacString method
Shows how to replace the deprecated MacString method. (Chilkat is moving away from the use of CkByteData.)Chilkat Delphi DLL Downloads
var
success: Boolean;
crypt: HCkCrypt2;
keyHex: PWideChar;
inputStr: PWideChar;
outData: HCkByteData;
mac_base64: PWideChar;
begin
success := False;
crypt := CkCrypt2_Create();
CkCrypt2_putCharset(crypt,'utf-8');
// Do HMAC using SHA-256.
CkCrypt2_putMacAlgorithm(crypt,'hmac');
CkCrypt2_putHashAlgorithm(crypt,'sha256');
keyHex := '000102030405060708090A0B0C0D0E0F';
success := CkCrypt2_SetMacKeyEncoded(crypt,keyHex,'hex');
inputStr := 'This is a test.';
// ------------------------------------------------------------------------
// The MacString method is deprecated:
outData := CkByteData_Create();
success := CkCrypt2_MacString(crypt,inputStr,outData);
// ------------------------------------------------------------------------
// Workaround.
// (Chilkat is moving away from using CkByteData)
CkCrypt2_putEncodingMode(crypt,'base64');
mac_base64 := CkCrypt2__macStringENC(crypt,inputStr);
Memo1.Lines.Add(mac_base64);
CkCrypt2_Dispose(crypt);
CkByteData_Dispose(outData);