PCD - PRD details (doc)

This commit is contained in:
NicolasCantu 2024-02-18 17:20:49 +01:00
parent b666b2a0ee
commit 82f2a07437
5 changed files with 137 additions and 152 deletions

View File

@ -144,7 +144,7 @@ Cette clé est d'abord décomposée, avant d'être partiellement distribuée. Vo
3.2. Définition de l'attribut `device_footprint_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`. 3.2. Définition de l'attribut `device_footprint_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`.
3.3. Définition de l'attribut `part_1_enc_hash_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`. 3.3. Définition de l'attribut `pre_id_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`.
3.4. Définition de l'attribut `shard_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`. 3.4. Définition de l'attribut `shard_enc_by_sp_shared_secret` et chiffrement avec `sp_shared_secret`.
@ -243,7 +243,7 @@ Lorsqu'une transaction est reçue sur l'application de 2FA, celle-ci demande de
Pour recrééer sa clé privée et envoyer un `RequestPrdKeyHello` à chaque membre du rôle `Member` du process, il faut réaliser les opérations suivantes : Pour recrééer sa clé privée et envoyer un `RequestPrdKeyHello` à chaque membre du rôle `Member` du process, il faut réaliser les opérations suivantes :
1. Récupération de Part1Enc en cache 1. Récupération de Part1Enc en cache
2. Création de la pré-image avec le mot de passe 2. Création de la `pre_id` avec le mot de passe
Puis depuis la liste des membres du process, pour chacun des membres : Puis depuis la liste des membres du process, pour chacun des membres :

View File

@ -188,7 +188,7 @@ Pour les `RequestPrd` de type `RequestPrdResponse` :
* `commitment_method_enc_by_shared_secret` * `commitment_method_enc_by_shared_secret`
* `certif_key_enc_by_shared_secret` * `certif_key_enc_by_shared_secret`
* `device_footprint_enc_by_sp_shared_secret` * `device_footprint_enc_by_sp_shared_secret`
* `part_1_enc_hash_enc_by_sp_shared_secret` * `pre_id_enc_by_sp_shared_secret`
* `shard_enc_by_sp_shared_secret` * `shard_enc_by_sp_shared_secret`
Pour les `RequestPrd` de type `RequestPrdConfirm` : Pour les `RequestPrd` de type `RequestPrdConfirm` :
@ -198,12 +198,12 @@ Pour les `RequestPrd` de type `RequestPrdConfirm` :
Pour les `RequestPrd` de type `RequestPrdKeyBackup` : Pour les `RequestPrd` de type `RequestPrdKeyBackup` :
* `device_footprint_enc_by_sp_shared_secret` * `device_footprint_enc_by_sp_shared_secret`
* `part_1_enc_hash_enc_by_sp_shared_secret` * `pre_id_enc_by_sp_shared_secret`
* `shard_enc_by_sp_shared_secret` * `shard_enc_by_sp_shared_secret`
Pour les `RequestPrd` de type `RequestPrdKeyHello` : Pour les `RequestPrd` de type `RequestPrdKeyHello` :
* `part_1_enc_hash_enc_by_sp_shared_secret` * `pre_id_enc_by_sp_shared_secret`
Puis le `RequestPrd` est chiffré par la `ProcessKey` du `ItemProcess`. Cette partie chiffrée est la valeur de l'attribut `request_enc` du `Message`. Puis le `RequestPrd` est chiffré par la `ProcessKey` du `ItemProcess`. Cette partie chiffrée est la valeur de l'attribut `request_enc` du `Message`.

View File

@ -13,26 +13,26 @@
* 6.2. [Création et envoi](#Crationetenvoi-1) * 6.2. [Création et envoi](#Crationetenvoi-1)
* 6.3. [Réception](#Rception-1) * 6.3. [Réception](#Rception-1)
* 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd) * 7. [RequestPrdList - Demande de Listes ( RequestPcd)](#RequestPrdList-DemandedeListesRequestPcd)
* 7.1. [Création et envoi](#Crationetenvoi-1) * 7.1. [Création : Datas spécifiques](#Cration:Datasspcifiques)
* 7.2. [Réception](#Rception-1) * 7.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques)
* 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages) * 8. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
* 8.1. [Création et envoi](#Crationetenvoi-1) * 8.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 8.2. [Réception](#Rception-1) * 8.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd) * 9. [RequestPrdUpdate - Mises à Jour de RequestPcd](#RequestPrdUpdate-MisesJourdeRequestPcd)
* 9.1. [Création et envoi](#Crationetenvoi-1) * 9.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 9.2. [Réception](#Rception-1) * 9.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception) * 10. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
* 10.1. [Création et envoi](#Crationetenvoi-1) * 10.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 10.2. [Réception](#Rception-1) * 10.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande) * 11. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
* 11.1. [Création et envoi](#Crationetenvoi-1) * 11.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 11.2. [Réception](#Rception-1) * 11.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup) * 12. [RequestPrdKeyBakcup](#RequestPrdKeyBakcup)
* 12.1. [Création et envoi](#Crationetenvoi-1) * 12.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 12.2. [Réception](#Rception-1) * 12.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits) * 13. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
* 13.1. [Création et envoi](#Crationetenvoi-1) * 13.1. [Création : Datas spécifiques](#Cration:Datasspcifiques-1)
* 13.2. [Réception](#Rception-1) * 13.2. [Réception : Datas spécifiques](#Rception:Datasspcifiques-1)
* 14. [Exemples de Code](#ExemplesdeCode) * 14. [Exemples de Code](#ExemplesdeCode)
* 15. [Todo](#Todo) * 15. [Todo](#Todo)
@ -98,15 +98,15 @@ La création d'un `RequestPcd` suit plusieurs étapes :
4. Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné. 4. Chiffrement du `RequestPcd` avec la clé `ProcessKey` du `ItemProcess` concerné.
5. Traitements communs aux `RequestPcd` et RequestPrd 5. Traitements communs aux `RequestPcd` et RequestPrd
| `request_type` | `transaction SP` + `RequestPrdMessage` | `RequestPcd` to send | send to | `RequestPcd` reply waiting | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting | | `request_type` | Notification user | `transaction SP` + `RequestPrdMessage` | `RequestPcd` to send | `request_type` send to | `RequestPcd` reply waiting | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting |
|-----------------------|----------------------------------------|----------------------|---------------------------------------------------------------|----------------------------|------------------------------------|-----------------------------------| |-----------------------|-----------------------------------------------------------------------------------|----------------------------------------|----------------------|---------------------------------------------------------------|----------------------------|------------------------------------|-----------------------------------|
| `RequestPrdList` | Yes | No | all the members of the `item_name` role into to `ItemProcess` | Yes | Yes | Yes | | `RequestPrdList` | No | Yes | No | all the members of the `item_name` role into to `ItemProcess` | Yes | Yes | Yes |
| `RequestPrdUpdate` | Yes | Yes | all the members of all role into to `ItemProcess` | No | Yes | Yes | | `RequestPrdUpdate` | waiting `sig_value` | Yes | Yes | all the members of all role into to `ItemProcess` | No | Yes | Yes |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | a member of the `ItemProcess` | No | No | if no `raw_transaction_list` | | `RequestPrdMessage` | waiting `sig_value` + `message_public`, `message_confidential`, `message_private` | if no `raw_transaction_list` | No | a member of the `ItemProcess` | No | No | if no `raw_transaction_list` |
| `RequestPrdResponse` | Yes | No | See Received | No | No | Yes | | `RequestPrdResponse` | waiting `sig_value` | Yes | No | See Received | No | No | Yes |
| `RequestPrdConfirm` | Yes | No | See Received | No | No | No | | `RequestPrdConfirm` | (option) Waiting `code_confirm_enc_by_shared_secret` | Yes | No | See Received | No | No | No |
| `RequestPrdKeyBackup` | No | No | all the members of the `SharedProcess` | No | Yes | No | | `RequestPrdKeyBackup` | No | No | No | all the members of the `SharedProcess` | No | Yes | No |
| `RequestPrdKeyHello` | Yes | No | all the members of all role into to `ItemProcess` | Yes | Yes | Yes | | `RequestPrdKeyHello` | No | Yes | No | all the members of all role into to `ItemProcess` | Yes | Yes | Yes |
### 5.2. <a name='Rception-1'></a>Réception ### 5.2. <a name='Rception-1'></a>Réception
@ -119,15 +119,15 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
5. Déchiffrage des attributs privés des `Item` des `RequestPcd` avec la clé privée `KeyRecover` 5. Déchiffrage des attributs privés des `Item` des `RequestPcd` avec la clé privée `KeyRecover`
6. Mise à jour du cache pour les traitement des RequestPrd. 6. Mise à jour du cache pour les traitement des RequestPrd.
| `request_type` | `RequestPrdConfirm` to send | `RequestPcd` to send | `RequestPrdResponse` to send | `RequestPrdResponse` reply waiting | | `request_type` | Notification user | `RequestPrdConfirm` to send | `RequestPcd` to send | `RequestPrdResponse` to send | `RequestPrdResponse` reply waiting | `RequestPrdConfirm` reply waiting (from `RequestPrdResponse` send ) |
|-----------------------|------------------------------|----------------------|---------------------------------------------------------------|------------------------------------| |-----------------------|-----------------------------------|------------------------------|----------------------|---------------------------------------------------------------|------------------------------------|---------------------------------------------------------------------|
| `RequestPrdList` | Yes | Yes | all the members of the `item_name` role into to `ItemProcess` | No | | `RequestPrdList` | No | Yes | Yes | all the members of the `item_name` role into to `ItemProcess` | No | Yes |
| `RequestPrdUpdate` | Yes | No | all the members of all role into to `ItemProcess` | Yes (other members) | | `RequestPrdUpdate` | Info | Yes | No | all the members of all role into to `ItemProcess` | Yes (other members) | Yes |
| `RequestPrdMessage` | if no `raw_transaction_list` | No | No | No | | `RequestPrdMessage` | Waiting `RequestPrdMessage` reply | if no `raw_transaction_list` | No | No | No | No |
| `RequestPrdResponse` | Yes | No | No | No | | `RequestPrdResponse` | Info | Yes | No | No | No | No |
| `RequestPrdConfirm` | No | No | No | No | | `RequestPrdConfirm` | Info | No | No | No | No | No |
| `RequestPrdKeyBackup` | No | No | reply | No | | `RequestPrdKeyBackup` | Info | No | No | reply | No | No |
| `RequestPrdKeyHello` | Yes | Yes | reply | No | | `RequestPrdKeyHello` | No | Yes | Yes | reply | No | Yes |
## 6. <a name='FonctiondesRequestPrd'></a>Fonction des RequestPrd ## 6. <a name='FonctiondesRequestPrd'></a>Fonction des RequestPrd
@ -197,46 +197,39 @@ La réception d'un `RequestPcd` suit plusieurs étapes :
## 7. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes ( RequestPcd) ## 7. <a name='RequestPrdList-DemandedeListesRequestPcd'></a>RequestPrdList - Demande de Listes ( RequestPcd)
Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le réseau. Chaque `RequestPcd` liste des `Item` d'un même type, par exemple les `ItemProcess`, les `ItemMember`, les `ItemPeer`, les `ItemPayment`, etc. 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.
### 7.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 7.1. <a name='Cration:Datasspcifiques'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdList` et envoi vers tous les `members` concernés par le `ItemProcess` pour le `Role` correspondant dans le `item_name` 1. Traitements des `RequestPrd`, avec le `type_request`
2. Attente du `RequestPrdResponse` avec le `RequestPcd` demandés. 2. Pas de data spécifiques.
3. voir `RequestPrdResponse` réception.
4. Voir `RequestPcd` réception.
### 7.2. <a name='Rception-1'></a>Réception : Datas spécifiques ### 7.2. <a name='Rception:Datasspcifiques'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdList` suit plusieurs étapes : La réception d'un `RequestPrdList` suit plusieurs étapes :
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Recherche en cache de la dernière version de la liste du type d'`Item` concerné. 2. Recherche en cache de la dernière version de la liste du type d'`Item` concerné (voir `RequestPcd` Création et envoi vers l'émetteur du `RequestPrdList`)
3. Voir `RequestPcd` Création et envoi vers l'émetteur du `RequestPrdList`.
## 8. <a name='RequestPrdMessage-EnvoideMessages'></a>RequestPrdMessage - Envoi de Messages ## 8. <a name='RequestPrdMessage-EnvoideMessages'></a>RequestPrdMessage - Envoi de Messages
Le `RequestPrdMessage` facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats. Le `RequestPrdMessage` facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats.
Permet la communication directe et sécurisée au sein du réseau, supportant des échanges d'informations critiques ou des notifications entre parties. Permet la communication :
Permet la communication des`transaction SP` au format `raw` dans l'attribut `raw_transaction_list` pour la publication de la transaction dans la side chain. * directe et sécurisée au sein du réseau, supportant des échanges d'informations critiques ou des notifications entre parties.
* des`transaction SP` au format `raw` dans l'attribut `raw_transaction_list` pour la publication de la transaction dans la side chain.
Les `RequestPrdMessage` répondent aux `RequestPrdMessage` sauf en cas d'envoi de `raw_transaction_list`. 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`).
### 8.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 8.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage` vers l'emméteur du `RequestPrdMessage`. 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdMessage`
2. Attente du `RequestPrdMessage` éventuel (sauf en cas d'envoi d'une `transaction SP`). 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.
3. Le cas échéant : voir `RequestPrdMessage` Réception
### 8.2. <a name='Rception-1'></a>Réception : Datas spécifiques ### 8.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdMessage` suit plusieurs étapes :
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Notification et attente du retour de l'utilisateur (valeur de la signature et message de réponse)
3. Le cas échéant : voir `RequestPrdMessage` création et envoi vers l'emméteur du `RequestPrdMessage`.
## 9. <a name='RequestPrdUpdate-MisesJourdeRequestPcd'></a>RequestPrdUpdate - Mises à Jour de RequestPcd ## 9. <a name='RequestPrdUpdate-MisesJourdeRequestPcd'></a>RequestPrdUpdate - Mises à Jour de RequestPcd
@ -250,22 +243,17 @@ 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. Les `RequestPrdUpdate` signalent au réseau via l'attribut `RequestPcd_new_version_hash` les nouvelles version des RequestPcd.
### 9.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 9.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Création d'un nouveau `RequestPcd` avec les modifications demandées. 1. Traitements des `RequestPrd`, avec le `type_request` spécifique à `RequestPrdUpdate`
2. Envoi du `RequestPcd` vers les `members` concernés par le `ItemProcess` pour le `Role` correspondant dans le `item_name`. 2. Pas de data spécifiques.
3. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdUpdate`, création d'une nouvelle version de `RequestPcd` et envoi (vers tous les `members` concernés par le `ItemProcess` pour le `Role` correspondant dans le `item_name`)
4. Attente des `RequestPrdResponse` de l'ensemble des `members` concernés (`Role` correspondant dans le `ItemProcess` ).
5. Voir `RequestPrdResponse` Réception
6. Voir `RequestPcd` Réception.
### 9.2. <a name='Rception-1'></a>Réception : Datas spécifiques ### 9.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
La réception d'un `RequestPrdUpdate` suit plusieurs étapes : La réception d'un `RequestPrdUpdate` suit plusieurs étapes :
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Notification et attente du retour de l'utilisateur (valeur de la signature et message de réponse) 2. Comparaison de la dernirère version du `RequestPcd` en cache et de nouvelle version du `RequestPcd` associé via `RequestPcd_new_version_hash` et attente si nécessaire.
3. Voir `RequestPrdResponse` création et envoi vers tous les membres de tous les roles du `ItemProcess`.
## 10. <a name='RequestPrdConfirm-ConfirmationdeRception'></a>RequestPrdConfirm - Confirmation de Réception ## 10. <a name='RequestPrdConfirm-ConfirmationdeRception'></a>RequestPrdConfirm - Confirmation de Réception
@ -275,13 +263,15 @@ 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. `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.
### 10.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 10.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdConfirm` envoi vers l'emméteur du `RequestPrd`. 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. <a name='Rception-1'></a>Réception : Datas spécifiques ### 10.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
Traitements des `RequestPrd`, pas de traitement suppplémentaire. 1. Traitements des `RequestPrd`, pas de traitement suppplémentaire.
2. Vérification du `code_confirm_enc_by_shared_secret` dans le `RequestPrdConfirm` reçu.
## 11. <a name='RequestPrdResponse-RpondreuneDemande'></a>RequestPrdResponse - Répondre à une Demande ## 11. <a name='RequestPrdResponse-RpondreuneDemande'></a>RequestPrdResponse - Répondre à une Demande
@ -293,37 +283,36 @@ 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. Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions.
### 11.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 11.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse` et envoi en fonction du type de `RequestPrd` d'origine. 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdResponse`
2. Pas de traitement supplémentaire. 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. <a name='Rception-1'></a>Réception : Datas spécifiques ### 11.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Notification de l'utilisateur. 2. Vérification des conditions de validation des RequestPcd associés.
3. En cas de réponse reçue à `RequestPrdKeyBackup` : Récupération des shards correspondants à la `pre-id` demandée et génération de la clé `KeyRecover`
## 12. <a name='RequestPrdKeyBakcup'></a>RequestPrdKeyBakcup ## 12. <a name='RequestPrdKeyBakcup'></a>RequestPrdKeyBakcup
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` . Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .
### 12.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 12.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pré-image 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyBakcup`
2. 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
3. Envoi vers tous les membres de décrits dans `SharedProcess`. 2.1. Mise à jour de `pre_id_enc_by_sp_shared_secret`
4. Attente des `RequestPrdResponse` de l'ensemble des `members` concernés. 2.2. Mise à jour de `shard_enc_by_sp_shared_secret`
5. Voir `RequestPrdResponse` Réception
6. Voir `RequestPcd` Réception.
7. Voir `RequestPrdKeyHello` création et envoi
8. Mise à jour du cache
### 12.2. <a name='Rception-1'></a>Réception : Datas spécifiques ### 12.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Traitements des `RequestPrd` 1. Traitements des `RequestPrd`
2. Récupération en cache des shards et de la pré-image 2. Voir [Auth-Specs.md](Auth-Specs.md)
3. Création du `RequestPrdResponse` avec les shards et envoi vers l'emméteur du `RequestPrdKeyBakcup`. 2.1. Si `pre_id_enc_by_sp_shared_secret` n'existe pas encore : enregistrement en cache du shard et de la `pre_id`.
4. Mis à jour du cache 2.2. Si `pre_id_enc_by_sp_shared_secret` existe déjà : vérification de la transaction SP qui doit venir de l'adresse SP de recovery du membre, et donc mise jour du shard et de la `pre_id`.
## 13. <a name='RequestPrdKeyHello-changedeClsetdIdentits'></a>RequestPrdKeyHello - Échange de Clés et d'Identités ## 13. <a name='RequestPrdKeyHello-changedeClsetdIdentits'></a>RequestPrdKeyHello - Échange de Clés et d'Identités
@ -331,18 +320,17 @@ 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. 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.
### 13.1. <a name='Crationetenvoi-1'></a>Création : Datas spécifiques ### 13.1. <a name='Cration:Datasspcifiques-1'></a>Création : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la création des shards et de la pré-image 1. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello`
2. 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`
3. Envoi vers tous les membres de décrits dans `SharedProcess` ou vers tous les membres de tous les roles du `ItemProcess` si celui ci est présent en cache.
### 13.2. <a name='Rception-1'></a>Réception : Datas spécifiques ### 13.2. <a name='Rception:Datasspcifiques-1'></a>Réception : Datas spécifiques
1. Voir [Auth-Specs.md](Auth-Specs.md) pour la récupération des shards et de la pré-image 1. Traitements des `RequestPrd`
2. Traitements des RequestPrd, avec le `type_request` spécifique à `RequestPrdKeyHello` 2. Voir [Auth-Specs.md](Auth-Specs.md)
3. Voir création et envoi de `RequestPcd` relatif au role de l'utilisateur dans le `ItemProcess` 1. Renvoi des shards dans le champs le `shard_enc_by_sp_shared_secret` du `RequestPrdResponse` à envoyer
4. Voir création et envoi de `RequestPrdResponse` avec les shards et les référence au `RequestPCD` vers l'emméteur du `RequestPrdKeyHello`. 2. Envoi des `RequestPcd` relatif au role de l'utilisateur dans le `ItemProcess` et des `RequestPcd` avec l`item_name` égal à "process" en cache
## 14. <a name='ExemplesdeCode'></a>Exemples de Code ## 14. <a name='ExemplesdeCode'></a>Exemples de Code

View File

@ -710,13 +710,10 @@ Encapsulates a detailed request within the system, focusing on the interaction w
`request_prd` and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently. `request_prd` and its variations (Confirm, KeyBackup, KeyHello, List, Message, Response, Update) represent different aspects and actions related to Portable Request Documents ( RequestPrd), covering everything from confirmation to updates, key management, and messaging, essential for managing and processing RequestPrds securely and efficiently.
| Attribute Name | Type | Option | Description | | Attribute Name | Type | Option | Description |
|-------------------------------------------|--------------------|--------|-----------------------------------------------------------------------------| |---------------------------------|--------------------|--------|------------------------------------------------------------|
| `request_prd` | ```request_prd``` | | Represents a Request. | | `request_prd` | ```request_prd``` | | Represents a Request. |
| `sig_value` | ```String``` | | The signature value for the response. | | `sig_value` | ```String``` | | The signature value for the response. |
| `request_pcd_origin_hash` | ```String``` | Yes | Optional hash of the originating RequestPcd. |
| `shared_secret_key` | ```eyEncryption``` | Yes | Optional encryption key used for shared secrets. | | `shared_secret_key` | ```eyEncryption``` | Yes | Optional encryption key used for shared secrets. |
| `request_pcd_new_version_hash` | ```String``` | | The hash of the new version of the RequestPcd. |
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | Yes | The first part of the hash encrypted by a service provider's shared secret. |
| `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. | | `shard_enc_by_sp_shared_secret` | ```String``` | Yes | The shard encrypted by a service provider's shared secret. |
### 10.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm ### 10.2. <a name='RequestPrdConfirm'></a>RequestPrdConfirm
@ -733,9 +730,9 @@ The `request_prdConfirm` struct is designed for confirming actions or requests w
`request_prdKeyBackup` focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys. `request_prdKeyBackup` focuses on backup functionalities for RequestPrd keys, incorporating device footprint and shard information, encrypted for security, facilitating the safe backup and recovery of crucial cryptographic keys.
| Attribute Name | Type | Option | Description | | Attribute Name | Type | Option | Description |
|-------------------------------------------|-------------------|--------|-----------------------------------------------------------------------------| |----------------------------------|-------------------|--------|-----------------------------------------------------------------------------|
| `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. | | `request_prd` | ```request_prd``` | | The RequestPrd (Portable Request Document) request. |
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. | | `pre_id_enc_by_sp_shared_secret` | ```String``` | | The first part of the hash encrypted by a service provider's shared secret. |
| `shard_enc_by_sp_shared_secret` | ```String``` | | The shard encrypted by a service provider's shared secret. | | `shard_enc_by_sp_shared_secret` | ```String``` | | The shard encrypted by a service provider's shared secret. |
### 10.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello ### 10.4. <a name='RequestPrdKeyHello'></a>RequestPrdKeyHello
@ -743,9 +740,9 @@ The `request_prdConfirm` struct is designed for confirming actions or requests w
The `request_prdKeyHello` struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections. The `request_prdKeyHello` struct is employed for initiating cryptographic communications, specifically for sharing initial key information or for cryptographic introductions between entities, enhancing secure connections.
| Attribute Name | Type | Option | Description | | Attribute Name | Type | Option | Description |
|-------------------------------------------|-------------------|--------|----------------------------------------------------------------------------------| |----------------------------------|-------------------|--------|----------------------------------------------------------------------------------|
| `request_prd` | ```request_prd``` | | Represents a Portable Request Document ( RequestPrd). | | `request_prd` | ```request_prd``` | | Represents a Portable Request Document ( RequestPrd). |
| `part_1_enc_hash_enc_by_sp_shared_secret` | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. | | `pre_id_enc_by_sp_shared_secret` | ```String``` | | The encrypted hash of part 1, encrypted by the service provider's shared secret. |
### 10.5. <a name='RequestPrdList'></a>RequestPrdList ### 10.5. <a name='RequestPrdList'></a>RequestPrdList

View File

@ -21,9 +21,9 @@
* 10.7. [Résistance aux collisions](#Rsistanceauxcollisions) * 10.7. [Résistance aux collisions](#Rsistanceauxcollisions)
* 10.7.1. [Résistance aux collisions faibles](#Rsistanceauxcollisionsfaibles) * 10.7.1. [Résistance aux collisions faibles](#Rsistanceauxcollisionsfaibles)
* 10.7.2. [Résistance aux collisions fortes](#Rsistanceauxcollisionsfortes) * 10.7.2. [Résistance aux collisions fortes](#Rsistanceauxcollisionsfortes)
* 10.8. [Résistance à la pré-image](#Rsistancelapr-image) * 10.8. [Résistance à la pre_id](#Rsistancelapr-image)
* 10.8.1. [Résistance à la pré-image](#Rsistancelapr-image-1) * 10.8.1. [Résistance à la pre_id](#Rsistancelapr-image-1)
* 10.8.2. [Résistance à la seconde pré-image](#Rsistancelasecondepr-image) * 10.8.2. [Résistance à la seconde pre_id](#Rsistancelasecondepr-image)
* 10.9. [Compression](#Compression) * 10.9. [Compression](#Compression)
* 10.10. [Non réversibilité](#Nonrversibilit) * 10.10. [Non réversibilité](#Nonrversibilit)
* 10.11. [Absence de toute structure prévisible](#Absencedetoutestructureprvisible) * 10.11. [Absence de toute structure prévisible](#Absencedetoutestructureprvisible)
@ -150,15 +150,15 @@ Il est difficile de trouver une seconde entrée qui a le même hachage qu'une en
Il est difficile de trouver deux entrées distinctes qui produisent le même hachage. Il est difficile de trouver deux entrées distinctes qui produisent le même hachage.
### 10.8. <a name='Rsistancelapr-image'></a>Résistance à la pré-image ### 10.8. <a name='Rsistancelapr-image'></a>Résistance à la pre_id
Pour une sortie de hachage donnée, il doit être difficile de trouver une entrée qui correspond à cette sortie. Cela se décline également en deux sous-catégories : Pour une sortie de hachage donnée, il doit être difficile de trouver une entrée qui correspond à cette sortie. Cela se décline également en deux sous-catégories :
#### 10.8.1. <a name='Rsistancelapr-image-1'></a>Résistance à la pré-image #### 10.8.1. <a name='Rsistancelapr-image-1'></a>Résistance à la pre_id
Il est difficile de trouver une entrée qui hache vers une sortie de hachage spécifiée. Il est difficile de trouver une entrée qui hache vers une sortie de hachage spécifiée.
#### 10.8.2. <a name='Rsistancelasecondepr-image'></a>Résistance à la seconde pré-image #### 10.8.2. <a name='Rsistancelasecondepr-image'></a>Résistance à la seconde pre_id
Étant donné une entrée, il est difficile de trouver une autre entrée qui produit le même hachage. Étant donné une entrée, il est difficile de trouver une autre entrée qui produit le même hachage.