# Premiers pas

Avant de commencer, il vous faut un compte développeur (opens new window).

Si vous n'en disposez pas, vous pouvez créer un compte d'essai (opens new window).

# Pré-requis

Depuis votre compte développeur, récupérez les 3 éléments suivants :

  • appId : UUID unique pour votre application ;
  • validationKeyId : UUID unique de la clé de validation ;
  • validationKey : clé de validation secrète correspondant à l'validationKeyId utilisée pour générer des jetons de licence hors-ligne.
Dashboard mode SDK
Tableau d'administration

WARNING

La validationKey est une clé secrète, il convient de la gérer de façon sécurisée. L'appId et le validationKeyId eux peuvent être publics.

# Installation

Dépendant de l'environnement cible, une version différente du Seald-SDK doit être installée :

# Application web

Si l'application dans laquelle vous souhaitez intégrer le Seald-SDK est une application web :

npm i -S @seald-io/sdk-web

# Application en React-Native

Pour le SDK react-native, en plus du Seald-SDK lui-même, il faudra installer react-native-modpow (opens new window), react-native-async-storage (opens new window), react-native-scrypt (opens new window) et react-native-rsa-native (opens new window) :

npm i -S @seald-io/sdk-react-native
npm i -S react-native-modpow @react-native-community/async-storage react-native-scrypt react-native-rsa-native

Par ailleurs, si react-native <0.59 est utilisé il faudra effectuer un npm link pour chacune de ces bibliothèques.

# Application Node.js

Pour une application en Node.js, il faut installer node-fetch (opens new window) en plus du SDK lui-même :

npm i -S @seald-io/sdk
npm i -S node-fetch

# Génération du userLicenseToken

Les userLicenseToken sont générés à partir de la clé de validation récupérée ci-dessus et d'un identifiant unique pour l'utilisateur (par exemple le userId utilisé par votre application).

Étant donné que cette clé est un secret à ne pas divulguer côté client, il convient de la stocker côté serveur applicatif et d'en dériver des userLicenseToken côté serveur à la demande avec un point d'API spécifique à développer dans le serveur applicatif. Un guide dédié est disponible pour cela.

Pour un essai rapide, cette génération peut être effectuée côté client, le SDK fournit un helper permettant d'en générer :

# Sauvegarde des identités

Pour enregistrer les identités des utilisateurs sur l'appareil local, vous pouvez utiliser une base de données locale persistante.

Additionnellement, pour protéger les identités des utilisateurs sur serveur, deux modes sont disponibles :

Ces modes sont disponibles sous forme de plugins pour le SDK Seald installables séparément :

# Pour une protection par mot de passe @seald-io/sdk-plugin-ssks-password :
npm i -S @seald-io/sdk-plugin-ssks-password

# Pour une protection en 2-man rule @seald-io/sdk-plugin-ssks-2mr :
npm i -S @seald-io/sdk-plugin-ssks-2mr

Pour plus de détails, voir ici.

WARNING

Si aucun plugin de protection des identités ni base de donnée persistante n'est utilisé, l'identité de l'utilisateur ne sera enregistrée nulle part, et les données chiffrées avec seraient irrécupérables dès la fermeture de l'onglet ou de l'application.

# Commencer à chiffrer

Une fois tous ces éléments mis en oeuvre, il ne reste plus qu'à commencer à chiffrer 😊.

# Import

En premier lieu, il faut importer le SDK, et éventuellement les plugins voulus :

Pour des cas spécifiques (notamment dans des process de build non standards), voir le détail des modes d'imports.

# Instanciation

Cette étape permet d'instancier le SDK.

Si vous utilisez des plugins, il faut les passer à l'instanciation :

# Initialisation & récupération d'une identité Seald

Dans cet exemple, le mode de protection par mot de passe est employé, et l'identité chiffrée par un dérivé de ce mot de passe est envoyée sur l'instance en SaaS de SSKS.

# Chiffrer et déchiffrer

Deux possibilités sont fournies pour chiffrer et déchiffrer :