As APIs Tink usam blobs binários arbitrários como entrada. Isso significa que, para criptografar dados estruturados, como buffers de protocolo, é necessário codificar os dados primeiro.
Criptografar um protobuf
Para criptografar:
- Serialize o protobuf para uma matriz de bytes.
- Criptografar os bytes serializados e, em seguida, armazenar ou enviar o texto criptografado resultante. Usar:
Para descriptografar:
- Descriptografar o texto criptografado.
- Se a etapa 1 tiver sido bem-sucedida, desserialize o protobuf.
Proteja um protobuf contra adulterações
Na maioria dos casos, a criptografia de um protobuf é preferível à autenticação sozinha.
Para proteger um protobuf contra adulterações:
- Serialize o protobuf para uma matriz de bytes.
- Assine ou autentique os bytes serializados. Usar:
- Armazene os bytes serializados com a assinatura (ou MAC).
Para verificar:
- Receba o protobuf serializado e a assinatura (ou MAC).
- Verifique a assinatura (ou MAC).
- Desserialize o protobuf.
Uma assinatura ou MAC válido não garante que os dados estejam formatados corretamente. Uma implementação que analisa os dados precisa sempre esperar que eles estejam corrompidos.
Proteger vários itens de dados
Para proteger vários itens de dados, use um método de serialização. Adicione todos os itens de dados a um protobuf e criptografe (ou autentique) conforme descrito acima.
Também é possível serializar da seguinte maneira:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
Por fim, criptografe (ou autentique) a matriz de bytes resultante.