Электронная цифровая подпись в системе PDM Step Suite. Установка систем ЭЦП. Системы электронной цифровой подписи, страница 2

Здесь же можно создать новый контейнер ключей для сотрудника. Для этого надо выбрать систему ЭЦП и нажать кнопку «Создать».

Чтобы добавить открытый ключ в набор ключей сотрудника, нажмите кнопку «Добавить». При добавлении открытого ключа в базе данных сохраняется источник, из которого он был загружен.

«Свойства ключа» - выводит диалог, в котором указаны открытый ключ и источник, из которого данный ключ был загружен.

Сохранить копию источника – файл контейнера закрытого ключа или сертификат - на диске можно с помочью кнопки «Выгрузить».

«Удалить описание ключа» - удаляет открытый криптографический ключ из набора ключей сотрудника.

Создание и проверка электронной цифровой подписи в системе PDMStepSuite.

Для создания ЭЦП версии документа необходимом при утверждении статуса выбрать в диалоге «Статус» систему ЭЦП и нажать кнопку «Подписать». После этого диалог статуса будет выглядеть примерно следующим образом:

«Система» - система ЭЦП, которая была использована для создания ЭЦП версии документа.

«Хэш-функция» - значение хэш-функции подписываемой версии документа.

«Открытый ключ» - открытый криптографический ключ, с помощью которого можно проверить ЭЦП.

«Подпись» - ЭЦП версии документа.

Проверить ЭЦП можно с помощью кнопки «Проверить», после чего пользователю будет выведено сообщение с результатами проверки. Возможны следующие варианты сообщения:

«Данный ключ не является открытым криптографическим ключом пользователя, утвердившего статус» - открытый криптографический ключ не был внесен в библиотеку открытых криптографических ключей данного сотрудника или подписал другой сотрудник.

«Подпись верна» - при корректных данных;

«Неверный объект для подписи» - версия документа, к которому относится статус, отличается от версии документа, который был подписан;

«Неверная подпись» - при некорректном сочетании ЭЦП и открытого ключа;

«Ошибка во время выполнения программы!» - ошибка во время выполнения операции (в данном случае операции проверки ЭЦП).

Требования к библиотечным модулям систем ЭЦП.

Для встраивания в систему PDM Step Suite, библиотечный модуль системы ЭЦП должен реализовывать и экспортировать следующие функции:

int CreatePrivateKey(LPCSTR sFile, LPCSTR sPassword, CString &sOpenKey) – функция, реализующая создание или инициализацию нового пользователя в криптографической системе (создание закрытого ключа).

[in/out] sFile – для систем, которые реализуют хранение на диске, полный путь (путь и имя) файла нового контейнера ключей. Для систем, которые используют другую реализацию хранения (реестр, оперативная память и т.д.) должен быть NULL.

[in] sPassword – пароль для доступа к контейнеру ключей.

[out] sOpenKey – открытый ключ из пары ключей для подписи.

Возвращаемые значения:

0 – при удачном выполнении, иначе 1.

int Sign(LPCSTR sFile, LPCSTR sPassword, char* pBuffer, long lBufferLen,

CString &sHash, CString &sOpenKey, CString &sSignature) – функция, реализующая создание ЭЦП.

[in/out] sFile – для систем, которые реализуют хранение на диске, полный путь (путь и имя) файла контейнера ключей. Для систем, которые используют другую реализацию хранения (реестр, оперативная память и т.д.) должен быть NULL.

[in] sPassword – пароль для доступа к контейнеру ключей.

[in] pBuffer – буфер для подписи.

[in] lBufferLen – размер буфера.

[out] sHash – значение вычисленной хэш-функции pBuffer.

[out] sOpenKey – открытый ключ из пары ключей для подписи.

[out] sSignature – подпись.

Возвращаемые значения:

0 – при удачном выполнении, иначе 1.

int CheckSign(char *pszBuffer, long lBufferLen,

CString sHash, CString sOpenKey, CString sSignature) – функция, реализующая проверку ЭЦП.

[in] pBuffer – буфер, подпись которого необходимо проверить.

[in] lBufferLen – размер буфера.

[in] sHash – значение хэш-функции, полученной при вызове функции Sign(…).

[in] sOpenKey – открытый ключ из пары ключей для подписи, полученный при вызове функции Sign(…).

[in] sSignature – подпись, которую необходимо проверить.

Возвращаемые значения:

0 – при удачном выполнении;

1 – при ошибке во время выполнения;

2 – при различных значениях хэш-функций (переданного функции и вновь вычисленного);

3 – при неверной подписи.

int GetPublicKey (    LPCSTR sFile, LPCSTR sPassword, CString &sOpenKey ) – функция, реализующая получение открытого ключа из пары ключей для подписи.

[in/out] sFile – для систем, которые реализуют хранение на диске, полный путь (путь и имя) файла контейнера ключей. Для систем, которые используют другую реализацию хранения (реестр, оперативная память и т.д.) должен быть NULL.

[in] sPassword – пароль для доступа к контейнеру ключей.

[out] sOpenKey – открытый ключ из пары ключей для подписи.