Протокол e-port дилер, версия 2.1

Получение подписанного ответа от сервера e-port.

1. Текстовые данные, которые необходимо подписать.

RESULT
id=122
code=2000
omsg=Заявка принята к исполнению.
cmsg=Заявка принята к исполнению.
time=29-03-2005 20:00:26 +0300

RESULT[\r\n]
id=122[\r\n]
code=2000[\r\n]
omsg=Заявка принята к исполнению.[\r\n]
cmsg=Заявка принята к исполнению.[\r\n]
time=29-03-2005 20:00:26 +0300[\r\n]

При проверке подписи необходимо учитывать кодировку текста, формат переноса строк, общую длину текста. Также обратите внимание на завершающий перевод строки в конце подписываемого документа. В данном примере в качестве переноса строки используется сочетание символов \r\n. Длина данного текста - 129. В конце текста - один перевод строки. Кодировка - win1251.

В случае изменения или ошибки в любом из этих параметров подпись будет иметь совершенно другое значение!

2. Открытый ключ, используемый для проверки подписи.

Процедура получения сертификата для проверки подписи описывается в документе "http://www.e-port.ru/dev/2/info.html (п. "Сертификат открытого ключа ЭЦП"). В данном документе Вы также можете найти некоторые примеры реализации (п. "Примеры исходного кода").

В зависимости от используемой Вами библиотеки Вам может потребоваться сам сертификат или открытый ключ, хранящийся в нем. Для извлечения ключа вы можете воспользоваться командой Открытый ключ извлекается из сертификата следующей командой:

 openssl x509 -pubkey -noout 
Сертификат при этом посылается на вход команды.

3. Сформированные подписи.

Подписи, сгенерированные с помощью закрытого ключа e-port для текста из пункта 1, выглядят так:

По алгоритму MD5, в формате base64:

Snq0DctZLyfFfzJyd1jRq6KYZXLaVjrQCDv4B+XQd65hW/UKtfo0/3XfrzCtUKIUUD3d2dW/lExGvbk
BsGZ2DjONsGGYRdbtpxYZfCtEkkjj0meFfYwN7yIdhVY6WTh4x+lqrt0fsTs6qINwPbIHrw6ifGEEOk
UHJzJ5Co8M2tM=

По алгоритму MD5, в формате hex:

4a7ab40dcb592f27c57f32727758d1aba2986572da563ad0083bf807e5d077ae615bf50ab5fa34f
f75dfaf30ad50a214503dddd9d5bf944c46bdb901b066760e338db0619845d6eda716197c2b4492
48e3d267857d8c0def221d85563a593878c7e96aaedd1fb13b3aa883703db207af0ea27c61043a4
5072732790a8f0cdad3

4. Самопроверка.

На основе пп. 1,2 и 3 Вы можете провести самопроверку используемой Вами процедуры проверки подписи. А именно, проверка подписи от данных из п.1. c ключом из п.2. должна быть успешной.