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 생성과 같은 범위 스캔을 공유할 수 있으며, 두 정책이 같은 알고리즘을 고르면 다이제스트를 직접 재사용합니다