The translation was generated automatically and may contain mistakes

How to check the signature of the answer

The payment system generates a signature response to Request using OpenSSL (RSA ALGORITHM) using a private system key.

When processing the response, you need to verify the authenticity of the signature using the public key that you received when concluding the contract.

To check the response signature:

  1. 1.
    decode the signature received in the response field signature , from BASE64 to binary.
  2. 2.
    Check the signature with the response data in the field data and public key. For example, with OpenSSL:

Call OpenSSL to verify the signature

?2?The command line $ openssl dgst -verify /tmp/rsa.pub -keyform PEM -sha1 -signature /tmp/sign -binary /tmp/data

* `/tmp/rsa.pub` — публичный ключ системы. * `/tmp/sign` — подпись ответа `signature` в бинарном виде, её нужно декодировать из формата BASE64. * `/tmp/data` — данные ответа `data` в формате BASE64. ## Пример проверки подписи ответа **Пример ответа** ```bash { "version":"2-03-73","data":"eyJoZWFkZXIiOnsic3RhdHVzIjoiRVJST1IiLCJ0cyI6IjE3MjE2NjM3NTUiLCJlcnJvciI6eyJjb2RlIjoiRVJSX05PVF9GT1VORCIsIm1lc3NhZ2UiOiLQl9Cw0L/RgNC+0YjQtdC90L3QsNGPINGC0YDQsNC90LfQsNC60YbQuNGPINC90LUg0L3QsNC50LTQtdC90LAiLCJlcnJvcl9pZCI6IkUxMDlCMjc4LTQ4NDItMTFFRi05MkU5LUI3NjgyQTAzQTM2RiJ9fX0=","signature":"chlRZXQWloj9ubiKmrxX120+diWRtyS9RxekeVMCJrhdciWe0TD4QAZpfA7R9cCN+GpJLsTDhqBiBpRjXePXOxIJT+fuHICSZiAf6B27KGKsFkgk7aT+YDdaov6IVD1hoHHwY9++vJNi236nbIYRMhYgA6/RiXWCyXcPii8b1SS3eNW/9Nd3CLgFgO5lKZZA0EELnBXAwpRNFxmoLqE1eiSP38aEJhAvZZVn+QAaKx6rsRuc+ht0awQf+62NEb6rXYwtd3YDM0U+ArFPH3v6Y8U25ZEBLd4gat/pu7F741B4VngZCtQrBd6r17xS/64+V+dDaLsOnJaLxWQZ1rObkQ==" }

Public key example

-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv1Q6ogYGK9bNy9MZvx/a 5fYovrdvNLVoFBNMqvBMlcekKx47bpiDR/t00lZqYDEfIwCfA9XSrzmi5Yjio3EV cjgY0+R0BVXLzdcHuxMMSkqM5JXXaN9WbbblOVS+QyjWIO57slS1fzQ9nEBISvVb 3JSaPKhjY8K2jZ+47GbwIyhT+FpoNF5eC7NApcS95xt4WGsDLNBBFhURtRr+BsgA nQ4EgwT5ltIpRfHsYn2sSGcKy6slMExQgoXX9McpGPm5TjVsA+n7IXQ4JYLzyklm gJ3QfQsmT4UtaS/ZT6lRXICvuf7v9eFGmY2u4KVhS4TyBUB7BB/2iCdmda02rxnL gQIDAQAB -----END PUBLIC KEY-----

The result of verifying the response signature using the OpenSSL utility

?2?The command line $ openssl dgst -verify /tmp/rsa.pub -keyform PEM -sha1 -signature /tmp/sign -binary /tmp/data Verified OK