TSHA256Digest = array[0..31] of Byte;
TSHA256Context = record
State: array[0..7] of Cardinal;
Buffer: array[0..63] of Byte;
BufCnt: Cardinal;
Length: UInt64;
end;
procedure SHA256Init(out Ctx: TSHA256Context);
procedure SHA256Update(var Ctx: TSHA256Context; const Buf; BufLen: Cardinal);
procedure SHA256Final(var Ctx: TSHA256Context; out Digest: TSHA256Digest);
function SHA256Bytes(const B: TBytes): TSHA256Digest;
function SHA256Of(const Buf; BufLen: Cardinal): TSHA256Digest;
function SHA256Hex(const Digest: TSHA256Digest): string;
FPdfSha256 je implementace hashe SHA-256 používaná napříč podepisovacím a šifrovacím zásobníkem PDFium Delphi Component. Je nutná, protože Free Pascal nedodává jednotku SHA-2, a její začlenění udržuje knihovnu bez závislostí na všech podporovaných kompilátorech
Přírůstkové rozhraní SHA256Init / SHA256Update / SHA256Final hashuje data větší než paměť nebo proudově po částech. SHA256Bytes a SHA256Of jsou jednorázové pomocné funkce nad polem bajtů nebo netypovaným bufferem a SHA256Hex formátuje otisk jako 64znakový hexadecimální řetězec psaný malými písmeny
Typ TSHA256Digest používají FPdfCms, FPdfTsa a FPdfCryptoWin jako tvar otisku pro hashování podepsaných atributů
| Function | Description |
|---|---|
SHA256Init | Inicializuje hashovací kontext |
SHA256Update | Vloží netypovaný buffer do otevřeného kontextu |
SHA256Final | Dokončí kontext a vrátí 32bajtový otisk |
SHA256Bytes | Jednorázový hash pole bajtů |
SHA256Of | Jednorázový hash netypovaného bufferu dané délky |
SHA256Hex | Naformátuje otisk jako hexadecimální řetězec psaný malými písmeny |
| Type | Description |
|---|---|
TSHA256Digest | 32bajtový otisk SHA-256 používaný jednotkami CMS, TSA a crypto |
TSHA256Context | Přírůstkový hashovací kontext uchovávající pracovní stav, buffer bloku zprávy, počet bajtů a celkovou délku |