Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Delphi CADES signing

License

NotificationsYou must be signed in to change notification settings

maxirmx/DeSign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 и скопировать её в каталог, где будет размещено разрабатываемое приложение.

Публичное API

Типы

  • T20Bytes: Массив из 20 байтов, предназначенный для хранения SHA-1 хеш-суммы (отпечатка) сертификата.

  • TCertOption: Запись, представляющая параметры сертификата.

    • FriendlyName - "человеческое" имя сертификатв. Обычно ФИО, но не обязательно. Может быть разным на разных компьютерах, может меняться пользователем

    • Thumbprint - уникальный идентификатор ("отпечаток") сертификата всегда одинаковый, в том числе на разных компьютерах.

    • ThumbprintStr - читаемое представление "отпечатка" в виде строки шестнадцатиричных символов

    • StartDateTime - дата/время начала действия сертификата

    • EndDateTime - дата/время окончания действия сертификата

Исключения

  • ECadesSignerException: Исключение, используемое для обработки ошибок при работе с сертификатами и криптографическими операциями.

    • ErrorCode - код ошибки из Windows API, который указывает на причину сбоя.

Функции

GetCertificates

functionGetCertificates(const Prefix: string): TList;

Возвращает список сертификатов, доступных в системе, на основе указанного префикса идентификатора криптографического алгоритма ("OID").Вероятно, префикс всегда будет '1.2.643', где1: код стандартов International Organization for Standardization(ИСО).2: означает, что стандарт разработан организацией членом ИСО643: код страны - Россия

  • Параметры:

    • Prefix: Строка, которая используется для фильтрации сертификатов по OID.

  • Результат:

    • Возвращает список сертификатов в видеTList, содержащий объектыTCertOption.

InitializeCades

procedureInitializeCades;

Загружаетcades.dll. Эта библиотека нужна при вызовеSignFile/SignFileStr и она грузится динамически с помощьюLoadLibrary. См. выше соображения относительно установки.

InitializeCades

procedureFinalizeCades;

Выгружает cades.dll

SignFile

procedureSignFile(const FilePath: string;const SigPath: string;const Thumbprint: T20Bytes;const Password: string);

Создает ЭЦП для файла, используя указанный сертификат.

  • Параметры:

    • FilePath: Полный путь к файлу, который нужно подписать.

    • SigPath: Полный путь к файлу, куда нужно поместить ЭЦП.

    • Thumbprint: Отпечаток (thumbprint) сертификата в форматеT20Bytes, который будет использоваться для подписи.

    • Password: Пароль для доступа к сертификату.

SignFileStr

procedureSignFileStr(const FilePath: string;const SigPath: string;const ThumbprintStr: string;const Password: string);

Создает цифровую подпись для файла, используя указанный сертификат.

  • Параметры:

    • FilePath: Полный путь к файлу, который нужно подписать.

    • SigPath: Полный путь к файлу, куда нужно поместить ЭЦП.

    • ThumbprintStr: Читаемое представление отпечатка (thumbprint) сертификата в виде строки шестнадцатиричных символов.

    • Password: Пароль для доступа к сертификату.

Примеры использования

Пример использования публичного API находится в файде DeSign.dpr

Ошибки

При возникновении ошибок во время операций с сертификатами и файлами модульCadesSigner генерирует исключения типаECadesSignerException, которые содержат сообщение об ошибке и код ошибки. Например, ошибкаERR_OPEN_STORE_FAILED указывает на невозможность открытия хранилища сертификатов.

Проверка подписи

Сформированную подпись можно проверить с помощьютестовой службы проверки подписи и сертификатов «КриптоПро SVS».


Этот README описывает только публичный интерфейс модуля. Подробная документация по внутренним методам, используемым для обработки файлов и криптографических операций, доступна в исходном коде.


[8]ページ先頭

©2009-2025 Movatter.jp