# Exemples

# Web : Exemple complet

Un projet de démonstration est disponible : https://github.com/seald/sdk-web-chat-demo/.

Le projet est un simple chat, fait avec React et Firebase.

Le répertoire contient 2 branches :

  • master qui contient le chat normal, sans chiffrement
  • encrypted qui chiffre tous les messages avec le Seald SDK

Vous pouvez comparer les deux, pour voir comment le Seald SDK a été ajouté, à l'adresse https://github.com/seald/sdk-web-chat-demo/compare/encrypted

# React-native : Exemple

Un projet de démonstration est disponible : https://github.com/seald/sdk-react-native-demo.

# Exemple rapide

Si vous voulez juste vous faire une idée de comment on peut utiliser le Seald SDK, voici un snippet :

import SealdSDK from '@seald/sdk-web'

const appId = '00000000-0000-1000-a000-7ea300000000' // Le Seald appID de mon app
const myUserId = 'My-User-ID-in-my-app' // L'ID de l'utilisateur actuel dans mon app

const seald = SealdSDK({ appId })
await seald.initialize()

// Si vous créez un compte pour la première fois
const password = 'SuperSecretPassword' // Le mot de passe de l'utilisateur. Sera utilisé pour chiffrer leurs clés d'identité
const userLicenceToken = 'User-licence-token' // Calculé par votre serveur
await seald.initiateIdentity({ userId: myUserId, password, userLicenceToken })

// Si vous récupérez un compte déjà créé
const password = 'SuperSecretPassword' // Le mot de passe de l'utilisateur. Sera utilisé pour chiffrer leurs clés d'identité
await seald.retrieveIdentity({ userId: myUserId, password })

// Chiffrer / déchiffrer des fichiers
const encryptedFile = await seald.encryptFile('Secret file content', 'SecretFile.txt', { userIds: ['Other-User'] })
const decryptedFile = await seald.decryptFile(encryptedFile)

// Utiliser des sessions
const session = await seald.createEncryptionSession({ userIds: ['Other-User'] })
const encryptedMessage = await session.encrypt('SecretMessage')
const decryptedMessage = await session.decrypt(encryptedMessage)
await session.addRecipients({ userIds: ['Another-User'] })
await session.revokeRecipients({ userIds: ['Other-User'] })

const sessionBis = await seald.retrieveEncryptionSession({ encryptedMessage: encryptedMessage })
const decryptedMessageBis = await sessionBis.decrypt(encryptedMessage)