Serviço Crypto¶
O serviço Crypto provê funções criptográficas de cifra e decifra de dados para os demais componentes da plataforma dojot. Ele é usado somente pelos serviços internos e, Ccom isso, os componenteseles internos podem proteger os dados que serão trafegados internamente/externamente ou os dados que serão armazenados, por exemplo.
Disponível como imagem Docker, o serviço Crypto pode ser instanciado com facilidade e incorporado em pouco tempo. As funcionalidades para cifra/decifra de dados são disponibilizadas através de interface REST.
Table of Contents
Interface REST¶
As APIs para cifrar decifrar dados são descritas abaixo
Decrypt
POST /crypto/decrypt
Request
Headers
Content-Type: application/json
Body
{
"data": "Clear or cipher data",
"tagSize": 16,
"key": "2034F6E32958647FDFF75D265B455EBF40C80E6D597092B3A802B3E5863F878C",
"iv": "AD0ACC568C88C116D57B273D98FB92C0"
}
Response 200
Headers
Content-Type: application/json
Body
{
"data": "Cipher or clear data",
"result": "SUCCESS"
}
Encrypt
POST /crypto/encrypt
Request
Headers
Content-Type: application/json
Body
{
"data": "Clear or cipher data",
"tagSize": 16,
"key": "2034F6E32958647FDFF75D265B455EBF40C80E6D597092B3A802B3E5863F878C",
"iv": "AD0ACC568C88C116D57B273D98FB92C0"
}
Response 200
Headers
Content-Type: application/json
Body
{
"data": "Cipher or clear data",
"result": "SUCCESS"
}
Exemplos de Uso¶
Para utilizar as funções criptográficas que o Crypto oferece, é necessário acessar as interfaces REST através de uma chamada HTTP.
Abaixo são apresentados exemplos de como essas chamadas podem ser feitas usando a ferramenta de linha de comando curl.
Encrypt
curl -X POST \
http://localhost:8080/cryptointegration/rest/crypto/encrypt \
-H 'content-type: application/json' \
-d '{
"data": "000102030405060708090A0B0C0D0F",
"tagSize": 16,
"key": "2034F6E32958647FDFF75D265B455EBF40C80E6D597092B3A802B3E5863F878C",
"iv": "AD0ACC568C88C116D57B273D98FB92C0"
}'
Decrypt
curl -X POST \
http://localhost:8080/cryptointegration/rest/crypto/decrypt \
-H 'content-type: application/json' \
-d '{
"data": "C0FBC8DB5F72AD8DC04ECA2E32DA793F86D59D6",
"tagSize": 16,
"key": "2034F6E32958647FDFF75D265B455EBF40C80E6D597092B3A802B3E5863F878C",
"iv": "AD0ACC568C88C116D57B273D98FB92C0"
}'