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;매개변수
| CMSBytes | DER 인코딩된 분리형 CMS SignedData입니다 |
|---|---|
| Data | 서명 시점에 다이제스트된 것과 같은 원본 커버 바이트입니다 |
| SignerIndex | 검증할 0 기반 서명자입니다 |
| SignerCount | CMS에서 발견된 서명자 수를 받습니다 |
| NativeError | 대략적인 실패 유형을 받습니다. 13은 잘못된 입력, 50은 다이제스트 문제, 나머지는 실패한 프리미티브의 CNG 상태입니다 |
반환 값
| 0 | CMS는 파싱되지만 서명 알고리즘이 최신 집합에 없어 이 검증기가 책임지지 않습니다 |
|---|---|
| 1 | 서명자가 성공적으로 검증되었습니다 |
| 2 | 파싱, 다이제스트 또는 프리미티브 단계가 실패했습니다. 이유는 NativeError에 있습니다 |
비고
메시지 다이제스트 비교는 상수 시간으로 수행되고, PSS 매개변수는 RFC 4056을 따라 SignerInfo와 같은 다이제스트를 지정해야 합니다. 결과 0은 호출자에게 blob을 플랫폼 검증기에 넘기라고 알려 줍니다
참고 항목
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer