Modern Signature Providers

HPDFSignatureProvider는 CMS 파싱·인코딩을 개인 키 저장소와 플랫폼 암호학에서 분리합니다

Verification algorithms

HPDFVerifyCMSSignatureEx는 THPDFPlatformSignatureProvider나 호출자 제공 provider로 Ed25519/Ed448 pure-mode CMS 서명을 검증하고 정확한 서명 OID를 THPDFSignatureInfo.SignatureAlgorithmOID에 기록합니다

CMS 파싱은 해싱이나 provider dispatch 전에 컨테이너 다이제스트 세트, signer 다이제스트, 서명 메커니즘 파라미터, 선택적 RFC 6211 algorithm-protection 속성을 교차 검사합니다. 상태와 상세 이슈 코드는 CMS 다이제스트 알고리즘 일관성을 보십시오

ML-DSA-44/65/87은 가능할 때 플랫폼 provider를 쓰지만, 로드된 문서 검증에서는 Catalog가 HotPDF PDF 2.0 developer extension을 선언한 경우에만 활성화됩니다

Signing providers

THotPDF.SignPDFWithPFX와 PFX 기반 HPDFCMSSignPDFStream overload는 호출자 제공 서명 콜백 없이 일치한 PKCS#12 정체에서 RSA, ECDSA, Ed25519, Ed448을 고릅니다

ECDSA 개인 scalar는 Windows CNG로 서명되어 엄격 DER ECDSA 값으로 반환되고, Ed25519/Ed448은 THPDFCMSSignOptions.OpenSSLLibraryPath나 일반 라이브러리 검색 경로로 고른 선택적 OpenSSL 3 libcrypto를 씁니다

PureEdDSA는 미리 계산한 속성 다이제스트가 아니라 완전한 DER SET OF 서명 속성을 서명합니다. Ed25519는 이 입력을 SHA-512 문서 다이제스트와 짝짓고, Ed448은 512비트 SHAKE256 출력의 id-shake256-len을 씁니다

THPDFCMSSignOptions.SignerIdentifier는 개인 키 provider와 독립적으로 issuer-and-serial 또는 X.509 SubjectKeyIdentifier 정체 인코딩을 고릅니다. CMS SubjectKeyIdentifier signer를 보십시오

THPDFCallbackSignatureProvider는 애플리케이션 콜백을 맞춰주고, THPDFRemoteSignatureProvider는 원격 transport 주변에 상한 재시도, 취소, 입력, 서명 한도를 적용합니다

THPDFCSCSignatureProvider는 애플리케이션 공급 HTTP transport 위에서 CSC API v2 원격 서명을 구현합니다. OAuth token 갱신, 자격 증명·인증서 체인 탐색, 명시적 hash 고정 SAD 획득, 상한 순서 multisign 배치, 동기/비동기 signatures/signHash, 상한 폴링, RFC 3161 timestamp, 취소, content-addressed 멱등 replay가 포함됩니다

THPDFPKCS11SignatureProvider는 호출자 소유 인증 PKCS#11 세션과 개인 키 handle에 대해 RSA/ECDSA operation을 직렬화하면서 다이제스트별 RSA PKCS#1 v1.5, RSA-PSS, raw ECDSA 메커니즘을 고르고 키 소재를 내보내지 않습니다

THPDFWindowsKeyStorageSignatureProvider는 Microsoft 스마트카드 KSP나 이름 붙은 어떤 CNG 키 저장소 provider에서 영구 키를 열고, Impl Type 속성으로 소프트웨어 키를 선택적 거부하며, 무음/대화형 접근 policy를 적용하고, RSA PKCS#1 v1.5, RSA-PSS, ECDSA로 SHA-2/SHA3 다이제스트를 서명합니다

CreateFromKeyHandle은 기존 NCRYPT_KEY_HANDLE을 맞춰 받아 빌리거나 소유할 수 있어, 스마트카드, TPM, 벤더 HSM 인증을 이미 관리하는 애플리케이션이 수명 주기 통제를 유지합니다

HPDFCMSBuildSignedDataWithProvider는 THPDFCMSSignOptions.DigestAlgorithm가 고른 다이제스트로 분리 CMS를 만들고, HPDFCMSSignPDFStreamWithProvider는 상한 stream 복사, 스트리밍 범위 해싱, 고정 폭 seek patch로 기존 PDF 서명 placeholder를 서명하며 완전한 두 번째 PDF를 유지하지 않습니다

HPDFCMSEstimatePlaceholder는 명시적 서명 길이, provider 추정치, RSA 인증서 키 크기에서 부작용 없는 CMS 크기를 도출한 뒤 정확한 정적 CMS 형태와 설정된 동적 timestamp/counter-signature 예비분을 반영합니다

HPDFCMSSignPDFStreamWithProviderAutoSize와 HPDFCMSSignPDFStreamWithExternalSignerAutoSize는 서명 전에 작은 미서명 placeholder를 다시 만듭니다. 서명 후 재시도는 provider 능력 spcSafeSignRetry가 필요하고, 외부 signer 콜백은 서명을 반환한 뒤 절대 반복되지 않습니다

크기 옵션, 재구축 계약, 재시도 policy, 진단은 CMS placeholder auto-sizing을 보십시오

transport, 인가, 재시도, 폴링, 예산 계약은 CSC 원격 서명 provider를 보십시오

다이제스트 policy, RFC 3161, Seed Value, provider, 스트리밍 계약은 SHA3 PDF 서명과 timestamp를 보십시오

named-curve 인증서 요구, 곡선별 SHA-2/SHA3 매트릭스, 엄격 DER 인코딩, provider 이전 실패 생산자 검증은 Brainpool ECDSA 서명을 보십시오

provider 요청 계약

THPDFSignatureProviderRequest는 서명 알고리즘과 OID, 다이제스트 OID, 메시지/다이제스트 입력 종류, PSS salt 길이, 공개 키 또는 인증서, 키 식별자, operation 식별자, 서명, 알고리즘 컨텍스트를 실어 나릅니다

서명 provider는 비어 있지 않은 서명과 함께 spsValid를 반환하고 검증 provider는 spsValid나 spsInvalid를 씁니다. 미지원, malformed, provider 오류, 취소 결과는 구별된 채 유지됩니다