HPDFEvaluateCMSSignerQCStatements Function
CMS 서명 데이터 속 signer 인증서가 담은 eIDAS qualified-certificate statement와 PSD2 statement를 읽습니다
선언
function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;
유닛
HPDFSignVerify
매개변수
| 매개변수 | 목적 |
|---|---|
CMSDER | DER로 인코딩한 CMS SignedData. PDF 서명의 /Contents가 대표적인 예다 |
Info | signer 인증서의 ETSI EN 319 412-5 statement(QcCompliance, QcSSCD, QcType, QcLimitValue, QcPDS)와 ETSI TS 119 495 PSD2 statement를 받습니다 |
CertCount | CMS 데이터에 들어 있는 인증서 개수를 받습니다. 데이터를 파싱하지 못하면 0입니다 |
반환 값
CMS 데이터를 파싱하지 못하거나 읽을 수 있는 인증서가 없으면 false이고 그때 Info는 비어 있습니다. QC statement가 없는 인증서라도 true를 반환하며 Info.HasQCStatements는 false로 남습니다
signer 인증서
SignerInfo가 가리키는 인증서를 평가합니다. 일치하는 인증서가 없으면 맨 처음 들어 있는 인증서를 쓰는데, CMS 작성 도구가 signer를 넣는 자리가 바로 여기입니다
예제
var
Info: THPDFQCStatementDescriptor;
CertCount: Integer;
begin
if HPDFEvaluateCMSSignerQCStatements(CMSDER, Info, CertCount) then
begin
if Info.QCCompliant and Info.QCSSCD then
Writeln('Qualified certificate on a qualified device');
if Info.HasPSD2Statement then
Writeln('PSD2 NCA: ', Info.PSD2NCAName, ' / ', Info.PSD2NCAId);
end;
end;
사용 참고 사항
- 이 함수는 인증서 내용만 살펴봅니다. 서명, 인증서 체인, 발급자의 trusted-list 등재 상태는 검증하지 않습니다
- 로드한 문서의 서명이라면
THotPDF.GetLoadedSignatureQCStatements가 CMS 데이터를 먼저 꺼내지 않고도 같은 statement를 반환합니다