# Формирование ЭЦП JWS

JWS используется для безопасной передачи данных с цифровой подписью. Он состоит из трёх частей, разделённых точками:&#x20;

<Заголовок>.<Полезная нагрузка>.<Подпись>&#x20;

#### &#x20;1. Заголовок (Header)

Формируется как JSON-объект, затем кодируется в Base64URL.

Пример:

```
{
  "alg": "GOST3410-2015-512",
  "kid": "CN=PCIDTEST.K0000033,O=JSC National payment corporation of the National Bank of the Republic of Kazakhstan,C=KZ",
  "x5t#S256": "eq3zMUIWn4_VXDA2rK6esTxxiivl8mkBkwbqbokSLQI="
}
```

#### Пояснения:

* **alg:** алгоритм подписи. Используется ГОСТ Р 34.10-2012/2015.
* **kid:** Subject DN из сертификата, которым подписывается JWS.
* **x5t#S256:** SHA-256 отпечаток сертификата (Base64URL).&#x20;

#### &#x20;2. Полезная нагрузка (Payload)

Содержит данные, которые подписываются.

Также кодируется в Base64URL.

Пример:

```
{
  "bin": "987654321012",
  "iin": "123456789012",
  "consentType": "BIOMETRY"
} 
```

#### Пояснения:

* bin: БИН участника (например, банка или организации).
* iin: ИИН клиента, по которому проводится верификация.
* consentType: тип согласия. Допустимые значения:
  * BIOMETRY
  * DIGITAL\_SIGNATURES
  * OTP
  * DIGITAL\_ID
  * PAPER&#x20;

#### &#x20;3. Подпись (Signature)

Формируется следующим образом:

1. Кодируются Header и Payload в Base64URL.
2. Объединяются через точку:  &#x20;

```
 signing_input = base64url(header) + "." + base64url(payload) 
```

3. Строка signing\_input хэшируется (ГОСТ 34.11).
4. Полученный хэш подписывается закрытым ключом (ГОСТ 34.10).
5. Подпись кодируется в Base64URL.&#x20;

#### Итоговая структура JWS:&#x20;

\<base64url(header)>.\<base64url(payload)>.\<base64url(signature)>&#x20;

#### Пример полного JWS:&#x20;

eyJ4NXQjUzI1NiI6ImVxM3pNVUlXbjRfVlhEQTJySzZlc1R4eGlpdmw4bWtCa3dicWJva1NMUUk9Iiwia2lkIjoiQ049UENJRFRFU1QuSzAwMDAwMzMsTz1KU0MgTmF0aW9uYWwgcGF5bWVudCBjb3Jwb3JhdGlvbiBvZiB0aGUgTmF0aW9uYWwgQmFuayBvZiB0aGUgUmVwdWJsaWMgb2YgS2F6YWtoc3RhbixDPUtaIiwiYWxnIjoiR09TVDM0MTAtMjAxNS01MTIifQ.eyJiaW4iOiI5NjA0NDAwMDAxNTEiLCJpaW4iOiI4ODAyMjYzMDExMjgiLCJjb25zZW50VHlwZSI6IkJJT01FVFJZIn0.sSJ3wIX3r7SWkbsdyRx5pVKVZa\_ruwBhxfq-QqWU-i6cg-yP1D1QwAUIEMx4QShrDEjgUui57rcFyxSEfHXlFJvHkzOQ0FyPABq43SGYIQHf9wOkp0LvYQUaZxLokfy20iLMDXuDDQ6E2bSlvH5OnWAqBNvVgOOl\_sg0f6\_w\_Zw


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.npck.kz/servisy-coid/servis-sopostavleniya-fotoizobrazhenii/formirovanie-ecp-jws.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
