Tink API menggunakan blob biner arbitrer sebagai input. Ini berarti bahwa jika Anda ingin mengenkripsi data terstruktur, seperti buffering protokol, Anda perlu melakukan enkode data terlebih dahulu.
Mengenkripsi protobuf
Untuk mengenkripsi:
- Menserialisasikan protobuf ke array byte.
- Mengenkripsi byte yang diserialisasi, lalu menyimpan atau mengirim ciphertext yang dihasilkan. Penggunaan:
Untuk mendekripsi:
- Mendekripsi teks tersandi tersebut.
- Jika Langkah 1 berhasil, lakukan deserialisasi protobuf.
Melindungi protobuf dari gangguan
Dalam sebagian besar kasus, lebih baik mengenkripsi protobuf daripada otentikasi.
Untuk melindungi protobuf dari modifikasi:
- Menserialisasikan protobuf ke array byte.
- Menandatangani atau mengautentikasi byte yang diserialisasi. Penggunaan:
- Menyimpan {i>byte<i} yang diserialisasi bersama dengan tanda tangan (atau MAC).
Untuk memverifikasi:
- Mendapatkan protobuf serial dan tanda tangannya (atau MAC).
- Verifikasi tanda tangan (atau MAC).
- Melakukan deserialisasi protobuf.
Perhatikan bahwa tanda tangan atau MAC yang valid tidak menjamin bahwa data itu benar diformat. Implementasi yang mengurai data harus selalu mengharapkan bahwa data mungkin rusak.
Melindungi beberapa item data
Untuk melindungi beberapa item data, gunakan metode serialisasi. Tambahkan semua data item ke protobuf, dan mengenkripsi (atau mengautentikasi) seperti dijelaskan di atas.
Anda juga dapat melakukan serialisasi sebagai berikut:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
Terakhir, enkripsi (atau autentikasi) array byte yang dihasilkan.