From 83f8c5164845adfae0d4b269b15172513dc58620 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 20 Mar 2024 09:23:54 +0100 Subject: [PATCH] fields desc wip (doc) --- doc/PRD-PCD-Specs.md | 103 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/doc/PRD-PCD-Specs.md b/doc/PRD-PCD-Specs.md index ee97528..aa11650 100644 --- a/doc/PRD-PCD-Specs.md +++ b/doc/PRD-PCD-Specs.md @@ -160,6 +160,17 @@ Les `Metadata` des `Item` des `RequestPcd` et les attributs des `RequestPcd` et * **Données privées** : Chiffrées symétriquement en utilisant la clé de dépense de connexion (`recover`) du signet (voir Login - Specs). +Principaux champs des `Request` contenus dans les `RequestPcd` et `RequestPrd` chiffrés : + +* **`request_type`** : +* **`version`** : +* **`process_hash`** : +* **`request_pcd_reference_hash`** : +* **`request_pcd_origin_hash`** : +* **`request_prd_reference_hash`** : +* **`request_prd_origin_hash`** : +* **`item_reference_hash`** : + ### 6.1. Création et envoi Les `RequestPcd` et les `RequestPrd` sont envoyés sous forme de messages (`JSON`) via les `websockets` des relais. @@ -194,6 +205,43 @@ Les Portable Contract Documents (`RequestPcd`) sont des documents au format `JSO Les `Item` échangés via les `RequestPcd` sont soumis à une vérification par les `RequestPrdResponse` dans le but de contrôler la validité de ces données et leur conformité avec les `ItemProcess` et les `member` du `Role` concerné. +Principaux champs des `RequestPcd` : + +* **`request`** : +* **`item_enc_list`** : +* **`pagination`** : + +Principaux champs de la structure `Pagination` : + +* **`start`** : +* **`number`** : +* **`page_index`** : +* **`page_total`** : + +Principaux champs de la structure `RequestPcdItemGenericEnc` : + +* **`version`** : +* **`item_type`** : +* **`name`** : +* **`request_pcd_item_enc_attribute_public_list`** : +* **`request_pcd_item_enc_attribute_role_confidential_list`** : +* **`request_pcd_item_enc_attribute_private_list`** : + +Principaux champs de la structure `RequestPcdItemEncAttributePublic` : + +* **`attribute_name`** : +* **`data_enc`** : + +Principaux champs de la structure `RequestPcdItemEncAttributeRoleConfidential` : + +* **`attribute_name`** : +* **`data_enc`** : + +Principaux champs de la structure `RequestPcdItemEncAttributePrivate` : + +* **`attribute_name`** : +* **`data_enc`** : + ### 7.1. Schéma des flux ![RequestPcd](diagrams/PCD.png "RequestPcd") @@ -227,6 +275,34 @@ Les clés permettant le chiffrement des attributs confidentiels par rôles des ` Les `RequestPrd` se déclinent en plusieurs types, tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc., correspondant à différentes actions comme l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions. +Principaux champs des `RequestPcd` : + +* **`request`** : +* **`sig_value`** : +* **`request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret`** : +* **`request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret`** : +* **`message_public`** : +* **`message_confidential`** : +* **`message_private`** : +* **`sp_address_to`** : +* **`sp_address_from`** : +* **`sp_address_reply`** : +* **`timestamp_declared`** : +* **`role_name_from`** : +* **`role_name_to`** : +* **`payment_method_enc_by_shared_secret`** : +* **`deposit_method_enc_by_shared_secret`** : +* **`commitment_method_enc_by_shared_secret`** : +* **`payment_request_pcd_hash_list_enc_by_shared_secret`** : +* **`cap_request_pcd_hash_list_enc_by_shared_secret`** : +* **`deposit_request_pcd_hash_list_enc_by_shared_secret`** : +* **`commitment_request_pcd_hash_list_enc_by_shared_secret`** : +* **`ask_payment_method_enc_by_shared_secret`** : +* **`ask_deposit_method_enc_by_shared_secret`** : +* **`ask_commitment_method_enc_by_shared_secret`** : +* **`certif_key_enc_by_shared_secret`** : +* **`device_footprint_enc_by_sp_shared_secret`** : + ### 8.1. Schéma des flux Pour simplifier, les `RequestPrdConfirm` n'ont pas été inclus dans le schéma. @@ -299,6 +375,12 @@ Workflow: ![PRDListFlows](diagrams/PRDListFlows.png "PRDListFlows") +Principaux champs des `RequestPrdList` : + +* **`request_prd`** : +* **`item_member_enc_by_sp_shared_secret`** : +* **`pre_id_sp_enc_by_shared_secret`** : + ### 9.1. Schéma des flux Pour simplifier, les `RequestPrdConfirm` n'ont pas été inclus dans le schéma. @@ -334,6 +416,11 @@ Les `RequestPrdMessage` peuvent répondre aux autres `RequestPrdMessage`, sauf e Workflow : ![PRDMessageFlows](diagrams/PRDMessageFlows.png "PRDMessageFlows") +Principaux champs des `RequestPrdMessage` : + +* **`request_prd`** : +* **`raw_transaction_list`** : + ### 10.1. Schéma des flux Pour simplifier, les `RequestPrdConfirm` n'ont pas été inclus dans le schéma. Exemple d'un `RequestPrdMessage` avec `raw_transaction_list` vide, et son cas correspondant où le `RequestPrdMessage` contient une `raw_transaction_list` non vide. @@ -365,6 +452,10 @@ Workflow: ![PRDUpdateFlows](diagrams/PRDUpdateFlows.png "PRDUpdateFlows") +Principaux champs des `RequestPrdUpdate` : + +* **`request_prd`** : + ### 11.1. Schéma des flux Pour simplifier, les `RequestPrdConfirm` n'ont pas été représentés dans le schéma. @@ -395,6 +486,11 @@ Worflow: Voir les diagrammes `PRDUpdateFlows`, `PRDUpdateFlows` et `PRDMessageFlows`. +Principaux champs des `RequestPrdConfirm` : + +* **`request_prd`** : +* **`code_confirm_enc_by_shared_secret`** : + ### 12.1. Schéma des flux ![RequestPrdConfirm](diagrams/PRDConfirm.png "RequestPrdConfirm") @@ -421,6 +517,13 @@ Workflow: Voir les diagrammes `PRDUpdateFlows` et `PRDUpdateFlows`. +Principaux champs des `RequestPrdResponse` : + +* **`request_prd`** : +* **`sig_value`** : +* **`shared_secret_key_enc_by_sp_shared_secret`** : +* **`shard_enc_by_sp_shared_secret`** : + ### 13.1. Schéma des flux Pour simplifier, les `RequestPrdConfirm` n'ont pas été représentés dans le schéma.