J’ai ajouté une nouvelle RFC pour que tous les clients utilisent le même système de chiffrement et de signature de messages avec les clefs Duniter. C’est un prérequis pour la RFC sur les Ascii Armor Messages…
Mon implémentation dans Duniterpy est normalement compatible avec les messages de Cesium+, et cette RFC aussi.
Il manque les signatures, work in progress…
@kimamila, si tu peux jeter un oeil pour voir si je ne me suis pas planté en transcrivant le code javascript en python pour le chiffrement ?
[EDIT]
Signature de message et vérification de signature ajoutés. Pour ma part, la RFC est terminée.
Mais vous pouvez proposer des correctifs. Bonne lecture !
Ce n’est donc pas les bonnes méthodes que tu utilise, du coup. Plutôt choisir crypto_box et crypto_box_open, si tu le veux bien (mais tu le vaut bien !)
Pour les signature, en fait, c’est plus simple du coup :
les boxed messages sont déjà signés à l’intérieur. En fait ils contiennent : le message chiffré afin que seule le destinatire puisse le lire, la clef de l’émétteur, et sa signature afin qu’il puisse être identifié directement.
C’est pour cela que je chiffre un 2ième message, pour que l’émetteur puisse relire un message qu’il a envoyé. (dans les noeuds Cesium+, il y a un document dans /message/inbox et un autre dans message/outbox).
Pour les message Cesium+, je chiffre séparément le titre du message, et le contenu, afin de pouvoir afficher (éventuellement) seulement le titre, pour une affichage plus rapide.
Voilou
Dans ceux-ci, les signatures sont séparées du message, parce qu’on est pas obligé de chiffrer un message signé et on est pas obligé de signer un message chiffré.
C’est pour cela que je suis obligé d’utiliser les seal_box pour chiffrer/déchiffrer sans signature (chiffrement avec juste la clef publique, pas de nonce).
Pour les signatures, c’est comme les documents Duniter, elle est séparée et signe le message original en clair.
Du coup, je ne sais pas si on peut vraiment être compatible finalement entre les messages internes à Cesium+ et ceux exportés (par email ou autre), mais ceci n’a peut-être aucune importance…
Du moment qu’on le fait avec les clefs Duniter…
Ça te fera juste un peux plus de boulot (désolé ) pour créer ou parser des Ascii Armor Messages.
Je ferai une explication et une démo de ma première implémentation Duniterpy aux prochaines RML. Tu auras ainsi une meilleure vision de la chose.
Bien sûr, il suffit de ne pas signer le message.
Après, tu peux effectivement mettre des infos qui identifient l’émetteur uniquement pour le destinataire dans le message chiffré. Tu envoies ça avec un email jetable et hop, anonyme pour les espions !