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 のハッシュ関数を実装します。コンテキストの Is384 フラグは、Sha384Init 経由で初期化された場合に切り詰められた SHA-384 変種を選択します
増分 API は FPdfSha256 と同じです。コンテキストを初期化し、Sha512Update でバッファを供給し、64 バイトの SHA-512 ダイジェストまたは 48 バイトの SHA-384 ダイジェストに確定させます。Sha512Bytes と Sha384Bytes はバイト配列に対するワンショットヘルパです
| 関数 | 説明 |
|---|---|
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 ハッシュです |
| 型 | 説明 |
|---|---|
TSha512Digest | 64 バイトの SHA-512 ダイジェストです |
TSha384Digest | 48 バイトの SHA-384 ダイジェストです |
TSha512Context | SHA-512 と SHA-384 で共有する増分コンテキストです |
Sha384Init が設定する Is384 フラグ付きの TSha512Context を再利用しますSha... を使用しており、FPdfSha256 のすべて大文字の SHA256... という名前とは異なります