PRD & PCD fields & ItemMember shared by PRDList for Id create (doc)
This commit is contained in:
parent
83f8c51648
commit
c00390822f
@ -143,7 +143,6 @@ Ce qui est résumé Pour la réception :
|
|||||||
| `RequestPrdResponse` | Info | Yes | No | No | No | No |
|
| `RequestPrdResponse` | Info | Yes | No | No | No | No |
|
||||||
| `RequestPrdConfirm` | Info | No | No | No | No | No |
|
| `RequestPrdConfirm` | Info | No | No | No | No | No |
|
||||||
|
|
||||||
|
|
||||||
## 6. <a name='Encryption'></a>Encryption
|
## 6. <a name='Encryption'></a>Encryption
|
||||||
|
|
||||||
Schema :
|
Schema :
|
||||||
@ -162,14 +161,15 @@ Les `Metadata` des `Item` des `RequestPcd` et les attributs des `RequestPcd` et
|
|||||||
|
|
||||||
Principaux champs des `Request` contenus dans les `RequestPcd` et `RequestPrd` chiffrés :
|
Principaux champs des `Request` contenus dans les `RequestPcd` et `RequestPrd` chiffrés :
|
||||||
|
|
||||||
* **`request_type`** :
|
* **`request_type`** : Type de requête : `RequestPcd`, `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, `RequestPrdConfirm`, `RequestPrdResponse`.
|
||||||
* **`version`** :
|
* **`item_name`** : Noms des items : `peer`, `member`, `process`, `payment`, `deposit`, `commitment`, et les `artefact` personnalisés.
|
||||||
* **`process_hash`** :
|
* **`version`** : Version de la requête.
|
||||||
* **`request_pcd_reference_hash`** :
|
* **`process_hash`** : Hash de l'`ItemProcess` concerné.
|
||||||
* **`request_pcd_origin_hash`** :
|
* **`request_pcd_reference_hash`** : Hash du `RequestPcd` auquel le `RequestPrd` fait référence.
|
||||||
* **`request_prd_reference_hash`** :
|
* **`request_pcd_origin_hash`** : Hash du `RequestPcd` à l'origine du `RequestPrd`.
|
||||||
* **`request_prd_origin_hash`** :
|
* **`request_prd_reference_hash`** : Hash du `RequestPrd` auquel le `RequestPrd` fait référence.
|
||||||
* **`item_reference_hash`** :
|
* **`request_prd_origin_hash`** : Hash du `RequestPrd` à l'origine du `RequestPrd`.
|
||||||
|
* **`item_reference_hash`** : Hash de l'`Item` auquel le `RequestPcd` fait référence.
|
||||||
|
|
||||||
### 6.1. <a name='Crationetenvoi'></a>Création et envoi
|
### 6.1. <a name='Crationetenvoi'></a>Création et envoi
|
||||||
|
|
||||||
@ -207,40 +207,46 @@ Les `Item` échangés via les `RequestPcd` sont soumis à une vérification par
|
|||||||
|
|
||||||
Principaux champs des `RequestPcd` :
|
Principaux champs des `RequestPcd` :
|
||||||
|
|
||||||
* **`request`** :
|
* **`request`** : cf la descripton de la structure `Request`.
|
||||||
* **`item_enc_list`** :
|
* **`item_enc_list`** : Les `Item` chiffrés par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.
|
||||||
* **`pagination`** :
|
* **`pagination`** : La pagination de la liste des `Item`.
|
||||||
|
|
||||||
Principaux champs de la structure `Pagination` :
|
Principaux champs de la structure `Pagination` :
|
||||||
|
|
||||||
* **`start`** :
|
* **`start`** : Index du premier `Item` de la liste.
|
||||||
* **`number`** :
|
* **`number`** : Nombre d'`Item` à afficher.
|
||||||
* **`page_index`** :
|
* **`page_index`** : Index de la page.
|
||||||
* **`page_total`** :
|
* **`page_total`** : Nombre total de pages.
|
||||||
|
|
||||||
Principaux champs de la structure `RequestPcdItemGenericEnc` :
|
Principaux champs de la structure `RequestPcdItemGenericEnc` :
|
||||||
|
|
||||||
* **`version`** :
|
* **`version`** : Version de l'`Item`.
|
||||||
* **`item_type`** :
|
* **`item_type`** : Type de l'`Item`.
|
||||||
* **`name`** :
|
* **`name`** : Nom de l'`Item`.
|
||||||
* **`request_pcd_item_enc_attribute_public_list`** :
|
* **`request_pcd_item_enc_attribute_public_list`** : Liste d'objets `RequestPcdItemEncAttributePublic` des attributs publics de l'`Item` chiffré.
|
||||||
* **`request_pcd_item_enc_attribute_role_confidential_list`** :
|
* **`request_pcd_item_enc_attribute_role_confidential_list`** : Liste d'objets `RequestPcdItemEncAttributeRoleConfidential` des attributs confidentiels de l'`Item` chiffré.
|
||||||
* **`request_pcd_item_enc_attribute_private_list`** :
|
* **`request_pcd_item_enc_attribute_private_list`** : Liste d'objets `RequestPcdItemEncAttributePrivate` des attributs privés de l'`Item` chiffré.
|
||||||
|
|
||||||
Principaux champs de la structure `RequestPcdItemEncAttributePublic` :
|
Principaux champs de la structure `RequestPcdItemEncAttributePublic` :
|
||||||
|
|
||||||
* **`attribute_name`** :
|
* **`attribute_name`** : Nom de l'attribut.
|
||||||
* **`data_enc`** :
|
* **`data_enc`** : Données chiffrées par la clé `ProcessKey` de l'`ItemProcess` concerné.
|
||||||
|
* **`key`** : [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.
|
||||||
|
* **`data`** : [PRIVE] Non partagé dans les messages. Données en clair.
|
||||||
|
|
||||||
Principaux champs de la structure `RequestPcdItemEncAttributeRoleConfidential` :
|
Principaux champs de la structure `RequestPcdItemEncAttributeRoleConfidential` :
|
||||||
|
|
||||||
* **`attribute_name`** :
|
* **`attribute_name`** : Nom de l'attribut.
|
||||||
* **`data_enc`** :
|
* **`data_enc`** : Données chiffrées par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.
|
||||||
|
* **`key`** : [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.
|
||||||
|
* **`data`** : [PRIVE] Non partagé dans les messages. Données en clair.
|
||||||
|
|
||||||
Principaux champs de la structure `RequestPcdItemEncAttributePrivate` :
|
Principaux champs de la structure `RequestPcdItemEncAttributePrivate` :
|
||||||
|
|
||||||
* **`attribute_name`** :
|
* **`attribute_name`** : Nom de l'attribut.
|
||||||
* **`data_enc`** :
|
* **`data_enc`** : Données chiffrées par la clé privée `KeyRecover`.
|
||||||
|
* **`key`** : [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.
|
||||||
|
* **`data`** : [PRIVE] Non partagé dans les messages. Données en clair.
|
||||||
|
|
||||||
### 7.1. <a name='Schmadesflux'></a>Schéma des flux
|
### 7.1. <a name='Schmadesflux'></a>Schéma des flux
|
||||||
|
|
||||||
@ -277,31 +283,31 @@ Les `RequestPrd` se déclinent en plusieurs types, tels que `RequestPrdList`, `R
|
|||||||
|
|
||||||
Principaux champs des `RequestPcd` :
|
Principaux champs des `RequestPcd` :
|
||||||
|
|
||||||
* **`request`** :
|
* **`request`** : cf la descripton de la structure `Request`.
|
||||||
* **`sig_value`** :
|
* **`sig_value`** : Valeur de la signature (parmi les valeurs valant pour `OK`, `KO` ou `none` telles que définies dans l'`ItemProcess`).
|
||||||
* **`request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret`** :
|
* **`request_pcd_reference_keys_role_confidential_list_enc_by_shared_secret`** : Clés de déchiffrement des attributs confidentiels des `Item` des `RequestPcd` chiffrées par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret`** :
|
* **`request_pcd_origin_hash_keys_role_confidential_list_enc_by_shared_secret`** : Clés de déchiffrement des attributs confidentiels des `Item` des `RequestPcd` du `RequestPCD` de référence, chiffrées par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`message_public`** :
|
* **`message_public`** : Message public, chiffré par la clé `ProcessKey` du `ItemProcess` concerné.
|
||||||
* **`message_confidential`** :
|
* **`message_confidential`** : Message confidentiel, chiffré par la clé `ProcessKey` du `ItemProcess` concerné.
|
||||||
* **`message_private`** :
|
* **`message_private`** : Message privé, chiffré par la clé privée `KeyRecover`.
|
||||||
* **`sp_address_to`** :
|
* **`sp_address_to`** : Adresse du destinataire.
|
||||||
* **`sp_address_from`** :
|
* **`sp_address_from`** : Adresse de l'émetteur.
|
||||||
* **`sp_address_reply`** :
|
* **`sp_address_reply`** : Adresse de réponse à l'émetteur.
|
||||||
* **`timestamp_declared`** :
|
* **`timestamp_declared`** : Horodatage déclaré.
|
||||||
* **`role_name_from`** :
|
* **`role_name_from`** : Nom du rôle de l'émetteur.
|
||||||
* **`role_name_to`** :
|
* **`role_name_to`** : Nom du rôle du destinataire.
|
||||||
* **`payment_method_enc_by_shared_secret`** :
|
* **`payment_request_pcd_hash_list_enc_by_shared_secret`** : Liste des `RequestPcd` d'`Item` de nom `paiement` chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`deposit_method_enc_by_shared_secret`** :
|
* **`cap_request_pcd_hash_list_enc_by_shared_secret`** : Liste des `RequestPcd` d'`Item` de nom `deposit` chiffrée par la clé `KeyConfidential` d'une `transaction SP` servant à la validation des paiements temporaires en attente du passage d'un cap.
|
||||||
* **`commitment_method_enc_by_shared_secret`** :
|
* **`deposit_request_pcd_hash_list_enc_by_shared_secret`** : Liste des `RequestPcd` d'`Item` de nom `deposit` chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`payment_request_pcd_hash_list_enc_by_shared_secret`** :
|
* **`commitment_request_pcd_hash_list_enc_by_shared_secret`** : Liste des `RequestPcd` d'`Item` de nom `commitment` chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`cap_request_pcd_hash_list_enc_by_shared_secret`** :
|
* **`ask_payment_method_enc_by_shared_secret`** : Demande de méthode de paiement chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`deposit_request_pcd_hash_list_enc_by_shared_secret`** :
|
* **`ask_deposit_method_enc_by_shared_secret`** : Demande de méthode de dépôt chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`commitment_request_pcd_hash_list_enc_by_shared_secret`** :
|
* **`ask_commitment_method_enc_by_shared_secret`** : Demande de méthode d'engagement chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`ask_payment_method_enc_by_shared_secret`** :
|
* **`payment_method_enc_by_shared_secret`** : Méthode de paiement chiffrée par la clé `KeyConfidential` d'une `transaction SP`, en réponse à une demande.
|
||||||
* **`ask_deposit_method_enc_by_shared_secret`** :
|
* **`deposit_method_enc_by_shared_secret`** : Méthode de dépôt chiffrée par la clé `KeyConfidential` d'une `transaction SP`, en réponse à une demande.
|
||||||
* **`ask_commitment_method_enc_by_shared_secret`** :
|
* **`commitment_method_enc_by_shared_secret`** : Méthode d'engagement chiffrée par la clé `KeyConfidential` d'une `transaction SP`, en réponse à une demande.
|
||||||
* **`certif_key_enc_by_shared_secret`** :
|
* **`certif_key_enc_by_shared_secret`** : Clé de certification chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`device_footprint_enc_by_sp_shared_secret`** :
|
* **`device_footprint_enc_by_sp_shared_secret`** : Empreinte du dispositif de l'émetteur, chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
|
|
||||||
### 8.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 8.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -377,9 +383,36 @@ Workflow:
|
|||||||
|
|
||||||
Principaux champs des `RequestPrdList` :
|
Principaux champs des `RequestPrdList` :
|
||||||
|
|
||||||
* **`request_prd`** :
|
* **`request_prd`** : cf la descripton de la structure `RequestPrd`.
|
||||||
* **`item_member_enc_by_sp_shared_secret`** :
|
|
||||||
* **`pre_id_sp_enc_by_shared_secret`** :
|
Dans le cas d'une création de compte :
|
||||||
|
|
||||||
|
* **`item_member_enc_by_sp_shared_secret`** : Nouvel `ItemMember` temporaire,chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
|
|
||||||
|
L'`ItemMember` temporaire contient les métadonnées de type `Metadata` suivantes :
|
||||||
|
|
||||||
|
* **`MetadataProcessPublic` de type `ItemMemberPublicAttributeGroup`** :
|
||||||
|
|
||||||
|
* **`sp_address_public`** : Adresse publique de l'utilisateur, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`sp_address_public_sig`** : Signature de l'adresse publique de l'utilisateur par la clé `recover`, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`sp_address_revoke_public`** : Adresse publique de révocation de l'utilisateur, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`sp_address_revoke_public_sig`** : Signature de l'adresse publique de révocation de l'utilisateur par la clé de spend de `revoke`, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`third_sp_address_list_public`** : Liste des adresses publiques de devices tiers, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`data_size_max`** : Taille maximale des données acceptée par l'utilisateur (par flux), chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`payment_method_list_public`** : Liste des méthodes de paiement acceptées par l'utilisateur, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`succession_process_hash`** : Hash du processus de succession de l'utilisateur (transmission de l'identité numérique et donc de tous les flux associés), chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
* **`device_footprint`** : Empreinte du dispositif de l'utilisateur, chiffré par la `ProcessKey` de l'`ItemProcess`.
|
||||||
|
|
||||||
|
* **`MetadataRoleConfidential` de type `ItemMemberRoleConfidentialAttributeGroup`** :
|
||||||
|
|
||||||
|
* **`shard_confidential`** : Shard de l'utilisateur, chiffré par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
|
* **`pre_id_confidential`** : Pré empreinte de l'identité numérique de l'utilisateur, chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
|
|
||||||
|
* **`MetadataPrivate` de type `ItemMemberRolePrivateAttributeGroup`** :
|
||||||
|
|
||||||
|
* **`priv_key_mainnet_spend`** : Clé de dépense de l'utilisateur, chiffrée par la clé privée du mainnet, chiffrée par `KeyRecover`.
|
||||||
|
* **`priv_key_mainnet_scan`** : Clé de scan de l'utilisateur, chiffrée par la clé privée du mainnet, chiffrée par `KeyRecover`.
|
||||||
|
* **`priv_key_signet_scan`** : Clé de scan du signet de `recover`de l'utilisateur, chiffrée `KeyRecover`.
|
||||||
|
|
||||||
### 9.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 9.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -418,8 +451,8 @@ Workflow :
|
|||||||
|
|
||||||
Principaux champs des `RequestPrdMessage` :
|
Principaux champs des `RequestPrdMessage` :
|
||||||
|
|
||||||
* **`request_prd`** :
|
* **`request_prd`** : cf la descripton de la structure `RequestPrd`.
|
||||||
* **`raw_transaction_list`** :
|
* **`raw_transaction_list`** : Liste des `transaction SP` au format `raw` pour la publication de la transaction dans la side chain.
|
||||||
|
|
||||||
### 10.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 10.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -454,7 +487,7 @@ Workflow:
|
|||||||
|
|
||||||
Principaux champs des `RequestPrdUpdate` :
|
Principaux champs des `RequestPrdUpdate` :
|
||||||
|
|
||||||
* **`request_prd`** :
|
* **`request_prd`** : cf la descripton de la structure `RequestPrd`.
|
||||||
|
|
||||||
### 11.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 11.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -488,8 +521,8 @@ Voir les diagrammes `PRDUpdateFlows`, `PRDUpdateFlows` et `PRDMessageFlows`.
|
|||||||
|
|
||||||
Principaux champs des `RequestPrdConfirm` :
|
Principaux champs des `RequestPrdConfirm` :
|
||||||
|
|
||||||
* **`request_prd`** :
|
* **`request_prd`** : cf la descripton de la structure `RequestPrd`.
|
||||||
* **`code_confirm_enc_by_shared_secret`** :
|
* **`code_confirm_enc_by_shared_secret`** : Code de confirmation chiffré par la clé `KeyConfidential` d'une `transaction SP` dans le cas d'un 2FA.
|
||||||
|
|
||||||
### 12.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 12.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -519,10 +552,9 @@ Voir les diagrammes `PRDUpdateFlows` et `PRDUpdateFlows`.
|
|||||||
|
|
||||||
Principaux champs des `RequestPrdResponse` :
|
Principaux champs des `RequestPrdResponse` :
|
||||||
|
|
||||||
* **`request_prd`** :
|
* **`request_prd`** : cf la descripton de la structure `RequestPrd`.
|
||||||
* **`sig_value`** :
|
* **`shared_secret_key_enc_by_sp_shared_secret`** : Clé de chiffrement partagée chiffrée par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`shared_secret_key_enc_by_sp_shared_secret`** :
|
* **`shard_enc_by_sp_shared_secret`** : Shard chiffré par la clé `KeyConfidential` d'une `transaction SP`.
|
||||||
* **`shard_enc_by_sp_shared_secret`** :
|
|
||||||
|
|
||||||
### 13.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
### 13.1. <a name='Schmadesflux-1'></a>Schéma des flux
|
||||||
|
|
||||||
@ -548,11 +580,11 @@ Pour simplifier, les `RequestPrdConfirm` n'ont pas été représentés dans le s
|
|||||||
## 15. <a name='Todo'></a>Todo
|
## 15. <a name='Todo'></a>Todo
|
||||||
|
|
||||||
[ ] Description détaillée de tous les éléments (attributs) qui composent le ‘request-type’:
|
[ ] Description détaillée de tous les éléments (attributs) qui composent le ‘request-type’:
|
||||||
[ ] Qu’y a-t-il dans le ‘request-type’?
|
[x] Qu’y a-t-il dans le ‘request-type’?
|
||||||
[ ] A quoi sert l’attribut X du ‘request-type’?
|
[x] A quoi sert l’attribut X du ‘request-type’?
|
||||||
[ ] Description un par un des contextes où le ‘request-type’ est utilisé.
|
[x] Description un par un des contextes où le ‘request-type’ est utilisé.
|
||||||
[ ] Description pas à pas de l’envoi du ‘request-type’.
|
[x] Description pas à pas de l’envoi du ‘request-type’.
|
||||||
[ ] Que se passe-t-il dans le système lorsque le ‘request-type est envoyé?
|
[ ] Que se passe-t-il dans le système lorsque le ‘request-type est envoyé?
|
||||||
[ ] Description pas à pas de la réception du ‘request-type’.
|
[x] Description pas à pas de la réception du ‘request-type’.
|
||||||
[ ] Que se passe-t-il dans le système lorsque le ‘request-type est reçu?
|
[x] Que se passe-t-il dans le système lorsque le ‘request-type est reçu?
|
||||||
[ ] Exemple d’utilisation.
|
[x] Exemple d’utilisation.
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user