CMS SubjectKeyIdentifier 서명자

HotPDF는 issuer 이름과 인증서 일련번호 대신 X.509 subjectKeyIdentifier 확장으로 기본 CMS 서명자를 식별할 수 있습니다

식별자 선택

HPDFCMSDefaultOptions는 THPDFCMSSignOptions.SignerIdentifier를 cmsidIssuerAndSerialNumber로 설정하여 기존 호출자의 결정적 CMS 바이트 형태를 유지합니다

HPDFCMSBuildSignedDataEx, 공급자 기반 CMS 빌더, 플레이스홀더 추정, THPDFCMSSignOptions를 받는 고수준 서명 오버로드를 호출하기 전에 이 필드를 cmsidSubjectKeyIdentifier로 설정하세요

Options := HPDFCMSDefaultOptions(palBaseline_B_B);
Options.SignerIdentifier := cmsidSubjectKeyIdentifier;
CMS := HPDFCMSBuildSignedDataEx(KeyMaterial, DocumentDigest, Options);

인증서 요구 사항

서명자 인증서에는 OID 2.5.29.14인 X.509 확장이 정확히 하나 있어야 하고, 그 확장 값은 완전한 DER OCTET STRING을 담아야 합니다

확장이 없거나, 중복되거나, 비어 있거나, 잘리거나, malformed이면 HotPDF는 서명 전에 실패하며 공개 키에서 키 식별자를 합성하지 않습니다

SignerInfo SID가 키 식별자를 쓰더라도 SigningCertificateV2는 issuer 및 일련번호 필드로 같은 인증서를 계속 묶습니다

전송 형식 및 검증

키 식별자는 primitive IMPLICIT [0]로 인코딩되고, SignerInfo.version은 3이며, 생성된 단일 서명자 SignedData.version도 RFC 5652가 요구하는 대로 3입니다

검증은 SID 바이트가 내장된 인증서 확장과 일치할 것을 요구하며, 일치하지 않는 SID 값, 서명자 버전이 1이 아닌 issuer-and-serial 레코드, 서명자 버전이 3이 아닌 SKI 레코드, 바깥 버전이 3 미만인 SKI 컨테이너를 거부합니다

컴팩트한 식별자는 키 중심 인증서 저장소와 issuer 이름 인코딩을 보존하지 않는 워크플로에 유용하지만, 소비 쪽 소프트웨어가 RFC 5652 SKI 선택을 지원해야 합니다

HPDFCMSBuildCounterSignerInfo는 계속 issuer-and-serial 식별자를 사용합니다. 기본 서명자는 THPDFCMSSignOptions로 구성하세요

모던 시그니처 공급자와 CMS 다이제스트 알고리즘 일관성을 참고하세요