ICertProvider.OpenVerifier

Синтаксис Fore

OpenVerifier(Name: String; Data: IIOStream): ICertVerifier;

Синтаксис Fore.NET

OpenVerifier(Name: String; Data: System.IO.Stream): Prognoz.Platform.Interop.Metabase.ICertVerifier;

Параметры

Name. Наименование контролера.

Data. Поток, связанный с сертификатом.

Описание

Метод OpenVerifier возвращает контролер, осуществляющий проверку цифровой подписи с помощью сертификата, который передается в указанном потоке.

Пример Fore

Для выполнения примера в базе репозитория должен быть сохранен сертификат безопасности с идентификатором «sp».

Function SampleVerifier(Code: String; Signature: String): Boolean;
Var
    MB: IMetabase;
    Cert: ICertificate;
    Package: ISecurityPackage;
    Provider: ICertProvider;
    MStream: IMemoryStream;
    Verifier: ICertVerifier;
    Result: Boolean;
Begin
    MB := MetabaseClass.Active;
    //Получение сертификата
    Cert := MB.Security.Policy.Certificates.FindById("sp");
    MStream := New MemoryStream.Create;
    //Загрузка данных сертификата в поток
    Cert.GetData(MStream);
    MStream.Position := 0;
    //Получение контролера
    Package := New StandardSecurityPackage.Create;
    Provider := Package.CertProvider;
    Verifier := Provider.OpenVerifier("sp", MStream);
    //Проверка цифровой подписи
    Result := Verifier.Verify(Code, Signature);
    Return Result;
End Function SampleVerifier;

Указанная функция предназначена для проверки цифровой подписи у блока данных. Случайный блок данных и блок, подписанный цифровой подписью, передаются в качестве входных параметров. Сертификат для проверки будет получен из базы репозитория и передан через поток. Результатом функции является логическое значение, указывающее соответствует ли цифровая подпись переданному случайному блоку данных.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Metabase;

Function SampleVerifier(MB: IMetabase; Code: String; Signature: String): Boolean;
Var
    Cert: ICertificate;
    Package: ISecurityPackage = New StandardSecurityPackageClass();
    Provider: ICertProvider;
    MStream: MemoryStream = New MemoryStream();
    Verifier: ICertVerifier;
    Result: Boolean;
Begin
    //Получение сертификата
    Cert := MB.Security.Policy.Certificates.FindById("sp");
    //Загрузка данных сертификата в поток
    Cert.GetData(MStream);
    MStream.Position := 0;
    //Получение контролера
    Provider := Package.CertProvider;
    Verifier := Provider.OpenVerifier("sp", MStream);
    //Проверка цифровой подписи
    Result := Verifier.Verify(Code, Signature);
    Return Result;
End Function;

См. также:

ICertProvider