PDFium Delphi Component Docs

หน่วย FPdfSha256

Unit: FPdfSha256
การ implement SHA-256 แบบ pure-Pascal พร้อม context แบบ incremental แบบ init/update/final และตัวช่วยแบบทำครั้งเดียว จัดเตรียมไว้เพราะ Free Pascal ไม่ได้มาพร้อมหน่วย 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 คือการ 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

Functions

FunctionDescription
SHA256Initเริ่มต้น context สำหรับ hashing
SHA256Updateป้อนบัฟเฟอร์แบบ untyped เข้าสู่ context ที่เปิดอยู่
SHA256Finalปิด context และคืน digest ขนาด 32 ไบต์
SHA256Byteshash แบบทำครั้งเดียวของอาร์เรย์ไบต์
SHA256Ofhash แบบทำครั้งเดียวของบัฟเฟอร์แบบ untyped ที่มีความยาวกำหนด
SHA256Hexจัดรูปแบบ digest เป็นสตริง hex ตัวพิมพ์เล็ก

Types

TypeDescription
TSHA256Digestdigest SHA-256 ขนาด 32 ไบต์ที่ใช้โดยหน่วย CMS, TSA และ crypto
TSHA256Contextcontext การ hash แบบ incremental เก็บสถานะการทำงาน บัฟเฟอร์บล็อกข้อความ จำนวนไบต์ และความยาวรวม

See Also

FPdfSha512, FPdfCms, FPdfEncrypt