SHA3 PDF 서명 및 타임스탬프
HotPDF는 분리형 CMS, 서명 속성, RSA 또는 ECDSA 서명 식별자, RFC 3161 message imprint, 서명 타임스탬프, 문서 타임스탬프, Seed Value 사전, 로드된 서명 검증 전반에 하나의 다이제스트 정책을 적용합니다
다이제스트 선택
THPDFCMSDigestAlgorithm은 cmsdaSHA256, cmsdaSHA384, cmsdaSHA512, cmsdaSHA3_256, cmsdaSHA3_384, cmsdaSHA3_512를 제공합니다
Options := HPDFCMSDefaultOptions(palBaseline_B_T);
Options.DigestAlgorithm := cmsdaSHA3_384;
Options.SignatureScheme := cmsRSAPSS;
Options.PSSSaltLength := 48;
HPDFCMSBuildSignedDataEx, 스트림 서명 함수, 외부 서명자, 서명 공급자는 모두 SHA-256으로 폴백하지 않고 선택된 다이제스트를 소비합니다
RSA PKCS#1 v1.5는 다이제스트별 DigestInfo를 쓰고, RSA-PSS는 일치하는 해시와 MGF1 파라미터를 쓰며, cmsECDSA는 선택된 다이제스트에 맞는 결합 ECDSA 서명 OID를 내보냅니다
타임스탬프 정책
GetContentTimeStamp는 선택된 문서 다이제스트를 받고, GetSignatureTimeStamp는 CMS 서명 값의 선택된 다이제스트를 받습니다
반환된 RFC 3161 토큰은 message-imprint OID와 바이트가 모두 선택된 다이제스트 정책과 일치하지 않으면 거부됩니다
DigestAlgorithm 파라미터가 있는 THotPDF.RenewPAdESLTATimestamp 오버로드는 같은 정책을 아카이브 타임스탬프 갱신에 적용하고, 호환성 오버로드는 계속 SHA-256입니다
PDF 선언과 Seed Values
SHA3-256, SHA3-384, SHA3-512를 THPDFPage.AttachPAdESSeedValue에서 사용하면 ISO 32001 PDF 2.0 개발자 확장이 자동으로 선언됩니다
catalog 항목은 /Extensions /ISO_에 /BaseVersion /2.0, /ExtensionLevel 32001, /ExtensionRevision (:2022), /Type /DeveloperExtensions를 사용합니다
공급자 요구 사항
THPDFPKCS11SignatureProvider는 SHA3 요청을 해당 PKCS#11 해시 및 MGF 식별자로 매핑하고 원시 ECDSA 서명을 CMS DER로 변환합니다
THPDFWindowsKeyStorageSignatureProvider는 선택된 SHA3 알고리즘을 CNG에 넘기고 역시 원시 ECDSA 서명을 CMS DER로 변환합니다
SignPDFWithSystemCertificate는 같은 CNG 정책을 Windows 인증서 저장소 키에 적용하고, 레거시 CryptoAPI 키는 SHA3를 명시적으로 거부합니다
요청된 SHA3 알고리즘을 구현하지 않는 토큰, 키 저장소 공급자, Windows 버전은 명시적인 unsupported 상태를 반환합니다
스트리밍 성능
PDF 바이트 범위는 제한된 청크로 해싱되고, SHA3 서명은 PDF MAC 생성과 같은 범위 스캔을 공유할 수 있으며, 두 정책이 같은 알고리즘을 고르면 다이제스트를 직접 재사용합니다