Tink API は、任意のバイナリ blob を入力として受け取ります。つまり 構造化データ(schema.org)のマークアップ、実装例など、 プロトコル バッファを使う場合は、事前に 最初にデータをエンコードします。
protobuf を暗号化する
暗号化するには:
- protobuf をバイト配列にシリアル化します。
- シリアル化されたバイトを暗号化し、生成された暗号テキストを保存または送信する。 使用: <ph type="x-smartling-placeholder">
復号化するには:
- 暗号テキストを復号します。
- ステップ 1 が成功したら、protobuf をシリアル化解除します。
protobuf を改ざんから保護する
ほとんどの場合、認証のみを行うよりも、protobuf を暗号化することをおすすめします。
protobuf を改ざんから保護するには:
- protobuf をバイト配列にシリアル化します。
- シリアル化されたバイトに署名または認証します。使用: <ph type="x-smartling-placeholder">
- シリアル化されたバイトを署名(MAC)と一緒に保存します。
手順は次のとおりです。
- シリアル化された protobuf とその署名(MAC)を取得します。
- 署名(MAC)を検証します。
- protobuf を逆シリアル化します。
有効な署名または MAC は、データが正しく機能することを保証するものではありません。 です。データを解析する実装では、常に データが破損する可能性があります。
複数のデータアイテムを保護する
複数のデータ項目を保護するには、シリアル化方法を使用します。すべてのデータを追加する その protobuf に変換し、前述のように暗号化(または認証)します。
次のようにシリアル化することもできます。
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
最後に、結果のバイト配列を暗号化(認証)します。