OpenSigner(Name: String; Data: IIOStream): ICertSigner;
OpenSigner(Name: String; Data: System.IO.Stream): Prognoz.Platform.Interop.Metabase.ICertSigner;
Name. Наименование подписчика.
Data. Поток, связанный с закрытым ключом сертификата.
Метод OpenSigner возвращает подписчик для сертификата, закрытый ключ которого передается в указанном потоке.
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.
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;
См. также: