Hallo,
hier die Lösung für alle, die ein ähnliches Problem haben:
Delphi-Quellcode:
function GenerateSignature(
const AData, AKey:
string):
string;
var
AHMAC: TIdBytes;
begin
IdSSLOpenSSL.LoadOpenSSLLibrary;
IF NOT TIdHashSHA256.IsAvailable
THEN Raise Exception.Create('
SHA-256 hashing is not available!');
With TIdHMACSHA256.Create
do
try
Key:= IndyTextEncoding_UTF8.GetBytes(AKey);
AHMAC:= HashValue(IndyTextEncoding_UTF8.GetBytes(AData));
finally
Free;
end;
Result:= TIdEncoderMIME.EncodeBytes(AHMAC);
end;
Es muß also definitiv UTF8 verwendet werden, um ein gleiches Ergebnis zu erzielen.
Für weitere Informationen zum Thema Amazon MWS Signatur mit Delphi und
Indy, siehe auch den folgenden Thread in Englisch:
http://stackoverflow.com/questions/4...d-indy-classes