PDFium Delphi Component Docs

FPdfMac 유닛

유닛: FPdfMac
독립형 및 서명 결합형 ISO/TS 32004 PDF 인증 코드를 위한 CMS AuthenticatedData 토큰을 빌드하고 검증합니다

Syntax

function BuildStandalonePdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest: TBytes): TBytes;
function VerifyStandalonePdfMacToken(const Token, FileEncryptionKey,
  KdfSalt, ExpectedDataDigest: TBytes;
  out ErrorText: string): Boolean;
function BuildAttachedPdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest, SignatureDigest: TBytes; SignatureObjectNumber,
  SignatureGeneration: Integer): TBytes;
function VerifyAttachedPdfMacToken(const Token, FileEncryptionKey, KdfSalt,
  ExpectedDataDigest, ExpectedSignatureDigest: TBytes;
  SignatureObjectNumber, SignatureGeneration: Integer;
  out ErrorText: string): Boolean;

Description

빌더는 32바이트 파일 암호화 키와 /KDFSalt에서 HKDF-SHA256 및 UTF-8 info 값 PDFMAC으로 AES-256 키 암호화 키를 유도합니다

무작위 256비트 MAC 키는 RFC 3394 AES-256 Key Wrap으로 래핑되어 ISO/TS 32004가 요구하는 단일 PasswordRecipientInfo에 담깁니다

토큰은 버전 0 PdfMacIntegrityInfo, 필수 인증 속성, CMSAlgorithmProtection, 속성의 정규 DER SET 인코딩에 대한 HMAC-SHA256 값을 포함합니다

호출자가 PDF 직렬화를 소유하며 정확한 /ByteRange 세그먼트의 SHA-256 다이제스트를 공급합니다. 애플리케이션 코드는 보통 TPdfEncryptOptions.EnableIntegrityProtectionTPdf.ValidatePdfMac을 사용합니다

결합형 토큰은 같은 인증 토큰 형식을 빌드하거나 검증하기 전에 데이터 다이제스트를 서명 다이제스트 및 서명 객체 번호와 세대에 결합합니다

Functions

FunctionDescription
BuildStandalonePdfMacToken32바이트 파일 암호화 키, KDF 솔트, 데이터 다이제스트 값으로 독립형 AuthenticatedData 토큰을 만듭니다
VerifyStandalonePdfMacToken정규 DER, 알고리즘, 속성, 래핑된 키, 예상 데이터 다이제스트, HMAC을 검증하며 비밀 값을 비교할 때는 상수 시간으로 수행합니다
BuildAttachedPdfMacToken데이터 다이제스트, 서명 다이제스트, 서명 객체 번호, 서명 세대를 결합 무결성 다이제스트로 해싱하여 결합형 토큰을 만듭니다
VerifyAttachedPdfMacToken예상 서명 컨텍스트에서 결합 다이제스트를 다시 만들고 결과 토큰을 검증합니다

Current scope

이 구현은 독립형 및 서명 결합형 인증 코드, SHA-256 데이터·서명 다이제스트, HMAC-SHA256, AES-256 Key Wrap, 32바이트 Standard Security Handler 파일 키를 지원합니다

공개 키 보안 핸들러와 대체 다이제스트 알고리즘은 생성되지 않습니다

See Also

FPdfHmac, FPdfAes, FPdfEncrypt, TPdf.ValidatePdfMac