{"id":2379,"date":"2023-07-08T20:03:30","date_gmt":"2023-07-09T03:03:30","guid":{"rendered":"https:\/\/self-issued.info\/?p=2379"},"modified":"2023-07-08T20:03:30","modified_gmt":"2023-07-09T03:03:30","slug":"cose-typ-type-header-parameter-specification","status":"publish","type":"post","link":"https:\/\/self-issued.info\/?p=2379","title":{"rendered":"COSE &#8220;typ&#8221; (type) Header Parameter Specification"},"content":{"rendered":"<p><span class=\"plain\"><img decoding=\"async\" align=\"right\" src=\"https:\/\/self-issued.info\/images\/ietf-logo.png\" alt=\"IETF logo\"><\/span><a href=\"https:\/\/twitter.com\/OR13b\">Orie Steele<\/a> and I have created a specification to add a <code>typ<\/code> header parameter to COSE &#8211; something increasingly widely used in JOSE but currently missing in COSE.  The introduction to the spec tells the story:<\/p>\n<blockquote><p>\nCBOR Object Signing and Encryption (COSE) [<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9052\">RFC9052<\/a>] defines header parameters that parallel many of those defined by the JSON Object Signing and Encryption (JOSE) [<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7515.html\">RFC7515<\/a>] [<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7516.html\">RFC7516<\/a>] specifications. However, one way in which COSE does not provide equivalent functionality to JOSE is that it does not define an equivalent of the <code>typ<\/code> (type) header parameter, which is used for declaring the type of the entire JOSE data structure. The security benefits of having <code>typ<\/code> (type) are described in the JSON Web Token Best Current Practices [<a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8725.html\">RFC8725<\/a>], which recommends its use for &#8220;explicit typing&#8221; &#8212; using <code>typ<\/code> values to distinguish between different kinds of objects.<\/p>\n<p>This specification adds the equivalent of the JOSE <code>typ<\/code> (type) header parameter to COSE so that the benefits of explicit typing can be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter, allowing both integer CoAP Content-Formats [<a href=\"https:\/\/www.iana.org\/assignments\/core-parameters\/core-parameters.xhtml#content-formats\">IANA.CoAP.ContentFormats<\/a>] values and string Media Type [<a href=\"https:\/\/www.iana.org\/assignments\/media-types\/media-types.xhtml\">IANA.MediaTypes<\/a>] values to be used.<\/p><\/blockquote>\n<p>The specification is available at:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.ietf.org\/archive\/id\/draft-jones-cose-typ-header-parameter-00.html\">https:\/\/www.ietf.org\/archive\/id\/draft-jones-cose-typ-header-parameter-00.html<\/a><\/li>\n<\/ul>\n<p>We plan to socialize this specification at <a href=\"https:\/\/www.ietf.org\/how\/meetings\/117\/\">IETF 117<\/a> in San Francisco later this month.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Orie Steele and I have created a specification to add a typ header parameter to COSE &#8211; something increasingly widely used in JOSE but currently missing in COSE. The introduction to the spec tells the story: CBOR Object Signing and Encryption (COSE) [RFC9052] defines header parameters that parallel many of those defined by the JSON [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,32,25],"tags":[],"class_list":["post-2379","post","type-post","status-publish","format-standard","hentry","category-cbor","category-ietf","category-specifications"],"_links":{"self":[{"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/posts\/2379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/self-issued.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2379"}],"version-history":[{"count":2,"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/posts\/2379\/revisions"}],"predecessor-version":[{"id":2381,"href":"https:\/\/self-issued.info\/index.php?rest_route=\/wp\/v2\/posts\/2379\/revisions\/2381"}],"wp:attachment":[{"href":"https:\/\/self-issued.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/self-issued.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/self-issued.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}