|
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.
В случае изменения или ошибки в любом из этих параметров подпись будет иметь совершенно другое значение!
Процедура получения сертификата для проверки подписи описывается в документе "http://www.e-port.ru/dev/2/info.html (п. "Сертификат открытого ключа ЭЦП"). В данном документе Вы также можете найти некоторые примеры реализации (п. "Примеры исходного кода").
В зависимости от используемой Вами библиотеки Вам может потребоваться сам сертификат или открытый ключ, хранящийся в нем. Для извлечения ключа вы можете воспользоваться командой Открытый ключ извлекается из сертификата следующей командой:
openssl x509 -pubkey -nooutСертификат при этом посылается на вход команды.
По алгоритму MD5, в формате base64:
Snq0DctZLyfFfzJyd1jRq6KYZXLaVjrQCDv4B+XQd65hW/UKtfo0/3XfrzCtUKIUUD3d2dW/lExGvbk BsGZ2DjONsGGYRdbtpxYZfCtEkkjj0meFfYwN7yIdhVY6WTh4x+lqrt0fsTs6qINwPbIHrw6ifGEEOk UHJzJ5Co8M2tM=
По алгоритму MD5, в формате hex:
4a7ab40dcb592f27c57f32727758d1aba2986572da563ad0083bf807e5d077ae615bf50ab5fa34f f75dfaf30ad50a214503dddd9d5bf944c46bdb901b066760e338db0619845d6eda716197c2b4492 48e3d267857d8c0def221d85563a593878c7e96aaedd1fb13b3aa883703db207af0ea27c61043a4 5072732790a8f0cdad3
На основе пп. 1,2 и 3 Вы можете провести самопроверку используемой Вами процедуры проверки подписи. А именно, проверка подписи от данных из п.1. c ключом из п.2. должна быть успешной.