TSha512Digest = array[0..63] of Byte;
TSha384Digest = array[0..47] of Byte;
TSha512Context = record
State: array[0..7] of UInt64;
CountLo: UInt64;
CountHi: UInt64;
Buffer: array[0..127] of Byte;
BufLen: Integer;
Is384: Boolean;
end;
procedure Sha512Init(out Ctx: TSha512Context);
procedure Sha384Init(out Ctx: TSha512Context);
procedure Sha512Update(var Ctx: TSha512Context; const Buf; BufLen: Integer);
procedure Sha512Final(var Ctx: TSha512Context; out Digest: TSha512Digest);
procedure Sha384Final(var Ctx: TSha512Context; out Digest: TSha384Digest);
function Sha512Bytes(const B: TBytes): TSha512Digest;
function Sha384Bytes(const B: TBytes): TSha384Digest;
FPdfSha512 реалізує хеш-функції SHA-512 і SHA-384 на спільному контексті з 64-бітовими словами. Прапорець Is384 у контексті обирає усічений варіант SHA-384, коли ініціалізацію виконано через Sha384Init
Інкрементний API відтворює FPdfSha256: ініціалізуйте контекст, подавайте буфери через Sha512Update і завершуйте до 64-байтового дайджесту SHA-512 або 48-байтового дайджесту SHA-384. Sha512Bytes і Sha384Bytes — однокрокові помічники над масивом байтів
| Function | Description |
|---|---|
Sha512Init | Ініціалізує контекст SHA-512 |
Sha384Init | Ініціалізує контекст SHA-384 (встановлює внутрішній прапорець Is384) |
Sha512Update | Подає нетипізований буфер у відкритий контекст SHA-512 або SHA-384 |
Sha512Final | Завершує контекст SHA-512 і повертає 64-байтовий дайджест |
Sha384Final | Завершує контекст SHA-384 і повертає 48-байтовий дайджест |
Sha512Bytes | Однокроковий хеш SHA-512 масиву байтів |
Sha384Bytes | Однокроковий хеш SHA-384 масиву байтів |
| Type | Description |
|---|---|
TSha512Digest | 64-байтовий дайджест SHA-512 |
TSha384Digest | 48-байтовий дайджест SHA-384 |
TSha512Context | Спільний інкрементний контекст для SHA-512 і SHA-384 |
TSha512Context із прапорцем Is384, установленим Sha384InitSha..., на відміну від повністю великих SHA256... у FPdfSha256