Passa al contenuto principale

7.2. Validating a CWT (Convalida di un CWT)

7.2. Validating a CWT (Convalida di un CWT)

Durante la convalida di un CWT si eseguono i passi seguenti. L'ordine dei passi non è significativo nei casi in cui non vi sono dipendenze tra gli ingressi e le uscite dei passi. Se uno qualsiasi dei passi elencati fallisce, il CWT DEVE essere rifiutato, cioè trattato dall'applicazione come ingresso non valido.

  1. Verificare che il CWT sia un oggetto CBOR valido.

  2. Se l'oggetto inizia con il tag CBOR CWT, rimuoverlo e verificare che uno dei tag CBOR COSE lo segua.

  3. Se l'oggetto è taggato con uno dei tag CBOR COSE, rimuoverlo e usarlo per determinare il tipo del CWT, COSE_Sign/COSE_Sign1, COSE_Mac/COSE_Mac0 o COSE_Encrypt/COSE_Encrypt0. Se l'oggetto non ha un tag CBOR COSE, il tipo di messaggio COSE è determinato dal contesto applicativo.

  4. Verificare che il COSE Header risultante includa solo parametri e valori la cui sintassi e semantica sono entrambe comprese e supportate oppure che sono specificati come da ignorare quando non compresi.

  5. A seconda che il CWT sia firmato, sottoposto a MAC o crittografato, vi sono tre casi:

    • Se il CWT è un COSE_Sign/COSE_Sign1, seguire i passi specificati nella Sezione 4 di [RFC8152] ("Signing Objects") per convalidare un oggetto COSE_Sign/COSE_Sign1. Sia il Message il payload COSE_Sign/COSE_Sign1.

    • Altrimenti, se il CWT è un COSE_Mac/COSE_Mac0, seguire i passi specificati nella Sezione 6 di [RFC8152] ("MAC Objects") per convalidare un oggetto COSE_Mac/COSE_Mac0. Sia il Message il payload COSE_Mac/COSE_Mac0.

    • Altrimenti, se il CWT è un oggetto COSE_Encrypt/COSE_Encrypt0, seguire i passi specificati nella Sezione 5 di [RFC8152] ("Encryption Objects") per convalidare un oggetto COSE_Encrypt/COSE_Encrypt0. Sia il Message il plaintext risultante.

  6. Se il Message inizia con un tag CBOR COSE, allora il Message è un CWT che è stato oggetto di operazioni annidate di firma, MAC o crittografia. In questo caso, tornare al Passo 1, usando il Message come CWT.

  7. Verificare che il Message sia una mappa CBOR valida; sia il CWT Claims Set questa mappa CBOR.