PDFium Delphi Component Docs

FPdfSha256 jednotka

Unit: FPdfSha256
Čistě pascalská implementace SHA-256 s přírůstkovým kontextem init/update/final a jednorázovými pomocnými funkcemi, poskytovaná proto, že Free Pascal nedodává žádnou jednotku SHA-2

Syntax

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;

Description

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ů

Functions

FunctionDescription
SHA256InitInicializuje hashovací kontext
SHA256UpdateVloží netypovaný buffer do otevřeného kontextu
SHA256FinalDokončí kontext a vrátí 32bajtový otisk
SHA256BytesJednorázový hash pole bajtů
SHA256OfJednorázový hash netypovaného bufferu dané délky
SHA256HexNaformátuje otisk jako hexadecimální řetězec psaný malými písmeny

Types

TypeDescription
TSHA256Digest32bajtový otisk SHA-256 používaný jednotkami CMS, TSA a crypto
TSHA256ContextPřírůstkový hashovací kontext uchovávající pracovní stav, buffer bloku zprávy, počet bajtů a celkovou délku

See Also

FPdfSha512, FPdfCms, FPdfEncrypt