Skip to content

React-Native accelerator

Il est possible d'utiliser le SDK Seald en React Native. Cependant, son usage peut s'avérer lent, notamment lors du chiffrement et déchiffrement de fichiers particulièrement volumineux. Pour pallier cela, nous préconisons l'usage de notre paquet : @seald-io/react-native-accelerator.

Ce paquet expose des fonctions permettant de chiffrer et déchiffrer des fichiers de manière native. Ceci permet des gains important sur la vitesse de manipulation de fichier, sur la quantité de mémoire RAM nécessaire, ainsi sur la vitesse du chiffrement lui-même.

Avant d'utiliser ce paquet, nous vous conseillons de vous familiariser avec notre SDK, en particulier avec le concept de session de chiffrement

Installation

Le paquet nécessite une application en React Native, utilisant le SDK Seald.

La documentation spécifique à l'installation du SDK pour React Native se trouve ici. Avant d'utiliser ce paquet, il est nécessaire de faire toutes les étapes décrites dans le guide de démarrage.

Le paquet est disponible sur NPM.

bash
npm install -S @seald-io/react-native-accelerator
npm install -S @seald-io/react-native-accelerator

Utilisation

Le paquet expose quatre fonctions : encryptString, decryptString, encryptURI, decryptURI.

Les deux fonctions encryptURI, decryptURI permettent de chiffrer et déchiffrer un fichier directement via son URI. Ces fonctions retournent une URI d'un nouveau fichier. L'URI retournée est au format string.

Les fonctions encryptString, decryptString permettent de chiffrer et déchiffrer une string. Elles sont utiles dans le cas où un fichier est déjà présent dans le moteur JavaScript de l'application.

TIP

Nous préconisons de minimiser au maximum le nombre de transferts de donnée entre le moteur JavaScript et le système de fichier natif, ces transferts étant lents et consommant beaucoup de mémoire RAM.

L'import des fonctions se fait de manière classique :

js
import { encryptString, decryptString, encryptURI, decryptURI } from '@seald-io/react-native-accelerator'
import { encryptString, decryptString, encryptURI, decryptURI } from '@seald-io/react-native-accelerator'

Pour utiliser ces fonctions, vous avez besoin d'une session de chiffrement.

js
let encryptionSession // Une instance d'encryptionSession

const encryptedString = await encryptString(FILE_CONTENT, 'MyFilename', encryptionSession)
// encryptedString est la version chiffrée de la string entrée
const clearStringObject = await decryptString(ENCRYPTED_FILE_CONTENT, encryptionSession)
// clearStringObject est du type: Object<{filename: string, messageId: string, path: string }>

const encryptedFileURI = await encryptURI(FILE_TO_ENCRYPT_URI, 'MyFilename', encryptionSession)
// encryptedFileURI est l'URI du fichier chiffré
const decryptedFileObject = await decryptURI(FILE_TO_DECRYPT_URI, encryptionSession)
// decryptedFileObject est de type: Object<{filename: string, messageId: string, path: string }>
let encryptionSession // Une instance d'encryptionSession

const encryptedString = await encryptString(FILE_CONTENT, 'MyFilename', encryptionSession)
// encryptedString est la version chiffrée de la string entrée
const clearStringObject = await decryptString(ENCRYPTED_FILE_CONTENT, encryptionSession)
// clearStringObject est du type: Object<{filename: string, messageId: string, path: string }>

const encryptedFileURI = await encryptURI(FILE_TO_ENCRYPT_URI, 'MyFilename', encryptionSession)
// encryptedFileURI est l'URI du fichier chiffré
const decryptedFileObject = await decryptURI(FILE_TO_DECRYPT_URI, encryptionSession)
// decryptedFileObject est de type: Object<{filename: string, messageId: string, path: string }>

Vous trouverez la référence pour ce paquet ici.

Projet exemple

Un project example détaillé est disponible sur github.