Установка и использование платформы
REST API: реализация методов шифрования¶
Для реализации методов шифрования предусмотрены методы REST API группы crypto
.
Принцип работы этой группы методов аналогичен набору gRPC-методов contract_crypto_service.proto.
POST /crypto/encryptSeparate¶
Шифрование данных, переданных в запросе, уникальными ключами CEK отдельно для каждого получателя, каждый CEK шифруется (оборачивается) отдельным ключом KEK.
В запросе подаются следующие данные:
sender
- адрес отправителя данных;password
- пароль к зашифрованным данным;encryptionText
- шифруемые данные (в виде строки);recipientsPublicKeys
- публичные ключи получателей-участников сети;crypto_algo
- используемый алгоритм шифрования. Доступные значения:gost-28147
- ГОСТ 28147-89;gost-3412-2015-k
- ГОСТ 34.12-2015;aes
- AES.
Если в вашей сети используется шифрование по ГОСТ, вам будут доступны только алгоритмы gost-28147
и gost-3412-2015-k
.
При отключенном шифровании по ГОСТ доступен только алгоритм шифрования aes
.
Пример запроса:
В ответе метода поступают следующие данные для каждого получателя:
encrypted_data
- зашифрованные данные;public_key
- публичный ключ получателя;wrapped_key
- результат шифрования ключа для получателя.
Пример ответа:
POST /crypto/encryptCommon¶
Шифрование данных, переданных в запросе, единым ключом CEK для всех получателей, каждый ключ CEK шифруется (оборачивается) отдельным ключом KEK для каждого получателя.
В запросе POST /crypto/encryptCommon подаются данные, аналогичные запросу POST /crypto/encryptSeparate.
В ответе метода поступают следующие данные:
encrypted_data
- зашифрованные данные;recipient_to_wrapped_structure
- структура в формате «ключ : значение», содержащая публичные ключи получателей с соответствующими результатами шифрования ключей для каждого из них.
Пример ответа:
POST /crypto/decrypt¶
Дешифровка данных, зашифрованных при помощи криптографического алгоритма, используемого сетью. Дешифровка возможна, если ключ получателя сообщения находится в keystore ноды.
В запросе подаются следующие данные:
recipient
- публичный ключ получателя из keystore ноды;password
- пароль к зашифрованным данным;encryptedText
- зашифрованная строка;wrappedKey
результат шифрования ключа для указанного получателя;senderPublicKey
- публичный ключ отправителя данных;cryptAlgo
- используемый алгоритм шифрования. Доступные значения: *gost-28147
- ГОСТ 28147-89; *gost-3412-2015-k
- ГОСТ 34.12-2015; *aes
- AES.
Если в вашей сети используется шифрование по ГОСТ, для дешифровки будут доступны только алгоритмы gost-28147
и gost-3412-2015-k
.
При отключенном шифровании по ГОСТ доступен только алгоритм шифрования aes
.
Пример запроса:
В ответ на запрос поступает поле decryptedText
, содержащее расшифрованную строку.
Пример ответа: