vérificateur de certificat par empreinte épinglée (TOFU) : au premier
contact je n’attends aucune empreinte (expected = None) et j’accepte pour
la mémoriser ensuite ; aux contacts suivants je refuse tout certificat dont
l’empreinte diffère de celle épinglée pour ce pair (identité changée =
attaque de l’homme du milieu probable)
empreinte SHA-256 (hex) du certificat : elle identifie la clé du pair tant
que le certificat persisté est réutilisé (c’est le cas : certificat() relit
cert.pem au démarrage). Je hache le DER complet, pas le SPKI, pour rester
sur la donnée déjà exposée par le handshake rustls
empreinte épinglée pour un device_id, si elle existe (None = premier
contact). Un fichier absent ou illisible retombe sur None : au pire on
re-pinne, c’est dégradé mais jamais bloquant