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 คือการ implement hash SHA-256 ที่ใช้ทั่วทั้งชุดเครื่องมือลงนามและเข้ารหัสของ PDFium Delphi Component จำเป็นเพราะ Free Pascal ไม่ได้มาพร้อมหน่วย SHA-2 และการรวมมันไว้ด้วยช่วยให้ไลบรารีไม่ต้องพึ่ง dependency บนคอมไพเลอร์ที่รองรับทั้งหมด
API แบบ incremental SHA256Init / SHA256Update / SHA256Final hash ข้อมูลที่ใหญ่กว่าหน่วยความจำหรือส่งเข้าเป็นชิ้น ๆ SHA256Bytes และ SHA256Of เป็นตัวช่วยแบบทำครั้งเดียวบนอาร์เรย์ไบต์หรือบัฟเฟอร์แบบ untyped และ SHA256Hex จัดรูปแบบ digest เป็นสตริง hex ตัวพิมพ์เล็ก 64 อักขระ
ชนิด TSHA256Digest ถูกใช้โดย FPdfCms, FPdfTsa และ FPdfCryptoWin ในฐานะรูปร่าง digest สำหรับการ hash signed-attribute
| Function | Description |
|---|---|
SHA256Init | เริ่มต้น context สำหรับ hashing |
SHA256Update | ป้อนบัฟเฟอร์แบบ untyped เข้าสู่ context ที่เปิดอยู่ |
SHA256Final | ปิด context และคืน digest ขนาด 32 ไบต์ |
SHA256Bytes | hash แบบทำครั้งเดียวของอาร์เรย์ไบต์ |
SHA256Of | hash แบบทำครั้งเดียวของบัฟเฟอร์แบบ untyped ที่มีความยาวกำหนด |
SHA256Hex | จัดรูปแบบ digest เป็นสตริง hex ตัวพิมพ์เล็ก |
| Type | Description |
|---|---|
TSHA256Digest | digest SHA-256 ขนาด 32 ไบต์ที่ใช้โดยหน่วย CMS, TSA และ crypto |
TSHA256Context | context การ hash แบบ incremental เก็บสถานะการทำงาน บัฟเฟอร์บล็อกข้อความ จำนวนไบต์ และความยาวรวม |