Tink API mengambil blob biner arbitrer sebagai input. Artinya, jika ingin mengenkripsi data terstruktur, misalnya buffering protokol, Anda harus mengenkode data terlebih dahulu.
Mengenkripsi protobuf
Untuk mengenkripsi:
- Menserialisasikan protobuf ke array byte.
- Mengenkripsi byte serial, lalu menyimpan atau mengirim ciphertext yang dihasilkan. Gunakan:
Untuk mendekripsi:
- Mendekripsi ciphertext tersebut.
- Jika Langkah 1 berhasil, lakukan deserialisasi protobuf.
Melindungi protobuf dari modifikasi tidak sah
Dalam sebagian besar kasus, lebih baik mengenkripsi protobuf daripada otentikasi saja.
Untuk melindungi protobuf dari modifikasi tidak sah:
- Menserialisasikan protobuf ke array byte.
- Menandatangani atau mengautentikasi byte yang diserialisasi. Gunakan:
- Menyimpan byte 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 diformat dengan benar. Implementasi yang mengurai data akan selalu mengharapkan bahwa data mungkin rusak.
Melindungi beberapa item data
Untuk melindungi beberapa item data, gunakan metode serialisasi. Menambahkan semua item data ke protobuf, dan mengenkripsi (atau mengautentikasi) data seperti yang 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.