- Notifications
You must be signed in to change notification settings - Fork0
maxirmx/DeSign
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
МодульCadesSigner
предоставляет функции для интеграции поддержки Электронной Цифровой Подписи ("ЭЦП") с использованием алгоритмов, установленных ГОСТ Р 34.10/11/12.
Каталог
CadesSigner
: модульCadesSigner
и зависимости. Каталог включает в себя несколько несколько необходимых файлов из библиотекиJedi jwa. Этти файлы имеют префиксJedi
и они не требуются, если Jedi установлена в полном объёме.Каталог
SampleApp
: демонстрационное\тестовое приложение.Каталог
Tools
: вспомогательные артефакты разработки, не представлют интереса при интеграции модуля.
Модуль разрабатывался и тестировался с исполльзованиемCryptoPro CSP.Соответственно, для сборки и использования модуля CadesSign необходимо установитьКриптоПро ЭЦП SDK
Новые версии CryptoPro CSP устанавливают свои библиотеки врежиме изоляции, который не поддержаивается старыми средами разработки, такими как Delphi7 (кажется это так???).Для работы приложений, разработанных на Delphi7, необходим установка "side-by-side". Говоря по простому, после установки SDK нужно найти библиотекуcades.dll
и скопировать её в каталог, где будет размещено разрабатываемое приложение.
T20Bytes
: Массив из 20 байтов, предназначенный для хранения SHA-1 хеш-суммы (отпечатка) сертификата.TCertOption
: Запись, представляющая параметры сертификата.FriendlyName
- "человеческое" имя сертификатв. Обычно ФИО, но не обязательно. Может быть разным на разных компьютерах, может меняться пользователемThumbprint
- уникальный идентификатор ("отпечаток") сертификата всегда одинаковый, в том числе на разных компьютерах.ThumbprintStr
- читаемое представление "отпечатка" в виде строки шестнадцатиричных символовStartDateTime
- дата/время начала действия сертификатаEndDateTime
- дата/время окончания действия сертификата
ECadesSignerException
: Исключение, используемое для обработки ошибок при работе с сертификатами и криптографическими операциями.ErrorCode
- код ошибки из Windows API, который указывает на причину сбоя.
functionGetCertificates(const Prefix: string): TList;
Возвращает список сертификатов, доступных в системе, на основе указанного префикса идентификатора криптографического алгоритма ("OID").Вероятно, префикс всегда будет '1.2.643', где1: код стандартов International Organization for Standardization(ИСО).2: означает, что стандарт разработан организацией членом ИСО643: код страны - Россия
Параметры:
Prefix
: Строка, которая используется для фильтрации сертификатов по OID.
Результат:
Возвращает список сертификатов в виде
TList
, содержащий объектыTCertOption
.
procedureInitializeCades;
Загружает
. Эта библиотека нужна при вызовеcades.dll
и она грузится динамически с помощьюSignFile/SignFileStr
. См. выше соображения относительно установки.LoadLibrary
procedureSignFile(const FilePath: string;const SigPath: string;const Thumbprint: T20Bytes;const Password: string);
Создает ЭЦП для файла, используя указанный сертификат.
Параметры:
FilePath
: Полный путь к файлу, который нужно подписать.SigPath
: Полный путь к файлу, куда нужно поместить ЭЦП.Thumbprint
: Отпечаток (thumbprint) сертификата в форматеT20Bytes
, который будет использоваться для подписи.Password
: Пароль для доступа к сертификату.
procedureSignFileStr(const FilePath: string;const SigPath: string;const ThumbprintStr: string;const Password: string);
Создает цифровую подпись для файла, используя указанный сертификат.
Параметры:
FilePath
: Полный путь к файлу, который нужно подписать.SigPath
: Полный путь к файлу, куда нужно поместить ЭЦП.ThumbprintStr
: Читаемое представление отпечатка (thumbprint) сертификата в виде строки шестнадцатиричных символов.Password
: Пароль для доступа к сертификату.
При возникновении ошибок во время операций с сертификатами и файлами модульCadesSigner
генерирует исключения типаECadesSignerException
, которые содержат сообщение об ошибке и код ошибки. Например, ошибкаERR_OPEN_STORE_FAILED
указывает на невозможность открытия хранилища сертификатов.
Сформированную подпись можно проверить с помощьютестовой службы проверки подписи и сертификатов «КриптоПро SVS».
Этот README описывает только публичный интерфейс модуля. Подробная документация по внутренним методам, используемым для обработки файлов и криптографических операций, доступна в исходном коде.