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 在一个共享的 64 位字上下文之上实现了 SHA-512 与 SHA-384 哈希函数。当通过 Sha384Init 初始化时,上下文中的 Is384 标志会选择截断的 SHA-384 变体
增量 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,并依靠 Sha384Init 设置 Is384 标志Sha...,与 FPdfSha256 中全大写的 SHA256... 命名不同