Le API Tink accettano come input blob binari arbitrari. Ciò significa che se vuoi criptare i dati strutturati, come i buffer di protocollo, devi prima codificare i dati.
Cripta un protobuf
Per eseguire la crittografia:
- Serializza il protobuf in un array di byte.
- Cripta i byte serializzati, quindi archivia o invia il testo crittografato risultante. Usa:
Per decriptare:
- Decripta il testo crittografato.
- Se il passaggio 1 ha esito positivo, deserializza il protobuf.
Proteggere un protobuf dalle manomissioni
Nella maggior parte dei casi, la crittografia di un protobuf è preferibile alla sola autenticazione.
Per proteggere un protobuf dalle manomissioni:
- Serializza il protobuf in un array di byte.
- Firma o autentica i byte serializzati. Usa:
- Archivia i byte serializzati insieme alla firma (o MAC).
Per eseguire la verifica:
- Ottieni il protobuf serializzato e la relativa firma (o MAC).
- Verifica la firma (o MAC).
- Deserializza il protobuf.
Tieni presente che una firma o un indirizzo MAC validi non garantiscono che i dati siano formattati correttamente. Un'implementazione che analizza i dati dovrebbe sempre aspettarsi che i dati siano corrotti.
Proteggi più elementi di dati
Per proteggere più elementi di dati, utilizza un metodo di serializzazione. Aggiungi tutti gli elementi di dati a un protobuf e criptalo (o autenticalo) come descritto sopra.
Puoi anche creare serie come segue:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
Infine, cripta (o autentica) l'array di byte risultante.