simplification
This commit is contained in:
parent
12815c2c3d
commit
f994e9cf55
@ -170,45 +170,56 @@ Dans l'ordre on réalise donc les opérations suivantes pour chaque membres :
|
|||||||
2. Création de `Message` du `PRDKeyBackup` à destination du membre.
|
2. Création de `Message` du `PRDKeyBackup` à destination du membre.
|
||||||
3. Envoi de la transaction SP du `Message` du `PRDKeyBackup` à destination du membre.
|
3. Envoi de la transaction SP du `Message` du `PRDKeyBackup` à destination du membre.
|
||||||
4. Envoi du `Message` du `PRDKeyBackup` à destination du membre.
|
4. Envoi du `Message` du `PRDKeyBackup` à destination du membre.
|
||||||
|
5. Atttente de la réception des `PRDResponse` en réponse aux `PRDKeyBackup` (confirmations).
|
||||||
|
6. Recomposition de la clé pour confirmation depuis les shards reçus dans les `PRDResponse`.
|
||||||
|
6.1. Déchiffrement par le mot de passe de `Part1Enc` depuis le cache.
|
||||||
|
6.2. Déchiffrement par secret partagé de chaque shard reçu dans `id_shard_info_enc_by_shared_secret` des `PRDResponse` de chaque member du role `Member`du process.
|
||||||
|
6.3. Recomposition de `Part2Enc` et déchiffrement par le mot de passe
|
||||||
|
6.4. Concaténation de `Part1` et `Part2`
|
||||||
|
|
||||||
##### Étape d'`update` et envoi de l'objet `ItemMember` pour `Onboarding`
|
##### Étape d'`update` et envoi de l'objet `ItemMember` pour `Onboarding`
|
||||||
|
|
||||||
Pour être `onboard` dans un process, c'est-à-dire avoir un rôle, il faut s'ajouter dans la liste des membres du process.
|
Pour être `onboard` dans un process, c'est-à-dire avoir un rôle, il faut :
|
||||||
|
|
||||||
Cela signifie envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des membres, contenant notre objet `ItemMember` complet. Ce PRD devra recevoir des membres du rôle `Member` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
1. s'ajouter (objet `Member`) dans la liste des membres et
|
||||||
|
2. s'ajouter son adresse SP dans les adresses d'un des rôles du process.
|
||||||
|
|
||||||
C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que donnée privée (chiffrée par la clé de dépense du signet) dans un PCD (et les `PRDUpdate` correspondant).
|
###### Mise à jour de la liste des membres
|
||||||
|
|
||||||
|
Pour mettre à jour la liste des membres il faut envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des membres, contenant l'objet `ItemMember` complet aux membres du role `member`. Ce PRD devra recevoir des membres du rôle `Member` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
||||||
|
|
||||||
|
C'est à ce moment-là que l'on transmet toutes les clés privées dans l'objet `ItemMember`, en tant que `metadadata` privée (chiffrée par la clé de dépense du signet) dans un PCD (et les `PRDUpdate` correspondant).
|
||||||
|
|
||||||
Les adresses SP correspondantes sont aussi transmises en tant que données publiques, ainsi que l'adresse SP de la clé de dépense du login du signet.
|
Les adresses SP correspondantes sont aussi transmises en tant que données publiques, ainsi que l'adresse SP de la clé de dépense du login du signet.
|
||||||
|
|
||||||
Avant de choisir un process pour continuer l'update de la nouvelle identité :
|
L'`ItemMember` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
|
||||||
|
|
||||||
1. Scan `Nakamoto` des transactions, récupération dans les transactions SP sur Adresse `id_SP` de login du signet, lecture du `RequestHash` de l`output 3` correspondant aux `PRDResponse` à recevoir ou déjà reçus.
|
1. Création d'un `ItemMember` correspondant à l'utilisateur.
|
||||||
2. Réception des `PRDResponse` et contrôle de la valeur des signatures (`hash_sig_value`), attente du `validation_timeout` du rôle `Member` du `process` et validation ou non des `PRDKeyBackup`.
|
2. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemMember` créé.
|
||||||
3. Attente et réception des `pcd_reference_hash` des `PRDResponse` reçus avec le PCD des membres du processus (liste de `itemMember`).
|
3. Création de `PRDKeyHello` à destination du membre.
|
||||||
4. Recomposition de la clé selon :
|
4. Création de `Message` du `PRDKeyHello` à destination du membre.
|
||||||
4.1. Déchiffrement par le mot de passe de `Part1Enc` depuis le cache.
|
5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination du membre.
|
||||||
4.2. Déchiffrement par secret partagé de chaque shard reçu dans `id_shard_info_enc_by_shared_secret` des `PRDResponse` de chaque member du role `Member`du process.
|
6. Envoi du `Message` du `PRDKeyHello` à destination du membre.
|
||||||
4.3 Recomposition de `Part2Enc` et déchiffrement par le mot de passe
|
7. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
||||||
4.4 Concaténation de `Part1` et `Part2`
|
8. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
||||||
|
|
||||||
Demande d'update de la liste des membres (PCD) d'un process (exemple avec 2 membres):
|
###### Mise à jour de la liste des process
|
||||||
|
|
||||||
1. Création et envoi des `PRDKeyHello`.
|
Pour mettre à jour la liste des process il faut envoyer un `PRDUpdate` avec une nouvelle version du PCD de la liste des process, contenant l'objet `ItemProcess` complet aux membres du role `process`. Ce PRD devra recevoir des membres du rôle `Process` du process les `PRDResponse` correspondant aux critères de validation du `process`.
|
||||||
1.1. Création de `PRDKeyHello` à destination de membre 1 de la liste des membres (adresse SP) du rôle `Member` du `Process`.
|
|
||||||
1.2. Création de `PRDKeyHello` à destination de membre 2 de la liste des membres (adresse SP) du rôle `Member` du `Process`.
|
L'`ItemProcess` est décrit dans la spécification [Specs-Datamodel.md](Specs-Datamodel.md).
|
||||||
1.3. Création de `Message` du `PRDKeyHello` à destination de membre 1.
|
|
||||||
1.4. Création de `Message` du `PRDKeyHello` à destination de membre 2.
|
Demande d'update de la liste des membres (PCD) d'un process vers chaque membre du rôle `Member` du process.:
|
||||||
1.5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination de membre 1.
|
|
||||||
1.6. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination de membre 2.
|
1. Création d'un `ItemProcess` correspondant à l'utilisateur.
|
||||||
1.7. Envoi du `Message` du `PRDKeyHello` à destination de membre 1.
|
2. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemProcess` créé.
|
||||||
1.11. Envoi du `Message` du `PRDKeyHello` à destination de membre 2.
|
3. Création de `PRDKeyHello` à destination du membre.
|
||||||
2. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
4. Création de `Message` du `PRDKeyHello` à destination du membre.
|
||||||
3. Création d'un `ItemMember` correspondant à l'utilisateur avec les clés chiffrées (hors clés de révocation) dans la partie data des métadonnées privées et les adresses SP dans les données publiques.
|
5. Envoi de la transaction SP du `Message` du `PRDKeyHello` à destination du membre.
|
||||||
4. Création d'une nouvelle version du PCD avec l'ajout de l'`ItemMember` créé.
|
6. Envoi du `Message` du `PRDKeyHello` à destination du membre.
|
||||||
5. Parcours des membres du rôle `Member` et envoi des `PRDUpdate`.
|
7. Réception des `PRDResponse` en réponse aux `PRDKeyHello` et mise à jour des listes depuis les `PCD` correspondants.
|
||||||
6. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
8. Attente de la validation (`PRDResponse`) du `PRDUpdate`.
|
||||||
7. Redirection vers la page du process sur le relai.
|
9. Redirection vers la page du process sur le relai.
|
||||||
|
|
||||||
##### Clés de révocation (`revoke`)
|
##### Clés de révocation (`revoke`)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user