Seald.js: dans un navigateur Internet

Introduction

Seald.js, développé pour fonctionner directement dans un navigateur, peut servir par exemple lorsque vous avez besoin de protéger les informations transmises via un formulaire de contact. Ces informations sont alors chiffrées pour vos équipes directement dans le navigateur du client, avant d'être envoyées.

Interface

Seald.js est un script JavaScript, à intégrer sur votre page Internet. Celui-ci fournit deux fonctions utilisables pour chiffrer des fichiers:

  • sealFile(host, teamId, sdkTokenPublic, inputFile, callback, [{progressCallback}]);
  • asyncSealFile(host, teamId, sdkTokenPublic, inputFile, [{progressCallback}]).

Ces deux fonctions se comportent de façon identique, à la différence près que la première prend un callback (au format classique (error, result)) pour rendre son résultat, alors que la seconde rend une Promise.

Les trois premiers arguments de ces fonctions sont fournis par Seald au moment de votre souscription:

  • host: L'URL du serveur Seald ;
  • teamId: L'identifiant de votre équipe ;
  • sdkTokenPublic: Une clé d'API.

inputFile est le fichier que vous voulez chiffrer, au format Blob ou File.

progressCallback est une fonction optionnelle que vous pouvez fournir, et qui sera appelée régulièrement avec comme seul argument un nombre compris entre 0 et 1, indiquant l'avancée du chiffrement.

Le fichier chiffré, rendu ou bien via le callback fourni à sealFile, ou bien via le résultat de la Promise rendue par asyncSealFile, est au format Blob. Il est chiffré pour l'ensemble de votre équipe. Vous pouvez alors envoyer ce fichier vers vos serveur, comme vous l'auriez fait s'il n'était pas chiffré.

Chiffrement au format email

Seald.js possède également des fonctions utilitaires pour faciliter la création d'un fichier chiffré au format email sécurisé Seald.

Ces fonctions sont:

  • sealMail(host, teamId, sdkTokenPublic, inputMail, callback, [{progressCallback}]);
  • asyncSealMail(host, teamId, sdkTokenPublic, inputMail, [{progressCallback}]).

inputMail remplace l'argument inputFile des fonctions sealFile et asyncSealFile. C'est un objet, au format:

{
  "subject": "Objet du message",
  "from": "hello@seald.io",
  "to": [
    "hi@seald.io"
  ],
  "date": "Monday October 30th 2017",
  "mailBody": "<html><body><div> Le contenu de l'email au format texte riche HTML <br><br></div></body></html>"
}

Les autres arguments sont identiques aux fonctions sealFile et asyncSealFile.

Demo

Vous pouvez trouvez une demo de l'utilisation de Seald.js sur le dépot https://github.com/seald/sealdjs-demo/

Compatibilité

Seald.js est compatible avec les navigateurs:

  • Safari 11 ou supérieur ;
  • Google Chrome 45 ou supérieur ;
  • Firefox 41 ou supérieur ;
  • Microsoft Edge 15 ou supérieur ;
  • Internet Explorer 11.