Der Pseudocode ist wirklich grausam (ein Operatorzeichen für mehrere verschieden Operation etc).
Aber auch in Deinem Code sind aber noch einige Bugs drin:
- Concat verwendet überhaupt nicht das übergebene c:char
- padding muß mit #0 und nich '0' erfolgen
Vollständig getesteten HMAC-Quellcode findest und mit den Testvektoren (und Referenzen) auf meiner CRC-Hash-Seite
CRC-Hash-Seite
im Archive crc_hash_2010-03-26.zip, und eine kurze Einführung auf
kurze Einführung
Allerdings sind die Funktionen auf's wesentlich beschränkt (Base64 für Amazon mußt Du zB selbst ausführen), allerdings haben schon etliche Leute die Routinen für Amazon verwendet.