/!\ Significant : RFC WS2P V2 /!\

Quitte a faire un truc bien propre et évolutif pour WS2Pv2 j’ai envie d’y intégrer de base des formats capables de stocker des clés publiques et signatures de n’importe quel algorithme.
Ceci dans l’objectif de ne pas avoir besoin de créer un WS2pv3 le jours ou l’on intégrera les ring signatures : Ring signatures pour anonymiser les noeuds sur le réseau

J’ai mis à jours la RFC en ce sens, je vous invite donc a la reconsulter :slight_smile:

Dans les grandes lignes, voici le format d’une publique :

data name size in bytes data type
pubkey_size 2 u16
algorithm_id 1 algorithm
pubkey_content pubkey_size [u8; pubkey_size]

A noter qu’il est nécessaire d’indiquer la taille de la clé publique car dans certains cas connaître l’algo ne suffira pas a connaître la taille attendue pour la clé publique. C’est le cas notamment pour les ring signatures.

Et le format du type algorithm :

algorithm code
null* 0x00
Ed25519 0x01
Schnorr 0x02

Pensez-vous qu’un seul octet soit suffisant ? Cela nous laisse quand même la possibilité de supporter 255 algo différents ! Ou faut t’il que je prenne 2 octets pour être sur ?

Enfin le format de la Signature :

data name size in bytes data type
sig_size 2 u16
sig_content sig_size [u8; sig_size]

A noté qu’il n’est pas nécessaire de spécifier l’algo attendu ici, car lorsque l’on vérifie une signature on connaît nécessairement la clé publique (ou le groupe de clé publique) associé et donc on sait quel algo est attendu.

Autre question : De la même façon on pourrait intégrer la capacité a stocker des hashs de différents algos, mais comme il n’est pas prévu d’abandonner sha256 a moyen terme je pense que c’est prématuré, qu’en dites vous ?

1 Like