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 hiện thực các hàm băm SHA-512 và SHA-384 trên một ngữ cảnh từ 64-bit dùng chung. Cờ Is384 trong ngữ cảnh chọn biến thể SHA-384 bị cắt ngắn khi khởi tạo qua Sha384Init
API từng bước phản chiếu FPdfSha256: khởi tạo một ngữ cảnh, đưa bộ đệm vào bằng Sha512Update và kết thúc để nhận digest SHA-512 64 byte hoặc digest SHA-384 48 byte. Sha512Bytes và Sha384Bytes là các trình trợ giúp một bước trên một mảng byte
| Function | Description |
|---|---|
Sha512Init | Khởi tạo một ngữ cảnh SHA-512 |
Sha384Init | Khởi tạo một ngữ cảnh SHA-384 (đặt cờ Is384 nội bộ) |
Sha512Update | Đưa một bộ đệm không kiểu vào một ngữ cảnh SHA-512 hoặc SHA-384 đang mở |
Sha512Final | Kết thúc một ngữ cảnh SHA-512 và trả về digest 64 byte |
Sha384Final | Kết thúc một ngữ cảnh SHA-384 và trả về digest 48 byte |
Sha512Bytes | Băm SHA-512 một bước trên một mảng byte |
Sha384Bytes | Băm SHA-384 một bước trên một mảng byte |
| Type | Description |
|---|---|
TSha512Digest | Digest SHA-512 64 byte |
TSha384Digest | Digest SHA-384 48 byte |
TSha512Context | Ngữ cảnh từng bước dùng chung cho SHA-512 và SHA-384 |
TSha512Context với cờ Is384 do Sha384Init đặtSha..., khác với các tên viết hoa toàn bộ SHA256... trong FPdfSha256