КриптоПро .NET
Search Results for

    Показать/Скрыть содержание

    Создание тестового приложения

    В данном разделе рассмотрен процесс создания тестового консольного приложения, готового к использованию LibCore.

    Создание проекта

    Примечание

    Для выполнения следующих действий необходима установка одной из поддерживаемых версийdotnet sdk:

    • dotnet sdk 6.0
    • dotnet sdk 8.0

    Создадим папку проекта:

    mkdir TestConsole
    cd TestConsole
    

    Для создания консольного проекта с использованием dotnet sdk необходимо выполнить команду:

    dotnet new console --use-program-main
    

    Создание локального источника nuget пакетов

    Для создания локального источника пакетов создадим папку local-nuget в папке проекта

    mkdir packages-local
    

    Переместим .nuget файлы из комплекта поставики в папку packages-local.

    Создадим локальный файл конфигурации nuget.config со следующим содержимым:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="local" value="packages-local" />
      </packageSources>
    </configuration>
    
    Примечание

    Здесь и далее под XXXX.XX.XX подразумевается текущая версии nuget пакетов.

    Структура папки проекта должна выглядеть следующим образом:

    TestConsole
    │   nuget.config
    │   Program.cs
    │   TestConsole.csproj
    │
    └───packages-local
            CryptoPro.Net.Security.XXXX.XX.XX.nupkg
            CryptoPro.Security.Cryptography.XXXX.XX.XX.nupkg
            CryptoPro.Security.Cryptography.Xml.XXXX.XX.XX.nupkg
            CryptoPro.Security.Cryptography.Pkcs.XXXX.XX.XX.nupkg
    

    Использование nuget пакетов в проекте

    Для использования пакетов из локального источника их нужно указать в csproj тестового проекта:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
      </PropertyGroup>
      
      <ItemGroup>
        <PackageReference Include="CryptoPro.Security.Cryptography" Version="XXXX.XX.XX" />
        <PackageReference Include="CryptoPro.Net.Security" Version="XXXX.XX.XX" />
        <PackageReference Include="CryptoPro.Security.Cryptography.Xml" Version="XXXX.XX.XX" />
        <PackageReference Include="CryptoPro.Security.Cryptography.Pkcs" Version="XXXX.XX.XX" />
      </ItemGroup>
    
    </Project>
    
    Важно!

    При использовании dotnet sdk 6.0 необходимо указать net6.0 в узле TargetFramework.

    Примечание

    В проект можно включать только используемые пакеты. Так, если вам необходимо только вычисление хэш-значений, то можно ограничиться только использованием пакета CryptoPro.Security.Cryptography.

    Создание и запуск тестового приложения

    Изменим Program.cs следующим образом для написания программы, вычисляющей хэш-значение для массива [0], состоящего из одного нулевого байта, в соответствии с алгоритмом ГОСТ 34.11-2012 - 256 бит:

    namespace TestConsole;
    
    // Добавляем использование пространства имён, 
    // содержащего интересующий нас класс `Gost3411_2012_256`.
    using CryptoPro.Security.Cryptography;
    
    class Program
    {
        static void Main(string[] args)
        {
            // Создаём объект криптопровайдер для хэширования.
            using (var hash = Gost3411_2012_256.Create())
            {
                // Вычисляем хэш-значение от массива.
                var hashValue = hash.ComputeHash([0]);
    
                // Выводим хэш-значение в виде hex-строки.
                Console.WriteLine($"> Hello, crypto [{Convert.ToHexString(hashValue)}]!");
            }
        }
    }
    

    Запустим проект:

    dotnet run
    

    Результат работы программы:

    > Hello, crypto [6F7305265DC0937440881F9493EF1260F61A9D47742D369E952D41BDB2A9EDD1]!
    
    В этом разделе
    Наверх Generated by DocFX