{
  "tool": "chiffreur",
  "name": "Le Chiffreur de fichier",
  "apiVersion": "1",
  "description": "Chiffre/déchiffre un fichier par mot de passe (AES-256-GCM, clé PBKDF2 250 000 tours). Le nom du fichier est chiffré aussi. Conteneur .sjc. 100 % dans le navigateur.",
  "url": "https://sui-juris.fr/p2p-tools/chiffreur/",
  "ops": {
    "encrypt": {
      "summary": "Chiffre un fichier avec un mot de passe et renvoie le conteneur .sjc.",
      "args": {
        "fileBytes": { "type": "base64", "required": true, "description": "Le fichier en clair, encodé en base64." },
        "password":  { "type": "string", "required": true, "description": "Mot de passe de chiffrement." },
        "filename":  { "type": "string", "required": false, "description": "Nom du fichier source (chiffré dans le conteneur)." },
        "mime":      { "type": "string", "required": false, "description": "Type MIME du fichier source (chiffré dans le conteneur)." }
      },
      "returns": { "bytes": "base64 du conteneur .sjc chiffré", "mime": "application/octet-stream", "filename": "nom suggéré (…​.sjc)" }
    },
    "decrypt": {
      "summary": "Déchiffre un conteneur .sjc et restaure le fichier d'origine.",
      "args": {
        "fileBytes": { "type": "base64", "required": true, "description": "Le conteneur .sjc, encodé en base64." },
        "password":  { "type": "string", "required": true, "description": "Mot de passe utilisé au chiffrement." }
      },
      "returns": { "bytes": "base64 du fichier déchiffré", "mime": "type MIME d'origine", "filename": "nom d'origine restauré" }
    }
  }
}
