PLVerifyModernDetachedCMS

Kryptografia, podpisy cyfrowe

Opis

Weryfikuje podpisującego nowoczesnego odłączonego CMS-a względem oryginalnych bajtów danych

Weryfikator parsuje SignedData, porównuje skrót atrybutów podpisanych z danymi, a potem waliduje surowy podpis kluczem publicznym certyfikatu podpisującego: czysto-pascalowe Ed25519, ECDSA po parametrach krzywej albo RSA PKCS#1 i PSS przez CNG

Składnia

Delphi

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

Parametry

CMSBytesOdłączone SignedData CMS kodowane w DER
DataOryginalne pokryte bajty, to samo wejście, które haszowano przy podpisie
SignerIndexPodpisujący od zera do zweryfikowania
SignerCountPrzyjmuje liczbę podpisujących znalezionych w CMS
NativeErrorPrzyjmuje zgrubną klasę błędu: 13 dla zniekształconego wejścia, 50 dla kłopotów ze skrótem albo status CNG prymitywu, który zawiózł

Wartości zwracane

0CMS parsuje, ale jego algorytm podpisu nie leży w nowoczesnym zbiorze, więc ten weryfikator nie ponosi odpowiedzialności
1Podpisujący zweryfikowany pomyślnie
2Krok parsowania, skrótu albo prymitywu zawiózł; NativeError niesie powód

Uwagi

Porównanie skrótu komunikatu idzie w czasie stałym, a parametry PSS muszą wskazywać ten sam skrót co SignerInfo, w duchu RFC 4056; wynik 0 mówi wywołującemu, żeby przekazał blob weryfikatorowi platformy

Zobacz również

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer