1. Introduction
JSON Web Encryption (JWE) représente le contenu chiffré en utilisant des structures de données basées sur JSON [RFC7159]. Les mécanismes cryptographiques JWE chiffrent et fournissent une protection d'intégrité pour une séquence arbitraire d'octets.
Deux sérialisations étroitement liées sont définies pour les JWE. La JWE Compact Serialization (sérialisation compacte JWE) est une représentation compacte et sûre pour les URL, destinée à des environnements avec des contraintes d'espace tels que les en-têtes HTTP Authorization et les paramètres de requête URI. La JWE JSON Serialization (sérialisation JSON JWE) représente les JWE comme des objets JSON et permet le chiffrement du même contenu pour plusieurs parties. Les deux partagent les mêmes fondements cryptographiques.
Les algorithmes cryptographiques et les identificateurs à utiliser avec cette spécification sont décrits dans la spécification séparée JSON Web Algorithms (JWA) [JWA] et dans les registres IANA définis par cette spécification. Les capacités de signature numérique et de MAC associées sont décrites dans la spécification séparée JSON Web Signature (JWS) [JWS].
Les noms définis par cette spécification sont courts, car un objectif central est de rendre les représentations résultantes compactes.
1.1 Notational Conventions (Conventions de notation)
Les mots-clés "MUST" (doit), "MUST NOT" (ne doit pas), "REQUIRED" (requis), "SHALL" (doit), "SHALL NOT" (ne doit pas), "SHOULD" (devrait), "SHOULD NOT" (ne devrait pas), "RECOMMENDED" (recommandé), "NOT RECOMMENDED" (non recommandé), "MAY" (peut) et "OPTIONAL" (optionnel) dans ce document doivent être interprétés comme décrit dans "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119]. L'interprétation ne doit être appliquée que lorsque les termes apparaissent en lettres majuscules.
BASE64URL(OCTETS) désigne l'encodage base64url d'OCTETS, conformément à la section 2 de [JWS].
UTF8(STRING) désigne les octets de la représentation UTF-8 [RFC3629] de STRING, où STRING est une séquence de zéro ou plusieurs caractères Unicode [UNICODE].
ASCII(STRING) désigne les octets de la représentation ASCII [RFC20] de STRING, où STRING est une séquence de zéro ou plusieurs caractères ASCII.
La concaténation de deux valeurs A et B est notée A || B.