ich glaube, da liegst du richtig mit 144 byte:
Delphi-Quellcode:
type
TSHA3GeneralDigest = array[0..63] of Byte;
TSHA3_224Digest = array[0..27] of Byte;
TSHA3_256Digest = array[0..31] of Byte;
TSHA3_384Digest = array[0..47] of Byte;
TSHA3_512Digest = array[0..63] of Byte;
TSHA3Context = packed record
State: array[0..24] of Int64;
Index: LongWord;
DigestLen: LongWord;
Round: LongWord;
BlockLen: LongWord;
Block: array[0..255] of Byte;
Ipad: array[0..143] of Byte; {!< HMAC: inner padding }
Opad: array[0..143] of Byte; {!< HMAC: outer padding }
end;
an anderer Stelle:
Delphi-Quellcode:
SHA3_ROUNDS = 24;
SHA3_STATE_LEN = 25;
SHA3_224_OUTPUT_LENGTH_BYTE = 28;
SHA3_256_OUTPUT_LENGTH_BYTE = 32;
SHA3_384_OUTPUT_LENGTH_BYTE = 48;
SHA3_512_OUTPUT_LENGTH_BYTE = 64;
SHA3_224_BLOCK_SIZE_BYTE = 144;
SHA3_256_BLOCK_SIZE_BYTE = 136;
SHA3_384_BLOCK_SIZE_BYTE = 104;
SHA3_512_BLOCK_SIZE_BYTE = 72;
HMAC_SHA3_224_BLOCK_SIZE_BYTE = SHA3_224_BLOCK_SIZE_BYTE;
HMAC_SHA3_256_BLOCK_SIZE_BYTE = SHA3_256_BLOCK_SIZE_BYTE;
HMAC_SHA3_384_BLOCK_SIZE_BYTE = SHA3_384_BLOCK_SIZE_BYTE;
HMAC_SHA3_512_BLOCK_SIZE_BYTE = SHA3_512_BLOCK_SIZE_BYTE;
HMAC_SHA3_224_OUTPUT_LENGTH_BYTE = SHA3_224_OUTPUT_LENGTH_BYTE;
HMAC_SHA3_256_OUTPUT_LENGTH_BYTE = SHA3_256_OUTPUT_LENGTH_BYTE;
HMAC_SHA3_384_OUTPUT_LENGTH_BYTE = SHA3_384_OUTPUT_LENGTH_BYTE;
HMAC_SHA3_512_OUTPUT_LENGTH_BYTE = SHA3_512_OUTPUT_LENGTH_BYTE;
Blöd ist nur, dass die Dateien leider nicht in engl. oder chinesisch vorliegen, sondern in einem mir unbekannten Format. Auch der Hinweis zur Übersetzung der Dateien
(TENU.BAT) ist nich wirklich hilfreich. Wenn es in chinesisch vorliegen würde, ginge es wirklich gut mit Deepl zu übersetzen - aber...
Die maßgebliche Datei cnSHA3.pas liegt der Demo bei. Nur die wird gebraucht.
Ich bin mal so kühn und empfehle eine Nachfrage bei den Autoren des CN-Packs (master At cnpack Dot org <> bzw. zjy At cnpack Dot org <>). Engisch sprechen die Jungs dort allemal.