diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..dbc01ffa
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,34 @@
+
+# 0.48
+
+(Issue #190) Now correctly display elements next to a `$ref` with reused nodes, e.g.:
+
+```json
+{
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
+ "type": "object",
+ "title": "Example",
+ "properties": {
+ "prop1": {
+ "$ref": "#/$defs/a",
+ "description": "Prop1",
+ "examples": ["1"]
+ },
+ "prop2": {
+ "$ref": "#/$defs/a",
+ "description": "Prop2",
+ "examples": ["2"]
+ }
+ },
+ "$defs": {
+ "a": {
+ "type": "string",
+ "maxLength": 5
+ }
+ }
+}
+```
+
+Previously, `prop2` would have been a link to `prop1`, hiding the different example for `prop2`.
+
+This may increase the size of rendered schemas in certain situations.
diff --git a/docs/Examples.md b/docs/Examples.md
index 648ad718..221fbd2b 100644
--- a/docs/Examples.md
+++ b/docs/Examples.md
@@ -2536,6 +2536,72 @@ the description of an attribute
[examples/examples_md_nested_with_badges/ref_merge.md](examples/examples_md_nested_with_badges/ref_merge.md ':include')
+## --ref_with_other_elements--
+### ref_with_other_elements
+
+
+Json schema - Click here to expand source code...
+
+[examples/cases/ref_with_other_elements.json](examples/cases/ref_with_other_elements.json ':include :type=code')
+JS template - Click here to expand the rendered result...
+Open it in full page
+
+[examples/examples_js_default/ref_with_other_elements.html](examples/examples_js_default/ref_with_other_elements.html ':include :type=iframe width=100% height=400px')
+JS Offline template - Click here to expand the rendered result...
+Open it in full page
+
+[examples/examples_js_offline_default/ref_with_other_elements.html](examples/examples_js_offline_default/ref_with_other_elements.html ':include :type=iframe width=100% height=400px')
+Flat template - Click here to expand the rendered result...
+Open it in full page
+
+[examples/examples_flat_default/ref_with_other_elements.html](examples/examples_flat_default/ref_with_other_elements.html ':include :type=iframe width=100% height=400px')
+Markdown without badge template - Click here to expand the rendered result...
+Open it in github
+
+[examples/examples_md_default/ref_with_other_elements.md](examples/examples_md_default/ref_with_other_elements.md ':include')
+Markdown with badges template - Click here to expand the rendered result...
+Open it in github
+
+[examples/examples_md_with_badges/ref_with_other_elements.md](examples/examples_md_with_badges/ref_with_other_elements.md ':include')
+Nested Markdown without badges template - Click here to expand the rendered result...
+Open it in github
+
+[examples/examples_md_nested_default/ref_with_other_elements.md](examples/examples_md_nested_default/ref_with_other_elements.md ':include')
+Nested Markdown with badges template - Click here to expand the rendered result...
+Open it in github
+
+[examples/examples_md_nested_with_badges/ref_with_other_elements.md](examples/examples_md_nested_with_badges/ref_with_other_elements.md ':include')
+
Unique Identifer
+ + + + + + + + + + +Must be at least 5
characters long
Must be at most 250
characters long
"29292929292929292929292"
+
first name
+ + + + + + + + + + +Must be at least 10
characters long
Must be at most 250
characters long
"John"
+
last name
+ + + + + + + + + + +Must be at least 5
characters long
Must be at most 10
characters long
"Doe"
+
Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+ + + + +Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + + + + + +Optional. Public key object.
+ + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+ + + + +EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+ + + + +EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + + + + + +RSA exponent.
+ + + + + + + + + + + +Key type indicator.
+ + + + + + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + + + + + +Unique top level property for Multiple Signatures. (multisignature)
+ + + + + + + + + + + No Additional ItemsSignature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+ + + + +Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + + + + + +Optional. Public key object.
+ + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+ + + + +EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+ + + + +EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + + + + + +RSA exponent.
+ + + + + + + + + + + +Key type indicator.
+ + + + + + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + + + + + +Unique top level property for Signature Chains. (signaturechain)
+ + + + + + + + + + + No Additional ItemsUnique top level property for simple signatures. (signaturecore)
+ + + + + + + No Additional Properties + + + + + + + +Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+ + + + +Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + + + + + +Optional. Public key object.
+ + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+ + + + +EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+ + + + +EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + + + + + +RSA exponent.
+ + + + + + + + + + + +Key type indicator.
+ + + + + + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + +A common description
-Same definition as a + + + + + + + + + diff --git a/docs/examples/examples_js_default/ref_with_other_elements.html b/docs/examples/examples_js_default/ref_with_other_elements.html new file mode 100644 index 00000000..b4025146 --- /dev/null +++ b/docs/examples/examples_js_default/ref_with_other_elements.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + +Unique Identifer
+ + + + + + +Must be at least 5
characters long
Must be at most 250
characters long
"29292929292929292929292"
+
first name
+ + + + + + +Must be at least 10
characters long
Must be at most 250
characters long
"John"
+
last name
+ + + + + + +Must be at least 5
characters long
Must be at most 10
characters long
"Doe"
+
Unique top level property for simple signatures. (signaturecore)
-Same definition as Signature + + + No Additional Properties + + + + + + +Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + +Unique top level property for Multiple Signatures. (multisignature)
+ + + + + + + No Additional ItemsSignature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + +Unique top level property for Signature Chains. (signaturechain)
+ + + + + + + No Additional ItemsUnique top level property for simple signatures. (signaturecore)
+ + + No Additional Properties + + + + + + +Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional ItemsA common description
-Same definition as a + + + + + + + + +Unique Identifer
+ + + + + + +Must be at least 5
characters long
Must be at most 250
characters long
"29292929292929292929292"
+
first name
+ + + + + + +Must be at least 10
characters long
Must be at most 250
characters long
"John"
+
last name
+ + + + + + +Must be at least 5
characters long
Must be at most 10
characters long
"Doe"
+
Unique top level property for simple signatures. (signaturecore)
-Same definition as Signature + + + No Additional Properties + + + + + + +Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + +Unique top level property for Multiple Signatures. (multisignature)
+ + + + + + + No Additional ItemsSignature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional ItemsThe signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.
+ + + + + + + +Unique top level property for Signature Chains. (signaturechain)
+ + + + + + + No Additional ItemsUnique top level property for simple signatures. (signaturecore)
+ + + No Additional Properties + + + + + + +Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA".
+Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.
+ + + + + + + +Optional. Application specific string identifying the signature key.
+ + + + + + + +Optional. Public key object.
+ + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"EC"
+
+
+
+
+
+
+ EC curve name.
+EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes.
+ + + + + + + +EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"OKP"
+
+
+
+
+
+
+ EdDSA curve name.
+EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes.
+ + + + + + + +If the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. + Otherwise, the conditions in the "Else" tab should be respected.
+ + +"RSA"
+
+
+
+
+
+
+ RSA modulus.
+ + + + + + + +RSA exponent.
+ + + + + + + +Key type indicator.
+ + +Additional Properties of any type are allowed.
+ + Type: objectOptional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.
+ + + + + + + No Additional ItemsOptional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.
+ + + + + + + No Additional Items+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** Unique Identifer + +| Restrictions | | +| -------------- | --- | +| **Min length** | 5 | +| **Max length** | 250 | + +**Example:** + +```json +"29292929292929292929292" +``` + ++
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** first name + +| Restrictions | | +| -------------- | --- | +| **Min length** | 10 | +| **Max length** | 250 | + +**Example:** + +```json +"John" +``` + ++
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** last name + +| Restrictions | | +| -------------- | -- | +| **Min length** | 5 | +| **Max length** | 10 | + +**Example:** + +```json +"Doe" +``` + ++
+ +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + ++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + +@@ -699,37 +851,1581 @@ Must be one of:+ +###### 1.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 1.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. +
+ +**Title:** Key ID + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Optional. Application specific string identifying the signature key. +
+**Title:** Public key + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 1.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + | | | | ------------------------- | ------------------------------------------------------------------------- | | **Type** | `object` | | **Required** | No | | **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +###### 1.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | +++ +- 2.1. [Optional] Property root > objectB > signature + 1.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty
-**Title:** Signature +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 1.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 1.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 1.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` | | | | ------------------------- | ------------------------------------------------------------------------- | -| **Type** | `combining` | +| **Type** | `object` | | **Required** | No | | **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | -| **Same definition as** | [signature](#objectA_signature) | + +###### 1.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 1.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 1.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 1.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 1.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++ +++ ++ 1.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n + +
++ +**Title:** Modulus + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA modulus. + ++++ ++ 1.1.3.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e + +
++ +**Title:** Exponent + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA exponent. + ++++ ++ 1.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++
+ +**Title:** Certificate path + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++
+ +**Title:** Excludes + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++
+ +**Title:** Signature + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + ++
+ +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + ++ + + + ++diff --git a/docs/examples/examples_md_nested_with_badges/defaults.md b/docs/examples/examples_md_nested_with_badges/defaults.md index 42ea9eb6..f206ae02 100644 --- a/docs/examples/examples_md_nested_with_badges/defaults.md +++ b/docs/examples/examples_md_nested_with_badges/defaults.md @@ -39,7 +39,7 @@ | **Type** | `object` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | | **Default** | `"Default from b"` | -| **Same definition as** | [a](#a) | +| **Defined in** | #/definitions/common | **Description:** A common description diff --git a/docs/examples/examples_md_nested_with_badges/ref_with_other_elements.md b/docs/examples/examples_md_nested_with_badges/ref_with_other_elements.md new file mode 100644 index 00000000..346de696 --- /dev/null +++ b/docs/examples/examples_md_nested_with_badges/ref_with_other_elements.md @@ -0,0 +1,99 @@ +# OF + +- [1. [Optional] Property OF > uuid](#uuid) +- [2. [Optional] Property OF > firstName](#firstName) +- [3. [Optional] Property OF > lastName](#lastName) + +**Title:** OF + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + ++ 2.1. [Optional] Property root > objectB > signature + +
++ +**Title:** Signature + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/signature | + ++ +| One of(Option) | +| ---------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0) | +| [item 1](#objectA_signature_oneOf_i1) | +| [Signature](#objectA_signature_oneOf_i2) | + ++ +#### 2.1.1. Property `root > objectA > signature > oneOf > item 0` + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1. [Optional] Property root > objectA > signature > oneOf > item 0 > signers + +
++ +**Title:** Signature + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Unique top level property for Multiple Signatures. (multisignature) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i0_signers_items) | - | + +###### 2.1.1.1.1. root > objectA > signature > oneOf > item 0 > signers > signer + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + ++++ ++ 2.1.1.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm + +
++ +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + ++ ++ +###### 2.1.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 2.1.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + ++ +++ ++ 2.1.1.1.1.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId + +
++ +**Title:** Key ID + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Optional. Application specific string identifying the signature key. + ++++ ++ 2.1.1.1.1.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey + +
++ +**Title:** Public key + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 2.1.1.1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1.1.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 2.1.1.1.1.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 2.1.1.1.1.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 2.1.1.1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1.1.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 2.1.1.1.1.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 2.1.1.1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++ +++ ++ 2.1.1.1.1.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n + +
++ +**Title:** Modulus + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA modulus. + ++++ ++ 2.1.1.1.1.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e + +
++ +**Title:** Exponent + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA exponent. + ++++ ++ 2.1.1.1.1.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++++ ++ 2.1.1.1.1.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath + +
++ +**Title:** Certificate path + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.1.1.1.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++++ ++ 2.1.1.1.1.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes + +
++ +**Title:** Excludes + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.1.1.1.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++++ ++ 2.1.1.1.1.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value + +
++ +**Title:** Signature + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + +++ +#### 2.1.2. Property `root > objectA > signature > oneOf > item 1` + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.2.1. [Optional] Property root > objectA > signature > oneOf > item 1 > chain + +
++ +**Title:** Signature + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Unique top level property for Signature Chains. (signaturechain) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i1_chain_items) | - | + +###### 2.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | +| **Same definition as** | [Signature](#objectA_signature_oneOf_i0_signers_items) | + +++ +#### 2.1.3. Property `root > objectA > signature > oneOf > Signature` + +**Title:** Signature + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + +**Description:** Unique top level property for simple signatures. (signaturecore) + ++ +++ ++ 2.1.3.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm + +
++ +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | Yes | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + ++ ++ +###### 2.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 2.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + ++ +++ ++ 2.1.3.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId + +
++ +**Title:** Key ID + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Optional. Application specific string identifying the signature key. + ++++ ++ 2.1.3.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey + +
++ +**Title:** Public key + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 2.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 2.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 2.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 2.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++++ ++ 2.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | Yes | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 2.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 2.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | + ++ +++ ++ 2.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n + +
++ +**Title:** Modulus + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA modulus. + ++++ ++ 2.1.3.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e + +
++ +**Title:** Exponent + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** RSA exponent. + ++++ ++ 2.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Required** | Yes | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++++ ++ 2.1.3.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath + +
++ +**Title:** Certificate path + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++++ ++ 2.1.3.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes + +
++ +**Title:** Excludes + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + ++++ ++ 2.1.3.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value + +
++ +**Title:** Signature + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + ++++ ++ 1. [Optional] Property OF > uuid + +
++ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** Unique Identifer + +| Restrictions | | +| -------------- | --- | +| **Min length** | 5 | +| **Max length** | 250 | + +**Example:** + +```json +"29292929292929292929292" +``` + ++++ ++ 2. [Optional] Property OF > firstName + +
++ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** first name + +| Restrictions | | +| -------------- | --- | +| **Min length** | 10 | +| **Max length** | 250 | + +**Example:** + +```json +"John" +``` + ++++ +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) \ No newline at end of file diff --git a/docs/examples/examples_md_nested_with_badges/ref_with_tabs.md b/docs/examples/examples_md_nested_with_badges/ref_with_tabs.md index 22b658ca..8a71dd39 100644 --- a/docs/examples/examples_md_nested_with_badges/ref_with_tabs.md +++ b/docs/examples/examples_md_nested_with_badges/ref_with_tabs.md @@ -36,8 +36,96 @@ - [1.1.2.1. [Optional] Property root > objectA > signature > oneOf > item 1 > chain](#objectA_signature_oneOf_i1_chain) - [1.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer](#autogenerated_heading_8) - [1.1.3. Property `root > objectA > signature > oneOf > Signature`](#objectA_signature_oneOf_i2) + - [1.1.3.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [1.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [1.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [1.1.3.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId](#objectA_signature_oneOf_i0_signers_items_keyId) + - [1.1.3.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [1.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [1.1.3.3.1.1. If (kty = "EC")](#autogenerated_heading_9) + - [1.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [1.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [1.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [1.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [1.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [1.1.3.3.2.1. If (kty = "OKP")](#autogenerated_heading_10) + - [1.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [1.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [1.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [1.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [1.1.3.3.3.1. If (kty = "RSA")](#autogenerated_heading_11) + - [1.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [1.1.3.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [1.1.3.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [1.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [1.1.3.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_12) + - [1.1.3.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes](#objectA_signature_oneOf_i0_signers_items_excludes) + - [1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_13) + - [1.1.3.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value](#objectA_signature_oneOf_i0_signers_items_value) - [2. [Optional] Property root > objectB](#objectB) - [2.1. [Optional] Property root > objectB > signature](#objectB_signature) + - [2.1.1. Property `root > objectA > signature > oneOf > item 0`](#objectA_signature_oneOf_i0) + - [2.1.1.1. [Optional] Property root > objectA > signature > oneOf > item 0 > signers](#objectA_signature_oneOf_i0_signers) + - [2.1.1.1.1. root > objectA > signature > oneOf > item 0 > signers > signer](#autogenerated_heading_14) + - [2.1.1.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [2.1.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [2.1.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [2.1.1.1.1.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId](#objectA_signature_oneOf_i0_signers_items_keyId) + - [2.1.1.1.1.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [2.1.1.1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [2.1.1.1.1.3.1.1. If (kty = "EC")](#autogenerated_heading_15) + - [2.1.1.1.1.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [2.1.1.1.1.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [2.1.1.1.1.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [2.1.1.1.1.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [2.1.1.1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [2.1.1.1.1.3.2.1. If (kty = "OKP")](#autogenerated_heading_16) + - [2.1.1.1.1.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [2.1.1.1.1.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [2.1.1.1.1.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [2.1.1.1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [2.1.1.1.1.3.3.1. If (kty = "RSA")](#autogenerated_heading_17) + - [2.1.1.1.1.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [2.1.1.1.1.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [2.1.1.1.1.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [2.1.1.1.1.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [2.1.1.1.1.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [2.1.1.1.1.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_18) + - [2.1.1.1.1.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes](#objectA_signature_oneOf_i0_signers_items_excludes) + - [2.1.1.1.1.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_19) + - [2.1.1.1.1.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value](#objectA_signature_oneOf_i0_signers_items_value) + - [2.1.2. Property `root > objectA > signature > oneOf > item 1`](#objectA_signature_oneOf_i1) + - [2.1.2.1. [Optional] Property root > objectA > signature > oneOf > item 1 > chain](#objectA_signature_oneOf_i1_chain) + - [2.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer](#autogenerated_heading_20) + - [2.1.3. Property `root > objectA > signature > oneOf > Signature`](#objectA_signature_oneOf_i2) + - [2.1.3.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [2.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [2.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [2.1.3.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId](#objectA_signature_oneOf_i0_signers_items_keyId) + - [2.1.3.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [2.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [2.1.3.3.1.1. If (kty = "EC")](#autogenerated_heading_21) + - [2.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [2.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [2.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [2.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [2.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [2.1.3.3.2.1. If (kty = "OKP")](#autogenerated_heading_22) + - [2.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [2.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [2.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [2.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [2.1.3.3.3.1. If (kty = "RSA")](#autogenerated_heading_23) + - [2.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [2.1.3.3.3.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [2.1.3.3.3.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [2.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [2.1.3.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [2.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_24) + - [2.1.3.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes](#objectA_signature_oneOf_i0_signers_items_excludes) + - [2.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_25) + - [2.1.3.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value](#objectA_signature_oneOf_i0_signers_items_value) | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | @@ -651,10 +739,71 @@ Must be one of: | ------------------------- | -------------------------------------------------------------------------------------------------------- | | **Type** | `object` | | **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | -| **Same definition as** | [Signature](#objectA_signature_oneOf_i0_signers_items) | +| **Defined in** | #/definitions/signer | **Description:** Unique top level property for simple signatures. (signaturecore) ++ 3. [Optional] Property OF > lastName + +
++ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** last name + +| Restrictions | | +| -------------- | -- | +| **Min length** | 5 | +| **Max length** | 10 | + +**Example:** + +```json +"Doe" +``` + +++++ 1.1.3.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm + +
++ +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + ++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + +@@ -662,35 +811,1494 @@ Must be one of:+ +###### 1.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 1.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. +++ 1.1.3.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId + +
++ +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. ++ +- 2. [Optional] Property root > objectB + 1.1.3.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey
+**Title:** Public key + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 1.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | **Type** | `object` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +###### 1.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +++ +- 2.1. [Optional] Property root > objectB > signature + 1.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty
-**Title:** Signature +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 1.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 1.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 1.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| **Type** | `combining` | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 1.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 1.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 1.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 1.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | -| **Same definition as** | [signature](#objectA_signature) | + +###### 1.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++ +++ + + + + ++ 1.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 1.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++++ ++ 1.1.3.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath + +
++ +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 1.1.3.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes + +
++ +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 1.1.3.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value + +
++ +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + ++
+ +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + ++diff --git a/docs/examples/examples_md_with_badges/defaults.md b/docs/examples/examples_md_with_badges/defaults.md index d538415c..95d79d4f 100644 --- a/docs/examples/examples_md_with_badges/defaults.md +++ b/docs/examples/examples_md_with_badges/defaults.md @@ -11,7 +11,7 @@ | Property | Pattern | Type | Deprecated | Definition | Title/Description | | ---------- | ------- | ------ | ---------- | ----------------------- | -------------------- | | - [a](#a ) | No | object | No | In #/definitions/common | Description of a | -| - [b](#b ) | No | object | No | Same as [a](#a ) | A common description | +| - [b](#b ) | No | object | No | In #/definitions/common | A common description | ## 1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > a` @@ -31,7 +31,7 @@ | **Type** | `object` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | | **Default** | `"Default from b"` | -| **Same definition as** | [a](#a) | +| **Defined in** | #/definitions/common | **Description:** A common description diff --git a/docs/examples/examples_md_with_badges/ref_with_other_elements.md b/docs/examples/examples_md_with_badges/ref_with_other_elements.md new file mode 100644 index 00000000..16d0fd17 --- /dev/null +++ b/docs/examples/examples_md_with_badges/ref_with_other_elements.md @@ -0,0 +1,99 @@ +# OF + +- [1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > uuid`](#uuid) +- [2. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > firstName`](#firstName) +- [3. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > lastName`](#lastName) + +**Title:** OF + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------- | ------- | ------ | ---------- | ------------------- | ----------------- | +| - [uuid](#uuid ) | No | string | No | In #/$defs/ofString | Unique Identifer | +| - [firstName](#firstName ) | No | string | No | In #/$defs/ofString | first name | +| - [lastName](#lastName ) | No | string | No | In #/$defs/ofString | last name | + +## 1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > uuid` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** Unique Identifer + +**Example:** + +```json +"29292929292929292929292" +``` + +**Example:** + +```json +"29292929292929292929292" +``` + +| Restrictions | | +| -------------- | --- | +| **Min length** | 5 | +| **Max length** | 250 | + +## 2. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > firstName` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** first name + +**Example:** + +```json +"John" +``` + +**Example:** + +```json +"John" +``` + +| Restrictions | | +| -------------- | --- | +| **Min length** | 10 | +| **Max length** | 250 | + +## 3. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `OF > lastName` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** last name + +**Example:** + +```json +"Doe" +``` + +**Example:** + +```json +"Doe" +``` + +| Restrictions | | +| -------------- | -- | +| **Min length** | 5 | +| **Max length** | 10 | + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) diff --git a/docs/examples/examples_md_with_badges/ref_with_tabs.md b/docs/examples/examples_md_with_badges/ref_with_tabs.md index 68a706d8..13552f85 100644 --- a/docs/examples/examples_md_with_badges/ref_with_tabs.md +++ b/docs/examples/examples_md_with_badges/ref_with_tabs.md @@ -36,8 +36,96 @@ - [1.1.2.1. Property `root > objectA > signature > oneOf > item 1 > chain`](#objectA_signature_oneOf_i1_chain) - [1.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer](#autogenerated_heading_8) - [1.1.3. Property `root > objectA > signature > oneOf > Signature`](#objectA_signature_oneOf_i2) + - [1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [1.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [1.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId`](#objectA_signature_oneOf_i0_signers_items_keyId) + - [1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey`](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [1.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [1.1.3.3.1.1. If (kty = "EC")](#autogenerated_heading_9) + - [1.1.3.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [1.1.3.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [1.1.3.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [1.1.3.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [1.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [1.1.3.3.2.1. If (kty = "OKP")](#autogenerated_heading_10) + - [1.1.3.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [1.1.3.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [1.1.3.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [1.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [1.1.3.3.3.1. If (kty = "RSA")](#autogenerated_heading_11) + - [1.1.3.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [1.1.3.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [1.1.3.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [1.1.3.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [1.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath`](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_12) + - [1.1.3.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes`](#objectA_signature_oneOf_i0_signers_items_excludes) + - [1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_13) + - [1.1.3.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value`](#objectA_signature_oneOf_i0_signers_items_value) - [2. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB`](#objectB) - [2.1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB > signature`](#objectB_signature) + - [2.1.1. Property `root > objectA > signature > oneOf > item 0`](#objectA_signature_oneOf_i0) + - [2.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers`](#objectA_signature_oneOf_i0_signers) + - [2.1.1.1.1. root > objectA > signature > oneOf > item 0 > signers > signer](#autogenerated_heading_14) + - [2.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [2.1.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [2.1.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [2.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId`](#objectA_signature_oneOf_i0_signers_items_keyId) + - [2.1.1.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey`](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [2.1.1.1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [2.1.1.1.1.3.1.1. If (kty = "EC")](#autogenerated_heading_15) + - [2.1.1.1.1.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [2.1.1.1.1.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [2.1.1.1.1.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [2.1.1.1.1.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [2.1.1.1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [2.1.1.1.1.3.2.1. If (kty = "OKP")](#autogenerated_heading_16) + - [2.1.1.1.1.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [2.1.1.1.1.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [2.1.1.1.1.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [2.1.1.1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [2.1.1.1.1.3.3.1. If (kty = "RSA")](#autogenerated_heading_17) + - [2.1.1.1.1.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [2.1.1.1.1.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [2.1.1.1.1.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [2.1.1.1.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [2.1.1.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath`](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [2.1.1.1.1.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_18) + - [2.1.1.1.1.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes`](#objectA_signature_oneOf_i0_signers_items_excludes) + - [2.1.1.1.1.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_19) + - [2.1.1.1.1.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value`](#objectA_signature_oneOf_i0_signers_items_value) + - [2.1.2. Property `root > objectA > signature > oneOf > item 1`](#objectA_signature_oneOf_i1) + - [2.1.2.1. Property `root > objectA > signature > oneOf > item 1 > chain`](#objectA_signature_oneOf_i1_chain) + - [2.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer](#autogenerated_heading_20) + - [2.1.3. Property `root > objectA > signature > oneOf > Signature`](#objectA_signature_oneOf_i2) + - [2.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm) + - [2.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) + - [2.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm`](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) + - [2.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId`](#objectA_signature_oneOf_i0_signers_items_keyId) + - [2.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey`](#objectA_signature_oneOf_i0_signers_items_publicKey) + - [2.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) + - [2.1.3.3.1.1. If (kty = "EC")](#autogenerated_heading_21) + - [2.1.3.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty) + - [2.1.3.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv) + - [2.1.3.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x) + - [2.1.3.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y) + - [2.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) + - [2.1.3.3.2.1. If (kty = "OKP")](#autogenerated_heading_22) + - [2.1.3.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty) + - [2.1.3.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv) + - [2.1.3.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x) + - [2.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) + - [2.1.3.3.3.1. If (kty = "RSA")](#autogenerated_heading_23) + - [2.1.3.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty) + - [2.1.3.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n) + - [2.1.3.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e`](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e) + - [2.1.3.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty`](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) + - [2.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath`](#objectA_signature_oneOf_i0_signers_items_certificatePath) + - [2.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items](#autogenerated_heading_24) + - [2.1.3.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes`](#objectA_signature_oneOf_i0_signers_items_excludes) + - [2.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items](#autogenerated_heading_25) + - [2.1.3.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value`](#objectA_signature_oneOf_i0_signers_items_value) | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | @@ -504,30 +592,1144 @@ Must be one of: | ------------------------- | -------------------------------------------------------------------------------------------------------- | | **Type** | `object` | | **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | -| **Same definition as** | [Signature](#objectA_signature_oneOf_i0_signers_items) | +| **Defined in** | #/definitions/signer | **Description:** Unique top level property for simple signatures. (signaturecore) -## 2. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB` +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | --------------- | ---------- | -------------------------- | ----------------- | +| + [algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm ) | No | Combination | No | - | - | +| - [keyId](#objectA_signature_oneOf_i0_signers_items_keyId ) | No | string | No | - | Key ID | +| - [publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey ) | No | object | No | In #/definitions/publicKey | Public key | +| - [certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath ) | No | array of string | No | - | Certificate path | +| - [excludes](#objectA_signature_oneOf_i0_signers_items_excludes ) | No | array of string | No | - | Excludes | +| + [value](#objectA_signature_oneOf_i0_signers_items_value ) | No | string | No | - | Signature | + +##### 1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm` | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| **Type** | `object` | +| **Type** | `combining` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | -| Property | Pattern | Type | Deprecated | Definition | Title/Description | -| ---------------------------------- | ------- | ------ | ---------- | ---------------------------------------- | ----------------- | -| - [signature](#objectB_signature ) | No | object | No | Same as [signature](#objectA_signature ) | Signature | +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + +###### 1.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` -### 2.1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB > signature` +**Title:** Algorithm -**Title:** Signature +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +###### 1.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + +##### 1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId` + +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. + +##### 1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey` + +**Title:** Public key | | | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | **Type** | `combining` | | **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | -| **Same definition as** | [signature](#objectA_signature) | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ------------------------ | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | No | enum (of string) | No | In #/definitions/keyType | Key type indicator. | +| - [](#objectA_signature_oneOf_i0_signers_items_publicKey_additionalProperties ) | No | object | No | - | - | + +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + +###### 1.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 1.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x ) | No | string | No | - | Coordinate | +| + [y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y ) | No | string | No | - | Coordinate | + +###### 1.1.3.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 1.1.3.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + +###### 1.1.3.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + +###### 1.1.3.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +###### 1.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 1.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x ) | No | string | No | - | Coordinate | + +###### 1.1.3.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 1.1.3.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + +###### 1.1.3.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +###### 1.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 1.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n ) | No | string | No | - | Modulus | +| + [e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e ) | No | string | No | - | Exponent | + +###### 1.1.3.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 1.1.3.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n` + +**Title:** Modulus + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA modulus. + +###### 1.1.3.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e` + +**Title:** Exponent + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA exponent. + +###### 1.1.3.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty` + +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + +##### 1.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath` + +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + +##### 1.1.3.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes` + +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + +##### 1.1.3.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value` + +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + +## 2. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------- | ------- | ------ | ---------- | -------------------------- | ----------------- | +| - [signature](#objectB_signature ) | No | object | No | In #/definitions/signature | Signature | + +### 2.1. ![Optional](https://img.shields.io/badge/Optional-yellow) Property `root > objectB > signature` + +**Title:** Signature + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/signature | + +| One of(Option) | +| ---------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0) | +| [item 1](#objectA_signature_oneOf_i1) | +| [Signature](#objectA_signature_oneOf_i2) | + +#### 2.1.1. Property `root > objectA > signature > oneOf > item 0` + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------- | ------- | ----- | ---------- | ---------- | ----------------- | +| - [signers](#objectA_signature_oneOf_i0_signers ) | No | array | No | - | Signature | + +##### 2.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers` + +**Title:** Signature + +| | | +| -------- | ------- | +| **Type** | `array` | + +**Description:** Unique top level property for Multiple Signatures. (multisignature) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i0_signers_items) | - | + +###### 2.1.1.1.1. root > objectA > signature > oneOf > item 0 > signers > signer + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | --------------- | ---------- | -------------------------- | ----------------- | +| + [algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm ) | No | Combination | No | - | - | +| - [keyId](#objectA_signature_oneOf_i0_signers_items_keyId ) | No | string | No | - | Key ID | +| - [publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey ) | No | object | No | In #/definitions/publicKey | Public key | +| - [certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath ) | No | array of string | No | - | Certificate path | +| - [excludes](#objectA_signature_oneOf_i0_signers_items_excludes ) | No | array of string | No | - | Excludes | +| + [value](#objectA_signature_oneOf_i0_signers_items_value ) | No | string | No | - | Signature | + +###### 2.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + +###### 2.1.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +###### 2.1.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + +###### 2.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId` + +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. + +###### 2.1.1.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey` + +**Title:** Public key + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ------------------------ | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | No | enum (of string) | No | In #/definitions/keyType | Key type indicator. | +| - [](#objectA_signature_oneOf_i0_signers_items_publicKey_additionalProperties ) | No | object | No | - | - | + +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + +###### 2.1.1.1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x ) | No | string | No | - | Coordinate | +| + [y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y ) | No | string | No | - | Coordinate | + +###### 2.1.1.1.1.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.1.1.1.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + +###### 2.1.1.1.1.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + +###### 2.1.1.1.1.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +###### 2.1.1.1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x ) | No | string | No | - | Coordinate | + +###### 2.1.1.1.1.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.1.1.1.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + +###### 2.1.1.1.1.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +###### 2.1.1.1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n ) | No | string | No | - | Modulus | +| + [e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e ) | No | string | No | - | Exponent | + +###### 2.1.1.1.1.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.1.1.1.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n` + +**Title:** Modulus + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA modulus. + +###### 2.1.1.1.1.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e` + +**Title:** Exponent + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA exponent. + +###### 2.1.1.1.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty` + +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + +###### 2.1.1.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath` + +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.1.1.1.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + +###### 2.1.1.1.1.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes` + +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.1.1.1.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + +###### 2.1.1.1.1.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value` + +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + +#### 2.1.2. Property `root > objectA > signature > oneOf > item 1` + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------- | ------- | ----- | ---------- | ---------- | ----------------- | +| - [chain](#objectA_signature_oneOf_i1_chain ) | No | array | No | - | Signature | + +##### 2.1.2.1. Property `root > objectA > signature > oneOf > item 1 > chain` + +**Title:** Signature + +| | | +| -------- | ------- | +| **Type** | `array` | + +**Description:** Unique top level property for Signature Chains. (signaturechain) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i1_chain_items) | - | + +###### 2.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Same definition as** | [Signature](#objectA_signature_oneOf_i0_signers_items) | + +#### 2.1.3. Property `root > objectA > signature > oneOf > Signature` + +**Title:** Signature + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + +**Description:** Unique top level property for simple signatures. (signaturecore) + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | --------------- | ---------- | -------------------------- | ----------------- | +| + [algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm ) | No | Combination | No | - | - | +| - [keyId](#objectA_signature_oneOf_i0_signers_items_keyId ) | No | string | No | - | Key ID | +| - [publicKey](#objectA_signature_oneOf_i0_signers_items_publicKey ) | No | object | No | In #/definitions/publicKey | Public key | +| - [certificatePath](#objectA_signature_oneOf_i0_signers_items_certificatePath ) | No | array of string | No | - | Certificate path | +| - [excludes](#objectA_signature_oneOf_i0_signers_items_excludes ) | No | array of string | No | - | Excludes | +| + [value](#objectA_signature_oneOf_i0_signers_items_value ) | No | string | No | - | Signature | + +##### 2.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + +###### 2.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +###### 2.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + +##### 2.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > keyId` + +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. + +##### 2.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey` + +**Title:** Public key + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ------------------------ | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | No | enum (of string) | No | In #/definitions/keyType | Key type indicator. | +| - [](#objectA_signature_oneOf_i0_signers_items_publicKey_additionalProperties ) | No | object | No | - | - | + +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + +###### 2.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_x ) | No | string | No | - | Coordinate | +| + [y](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0_then_y ) | No | string | No | - | Coordinate | + +###### 2.1.3.3.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.3.3.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + +###### 2.1.3.3.1.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + +###### 2.1.3.3.1.1.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +###### 2.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [crv](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_crv ) | No | enum (of string) | No | - | Curve name | +| + [x](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1_then_x ) | No | string | No | - | Coordinate | + +###### 2.1.3.3.2.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.3.3.2.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv` + +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + +###### 2.1.3.3.2.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x` + +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +###### 2.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------------- | ------------------- | +| + [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_kty ) | No | enum (of string) | No | Same as [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty ) | Key type indicator. | +| + [n](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_n ) | No | string | No | - | Modulus | +| + [e](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2_then_e ) | No | string | No | - | Exponent | + +###### 2.1.3.3.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty` + +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + +###### 2.1.3.3.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > n` + +**Title:** Modulus + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA modulus. + +###### 2.1.3.3.3.1.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > e` + +**Title:** Exponent + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** RSA exponent. + +###### 2.1.3.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty` + +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + +##### 2.1.3.4. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath` + +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + +##### 2.1.3.5. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > excludes` + +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + +##### 2.1.3.6. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > value` + +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. ---------------------------------------------------------------------------------------------------------------------------- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) diff --git a/json_schema_for_humans/schema/intermediate_representation.py b/json_schema_for_humans/schema/intermediate_representation.py index 55d8636d..b720ec58 100644 --- a/json_schema_for_humans/schema/intermediate_representation.py +++ b/json_schema_for_humans/schema/intermediate_representation.py @@ -482,7 +482,7 @@ def _build_node( for schema_key, schema_value in schema.items(): # These won't be needed to render the documentation. # The definitions will be reached from references, otherwise they are useless - if schema_key in ["$id", "$ref", "$schema", "definitions"]: + if schema_key in ["$id", "$ref", "$schema", "definitions", "$defs"]: continue # Examples are rendered in JSON because they will be represented that way in the documentation, diff --git a/json_schema_for_humans/schema/schema_keyword.py b/json_schema_for_humans/schema/schema_keyword.py index 3f07e8b8..fb9fad4e 100644 --- a/json_schema_for_humans/schema/schema_keyword.py +++ b/json_schema_for_humans/schema/schema_keyword.py @@ -5,6 +5,7 @@ class SchemaKeyword(Enum): REQUIRED = "required" TITLE = "title" CONTAINS = "contains" + DESCRIPTION = "description" EXAMPLES = "examples" ITEMS = "items" PREFIX_ITEMS = "prefixItems" diff --git a/json_schema_for_humans/schema/schema_node.py b/json_schema_for_humans/schema/schema_node.py index 4fdb39c0..78bd486a 100644 --- a/json_schema_for_humans/schema/schema_node.py +++ b/json_schema_for_humans/schema/schema_node.py @@ -1,4 +1,3 @@ -import binascii import copy import string from typing import Any, Dict, Iterable, Iterator, List, Optional, Set, Union, cast @@ -12,6 +11,7 @@ ALLOWED_ID_CHARS = string.ascii_letters + string.digits + "_" + "-" +ALLOWED_KEYWORDS_WITH_REF = [SchemaKeyword.DESCRIPTION.value] class SchemaNode: @@ -498,6 +498,11 @@ def should_be_a_link(self, config: GenerationConfiguration) -> bool: if not self.links_to or self.is_displayed: return False + # If there are elements next to "$ref", we need to merge them and display, so we can't link + # However, we still do not want to display it if it has circular references + if self.refers_to and any(k not in ALLOWED_KEYWORDS_WITH_REF for k in self.keywords.keys() or self.array_items): + return self.has_circular_reference(config) + if config.link_to_reused_ref: return True diff --git a/pyproject.toml b/pyproject.toml index 31c5d6aa..efe1b90d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "json-schema-for-humans" -version = "0.47.0" +version = "0.48.0" description = "Generate static HTML documentation from JSON schemas" authors = ["Denis Blanchette+ 2.1. [Optional] Property root > objectB > signature + +
++ +**Title:** Signature + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/signature | + ++ +| One of(Option) | +| ---------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0) | +| [item 1](#objectA_signature_oneOf_i1) | +| [Signature](#objectA_signature_oneOf_i2) | + ++ +#### 2.1.1. Property `root > objectA > signature > oneOf > item 0` + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1. [Optional] Property root > objectA > signature > oneOf > item 0 > signers + +
++ +**Title:** Signature + +| | | +| -------- | ------- | +| **Type** | `array` | + +**Description:** Unique top level property for Multiple Signatures. (multisignature) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i0_signers_items) | - | + +###### 2.1.1.1.1. root > objectA > signature > oneOf > item 0 > signers > signer + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + ++++ ++ 2.1.1.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm + +
++ +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + ++ ++ +###### 2.1.1.1.1.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 2.1.1.1.1.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + ++ +++ ++ 2.1.1.1.1.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId + +
++ +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. + ++++ ++ 2.1.1.1.1.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey + +
++ +**Title:** Public key + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 2.1.1.1.1.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1.1.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 2.1.1.1.1.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 2.1.1.1.1.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 2.1.1.1.1.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.1.1.1.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 2.1.1.1.1.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 2.1.1.1.1.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.1.1.1.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++ +++ + + + + ++ 2.1.1.1.1.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.1.1.1.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++++ ++ 2.1.1.1.1.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath + +
++ +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.1.1.1.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 2.1.1.1.1.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes + +
++ +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.1.1.1.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 2.1.1.1.1.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value + +
++ +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + +++ +#### 2.1.2. Property `root > objectA > signature > oneOf > item 1` + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.2.1. [Optional] Property root > objectA > signature > oneOf > item 1 > chain + +
++ +**Title:** Signature + +| | | +| -------- | ------- | +| **Type** | `array` | + +**Description:** Unique top level property for Signature Chains. (signaturechain) + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------- | ----------- | +| [signer](#objectA_signature_oneOf_i1_chain_items) | - | + +###### 2.1.2.1.1. root > objectA > signature > oneOf > item 1 > chain > signer + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Same definition as** | [Signature](#objectA_signature_oneOf_i0_signers_items) | + +++ +#### 2.1.3. Property `root > objectA > signature > oneOf > Signature` + +**Title:** Signature + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | +| **Defined in** | #/definitions/signer | + +**Description:** Unique top level property for simple signatures. (signaturecore) + ++ +++ ++ 2.1.3.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm + +
++ +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +++ +| One of(Option) | +| ------------------------------------------------------------------------- | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i0) | +| [Algorithm](#objectA_signature_oneOf_i0_signers_items_algorithm_oneOf_i1) | + ++ ++ +###### 2.1.3.1.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of "EdDSA". + +Must be one of: +* "RS256" +* "RS384" +* "RS512" +* "PS256" +* "PS384" +* "PS512" +* "ES256" +* "ES384" +* "ES512" +* "Ed25519" +* "Ed448" +* "HS256" +* "HS384" +* "HS512" + +++ +###### 2.1.3.1.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > algorithm > oneOf > Algorithm` + +**Title:** Algorithm + +| | | +| ---------- | -------- | +| **Type** | `string` | +| **Format** | `uri` | + +**Description:** Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs. + ++ +++ ++ 2.1.3.2. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > keyId + +
++ +**Title:** Key ID + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** Optional. Application specific string identifying the signature key. + ++++ ++ 2.1.3.3. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey + +
++ +**Title:** Public key + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `combining` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | +| **Defined in** | #/definitions/publicKey | + +**Description:** Optional. Public key object. + +++ +| All of(Requirement) | +| ---------------------------------------------------------------------- | +| [item 0](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i0) | +| [item 1](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i1) | +| [item 2](#objectA_signature_oneOf_i0_signers_items_publicKey_allOf_i2) | + ++ ++ +###### 2.1.3.3.1. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.1.1. If (kty = "EC") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.3.3.1.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.1.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EC curve name. + +Must be one of: +* "P-256" +* "P-384" +* "P-521" + ++++ ++ 2.1.3.3.1.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-521", the decoded argument must be 66 bytes. + ++++ ++ 2.1.3.3.1.1.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 0 > then > y + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "P-256", the decoded argument must be 32 bytes. + +++ +###### 2.1.3.3.2. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++++ ++ 2.1.3.3.2.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.2.1.2. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > crv + +
++ +**Title:** Curve name + +| | | +| -------- | ------------------ | +| **Type** | `enum (of string)` | + +**Description:** EdDSA curve name. + +Must be one of: +* "Ed25519" +* "Ed448" + ++++ ++ 2.1.3.3.2.1.3. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 1 > then > x + +
++ +**Title:** Coordinate + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the "crv" parameter. For example, if the value of "crv" is "Ed25519", the decoded argument must be 32 bytes. + +++ +###### 2.1.3.3.3. Property `root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2` + +| | | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Any type: allowed](https://img.shields.io/badge/Any%20type-allowed-green)](# "Additional Properties of any type are allowed.") | + +###### 2.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | -------------------------------------------------------------------------------------------------------- | +| **Type** | `object` | +| **Additional properties** | [![Not allowed](https://img.shields.io/badge/Not%20allowed-red)](# "Additional Properties not allowed.") | + ++ +++ + + + + ++ 2.1.3.3.3.1.1. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > allOf > item 2 > then > kty + +
++ +| | | +| ---------------------- | -------------------------------------------------------------- | +| **Type** | `enum (of string)` | +| **Same definition as** | [kty](#objectA_signature_oneOf_i0_signers_items_publicKey_kty) | + +**Description:** Key type indicator. + ++++ ++ 2.1.3.3.4. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > publicKey > kty + +
++ +| | | +| -------------- | --------------------- | +| **Type** | `enum (of string)` | +| **Defined in** | #/definitions/keyType | + +**Description:** Key type indicator. + +Must be one of: +* "EC" +* "OKP" +* "RSA" + ++++ ++ 2.1.3.4. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath + +
++ +**Title:** Certificate path + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------------------- | ----------- | +| [certificatePath items](#objectA_signature_oneOf_i0_signers_items_certificatePath_items) | - | + +###### 2.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 2.1.3.5. [Optional] Property root > objectA > signature > oneOf > item 0 > signers > Signature > excludes + +
++ +**Title:** Excludes + +| | | +| -------- | ----------------- | +| **Type** | `array of string` | + +**Description:** Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the "excludes" property itself, must also be excluded from the signature process. Since both the "excludes" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [excludes items](#objectA_signature_oneOf_i0_signers_items_excludes_items) | - | + +###### 2.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| -------- | -------- | +| **Type** | `string` | + ++++ ++ 2.1.3.6. [Required] Property root > objectA > signature > oneOf > item 0 > signers > Signature > value + +
++ +**Title:** Signature + +| | | +| -------- | -------- | +| **Type** | `string` | + +**Description:** The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications. + ++", "AbdulRahman Al Hamali "] license = "Apache-2.0"