PLVerifyModernDetachedCMS

암호학, 디지털 서명

설명

최신 분리형 CMS의 서명자를 원본 데이터 바이트에 대해 검증합니다

검증기는 SignedData를 파싱하고, 서명된 속성의 메시지 다이제스트를 데이터와 대조한 뒤, 원시 서명을 서명자 인증서의 공개 키로 검증합니다. 순수 Pascal Ed25519, 곡선 매개변수 위의 ECDSA, 또는 CNG를 통한 RSA PKCS#1과 PSS입니다

구문

Delphi

Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
  SignerIndex: Integer; Out SignerCount: Integer;
  Out NativeError: Cardinal): Integer;

매개변수

CMSBytesDER 인코딩된 분리형 CMS SignedData입니다
Data서명 시점에 다이제스트된 것과 같은 원본 커버 바이트입니다
SignerIndex검증할 0 기반 서명자입니다
SignerCountCMS에서 발견된 서명자 수를 받습니다
NativeError대략적인 실패 유형을 받습니다. 13은 잘못된 입력, 50은 다이제스트 문제, 나머지는 실패한 프리미티브의 CNG 상태입니다

반환 값

0CMS는 파싱되지만 서명 알고리즘이 최신 집합에 없어 이 검증기가 책임지지 않습니다
1서명자가 성공적으로 검증되었습니다
2파싱, 다이제스트 또는 프리미티브 단계가 실패했습니다. 이유는 NativeError에 있습니다

비고

메시지 다이제스트 비교는 상수 시간으로 수행되고, PSS 매개변수는 RFC 4056을 따라 SignerInfo와 같은 다이제스트를 지정해야 합니다. 결과 0은 호출자에게 blob을 플랫폼 검증기에 넘기라고 알려 줍니다

참고 항목

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer