Autres exemples
WARNING
Ces exemples ont été écrits avec une ancienne version du SDK, cette page est en cours d'actualisation.
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 chiffrementencrypted
qui chiffre tous les messages avec le Seald SDK et protège les identités avec le plugin@seald-io/sdk-plugin-ssks-password
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
Applications mobiles : Exemple minimal
Des projets de démonstration sont disponibles pour plusieurs plateformes, dans différents langages.
Ces projets sont une démonstration minimale, ne contenant pas d'interface utilisateur. Il s'agit simplement d'une application qui importe le SDK Seald, et exécute une fonction de démonstration qui en utilise les fonctionnalités principales.
Vous trouverez des applications d'exemple pour:
- React-Native : https://github.com/seald/seald-sdk-demo-app-react-native
- Flutter : https://github.com/seald/seald-sdk-demo-app-flutter
- Android (Kotlin) : https://github.com/seald/seald-sdk-demo-app-android
- iOS (Objective-C avec Cocoapods) : https://github.com/seald/seald-sdk-demo-app-ios
- iOS (Swift avec SPM) : https://github.com/seald/seald-sdk-demo-app-ios-swift
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-io/sdk'
import SealdSDKPluginSSKSPassword from '@seald-io/sdk-plugin-ssks-password'
const appId = '00000000-0000-1000-a000-7ea300000000' // Le Seald appID de mon app
const apiURL = 'https://api.staging-0.seald.io/' // L'URL du serveur d'API à utiliser
const keyStorageURL = 'https://ssks.staging-0.seald.io/' // L'URL du serveur de stockage d'identités à utiliser
const myUserId = 'My-User-ID-in-my-app' // L'ID de l'utilisateur actuel dans mon app
const seald = SealdSDK({ appId, apiURL, plugins: [SealdSDKPluginSSKSPassword(keyStorageURL)] })
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 signupJWT = 'json-web-token-for-signup' // Calculé par votre serveur
const { sealdId: mySealdId } = await seald.initiateIdentity({ signupJWT }) // Créer son identité Seald
await seald.ssksPassword.saveIdentity({ userId: myUserId, password }) // Sauvegarder l'identité Seald, chiffrée par le mot de passe, sur le serveur SSKS
// Si vous récupérez un compte déjà créé
const password_ = 'SuperSecretPassword' // Le mot de passe de l'utilisateur. Sera utilisé pour déchiffrer leurs clés d'identité
const { sealdId: retrievedSealdId } = await seald.ssksPassword.retrieveIdentity({ userId: myUserId, password: password_ })
// Chiffrer / déchiffrer des fichiers
const encryptedFile = await seald.encryptFile('Secret file content', 'SecretFile.txt', { sealdIds: [otherUserSealdId] })
const decryptedFile = await seald.decryptFile(encryptedFile)
// Utiliser des sessions
const session = await seald.createEncryptionSession({ sealdIds: [otherUserSealdId] })
const encryptedMessage = await session.encryptMessage('SecretMessage')
const decryptedMessage = await session.decryptMessage(encryptedMessage)
await session.addRecipients({ sealdIds: [anotherUserSealdId] })
await session.revokeRecipients({ sealdIds: [otherUserSealdId] })
const sessionBis = await seald.retrieveEncryptionSession({ encryptedMessage })
const decryptedMessageBis = await sessionBis.decryptMessage(encryptedMessage)