| < 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 | |||
| 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||