ClicInSitu
Sécurité & confidentialité

Le format de fichier .clicinsitu

Un modèle partagé depuis l'application, ou remis par MVT Conseil, voyage dans un fichier .clicinsitu. Ce fichier est encodé et signé, non chiffré : vous pouvez le relire sans nous.

Ce qu'il y a dans le fichier

  1. Une seule ligne de texte UTF-8 : CLICINSITU_PACK_V1:<contenu>[.<signature>]. Extension .clicinsitu, type application/vnd.clicinsitu.
  2. Le contenu : les modèles au format JSON, compressés (gzip) puis écrits en base64url sans remplissage — exactement l'encodage des QR codes de modèle.
  3. Le JSON : une liste de modèles, ou un objet {"schema": "clicinsitu/pack/v1", "meta": {…}, "models": […]}. Les noms des modèles, leurs informations demandées, leurs destinataires et leurs textes d'email s'y lisent en clair.
  4. La signature, facultative : ECDSA P-256 (SHA256withECDSA) des octets du contenu, par la clé de MVT Conseil. Valide : l'application affiche « Modèle certifié ClicInSitu ». Absente : « Modèle partagé par un utilisateur ». Présente mais fausse : le fichier est refusé.
  5. Les limites : 512 Ko par fichier, 2 Mo de JSON, 100 modèles, et les mêmes contrôles qu'un QR code. Un fichier n'active pas la configuration verrouillée et ne contient pas de code PIN.

Relire un fichier

Pas besoin de l'application pour le relire, trois lignes de Python suffisent :

import base64, gzip, json
contenu = open("modele.clicinsitu", encoding="utf-8").read().strip().split(":", 1)[1].split(".")[0]
print(json.dumps(json.loads(gzip.decompress(base64.urlsafe_b64decode(contenu + "=="))), indent=2, ensure_ascii=False))

Clé publique de vérification des signatures (X.509, base64) :

MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErIab062yMtMF0y1xXYI3OVA6Nsl6Ec3FW3nFWlgm9wuOlNo9HJdOjp+4YNpkctfFt443k5gstoMw1/ljh8W/uw==

Format documenté, sans dépendance : vos modèles sont à vous. La signature dit d'où vient un fichier, elle n'en cache rien.

Retour à Sécurité & confidentialité.