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"
}'