In un progetto corrente è stata usata la funzione NaCl-libreria crypto_box
per codificare e crypto_box_open
per autenticare e decodificare i dati.
Tuttavia, la libreria non sembra supportare la de / encoding di grandi quantità di dati, dal momento che il messaggio e il buffer per il testo cifrato (più nonce) devono essere allocati in memoria (l'applicazione deve essere eseguita su smartphone e quindi non deve consumare troppa memoria).
Leggendo la documentazione mi sono imbattuto nella funzione crypto_stream_xor
che potrebbe consentire di crittografare parti di dati di dimensioni personalizzate, ad esempio distribuite attraverso uno stream. Tuttavia, è necessario generare un MAC per rilevare la manomissione dei messaggi.
Esiste un modo integrato per generare e verificare il MAC su un messaggio di grandi dimensioni m
o deve essere affrontato su un livello superiore di comunicazione suddividendo grandi quantità di dati in diversi pacchetti autenticati e crittografati?