draft-ietf-jose-json-web-key-25.txt   draft-ietf-jose-json-web-key-26.txt 
JOSE Working Group M. Jones JOSE Working Group M. Jones
Internet-Draft Microsoft Internet-Draft Microsoft
Intended status: Standards Track March 31, 2014 Intended status: Standards Track April 30, 2014
Expires: October 2, 2014 Expires: November 1, 2014
JSON Web Key (JWK) JSON Web Key (JWK)
draft-ietf-jose-json-web-key-25 draft-ietf-jose-json-web-key-26
Abstract Abstract
A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data
structure that represents a cryptographic key. This specification structure that represents a cryptographic key. This specification
also defines a JSON Web Key Set (JWK Set) JSON data structure for also defines a JSON Web Key Set (JWK Set) JSON data structure for
representing a set of JWKs. Cryptographic algorithms and identifiers representing a set of JWKs. Cryptographic algorithms and identifiers
for use with this specification are described in the separate JSON for use with this specification are described in the separate JSON
Web Algorithms (JWA) specification and IANA registries defined by Web Algorithms (JWA) specification and IANA registries defined by
that specification. that specification.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 2, 2014. This Internet-Draft will expire on November 1, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 18 skipping to change at page 2, line 18
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Notational Conventions . . . . . . . . . . . . . . . . . . 4 1.1. Notational Conventions . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. JSON Web Key (JWK) Format . . . . . . . . . . . . . . . . . . 5 3. JSON Web Key (JWK) Format . . . . . . . . . . . . . . . . . . 5
3.1. "kty" (Key Type) Parameter . . . . . . . . . . . . . . . . 5 3.1. "kty" (Key Type) Parameter . . . . . . . . . . . . . . . . 5
3.2. "use" (Public Key Use) Parameter . . . . . . . . . . . . . 6 3.2. "use" (Public Key Use) Parameter . . . . . . . . . . . . . 6
3.3. "key_ops" (Key Operations) Parameter . . . . . . . . . . . 6 3.3. "key_ops" (Key Operations) Parameter . . . . . . . . . . . 6
3.4. "alg" (Algorithm) Parameter . . . . . . . . . . . . . . . 7 3.4. "alg" (Algorithm) Parameter . . . . . . . . . . . . . . . 7
3.5. "kid" (Key ID) Parameter . . . . . . . . . . . . . . . . . 7 3.5. "kid" (Key ID) Parameter . . . . . . . . . . . . . . . . . 7
3.6. "x5u" (X.509 URL) Parameter . . . . . . . . . . . . . . . 8 3.6. "x5u" (X.509 URL) Parameter . . . . . . . . . . . . . . . 7
3.7. "x5c" (X.509 Certificate Chain) Parameter . . . . . . . . 8 3.7. "x5c" (X.509 Certificate Chain) Parameter . . . . . . . . 8
3.8. "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter . . . 9 3.8. "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter . . . 8
4. JSON Web Key Set (JWK Set) Format . . . . . . . . . . . . . . 9 4. JSON Web Key Set (JWK Set) Format . . . . . . . . . . . . . . 9
4.1. "keys" Parameter . . . . . . . . . . . . . . . . . . . . . 10 4.1. "keys" Parameter . . . . . . . . . . . . . . . . . . . . . 9
5. String Comparison Rules . . . . . . . . . . . . . . . . . . . 10 5. String Comparison Rules . . . . . . . . . . . . . . . . . . . 10
6. Encrypted JWK and Encrypted JWK Set Formats . . . . . . . . . 10 6. Encrypted JWK and Encrypted JWK Set Formats . . . . . . . . . 10
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7.1. JSON Web Key Parameters Registry . . . . . . . . . . . . . 11 7.1. JSON Web Key Parameters Registry . . . . . . . . . . . . . 11
7.1.1. Registration Template . . . . . . . . . . . . . . . . 12 7.1.1. Registration Template . . . . . . . . . . . . . . . . 11
7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 13 7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 12
7.2. JSON Web Key Use Registry . . . . . . . . . . . . . . . . 14 7.2. JSON Web Key Use Registry . . . . . . . . . . . . . . . . 14
7.2.1. Registration Template . . . . . . . . . . . . . . . . 14 7.2.1. Registration Template . . . . . . . . . . . . . . . . 14
7.2.2. Initial Registry Contents . . . . . . . . . . . . . . 15 7.2.2. Initial Registry Contents . . . . . . . . . . . . . . 14
7.3. JSON Web Key Operations Registry . . . . . . . . . . . . . 15 7.3. JSON Web Key Operations Registry . . . . . . . . . . . . . 15
7.3.1. Registration Template . . . . . . . . . . . . . . . . 15 7.3.1. Registration Template . . . . . . . . . . . . . . . . 15
7.3.2. Initial Registry Contents . . . . . . . . . . . . . . 16 7.3.2. Initial Registry Contents . . . . . . . . . . . . . . 15
7.4. JSON Web Key Set Parameters Registry . . . . . . . . . . . 16 7.4. JSON Web Key Set Parameters Registry . . . . . . . . . . . 16
7.4.1. Registration Template . . . . . . . . . . . . . . . . 17 7.4.1. Registration Template . . . . . . . . . . . . . . . . 16
7.4.2. Initial Registry Contents . . . . . . . . . . . . . . 17 7.4.2. Initial Registry Contents . . . . . . . . . . . . . . 17
7.5. Media Type Registration . . . . . . . . . . . . . . . . . 17 7.5. Media Type Registration . . . . . . . . . . . . . . . . . 17
7.5.1. Registry Contents . . . . . . . . . . . . . . . . . . 17 7.5.1. Registry Contents . . . . . . . . . . . . . . . . . . 17
8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.1. Normative References . . . . . . . . . . . . . . . . . . . 19 9.1. Normative References . . . . . . . . . . . . . . . . . . . 19
9.2. Informative References . . . . . . . . . . . . . . . . . . 21 9.2. Informative References . . . . . . . . . . . . . . . . . . 20
Appendix A. Example JSON Web Key Sets . . . . . . . . . . . . . . 21 Appendix A. Example JSON Web Key Sets . . . . . . . . . . . . . . 21
A.1. Example Public Keys . . . . . . . . . . . . . . . . . . . 21 A.1. Example Public Keys . . . . . . . . . . . . . . . . . . . 21
A.2. Example Private Keys . . . . . . . . . . . . . . . . . . . 22 A.2. Example Private Keys . . . . . . . . . . . . . . . . . . . 22
A.3. Example Symmetric Keys . . . . . . . . . . . . . . . . . . 24 A.3. Example Symmetric Keys . . . . . . . . . . . . . . . . . . 24
Appendix B. Example Use of "x5c" (X.509 Certificate Chain) Appendix B. Example Use of "x5c" (X.509 Certificate Chain)
Parameter . . . . . . . . . . . . . . . . . . . . . . 24 Parameter . . . . . . . . . . . . . . . . . . . . . . 24
Appendix C. Example Encrypted RSA Private Key . . . . . . . . . . 25 Appendix C. Example Encrypted RSA Private Key . . . . . . . . . . 25
C.1. Plaintext RSA Private Key . . . . . . . . . . . . . . . . 26 C.1. Plaintext RSA Private Key . . . . . . . . . . . . . . . . 26
C.2. JWE Header . . . . . . . . . . . . . . . . . . . . . . . . 29 C.2. JWE Header . . . . . . . . . . . . . . . . . . . . . . . . 29
C.3. Content Encryption Key (CEK) . . . . . . . . . . . . . . . 29 C.3. Content Encryption Key (CEK) . . . . . . . . . . . . . . . 29
skipping to change at page 6, line 12 skipping to change at page 6, line 12
The key type definitions include specification of the members to be The key type definitions include specification of the members to be
used for those key types. Additional members used with "kty" values used for those key types. Additional members used with "kty" values
can also be found in the IANA JSON Web Key Parameters registry can also be found in the IANA JSON Web Key Parameters registry
defined in Section 7.1. defined in Section 7.1.
3.2. "use" (Public Key Use) Parameter 3.2. "use" (Public Key Use) Parameter
The "use" (public key use) member identifies the intended use of the The "use" (public key use) member identifies the intended use of the
public key. The "use" parameter is intended for use cases in which public key. The "use" parameter is intended for use cases in which
it is useful to distinguish between public signing keys and public it is useful to distinguish between public signing keys and public
encryption keys. It is not intended for use cases in which private encryption keys.
or symmetric keys may also be present.
Values defined by this specification are: Values defined by this specification are:
o "sig" (signature) o "sig" (signature)
o "enc" (encryption) o "enc" (encryption)
Other values MAY be used. Public Key Use values can be registered in Other values MAY be used. Public Key Use values can be registered in
the IANA JSON Web Key Use registry defined in Section 7.2. The "use" the IANA JSON Web Key Use registry defined in Section 7.2. The "use"
value is a case-sensitive string. Use of the "use" member is value is a case-sensitive string. Use of the "use" member is
OPTIONAL, unless the application requires its presence. OPTIONAL, unless the application requires its presence.
When a key is used to wrap another key and a key use designation for When a key is used to wrap another key and a key use designation for
the first key is desired, the "enc" (encryption) key use value SHOULD the first key is desired, the "enc" (encryption) key use value SHOULD
be used, since key wrapping is a kind of encryption. The "enc" value be used, since key wrapping is a kind of encryption. The "enc" value
skipping to change at page 6, line 35 skipping to change at page 6, line 33
When a key is used to wrap another key and a key use designation for When a key is used to wrap another key and a key use designation for
the first key is desired, the "enc" (encryption) key use value SHOULD the first key is desired, the "enc" (encryption) key use value SHOULD
be used, since key wrapping is a kind of encryption. The "enc" value be used, since key wrapping is a kind of encryption. The "enc" value
SHOULD also be used for public keys used for key agreement SHOULD also be used for public keys used for key agreement
operations. (The "alg" member can be used to specify the particular operations. (The "alg" member can be used to specify the particular
cryptographic operation to be performed, when desired.) cryptographic operation to be performed, when desired.)
3.3. "key_ops" (Key Operations) Parameter 3.3. "key_ops" (Key Operations) Parameter
The "key_ops" (key operations) member identifies the operations(s) The "key_ops" (key operations) member identifies the operation(s)
that the key is intended to be used for. The "key_ops" parameter is that the key is intended to be used for. The "key_ops" parameter is
intended for use cases in which public, private, or symmetric keys intended for use cases in which public, private, or symmetric keys
may be present. may be present.
Its value is an array of key operation values. Values defined by Its value is an array of key operation values. Values defined by
this specification are: this specification are:
o "sign" (compute signature or MAC) o "sign" (compute signature or MAC)
o "verify" (verify signature or MAC) o "verify" (verify signature or MAC)
o "encrypt" (encrypt content) o "encrypt" (encrypt content)
o "decrypt" (decrypt content and validate decryption, if applicable) o "decrypt" (decrypt content and validate decryption, if applicable)
o "wrapKey" (encrypt key) o "wrapKey" (encrypt key)
o "unwrapKey" (decrypt key and validate decryption, if applicable) o "unwrapKey" (decrypt key and validate decryption, if applicable)
o "deriveKey" (derive key) o "deriveKey" (derive key)
o "deriveBits" (derive bits not to be used as a key) o "deriveBits" (derive bits not to be used as a key)
(Note that the "key_ops" values intentionally match the "KeyUsage" (Note that the "key_ops" values intentionally match the "KeyUsage"
values defined in the Web Cryptography API [WebCrypto] values defined in the Web Cryptography API [WebCrypto]
specification.) specification.)
Other values MAY be used. Key operation values can be registered in Other values MAY be used. Key operation values can be registered in
the IANA JSON Web Key Operations registry defined in Section 7.3. the IANA JSON Web Key Operations registry defined in Section 7.3.
The key operation values are case-sensitive strings. Duplicate key The key operation values are case-sensitive strings. Duplicate key
operation values MUST NOT be present in the array. operation values MUST NOT be present in the array.
skipping to change at page 8, line 20 skipping to change at page 8, line 10
The "x5u" (X.509 URL) member is a URI [RFC3986] that refers to a The "x5u" (X.509 URL) member is a URI [RFC3986] that refers to a
resource for an X.509 public key certificate or certificate chain resource for an X.509 public key certificate or certificate chain
[RFC5280]. The identified resource MUST provide a representation of [RFC5280]. The identified resource MUST provide a representation of
the certificate or certificate chain that conforms to RFC 5280 the certificate or certificate chain that conforms to RFC 5280
[RFC5280] in PEM encoded form [RFC1421]. The key in the first [RFC5280] in PEM encoded form [RFC1421]. The key in the first
certificate MUST match the public key represented by other members of certificate MUST match the public key represented by other members of
the JWK. The protocol used to acquire the resource MUST provide the JWK. The protocol used to acquire the resource MUST provide
integrity protection; an HTTP GET request to retrieve the certificate integrity protection; an HTTP GET request to retrieve the certificate
MUST use TLS [RFC2818] [RFC5246]; the identity of the server MUST be MUST use TLS [RFC2818] [RFC5246]; the identity of the server MUST be
validated, as per Section 3.1 of HTTP Over TLS [RFC2818]. Use of validated, as per Section 6 of RFC 6125 [RFC6125]. Use of this
this member is OPTIONAL. member is OPTIONAL.
While there is no requirement that members other than those While there is no requirement that members other than those
representing the public key be populated when an "x5u" member is representing the public key be populated when an "x5u" member is
present, doing so may improve interoperability for applications that present, doing so may improve interoperability for applications that
do not handle PKIX certificates. If other members are present, the do not handle PKIX certificates. If other members are present, the
contents of those members MUST be semantically consistent with the contents of those members MUST be semantically consistent with the
related fields in the first certificate. For instance, if the "use" related fields in the first certificate. For instance, if the "use"
member is present, then it needs to allow for only a subset of the member is present, then it needs to allow for only a subset of the
usages that are permitted by the certificate. Similarly, if the usages that are permitted by the certificate. Similarly, if the
"alg" member is present, it should represent an algorithm that the "alg" member is present, it should represent an algorithm that the
skipping to change at page 19, line 25 skipping to change at page 19, line 13
Private and symmetric keys MUST be protected from disclosure to Private and symmetric keys MUST be protected from disclosure to
unintended parties. One recommended means of doing so is to encrypt unintended parties. One recommended means of doing so is to encrypt
JWKs or JWK Sets containing them by using the JWK or JWK Set value as JWKs or JWK Sets containing them by using the JWK or JWK Set value as
the plaintext of a JWE. the plaintext of a JWE.
The security considerations in RFC 3447 [RFC3447] and RFC 6030 The security considerations in RFC 3447 [RFC3447] and RFC 6030
[RFC6030] about protecting private and symmetric keys, key usage, and [RFC6030] about protecting private and symmetric keys, key usage, and
information leakage also apply to this specification. information leakage also apply to this specification.
The security considerations in XML DSIG 2.0 The security considerations in XML DSIG 2.0
[W3C.CR-xmldsig-core2-20120124], about key representations also apply [W3C.NOTE-xmldsig-core2-20130411], about key representations also
to this specification, other than those that are XML specific. apply to this specification, other than those that are XML specific.
The TLS Requirements in [JWS] also apply to this specification. The TLS Requirements in [JWS] also apply to this specification.
9. References 9. References
9.1. Normative References 9.1. Normative References
[ECMAScript] [ECMAScript]
Ecma International, "ECMAScript Language Specification, Ecma International, "ECMAScript Language Specification,
5.1 Edition", ECMA 262, June 2011. 5.1 Edition", ECMA 262, June 2011.
skipping to change at page 20, line 4 skipping to change at page 19, line 39
[ITU.X690.1994] [ITU.X690.1994]
International Telecommunications Union, "Information International Telecommunications Union, "Information
Technology - ASN.1 encoding rules: Specification of Basic Technology - ASN.1 encoding rules: Specification of Basic
Encoding Rules (BER), Canonical Encoding Rules (CER) and Encoding Rules (BER), Canonical Encoding Rules (CER) and
Distinguished Encoding Rules (DER)", ITU-T Recommendation Distinguished Encoding Rules (DER)", ITU-T Recommendation
X.690, 1994. X.690, 1994.
[JWA] Jones, M., "JSON Web Algorithms (JWA)", [JWA] Jones, M., "JSON Web Algorithms (JWA)",
draft-ietf-jose-json-web-algorithms (work in progress), draft-ietf-jose-json-web-algorithms (work in progress),
March 2014. April 2014.
[JWE] Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", [JWE] Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)",
draft-ietf-jose-json-web-encryption (work in progress), draft-ietf-jose-json-web-encryption (work in progress),
March 2014. April 2014.
[JWS] Jones, M., Bradley, J., and N. Sakimura, "JSON Web [JWS] Jones, M., Bradley, J., and N. Sakimura, "JSON Web
Signature (JWS)", draft-ietf-jose-json-web-signature (work Signature (JWS)", draft-ietf-jose-json-web-signature (work
in progress), March 2014. in progress), April 2014.
[RFC1421] Linn, J., "Privacy Enhancement for Internet Electronic [RFC1421] Linn, J., "Privacy Enhancement for Internet Electronic
Mail: Part I: Message Encryption and Authentication Mail: Part I: Message Encryption and Authentication
Procedures", RFC 1421, February 1993. Procedures", RFC 1421, February 1993.
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
November 1996. November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at page 20, line 45 skipping to change at page 20, line 33
Encodings", RFC 4648, October 2006. Encodings", RFC 4648, October 2006.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, August 2008. (TLS) Protocol Version 1.2", RFC 5246, August 2008.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, May 2008. (CRL) Profile", RFC 5280, May 2008.
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, March 2011.
[RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, March 2014. Interchange Format", RFC 7159, March 2014.
[USASCII] American National Standards Institute, "Coded Character [USASCII] American National Standards Institute, "Coded Character
Set -- 7-bit American Standard Code for Information Set -- 7-bit American Standard Code for Information
Interchange", ANSI X3.4, 1986. Interchange", ANSI X3.4, 1986.
9.2. Informative References 9.2. Informative References
[MagicSignatures] [MagicSignatures]
skipping to change at page 21, line 22 skipping to change at page 21, line 16
Standards (PKCS) #1: RSA Cryptography Specifications Standards (PKCS) #1: RSA Cryptography Specifications
Version 2.1", RFC 3447, February 2003. Version 2.1", RFC 3447, February 2003.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008. May 2008.
[RFC6030] Hoyer, P., Pei, M., and S. Machani, "Portable Symmetric [RFC6030] Hoyer, P., Pei, M., and S. Machani, "Portable Symmetric
Key Container (PSKC)", RFC 6030, October 2010. Key Container (PSKC)", RFC 6030, October 2010.
[W3C.CR-xmldsig-core2-20120124] [W3C.NOTE-xmldsig-core2-20130411]
Cantor, S., Roessler, T., Eastlake, D., Yiu, K., Reagle, Eastlake, D., Reagle, J., Solo, D., Hirsch, F., Roessler,
J., Solo, D., Datta, P., and F. Hirsch, "XML Signature T., Yiu, K., Datta, P., and S. Cantor, "XML Signature
Syntax and Processing Version 2.0", World Wide Web Syntax and Processing Version 2.0", World Wide Web
Consortium CR CR-xmldsig-core2-20120124, January 2012, Consortium Note NOTE-xmldsig-core2-20130411, April 2013,
<http://www.w3.org/TR/2012/CR-xmldsig-core2-20120124>. <http://www.w3.org/TR/2013/NOTE-xmldsig-core2-20130411/>.
[WebCrypto] [WebCrypto]
Sleevi, R. and M. Watson, "Web Cryptography API", World Sleevi, R. and M. Watson, "Web Cryptography API", World
Wide Web Consortium Draft, March 2014, Wide Web Consortium Draft, March 2014,
<http://www.w3.org/TR/2014/WD-WebCryptoAPI-20140325/>. <http://www.w3.org/TR/2014/WD-WebCryptoAPI-20140325/>.
Appendix A. Example JSON Web Key Sets Appendix A. Example JSON Web Key Sets
A.1. Example Public Keys A.1. Example Public Keys
skipping to change at page 26, line 44 skipping to change at page 26, line 44
tbEo3ZIcohbDtt6SbfmWzggabpQxNxuBpoOOf_a_HgMXK_lhqigI4y_kqS1w tbEo3ZIcohbDtt6SbfmWzggabpQxNxuBpoOOf_a_HgMXK_lhqigI4y_kqS1w
Y52IwjUn5rgRrJ-yYo1h41KR-vz2pYhEAeYrhttWtxVqLCRViD6c", Y52IwjUn5rgRrJ-yYo1h41KR-vz2pYhEAeYrhttWtxVqLCRViD6c",
"dq":"AvfS0-gRxvn0bwJoMSnFxYcK1WnuEjQFluMGfwGitQBWtfZ1Er7t1xDkbN9 "dq":"AvfS0-gRxvn0bwJoMSnFxYcK1WnuEjQFluMGfwGitQBWtfZ1Er7t1xDkbN9
GQTB9yqpDoYaN06H7CFtrkxhJIBQaj6nkF5KKS3TQtQ5qCzkOkmxIe3KRbBy GQTB9yqpDoYaN06H7CFtrkxhJIBQaj6nkF5KKS3TQtQ5qCzkOkmxIe3KRbBy
mXxkb5qwUpX5ELD5xFc6FeiafWYY63TmmEAu_lRFCOJ3xDea-ots", mXxkb5qwUpX5ELD5xFc6FeiafWYY63TmmEAu_lRFCOJ3xDea-ots",
"qi":"lSQi-w9CpyUReMErP1RsBLk7wNtOvs5EQpPqmuMvqW57NBUczScEoPwmUqq "qi":"lSQi-w9CpyUReMErP1RsBLk7wNtOvs5EQpPqmuMvqW57NBUczScEoPwmUqq
abu9V0-Py4dQ57_bapoKRu1R90bvuFnU63SHWEFglZQvJDMeAvmj4sm-Fp0o abu9V0-Py4dQ57_bapoKRu1R90bvuFnU63SHWEFglZQvJDMeAvmj4sm-Fp0o
Yu_neotgQ0hzbI5gry7ajdYy9-2lNx_76aBZoOUu9HCJ-UsfSOI8" Yu_neotgQ0hzbI5gry7ajdYy9-2lNx_76aBZoOUu9HCJ-UsfSOI8"
} }
The octets representing the Plaintext are: The octets representing the Plaintext used in this example (using
JSON array notation) are:
[ 123, 34, 107, 116, 121, 34, 58, 34, 82, 83, 65, 34, 44, 34, 107, [123, 34, 107, 116, 121, 34, 58, 34, 82, 83, 65, 34, 44, 34, 107,
105, 100, 34, 58, 34, 106, 117, 108, 105, 101, 116, 64, 99, 97, 112, 105, 100, 34, 58, 34, 106, 117, 108, 105, 101, 116, 64, 99, 97, 112,
117, 108, 101, 116, 46, 108, 105, 116, 34, 44, 34, 117, 115, 101, 34, 117, 108, 101, 116, 46, 108, 105, 116, 34, 44, 34, 117, 115, 101, 34,
58, 34, 101, 110, 99, 34, 44, 34, 110, 34, 58, 34, 116, 54, 81, 56, 58, 34, 101, 110, 99, 34, 44, 34, 110, 34, 58, 34, 116, 54, 81, 56,
80, 87, 83, 105, 49, 100, 107, 74, 106, 57, 104, 84, 80, 56, 104, 78, 80, 87, 83, 105, 49, 100, 107, 74, 106, 57, 104, 84, 80, 56, 104, 78,
89, 70, 108, 118, 97, 100, 77, 55, 68, 102, 108, 87, 57, 109, 87, 89, 70, 108, 118, 97, 100, 77, 55, 68, 102, 108, 87, 57, 109, 87,
101, 112, 79, 74, 104, 74, 54, 54, 119, 55, 110, 121, 111, 75, 49, 101, 112, 79, 74, 104, 74, 54, 54, 119, 55, 110, 121, 111, 75, 49,
103, 80, 78, 113, 70, 77, 83, 81, 82, 121, 79, 49, 50, 53, 71, 112, 103, 80, 78, 113, 70, 77, 83, 81, 82, 121, 79, 49, 50, 53, 71, 112,
45, 84, 69, 107, 111, 100, 104, 87, 114, 48, 105, 117, 106, 106, 72, 45, 84, 69, 107, 111, 100, 104, 87, 114, 48, 105, 117, 106, 106, 72,
86, 120, 55, 66, 99, 86, 48, 108, 108, 83, 52, 119, 53, 65, 67, 71, 86, 120, 55, 66, 99, 86, 48, 108, 108, 83, 52, 119, 53, 65, 67, 71,
103, 80, 114, 99, 65, 100, 54, 90, 99, 83, 82, 48, 45, 73, 113, 111, 103, 80, 114, 99, 65, 100, 54, 90, 99, 83, 82, 48, 45, 73, 113, 111,
skipping to change at page 29, line 6 skipping to change at page 29, line 7
49, 82, 115, 66, 76, 107, 55, 119, 78, 116, 79, 118, 115, 53, 69, 81, 49, 82, 115, 66, 76, 107, 55, 119, 78, 116, 79, 118, 115, 53, 69, 81,
112, 80, 113, 109, 117, 77, 118, 113, 87, 53, 55, 78, 66, 85, 99, 112, 80, 113, 109, 117, 77, 118, 113, 87, 53, 55, 78, 66, 85, 99,
122, 83, 99, 69, 111, 80, 119, 109, 85, 113, 113, 97, 98, 117, 57, 122, 83, 99, 69, 111, 80, 119, 109, 85, 113, 113, 97, 98, 117, 57,
86, 48, 45, 80, 121, 52, 100, 81, 53, 55, 95, 98, 97, 112, 111, 75, 86, 48, 45, 80, 121, 52, 100, 81, 53, 55, 95, 98, 97, 112, 111, 75,
82, 117, 49, 82, 57, 48, 98, 118, 117, 70, 110, 85, 54, 51, 83, 72, 82, 117, 49, 82, 57, 48, 98, 118, 117, 70, 110, 85, 54, 51, 83, 72,
87, 69, 70, 103, 108, 90, 81, 118, 74, 68, 77, 101, 65, 118, 109, 87, 69, 70, 103, 108, 90, 81, 118, 74, 68, 77, 101, 65, 118, 109,
106, 52, 115, 109, 45, 70, 112, 48, 111, 89, 117, 95, 110, 101, 111, 106, 52, 115, 109, 45, 70, 112, 48, 111, 89, 117, 95, 110, 101, 111,
116, 103, 81, 48, 104, 122, 98, 73, 53, 103, 114, 121, 55, 97, 106, 116, 103, 81, 48, 104, 122, 98, 73, 53, 103, 114, 121, 55, 97, 106,
100, 89, 121, 57, 45, 50, 108, 78, 120, 95, 55, 54, 97, 66, 90, 111, 100, 89, 121, 57, 45, 50, 108, 78, 120, 95, 55, 54, 97, 66, 90, 111,
79, 85, 117, 57, 72, 67, 74, 45, 85, 115, 102, 83, 79, 73, 56, 34, 79, 85, 117, 57, 72, 67, 74, 45, 85, 115, 102, 83, 79, 73, 56, 34,
125 ] 125]
C.2. JWE Header C.2. JWE Header
The following example JWE Protected Header declares that: The following example JWE Protected Header declares that:
o the Content Encryption Key is encrypted to the recipient using the o the Content Encryption Key is encrypted to the recipient using the
PSE2-HS256+A128KW algorithm to produce the JWE Encrypted Key, PSE2-HS256+A128KW algorithm to produce the JWE Encrypted Key,
o the Salt Input ("p2s") value is [ 217, 96, 147, 112, 150, 117, 70, o the Salt Input ("p2s") value is [217, 96, 147, 112, 150, 117, 70,
247, 127, 8, 155, 137, 174, 42, 80, 215 ], 247, 127, 8, 155, 137, 174, 42, 80, 215],
o the Iteration Count ("p2c") value is 4096, o the Iteration Count ("p2c") value is 4096,
o the Plaintext is encrypted using the AES_128_CBC_HMAC_SHA_256 o the Plaintext is encrypted using the AES_128_CBC_HMAC_SHA_256
algorithm to produce the Ciphertext, and algorithm to produce the Ciphertext, and
o the content type is application/jwk+json. o the content type is application/jwk+json.
{ {
"alg":"PBES2-HS256+A128KW", "alg":"PBES2-HS256+A128KW",
"p2s":"2WCTcJZ1Rvd_CJuJripQ1w", "p2s":"2WCTcJZ1Rvd_CJuJripQ1w",
"p2c":4096, "p2c":4096,
"enc":"A128CBC-HS256", "enc":"A128CBC-HS256",
"cty":"jwk+json" "cty":"jwk+json"
} }
Encoding this JWE Protected Header as BASE64URL(UTF8(JWE Protected Encoding this JWE Protected Header as BASE64URL(UTF8(JWE Protected
Header)) gives this value: Header)) gives this value (with line breaks for display purposes
only):
eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJwMnMiOiIyV0NUY0paMVJ2ZF9DSn eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJwMnMiOiIyV0NUY0paMVJ2ZF9DSn
VKcmlwUTF3IiwicDJjIjo0MDk2LCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiY3R5Ijoi VKcmlwUTF3IiwicDJjIjo0MDk2LCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiY3R5Ijoi
andrK2pzb24ifQ andrK2pzb24ifQ
C.3. Content Encryption Key (CEK) C.3. Content Encryption Key (CEK)
Generate a 256 bit random Content Encryption Key (CEK). In this Generate a 256 bit random Content Encryption Key (CEK). In this
example, the value is: example, the value (using JSON array notation) is:
[ 111, 27, 25, 52, 66, 29, 20, 78, 92, 176, 56, 240, 65, 208, 82, [111, 27, 25, 52, 66, 29, 20, 78, 92, 176, 56, 240, 65, 208, 82, 112,
112, 161, 131, 36, 55, 202, 236, 185, 172, 129, 23, 153, 194, 195, 161, 131, 36, 55, 202, 236, 185, 172, 129, 23, 153, 194, 195, 48,
48, 253, 182 ] 253, 182]
C.4. Key Derivation C.4. Key Derivation
Derive a key from a shared passphrase using the PBKDF2 algorithm with Derive a key from a shared passphrase using the PBKDF2 algorithm with
HMAC SHA-256 and the specified Salt and Iteration Count values and a HMAC SHA-256 and the specified Salt and Iteration Count values and a
128 bit requested output key size to produce the PBKDF2 Derived Key. 128 bit requested output key size to produce the PBKDF2 Derived Key.
This example uses the following passphrase: This example uses the following passphrase:
Thus from my lips, by yours, my sin is purged. Thus from my lips, by yours, my sin is purged.
The octets representing the passphrase are: The octets representing the passphrase are:
[ 84, 104, 117, 115, 32, 102, 114, 111, 109, 32, 109, 121, 32, 108, [84, 104, 117, 115, 32, 102, 114, 111, 109, 32, 109, 121, 32, 108,
105, 112, 115, 44, 32, 98, 121, 32, 121, 111, 117, 114, 115, 44, 32, 105, 112, 115, 44, 32, 98, 121, 32, 121, 111, 117, 114, 115, 44, 32,
109, 121, 32, 115, 105, 110, 32, 105, 115, 32, 112, 117, 114, 103, 109, 121, 32, 115, 105, 110, 32, 105, 115, 32, 112, 117, 114, 103,
101, 100, 46 ] 101, 100, 46]
The Salt value (UTF8(Alg) || 0x00 || Salt Input) is: The Salt value (UTF8(Alg) || 0x00 || Salt Input) is:
[ 80, 66, 69, 83, 50, 45, 72, 83, 50, 53, 54, 43, 65, 49, 50, 56, 75, [80, 66, 69, 83, 50, 45, 72, 83, 50, 53, 54, 43, 65, 49, 50, 56, 75,
87, 0, 217, 96, 147, 112, 150, 117, 70, 247, 127, 8, 155, 137, 174, 87, 0, 217, 96, 147, 112, 150, 117, 70, 247, 127, 8, 155, 137, 174,
42, 80, 215 ]. 42, 80, 215].
The resulting PBKDF2 Derived Key value is: The resulting PBKDF2 Derived Key value is:
[ 110, 171, 169, 92, 129, 92, 109, 117, 233, 242, 116, 233, 170, 14, [110, 171, 169, 92, 129, 92, 109, 117, 233, 242, 116, 233, 170, 14,
24, 75 ] 24, 75]
C.5. Key Encryption C.5. Key Encryption
Encrypt the CEK with the "A128KW" algorithm using the PBKDF2 Derived Encrypt the CEK with the "A128KW" algorithm using the PBKDF2 Derived
Key. The resulting JWE Encrypted Key value is: Key. The resulting JWE Encrypted Key value is:
[ 78, 186, 151, 59, 11, 141, 81, 240, 213, 245, 83, 211, 53, 188, [78, 186, 151, 59, 11, 141, 81, 240, 213, 245, 83, 211, 53, 188, 134,
134, 188, 66, 125, 36, 200, 222, 124, 5, 103, 249, 52, 117, 184, 140, 188, 66, 125, 36, 200, 222, 124, 5, 103, 249, 52, 117, 184, 140, 81,
81, 246, 158, 161, 177, 20, 33, 245, 57, 59, 4 ] 246, 158, 161, 177, 20, 33, 245, 57, 59, 4]
Encoding this JWE Encrypted Key as BASE64URL(JWE Encrypted Key) gives Encoding this JWE Encrypted Key as BASE64URL(JWE Encrypted Key) gives
this value: this value:
TrqXOwuNUfDV9VPTNbyGvEJ9JMjefAVn-TR1uIxR9p6hsRQh9Tk7BA TrqXOwuNUfDV9VPTNbyGvEJ9JMjefAVn-TR1uIxR9p6hsRQh9Tk7BA
C.6. Initialization Vector C.6. Initialization Vector
Generate a random 128 bit JWE Initialization Vector. In this Generate a random 128 bit JWE Initialization Vector. In this
example, the value is: example, the value is:
[ 97, 239, 99, 214, 171, 54, 216, 57, 145, 72, 7, 93, 34, 31, 149, [97, 239, 99, 214, 171, 54, 216, 57, 145, 72, 7, 93, 34, 31, 149,
156 ] 156]
Encoding this JWE Initialization Vector as BASE64URL(JWE Encoding this JWE Initialization Vector as BASE64URL(JWE
Initialization Vector) gives this value: Initialization Vector) gives this value:
Ye9j1qs22DmRSAddIh-VnA Ye9j1qs22DmRSAddIh-VnA
C.7. Additional Authenticated Data C.7. Additional Authenticated Data
Let the Additional Authenticated Data encryption parameter be Let the Additional Authenticated Data encryption parameter be
ASCII(BASE64URL(UTF8(JWE Protected Header))). This value is: ASCII(BASE64URL(UTF8(JWE Protected Header))). This value is:
[ 123, 34, 97, 108, 103, 34, 58, 34, 80, 66, 69, 83, 50, 45, 72, 83, [123, 34, 97, 108, 103, 34, 58, 34, 80, 66, 69, 83, 50, 45, 72, 83,
50, 53, 54, 43, 65, 49, 50, 56, 75, 87, 34, 44, 34, 112, 50, 115, 34, 50, 53, 54, 43, 65, 49, 50, 56, 75, 87, 34, 44, 34, 112, 50, 115, 34,
58, 34, 50, 87, 67, 84, 99, 74, 90, 49, 82, 118, 100, 95, 67, 74, 58, 34, 50, 87, 67, 84, 99, 74, 90, 49, 82, 118, 100, 95, 67, 74,
117, 74, 114, 105, 112, 81, 49, 119, 34, 44, 34, 112, 50, 99, 34, 58, 117, 74, 114, 105, 112, 81, 49, 119, 34, 44, 34, 112, 50, 99, 34, 58,
52, 48, 57, 54, 44, 34, 101, 110, 99, 34, 58, 34, 65, 49, 50, 56, 67, 52, 48, 57, 54, 44, 34, 101, 110, 99, 34, 58, 34, 65, 49, 50, 56, 67,
66, 67, 45, 72, 83, 50, 53, 54, 34, 44, 34, 99, 116, 121, 34, 58, 34, 66, 67, 45, 72, 83, 50, 53, 54, 34, 44, 34, 99, 116, 121, 34, 58, 34,
106, 119, 107, 43, 106, 115, 111, 110, 34, 125 ] 106, 119, 107, 43, 106, 115, 111, 110, 34, 125]
C.8. Content Encryption C.8. Content Encryption
Encrypt the Plaintext with AES_128_CBC_HMAC_SHA_256 using the CEK as Encrypt the Plaintext with AES_128_CBC_HMAC_SHA_256 using the CEK as
the encryption key, the JWE Initialization Vector, and the Additional the encryption key, the JWE Initialization Vector, and the Additional
Authenticated Data value above. The resulting Ciphertext is: Authenticated Data value above. The resulting Ciphertext is:
[ 3, 8, 65, 242, 92, 107, 148, 168, 197, 159, 77, 139, 25, 97, 42, [3, 8, 65, 242, 92, 107, 148, 168, 197, 159, 77, 139, 25, 97, 42,
131, 110, 199, 225, 56, 61, 127, 38, 64, 108, 91, 247, 167, 150, 98, 131, 110, 199, 225, 56, 61, 127, 38, 64, 108, 91, 247, 167, 150, 98,
112, 122, 99, 235, 132, 50, 28, 46, 56, 170, 169, 89, 220, 145, 38, 112, 122, 99, 235, 132, 50, 28, 46, 56, 170, 169, 89, 220, 145, 38,
157, 148, 224, 66, 140, 8, 169, 146, 117, 222, 54, 242, 28, 31, 11, 157, 148, 224, 66, 140, 8, 169, 146, 117, 222, 54, 242, 28, 31, 11,
129, 227, 226, 169, 66, 117, 133, 254, 140, 216, 115, 203, 131, 60, 129, 227, 226, 169, 66, 117, 133, 254, 140, 216, 115, 203, 131, 60,
60, 47, 233, 132, 121, 13, 35, 188, 53, 19, 172, 77, 59, 54, 211, 60, 47, 233, 132, 121, 13, 35, 188, 53, 19, 172, 77, 59, 54, 211,
158, 172, 25, 60, 111, 0, 80, 201, 158, 160, 210, 68, 55, 12, 67, 158, 172, 25, 60, 111, 0, 80, 201, 158, 160, 210, 68, 55, 12, 67,
136, 130, 87, 216, 197, 95, 62, 20, 155, 205, 5, 140, 27, 168, 221, 136, 130, 87, 216, 197, 95, 62, 20, 155, 205, 5, 140, 27, 168, 221,
65, 114, 78, 157, 254, 46, 206, 182, 52, 135, 87, 239, 3, 34, 186, 65, 114, 78, 157, 254, 46, 206, 182, 52, 135, 87, 239, 3, 34, 186,
126, 220, 151, 17, 33, 237, 57, 96, 172, 183, 58, 45, 248, 103, 241, 126, 220, 151, 17, 33, 237, 57, 96, 172, 183, 58, 45, 248, 103, 241,
142, 136, 7, 53, 16, 173, 181, 7, 93, 92, 252, 1, 53, 212, 242, 8, 142, 136, 7, 53, 16, 173, 181, 7, 93, 92, 252, 1, 53, 212, 242, 8,
skipping to change at page 33, line 42 skipping to change at page 33, line 42
195, 223, 60, 78, 186, 157, 155, 217, 58, 105, 116, 164, 217, 111, 195, 223, 60, 78, 186, 157, 155, 217, 58, 105, 116, 164, 217, 111,
215, 150, 218, 252, 84, 86, 248, 140, 240, 226, 61, 106, 208, 95, 60, 215, 150, 218, 252, 84, 86, 248, 140, 240, 226, 61, 106, 208, 95, 60,
163, 6, 0, 235, 253, 162, 96, 62, 234, 251, 249, 35, 21, 7, 211, 233, 163, 6, 0, 235, 253, 162, 96, 62, 234, 251, 249, 35, 21, 7, 211, 233,
86, 50, 33, 203, 67, 248, 60, 190, 123, 48, 167, 226, 90, 191, 71, 86, 50, 33, 203, 67, 248, 60, 190, 123, 48, 167, 226, 90, 191, 71,
56, 183, 165, 17, 85, 76, 238, 140, 211, 168, 53, 223, 194, 4, 97, 56, 183, 165, 17, 85, 76, 238, 140, 211, 168, 53, 223, 194, 4, 97,
149, 156, 120, 137, 76, 33, 229, 243, 194, 208, 198, 202, 139, 28, 149, 156, 120, 137, 76, 33, 229, 243, 194, 208, 198, 202, 139, 28,
114, 46, 224, 92, 254, 83, 100, 134, 158, 92, 70, 78, 61, 62, 138, 114, 46, 224, 92, 254, 83, 100, 134, 158, 92, 70, 78, 61, 62, 138,
24, 173, 216, 66, 198, 70, 254, 47, 59, 193, 53, 6, 139, 19, 153, 24, 173, 216, 66, 198, 70, 254, 47, 59, 193, 53, 6, 139, 19, 153,
253, 28, 199, 122, 160, 27, 67, 234, 209, 227, 139, 4, 50, 7, 178, 253, 28, 199, 122, 160, 27, 67, 234, 209, 227, 139, 4, 50, 7, 178,
183, 89, 252, 32, 128, 137, 55, 52, 29, 89, 12, 111, 42, 181, 51, 183, 89, 252, 32, 128, 137, 55, 52, 29, 89, 12, 111, 42, 181, 51,
170, 132, 132, 207, 170, 228, 254, 178, 213, 0, 136, 175, 8 ] 170, 132, 132, 207, 170, 228, 254, 178, 213, 0, 136, 175, 8]
The resulting Authentication Tag value is: The resulting Authentication Tag value is:
[ 208, 113, 102, 132, 236, 236, 67, 223, 39, 53, 98, 99, 32, 121, 17, [208, 113, 102, 132, 236, 236, 67, 223, 39, 53, 98, 99, 32, 121, 17,
236 ] 236]
Encoding this JWE Ciphertext as BASE64URL(JWE Ciphertext) gives this Encoding this JWE Ciphertext as BASE64URL(JWE Ciphertext) gives this
value: value (with line breaks for display purposes only):
AwhB8lxrlKjFn02LGWEqg27H4Tg9fyZAbFv3p5ZicHpj64QyHC44qqlZ3JEmnZTgQo AwhB8lxrlKjFn02LGWEqg27H4Tg9fyZAbFv3p5ZicHpj64QyHC44qqlZ3JEmnZTgQo
wIqZJ13jbyHB8LgePiqUJ1hf6M2HPLgzw8L-mEeQ0jvDUTrE07NtOerBk8bwBQyZ6g wIqZJ13jbyHB8LgePiqUJ1hf6M2HPLgzw8L-mEeQ0jvDUTrE07NtOerBk8bwBQyZ6g
0kQ3DEOIglfYxV8-FJvNBYwbqN1Bck6d_i7OtjSHV-8DIrp-3JcRIe05YKy3Oi34Z_ 0kQ3DEOIglfYxV8-FJvNBYwbqN1Bck6d_i7OtjSHV-8DIrp-3JcRIe05YKy3Oi34Z_
GOiAc1EK21B11c_AE11PII_wvvtRiUiG8YofQXakWd1_O98Kap-UgmyWPfreUJ3lJP GOiAc1EK21B11c_AE11PII_wvvtRiUiG8YofQXakWd1_O98Kap-UgmyWPfreUJ3lJP
nbD4Ve95owEfMGLOPflo2MnjaTDCwQokoJ_xplQ2vNPz8iguLcHBoKllyQFJL2mOWB nbD4Ve95owEfMGLOPflo2MnjaTDCwQokoJ_xplQ2vNPz8iguLcHBoKllyQFJL2mOWB
wqhBo9Oj-O800as5mmLsvQMTflIrIEbbTMzHMBZ8EFW9fWwwFu0DWQJGkMNhmBZQ-3 wqhBo9Oj-O800as5mmLsvQMTflIrIEbbTMzHMBZ8EFW9fWwwFu0DWQJGkMNhmBZQ-3
lvqTc-M6-gWA6D8PDhONfP2Oib2HGizwG1iEaX8GRyUpfLuljCLIe1DkGOewhKuKkZ lvqTc-M6-gWA6D8PDhONfP2Oib2HGizwG1iEaX8GRyUpfLuljCLIe1DkGOewhKuKkZ
h04DKNM5Nbugf2atmU9OP0Ldx5peCUtRG1gMVl7Qup5ZXHTjgPDr5b2N731UooCGAU h04DKNM5Nbugf2atmU9OP0Ldx5peCUtRG1gMVl7Qup5ZXHTjgPDr5b2N731UooCGAU
qHdgGhg0JVJ_ObCTdjsH4CF1SJsdUhrXvYx3HJh2Xd7CwJRzU_3Y1GxYU6-s3GFPbi qHdgGhg0JVJ_ObCTdjsH4CF1SJsdUhrXvYx3HJh2Xd7CwJRzU_3Y1GxYU6-s3GFPbi
skipping to change at page 36, line 22 skipping to change at page 36, line 22
the following individuals contributed ideas, feedback, and wording the following individuals contributed ideas, feedback, and wording
that influenced this specification: that influenced this specification:
Dirk Balfanz, Richard Barnes, John Bradley, Brian Campbell, Breno de Dirk Balfanz, Richard Barnes, John Bradley, Brian Campbell, Breno de
Medeiros, Joe Hildebrand, Edmund Jay, Ben Laurie, James Manger, Matt Medeiros, Joe Hildebrand, Edmund Jay, Ben Laurie, James Manger, Matt
Miller, Tony Nadalin, Axel Nennker, John Panzer, Eric Rescorla, Nat Miller, Tony Nadalin, Axel Nennker, John Panzer, Eric Rescorla, Nat
Sakimura, Jim Schaad, Paul Tarjan, Hannes Tschofenig, and Sean Sakimura, Jim Schaad, Paul Tarjan, Hannes Tschofenig, and Sean
Turner. Turner.
Jim Schaad and Karen O'Donoghue chaired the JOSE working group and Jim Schaad and Karen O'Donoghue chaired the JOSE working group and
Sean Turner and Stephen Farrell served as Security area directors Sean Turner, Stephen Farrell, and Kathleen Moriarty served as
during the creation of this specification. Security area directors during the creation of this specification.
Appendix E. Document History Appendix E. Document History
[[ to be removed by the RFC Editor before publication as an RFC ]] [[ to be removed by the RFC Editor before publication as an RFC ]]
-26
o Referenced Section 6 of RFC 6125 for TLS server certificate
identity validation.
o Deleted misleading non-normative phrase from the "use"
description.
o Noted that octet sequences are depicted using JSON array notation.
o Updated references, including to W3C specifications.
-25 -25
o Updated WebCrypto reference to refer to W3C Last Call draft. o Updated WebCrypto reference to refer to W3C Last Call draft.
-24 -24
o Corrected the authentication tag value in the encrypted key o Corrected the authentication tag value in the encrypted key
example. example.
o Updated the JSON reference to RFC 7159. o Updated the JSON reference to RFC 7159.
skipping to change at page 40, line 4 skipping to change at page 40, line 14
specification.) specification.)
o Clarify that the "alg" (algorithm family) member is REQUIRED. o Clarify that the "alg" (algorithm family) member is REQUIRED.
o Correct an instance of "JWK" that should have been "JWK Set". o Correct an instance of "JWK" that should have been "JWK Set".
o Applied changes made by the RFC Editor to RFC 6749's registry o Applied changes made by the RFC Editor to RFC 6749's registry
language to this specification. language to this specification.
-05 -05
o Indented artwork elements to better distinguish them from the body o Indented artwork elements to better distinguish them from the body
text. text.
-04 -04
o Refer to the registries as the primary sources of defined values o Refer to the registries as the primary sources of defined values
and then secondarily reference the sections defining the initial and then secondarily reference the sections defining the initial
contents of the registries. contents of the registries.
o Normatively reference XML DSIG 2.0 [W3C.CR-xmldsig-core2-20120124] o Normatively reference XML DSIG 2.0 for its security
for its security considerations. considerations.
o Added this language to Registration Templates: "This name is case o Added this language to Registration Templates: "This name is case
sensitive. Names that match other registered names in a case sensitive. Names that match other registered names in a case
insensitive manner SHOULD NOT be accepted." insensitive manner SHOULD NOT be accepted."
o Described additional open issues. o Described additional open issues.
o Applied editorial suggestions. o Applied editorial suggestions.
-03 -03
 End of changes. 52 change blocks. 
67 lines changed or deleted 80 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/