From d9ddef9ce8421b30d58982c6ebfdaa91c649b511 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 21 Feb 2024 13:12:29 +0100 Subject: [PATCH] PCD added --- doc/PRD-PCD-Specs.md | 102 +++++++----- doc/diagrams/.$PCD.drawio.bkp | 295 ++++++++++++++++++++++++++++++++++ doc/diagrams/PCD.drawio | 281 ++++++++++++++++++++++++++++++++ doc/diagrams/PCD.png | Bin 0 -> 108715 bytes 4 files changed, 634 insertions(+), 44 deletions(-) create mode 100644 doc/diagrams/.$PCD.drawio.bkp create mode 100644 doc/diagrams/PCD.drawio create mode 100644 doc/diagrams/PCD.png diff --git a/doc/PRD-PCD-Specs.md b/doc/PRD-PCD-Specs.md index 822a0c6..4f42216 100644 --- a/doc/PRD-PCD-Specs.md +++ b/doc/PRD-PCD-Specs.md @@ -3,36 +3,44 @@ * 2. [Portée](#Porte) * 3. [3. Documents de référence](#Documentsderfrence) * 4. [Commun aux `RequestPcd` et RequestPrd](#CommunauxRequestPcdetRequestPrd) -* 4.1. [Création et envoi](#Crationetenvoi) -* 4.2. [Réception](#Rception) + * 4.1. [Création et envoi](#Crationetenvoi) + * 4.2. [Réception](#Rception) * 5. [Fonction des RequestPcd](#FonctiondesRequestPcd) -* 5.1. [Création et envoi](#Crationetenvoi-1) -* 5.2. [Réception](#Rception-1) + * 5.1. [Schéma des flux](#Schmadesflux) + * 5.2. [Création et envoi](#Crationetenvoi-1) + * 5.3. [Réception](#Rception-1) * 6. [Fonction des RequestPrd](#FonctiondesRequestPrd) -* 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles) -* 6.2. [Création et envoi](#Crationetenvoi-1) -* 6.3. [Réception](#Rception-1) + * 6.1. [Fonctionnalités optionnelles](#Fonctionnalitsoptionnelles) + * 6.2. [Création et envoi](#Crationetenvoi-1) + * 6.3. [Réception](#Rception-1) * 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd) -* 7.1. [Création : Datas spécifiques](#Cration:Datasspcifiques) -* 7.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques) + * 7.1. [Schéma des flux](#Schmadesflux-1) + * 7.2. [Création : Datas spécifiques](#Cration:Datasspcifiques) + * 7.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques) * 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages) -* 8.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 8.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 8.1. [Schéma des flux](#Schmadesflux-1) + * 8.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 8.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd) -* 9.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 9.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 9.1. [Schéma des flux](#Schmadesflux-1) + * 9.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 9.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception) -* 10.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 10.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 10.1. [Schéma des flux](#Schmadesflux-1) + * 10.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 10.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande) -* 11.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 11.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 11.1. [Schéma des flux](#Schmadesflux-1) + * 11.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 11.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup) -* 12.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 12.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 12.1. [Schéma des flux](#Schmadesflux-1) + * 12.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 12.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits) -* 13.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) -* 13.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) + * 13.1. [Schéma des flux](#Schmadesflux-1) + * 13.2. [Création : Datas spécifiques](#Cration:Datasspcifiques-1) + * 13.3. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1) * 14. [Exemples de Code](#ExemplesdeCode) * 15. [Todo](#Todo) @@ -88,7 +96,13 @@ Les Portable Contract Documents ( RequestPcd) sont des documents JSON qui encaps Les `Item` ainsi échangés via les `RequestPcd` sont vérifiés par les `RequestPrdResponse` afin de vérifier les validations de ces données et leurs conformités avec les `ItemProcess` et les `members` concernés. -### 5.1. Création et envoi +### 5.1. Schéma des flux + +Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. + +![RequestPcd](diagrams/PCD.png "RequestPcd") + +### 5.2. Création et envoi La création d'un `RequestPcd` suit plusieurs étapes : @@ -108,7 +122,7 @@ La création d'un `RequestPcd` suit plusieurs étapes : | `RequestPrdKeyBackup` | No | No | No | all the members of the `SharedProcess` | No | Yes | No | | `RequestPrdKeyHello` | No | No | No | all the members of all `Role` into to `ItemProcess` | Yes | Yes | Yes | -### 5.2. Réception +### 5.3. Réception La réception d'un `RequestPcd` suit plusieurs étapes : @@ -199,18 +213,18 @@ La réception d'un `RequestPcd` suit plusieurs étapes : Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le résweau. Chaque `RequestPcd` liste des `Item` d'un même type, par exemple les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc. -### Schéma des flux +### 7.1. Schéma des flux Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. ![RequestPrdList](diagrams/PRDList.png "RequestPrdList") -### 7.1. Création : Datas spécifiques +### 7.2. Création : Datas spécifiques 1. Traitements des `RequestPrd`, avec le `type_request` 2. Pas de data spécifiques. -### 7.2. Réception : Datas spécifiques +### 7.3. Réception : Datas spécifiques La réception d'un `RequestPrdList` suit plusieurs étapes : @@ -228,19 +242,19 @@ Permet la communication : Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi de `raw_transaction_list` (cas d'utilisation du afin de transaférer la `transaction SP` d'un autre `RequestPrd`). -### Schéma des flux +### 8.1. Schéma des flux Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. Cas d'un RequestPrdMesage avec `raw_transaction_list` vide (et son RequestPrdMessage avec `raw_transaction_list` non vide). ![RequestPrdMessage](diagrams/PRDMessage.png "RequestPrdMessage") -### 8.1. Création : Datas spécifiques +### 8.2. Création : Datas spécifiques 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` 2. Cas de la transmission d'une `Transaction SP` d'un autre vRequestPrd` au format `raw` dans l'attribut `raw_transaction_list` pour la publication de la transaction dans la side chain. -### 8.2. Réception : Datas spécifiques +### 8.3. Réception : Datas spécifiques 1. Traitements des `RequestPrd` @@ -256,18 +270,18 @@ Par exemple, mettre à jour la liste des membres permet d'ajouter de nouveaux ut Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_version_hash` les nouvelles version des RequestPcd. -### Schéma des flux +### 9.1. Schéma des flux Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. ![RequestPrdUpdate](diagrams/PRDUpdate.png "RequestPrdUpdate") -### 9.1. Création : Datas spécifiques +### 9.2. Création : Datas spécifiques 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdUpdate` 2. Pas de data spécifiques. -### 9.2. Réception : Datas spécifiques +### 9.3. Réception : Datas spécifiques La réception d'un `RequestPrdUpdate` suit plusieurs étapes : @@ -282,16 +296,16 @@ Les `RequestPrdList`, `RequestPrdUpdate`, `RequestPrdMessage`, `RequestPrdRespon `code_confirm_enc_by_shared_secret`: Un code de confirmation chiffré qui valide l'authenticité et l'intégrité de la réponse, assurant que la confirmation est sécurisée et provient de la source attendue. Dans ce cas un output spécifique chiffré par la clé `KeyConfidential` précise ce code, à confirmer dans le RequestPrdConfirm. -### Schéma des flux +### 10.1. Schéma des flux ![RequestPrdConfirm](diagrams/PRDConfirm.png "RequestPrdConfirm") -### 10.1. Création : Datas spécifiques +### 10.2. Création : Datas spécifiques 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` 2. Communication éventuelle d'un `code_confirm_enc_by_shared_secret` à confirmer dans le `RequestPrdConfirm`. -### 10.2. Réception : Datas spécifiques +### 10.3. Réception : Datas spécifiques 1. Traitements des `RequestPrd`, pas de traitement suppplémentaire. 2. Vérification du `code_confirm_enc_by_shared_secret` dans le `RequestPrdConfirm` reçu. @@ -306,20 +320,20 @@ Utilisé pour fournir des feedbacks, des confirmations, ou des instructions supp Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions. -### Schéma des flux +### 11.1. Schéma des flux Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le schéma. ![RequestPrdResponse](diagrams/PRDResponse.png "RequestPrdResponse") -### 11.1. Création : Datas spécifiques +### 11.2. Création : Datas spécifiques 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` 2. Attente de la valeur de la signature de l'utilisateur `sig_value` (si non automatique) 3. En cas de réponse à `RequestPrdKeyBackup` :`pre_id_enc_by_sp_shared_secret` avec les shards correspondants à la `pre-id` demandée. 4. (option) `shared_secret_key` paratage d'une clé de chiffrement ad'hoc -### 11.2. Réception : Datas spécifiques +### 11.3. Réception : Datas spécifiques 1. Traitements des `RequestPrd` 2. Vérification des conditions de validation des RequestPcd associés. @@ -329,18 +343,18 @@ Pour simplifier les RequestPrdConfirm n'ont pas été représentés dans le sch Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` . -### Schéma des flux +### 12.1. Schéma des flux ![RequestPrdKeyBakcup](diagrams/PRDKeyBakcup.png "RequestPrdKeyBakcup") -### 12.1. Création : Datas spécifiques +### 12.2. Création : Datas spécifiques 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyBakcup` 2. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pre_id 2.1. Mise à jour de `pre_id_enc_by_sp_shared_secret` 2.2. Mise à jour de `shard_enc_by_sp_shared_secret` -### 12.2. Réception : Datas spécifiques +### 12.3. Réception : Datas spécifiques 1. Traitements des `RequestPrd` 2. Voir [Auth-Specs.md](Auth-Specs.md) @@ -353,16 +367,16 @@ RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échan Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau. -### Schéma des flux +### 13.1. Schéma des flux ![RequestPrdKeyHello](diagrams/PRDKeyHello.png "RequestPrdKeyHello") -### 13.1. Création : Datas spécifiques +### 13.2. Création : Datas spécifiques 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello` 2. Voir [Auth-Specs.md](Auth-Specs.md) pour ma mise à jour de `pre_id_enc_by_sp_shared_secret` -### 13.2. Réception : Datas spécifiques +### 13.3. Réception : Datas spécifiques 1. Traitements des `RequestPrd` 2. Voir [Auth-Specs.md](Auth-Specs.md) diff --git a/doc/diagrams/.$PCD.drawio.bkp b/doc/diagrams/.$PCD.drawio.bkp new file mode 100644 index 0000000..b2a7fd4 --- /dev/null +++ b/doc/diagrams/.$PCD.drawio.bkp @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/diagrams/PCD.drawio b/doc/diagrams/PCD.drawio new file mode 100644 index 0000000..4a34fd5 --- /dev/null +++ b/doc/diagrams/PCD.drawio @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/diagrams/PCD.png b/doc/diagrams/PCD.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d74723f97009d66e6dbd49a58e2f5e76022afc GIT binary patch literal 108715 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