1. Introduction
Une JSON Web Key (JWK) est une structure de données JavaScript Object Notation (JSON) [RFC7159] qui représente une clé cryptographique (Cryptographic Key). Cette spécification définit également une structure de données JSON JWK Set qui représente un ensemble de JWK. Les algorithmes cryptographiques (Cryptographic Algorithms) et les identifiants à utiliser avec cette spécification sont décrits dans la spécification séparée JSON Web Algorithms (JWA) [JWA] et les registres IANA établis par cette spécification.
Les objectifs de cette spécification n'incluent pas la représentation de nouveaux types de chaînes de certificats (Certificate Chains), la représentation de nouveaux types de clés certifiées (Certified Keys), ou le remplacement des certificats X.509.
Les JWK et JWK Sets sont utilisés dans les spécifications JSON Web Signature [JWS] et JSON Web Encryption [JWE].
Les noms définis par cette spécification sont courts car un objectif central est de rendre les représentations résultantes aussi compactes (Compact) que possible.
1.1. Conventions de notation
Les mots-clés « doit (MUST) », « ne doit pas (MUST NOT) », « requis (REQUIRED) », « doit (SHALL) », « ne doit pas (SHALL NOT) », « devrait (SHOULD) », « ne devrait pas (SHOULD NOT) », « recommandé (RECOMMENDED) », « non recommandé (NOT RECOMMENDED) », « peut (MAY) » et « optionnel (OPTIONAL) » dans ce document doivent être interprétés comme décrit dans « Mots-clés à utiliser dans les RFC pour indiquer les niveaux d'exigence » [RFC2119]. L'interprétation ne doit être appliquée que lorsque les termes apparaissent entièrement en majuscules.
BASE64URL(OCTETS) désigne l'encodage base64url des 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.