HPDFEvaluateCMSSignerQCStatements Function

CMS 서명 데이터 속 signer 인증서가 담은 eIDAS qualified-certificate statement와 PSD2 statement를 읽습니다

선언

function HPDFEvaluateCMSSignerQCStatements(const CMSDER: TBytes;
  out Info: THPDFQCStatementDescriptor; out CertCount: Integer): boolean;

유닛

HPDFSignVerify

매개변수

매개변수목적
CMSDERDER로 인코딩한 CMS SignedData. PDF 서명의 /Contents가 대표적인 예다
Infosigner 인증서의 ETSI EN 319 412-5 statement(QcCompliance, QcSSCD, QcType, QcLimitValue, QcPDS)와 ETSI TS 119 495 PSD2 statement를 받습니다
CertCountCMS 데이터에 들어 있는 인증서 개수를 받습니다. 데이터를 파싱하지 못하면 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;

사용 참고 사항

관련 API