oups
Je tente de reproduire ceci.
- je récupère un profil au format texte brut : https://g1.data.e-is.pro/user/profile/38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE
- je retire les champs “hash” et “signature”:
"hash":"CFF2E187298BC9CEAA6457A1385A7A53A03BD173B69304316F9EBBC2E6625F5C","signature":"Xo0Cf5opgtT3bcZAGFCIs1/wD7NE2+mlr51QIZgcYGFte6Pc6i7CQBNU/PRFAo56+yaPjIHggK43JGFWHw6TBQ==",
- je calcule le hash du reste
shasum profile
- je tombe sur un autre résultat :
aa06ff9281ec4618c656221925606a4777536c11
Dans le code, je ne trouve pas plus précis que readAndVerifyIssuerSignature
cesium-plus-pod-core/src/main/java/org/duniter/elasticsearch/service/AbstractService.java · master · clients / Cesium-grp / cesium-plus-pod · GitLab
Peux-tu confirmer :
- comment récupérer un profil intact
- comment retirer les champs hash et signature de la même manière que la vérification C+ pod
- quel algorithme de hachage est utilisé précisément (et pourquoi signer un hash plutôt que le document ?)
Parce que je veux bien mettre les profils intacts dans les datapods, mais ce serait mieux si je pouvais m’assurer qu’ils sont vraiment intacts.
J’avais juste oublié de retirer l’en-tête de la réponse :
- je récupère un profil au format texte brut : https://g1.data.e-is.pro/user/profile/38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE
- je prends uniquement le champ “_source”
- je retire les champs “hash” et “signature”:
"hash":"CFF2E187298BC9CEAA6457A1385A7A53A03BD173B69304316F9EBBC2E6625F5C","signature":"Xo0Cf5opgtT3bcZAGFCIs1/wD7NE2+mlr51QIZgcYGFte6Pc6i7CQBNU/PRFAo56+yaPjIHggK43JGFWHw6TBQ==",
- je calcule le hash du reste
shasum -a 256 profile
- je tombe bien sur le résultat :
cff2e187298bc9ceaa6457a1385a7a53a03bd173b69304316f9ebbc2e6625f5c
Il me reste à vérifier la signature mais ça devrait être bon.
Y a-t-il un moyen de récupérer la source au format brut sans l’en-tête ?