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