Ich möchte mit Hilfe von
Indy-Dateien eine HMAC-Funktion aufrufen. Dazu habe ich bei stackoverflow nachfolgende
function gefunden und versuche vergeblich sie aufzurufen, denn beim Aufruf erhalte ich die Fehlermeldung "SHA256 hashing is not avaible!"
Fehlt da möglicherweise eine
dll? Leider habe ich dazu bislang noch keinen brauchbaren Hinweis gefunden.
Die nachfolgende function wird im I-net mehrfach erwähnt und sollte daher doch funktionieren - oder ?
Was mache ich falsch oder was fehlt da noch?
Delphi-Quellcode:
uses
IdGlobal, IdHashSHA, IdHMAC, IdHMACSHA1, IdSSLOpenSSL;
function CalculateHMACSHA256(
const value, salt:
String):
String;
var
hmac: TIdHMACSHA256;
hash: TIdBytes;
begin
LoadOpenSSLLibrary;
if not TIdHashSHA256.IsAvailable
then
raise Exception.Create('
SHA256 hashing is not available!');
hmac := TIdHMACSHA256.Create;
try
hmac.Key := IndyTextEncoding_UTF8.GetBytes(salt);
hash := hmac.HashValue(IndyTextEncoding_UTF8.GetBytes(value));
Result := ToHex(hash);
finally
hmac.Free;
end;
end;