7.2 Validating a CWT
7.2. Validating a CWT (Validation d'un CWT)
Lors de la validation d'un CWT, les étapes suivantes sont effectuées. L'ordre des étapes n'est pas significatif dans les cas où il n'y a pas de dépendances entre les entrées et les sorties des étapes. Si l'une des étapes énumérées échoue, alors le CWT DOIT être rejeté -- c'est-à-dire, traité par l'application comme une entrée invalide.
-
Vérifier que le CWT est un objet CBOR valide.
-
Si l'objet commence par la balise CBOR CWT, la retirer et vérifier que l'une des balises CBOR COSE la suit.
-
Si l'objet est balisé avec l'une des balises CBOR COSE, la retirer et l'utiliser pour déterminer le type du CWT, COSE_Sign/COSE_Sign1, COSE_Mac/COSE_Mac0, ou COSE_Encrypt/COSE_Encrypt0. Si l'objet n'a pas de balise CBOR COSE, le type de message COSE est déterminé à partir du contexte de l'application.
-
Vérifier que l'en-tête COSE résultant (COSE Header) n'inclut que des paramètres et des valeurs dont la syntaxe et la sémantique sont à la fois comprises et prises en charge ou qui sont spécifiés comme devant être ignorés lorsqu'ils ne sont pas compris.
-
Selon que le CWT est signé, MACé ou chiffré, il existe trois cas :
-
Si le CWT est un COSE_Sign/COSE_Sign1, suivre les étapes spécifiées dans la Section 4 de [RFC8152] (« Signing Objects ») pour valider un objet COSE_Sign/COSE_Sign1. Soit le Message le COSE_Sign/COSE_Sign1 payload.
-
Sinon, si le CWT est un COSE_Mac/COSE_Mac0, suivre les étapes spécifiées dans la Section 6 de [RFC8152] (« MAC Objects ») pour valider un objet COSE_Mac/COSE_Mac0. Soit le Message le COSE_Mac/COSE_Mac0 payload.
-
Sinon, si le CWT est un objet COSE_Encrypt/COSE_Encrypt0, suivre les étapes spécifiées dans la Section 5 de [RFC8152] (« Encryption Objects ») pour valider un objet COSE_Encrypt/COSE_Encrypt0. Soit le Message le plaintext résultant.
-
-
Si le Message commence par une balise CBOR COSE, alors le Message est un CWT qui a fait l'objet d'opérations de signature, de MACage ou de chiffrement imbriquées. Dans ce cas, retourner à l'étape 1, en utilisant le Message comme CWT.
-
Vérifier que le Message est une carte CBOR valide ; soit le CWT Claims Set cette carte CBOR.