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

Формирование подписанного (ЭЦП) запроса к серверу e-port.

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

OPERATION
id=071127006641252
checkid=641252
product=5725
value=100.00RUR
account=9165556677
timeout=15
cnfmode=1

OPERATION[\r\n]
id=071127006641252[\r\n]
checkid=641252[\r\n]
product=5725[\r\n]
value=100.00RUR[\r\n]
account=9165556677[\r\n]
timeout=15[\r\n]
cnfmode=1[\r\n]

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

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

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC+gD1T4ytZIvq3OWU3TBc3FNqEN1pCk3bVdRIH7PoE7fSvyjBR
dtFdsToPQEIkURuFdqDzdWnkEmA+boFYJ9TUMokbx7RYt5jCGE7/S9/G/6DFCVLF
C5I6P2uengppDNBjyWaAiYMkvJLVIo7E+S8Y2GAVrluy/YKvXLVzijBSPwIDAQAB
AoGAUEjzj7sZtcNMLpP92EQ1NH2Rak95tr03Q9bG9pgk9pbinIN1wZ91tSrP8UV/
mpakJqdMRc6iBgDIlwczc9e1lc0cSMaYp+IN4J4Td/ZBxG/hdguE8hcL+3GP4h6I
aX39yXsLxIlgv/BRvTktVAPNsFFUEvZ6JMbMBlMMLrjeuwECQQD4OgWMXQ+NR5eA
b19pOSin+qVb+XALqUJu9lhRvRssv5cUwGKMRGvgRpaEOnJCQ0OP2zOwkfojIuvT
6DcShruhAkEAxHdxjo9kzD4V1Pi+AtDI0IgTUn0OmFdtXQ0ZFO0YbbJ8nekdYqtN
JiKFemFmPgrTjMUOYhCBHwdeG18SOs9B3wJBANG7xKBaqR9IVFwyvj0cDJwSDdHu
qptPwlAbWXiG/gULRM5F136I+VUgj2DeOVh/mQBdyAjy7pTtlrEPziibKsECQQCL
NvQhh5xuWaQQuH2z8wwJMBM5BWKdMn5NTGW0fVktCifhoXjwHOBbIGUi1fekCPnk
qxHJDVbhjM/zZ0e8onZTAkEA3quKkqMHnjbDB8f0dhpsl21KfoRrEElvd3PvYW1w
KXYxSIA0fBzNLG2DbCPaaiqQYukBOVRRFZbWW5zdg0gbLQ==
-----END RSA PRIVATE KEY-----

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

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

WeOxhkSMlZDXqc1D4a/OQz2875FPPkXRShvxgc/DFEYktX3N1RgI6WqgNSXzqoDlt8MUpu7yFE0bkjC
EpWoQXEkaQSUMoalwPS27gHxNooVKB1otpLjEQbqYMywwYf5Yz3NhxQCHgiIfNbdvqbqDKEn0SZV6Bb
NXBSunFPPjRew=

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

59e3b186448c9590d7a9cd43e1afce433dbcef914f3e45d14a1bf181cfc3144624b57dcdd51808e
96aa03525f3aa80e5b7c314a6eef2144d1b923084a56a105c491a41250ca1a9703d2dbb807c4da2
854a075a2da4b8c441ba98332c3061fe58cf7361c5008782221f35b76fa9ba832849f449957a05b
357052ba714f3e345ec

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

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

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

Текст из пункта 1 подписывается при помощи закрытого ключа из пункта 2.

Полученная подпись кодируется в base64.

Подпись и длина исходного текста вставляются в соответствующие поля http-заголовка, сам текст (без каких-либо изменений!) присоединяется телом запроса.

Для приведённого примера и ключа http-запрос будет иметь следующий вид:
POST https://dealer.e-port.ru/cp/fe HTTP/1.0
Content-type: text/plain; charset=koi8-r
Content-length: 121
X-Eport-Auth: point=123; sign=WeOxhkSMlZDXqc1D4a/OQz2875FPPkXRShvxgc/DFEYktX3N1RgI6WqgNSXzqoDlt8MUpu7yFE 0bkjCEpWoQXEkaQSUMoalwPS27gHxNooVKB1otpLjEQbqYMywwYf5Yz3NhxQCHgiIfNbdvqbqDKEn0S ZV6BbNXBSunFPPjRew=; encoding="base64"

OPERATION
id=071127006641252
checkid=641252
product=5725
value=100.00RUR
account=9165556677
timeout=15
cnfmode=1