TSha3Algorithm = (s3aSha3_256, s3aSha3_384, s3aSha3_512, s3aShake256);
TSha3Digest256 = array[0..31] of Byte;
TSha3Digest384 = array[0..47] of Byte;
TSha3Digest512 = array[0..63] of Byte;
procedure Sha3_256Init(out Ctx: TSha3Context);
procedure Sha3_384Init(out Ctx: TSha3Context);
procedure Sha3_512Init(out Ctx: TSha3Context);
procedure Shake256Init(out Ctx: TSha3Context);
procedure Sha3Update(var Ctx: TSha3Context; const Data; DataLength: Integer);
procedure Sha3_256Final(var Ctx: TSha3Context; out Digest: TSha3Digest256);
procedure Sha3_384Final(var Ctx: TSha3Context; out Digest: TSha3Digest384);
procedure Sha3_512Final(var Ctx: TSha3Context; out Digest: TSha3Digest512);
procedure Shake256Final(var Ctx: TSha3Context);
procedure Shake256Squeeze(var Ctx: TSha3Context; out Output; OutputLength: Integer);
function Shake256Bytes(const Data: TBytes; OutputLength: Integer): TBytes;
FPdfSha3 מיישם את משפחת SHA-3 של FIPS 202 הנדרשת על ידי ISO/TS 32001 והרחבות קריפטוגרפיות קשורות של PDF 2.x מבלי לדרוש ספק קריפטו של מערכת ההפעלה
גיבובים בפלט קבוע חולקים טיפוס הקשר אחד ומסיימים עם בדיקת אלגוריתם, בעוד SHAKE256 מפריד את הספיגה הסופית מהפלט כך שקוראים יכולים לבקש כל אורך על פני קריאת Shake256Squeeze אחת או יותר
| Function | Description |
|---|---|
Sha3_256Init, Sha3_384Init, Sha3_512Init | Initialize a fixed-output SHA-3 context |
Shake256Init | Initializes a SHAKE256 extendable-output context |
Sha3Update | Absorbs an untyped input buffer into any initialized context |
Sha3_256Final, Sha3_384Final, Sha3_512Final | Finalize a matching context and return its fixed-length digest |
Shake256Final | Finalizes SHAKE256 absorption without consuming output |
Shake256Squeeze | Continues SHAKE256 output from the current offset across repeated calls |
Sha3_256Bytes, Sha3_384Bytes, Sha3_512Bytes | Hash a byte array in one call |
Shake256Bytes | Returns a caller-selected number of SHAKE256 output bytes |
Sha3_256Hex, Sha3_384Hex, Sha3_512Hex | Convert a fixed digest to lowercase hexadecimal text |
| Type | Description |
|---|---|
TSha3Algorithm | Identifies the algorithm selected in a context |
TSha3Digest256, TSha3Digest384, TSha3Digest512 | Fixed-size digest buffers |
TSha3Context | Incremental sponge state, rate buffer, algorithm, and squeeze offset |
ESha3Error | Reports invalid lengths, lifecycle misuse, or mismatched finalizers |
Sha3Update והשתמש רק במסיים פלט קבוע התואם לוShake256Final, קריאות Shake256Squeeze חוזרות ממשיכות את אותו זרם פלט במקום להפעיל אותו מחדשESha3Error