Создание тестового приложения
В данном разделе рассмотрен процесс создания тестового консольного приложения, готового к использованию LibCore.
Создание проекта
Примечание
Для выполнения следующих действий необходима установка одной из поддерживаемых версийdotnet sdk
:
Создадим папку проекта:
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]!