ICertProvider.OpenSigner

Синтаксис Fore

OpenSigner(Name: String; Data: IIOStream): ICertSigner;

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

OpenSigner(Name: String; Data: System.IO.Stream): Prognoz.Platform.Interop.Metabase.ICertSigner;

Параметры

Name. Наименование подписчика.

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

Описание

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

Пример Fore

Function SampleSigner(Code: String; PathKey: String): String;
Var
    Package: ISecurityPackage;
    Provider: ICertProvider;
    FStream: IFileStream;
    Signer: ICertSigner;
    Signature: String;
Begin
    Package := New StandardSecurityPackage.Create;
    Provider := Package.CertProvider;
    //Сопоставление случайного значения блоку данных
    Provider.Code(Math.RandBetweenI(Integer.MinValue, Integer.MaxValue).ToString) := Code;
    FStream := New FileStream.Create(PathKey, FileOpenMode.Read, FileShare.DenyNone);
    //Получение подписчика
    Signer := Provider.OpenSigner("sp", FStream);
    //Подпись цифровой подписью
    Signature := Signer.Sign(Code);
    Dispose FStream;
    Return Signature;
End Function SampleSigner;

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

Пример Fore.NET

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

Imports System.IO;
Imports Prognoz.Platform.Interop.MathFin;
Imports Prognoz.Platform.Interop.Metabase;

Function SampleSigner(Code: String; PathKey: String): String;
Var
    Package: ISecurityPackage = New StandardSecurityPackageClass();
    CMath: Prognoz.Platform.Interop.MathFin.MathClass = New Prognoz.Platform.Interop.MathFin.MathClass();
    Provider: ICertProvider;
    FStream: FileStream = New FileStream(PathKey, FileMode.Open, FileAccess.Read);
    Signer: ICertSigner;
    Signature: String;
Begin
    Provider := Package.CertProvider;
    //Сопоставление случайного значения блоку данных
    Provider.Code[CMath.RandBetweenI(Integer.MinValue, Integer.MaxValue).ToString()] := Code;
    //Получение подписчика
    Signer := Provider.OpenSigner("sp", FStream);
    //Подпись цифровой подписью
    Signature := Signer.Sign(Code);
    Return Signature;
End Function;

См. также:

ICertProvider