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') +
+ ## --ref_with_tabs-- ### ref_with_tabs diff --git a/docs/examples/cases/ref_with_other_elements.json b/docs/examples/cases/ref_with_other_elements.json new file mode 100644 index 00000000..873fbca0 --- /dev/null +++ b/docs/examples/cases/ref_with_other_elements.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "type": "object", + "title": "OF", + "properties": { + "uuid": { + "$ref": "#/$defs/ofString", + "description": "Unique Identifer", + "examples": [ + "29292929292929292929292" + ] + }, + "firstName": { + "$ref": "#/$defs/ofString", + "description": "first name", + "minLength": 10, + "examples": [ + "John" + ] + }, + "lastName": { + "$ref": "#/$defs/ofString", + "description": "last name", + "maxLength": 10, + "examples": [ + "Doe" + ] + } + }, + "$defs": { + "ofString": { + "type": "string", + "minLength": 5, + "maxLength": 250 + } + } +} \ No newline at end of file diff --git a/docs/examples/examples_flat_default/defaults.html b/docs/examples/examples_flat_default/defaults.html index 1227f19d..ad6462de 100644 --- a/docs/examples/examples_flat_default/defaults.html +++ b/docs/examples/examples_flat_default/defaults.html @@ -99,7 +99,15 @@

-Same definition as a + + + + + + + + + diff --git a/docs/examples/examples_flat_default/ref_with_other_elements.html b/docs/examples/examples_flat_default/ref_with_other_elements.html new file mode 100644 index 00000000..a0dbcaef --- /dev/null +++ b/docs/examples/examples_flat_default/ref_with_other_elements.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + OF + +

OF

+ + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ uuid

+
+ +
+ + Type: string
+ + + + + + + +

Unique Identifer

+ + + + + + + + + + +

Must be at least 5 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"29292929292929292929292"
+
+
+
+
+ +
+
+

+ firstName

+
+ +
+ + Type: string
+ + + + + + + +

first name

+ + + + + + + + + + +

Must be at least 10 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"John"
+
+
+
+
+ +
+
+

+ lastName

+
+ +
+ + Type: string
+ + + + + + + +

last name

+ + + + + + + + + + +

Must be at least 5 characters long

Must be at most 10 characters long

+ +
+
Example:
+
"Doe"
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/examples/examples_flat_default/ref_with_tabs.html b/docs/examples/examples_flat_default/ref_with_tabs.html index bbb39518..4f628168 100644 --- a/docs/examples/examples_flat_default/ref_with_tabs.html +++ b/docs/examples/examples_flat_default/ref_with_tabs.html @@ -3822,24 +3822,10196 @@

Same definition as Signature + + + No Additional Properties + + + + + + + +
+
+

+ algorithm Required

+
+ +
+ +
+ + + + + + + + + + + +
+

+ +

+
+

Algorithm

+
+ + + Type: enum (of string)
+ + + + + + + +

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"
+
+ + + + + +
-
+
+

Algorithm

+
+ + + Type: string
+ + + + + + + +

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+ + + + + + + + + + + +
+
+ + + + + + + + + +
+
+

+ keyId

+
+ +
+ + Type: string
+ + + + + + + +

Optional. Application specific string identifying the signature key.

+ + + + + + + + + + + +
+
+ +
+
+

+ publicKey

+
+ +
+ + Type: object
+ + + + + + + +

Optional. Public key object.

+ + + + + + +
+

+ +

+
+

Requirement 1

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "EC" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EC curve name.

+ + + + +
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+ +
+
+

+ y Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 2

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "OKP" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EdDSA curve name.

+ + + + +
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 3

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "RSA" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ n Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA modulus.

+ + + + + + + + + + + +
+
+ +
+
+

+ e Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA exponent.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+ + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + + + +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+ +
+ + +

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ + Type: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+

+ excludes

+
+ +
+ + Type: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+

+ value Required

+
+ +
+ + Type: string
+ + + + + + + +

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+ + + + + + + + + + + +
+
+ + + + + + + + + + + + + +
+
+

+ objectB

+
+ +
+ + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ signature

+
+ +
+ + Type: object
+ + + + + + + + + + + + + +
+

+ +

+
+

Option 1

+
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ signers

+
+ +
+ + Type: array
+ + + + + + + +

Unique top level property for Multiple Signatures. (multisignature)

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ algorithm Required

+
+ +
+ +
+ + + + + + + + + + + +
+

+ +

+
+

Algorithm

+
+ + + Type: enum (of string)
+ + + + + + + +

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"
+
+ + + + + + +
+
+

Algorithm

+
+ + + Type: string
+ + + + + + + +

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+ + + + + + + + + + + +
+
+ + + + + + +
+
+ +
+
+

+ keyId

+
+ +
+ + Type: string
+ + + + + + + +

Optional. Application specific string identifying the signature key.

+ + + + + + + + + + + +
+
+ +
+
+

+ publicKey

+
+ +
+ + Type: object
+ + + + + + + +

Optional. Public key object.

+ + + + + + +
+

+ +

+
+

Requirement 1

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "EC" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EC curve name.

+ + + + +
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+ +
+
+

+ y Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 2

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "OKP" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EdDSA curve name.

+ + + + +
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 3

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "RSA" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ n Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA modulus.

+ + + + + + + + + + + +
+
+ +
+
+

+ e Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA exponent.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+ + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + + + +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+ +
+ + +

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ + Type: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+

+ excludes

+
+ +
+ + Type: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+

+ value Required

+
+ +
+ + Type: string
+ + + + + + + +

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+ + + + + + + + + + + +
+
+
+
+
+
+
+
+

Option 2

+
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ chain

+
+ +
+ + Type: array
+ + + + + + + +

Unique top level property for Signature Chains. (signaturechain)

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + + + + + + + + + +Same definition as Signature +
+
+
+
+
+
+

Signature

+
+ + + Type: object
+ + + + + + + +

Unique top level property for simple signatures. (signaturecore)

+ + + + + + + No Additional Properties + + + + + + + +
+
+

+ algorithm Required

+
+ +
+ +
+ + + + + + + + + + + +
+

+ +

+
+

Algorithm

+
+ + + Type: enum (of string)
+ + + + + + + +

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"
+
+ + + + + + +
+
+

Algorithm

+
+ + + Type: string
+ + + + + + + +

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+ + + + + + + + + + + +
+
+ + + + + + +
+
+ +
+
+

+ keyId

+
+ +
+ + Type: string
+ + + + + + + +

Optional. Application specific string identifying the signature key.

+ + + + + + + + + + + +
+
+ +
+
+

+ publicKey

+
+ +
+ + Type: object
+ + + + + + + +

Optional. Public key object.

+ + + + + + +
+

+ +

+
+

Requirement 1

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "EC" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EC curve name.

+ + + + +
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+ +
+
+

+ y Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 2

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "OKP" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ crv Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

EdDSA curve name.

+ + + + +
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+ +
+
+

+ x Required

+
+ +
+ + Type: string
+ + + + + + + +

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.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+

Requirement 3

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + + + + + + + + + + + + + +
+
+

+ kty

+
+ +
+ + Type: const
+ + + + + + + + + + + +Specific value: "RSA" + + + + + + +
+
+
+ + + +
+ + + Type: object
+ + + + + + + + + + + + No Additional Properties + + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + +Same definition as kty +
+
+ +
+
+

+ n Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA modulus.

+ + + + + + + + + + + +
+
+ +
+
+

+ e Required

+
+ +
+ + Type: string
+ + + + + + + +

RSA exponent.

+ + + + + + + + + + + +
+
+
+ + + + + + +
+
+ + + + + + + +
+
+

+ kty Required

+
+ +
+ + Type: enum (of string)
+ + + + + + + +

Key type indicator.

+ + + + + + +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+ +
+ + +

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + +
+ + Type: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + + + + + + +
-
-

@@ -3851,7 +14023,129 @@

d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z" /> - objectB

Type: object
+ objectA + + + + signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + excludesType: array of string
+ + + + + + + +

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.

+ + + + + + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
@@ -3870,11 +14164,15 @@

+

+
+ +
-
+

- signature

+ value Required
@@ -3886,26 +14184,78 @@

d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z" /> - objectB + objectA - signature

Type: object
+ signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + value
Type: string
+ + +

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+ + + + + + + +
+ + + + + + -Same definition as signature + diff --git a/docs/examples/examples_js_default/defaults.html b/docs/examples/examples_js_default/defaults.html index ee1abe28..e459b09b 100644 --- a/docs/examples/examples_js_default/defaults.html +++ b/docs/examples/examples_js_default/defaults.html @@ -85,7 +85,15 @@

bType: object Default: "Default from b"

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 @@ + + + + + + + + + + + + + + + + OF + +
+ + +
+ +

OF

Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Unique Identifer

+
+ + + + + +

Must be at least 5 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"29292929292929292929292"
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

first name

+
+ + + + + +

Must be at least 10 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"John"
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

last name

+
+ + + + + +

Must be at least 5 characters long

Must be at most 10 characters long

+ +
+
Example:
+
"Doe"
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/examples/examples_js_default/ref_with_tabs.html b/docs/examples/examples_js_default/ref_with_tabs.html index fce6a916..3ff957e1 100644 --- a/docs/examples/examples_js_default/ref_with_tabs.html +++ b/docs/examples/examples_js_default/ref_with_tabs.html @@ -3544,7 +3544,247 @@

Signature

Signature

Type: object

Unique top level property for simple signatures. (signaturecore)

-
Same definition as Signature + + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + +
@@ -3552,26 +3792,9287 @@

-

+
+
+
+ +
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: object
+ + +

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: array
+

Unique top level property for Multiple Signatures. (multisignature)

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: array
+

Unique top level property for Signature Chains. (signaturechain)

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as Signature +
+
+
+
+
+
+
+ + +

Signature

Type: object
+

Unique top level property for simple signatures. (signaturecore)

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + +
-
-
+
-
+

- +

-
+
Type: object
+ objectA + + + + signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + excludes

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
@@ -3589,18 +13201,24 @@

-
+
+

+
+
+
+
+
-
+

- +

-
+

Signature

Type: object
-Same definition as signature + signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + value

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+
+ + + + + +
diff --git a/docs/examples/examples_js_offline_default/defaults.html b/docs/examples/examples_js_offline_default/defaults.html index fc062c1c..81077699 100644 --- a/docs/examples/examples_js_offline_default/defaults.html +++ b/docs/examples/examples_js_offline_default/defaults.html @@ -85,7 +85,15 @@

b

Type: object Default: "Default from b"

A common description

-
Same definition as a + + + + + + + + +
diff --git a/docs/examples/examples_js_offline_default/ref_with_other_elements.html b/docs/examples/examples_js_offline_default/ref_with_other_elements.html new file mode 100644 index 00000000..509fe7a7 --- /dev/null +++ b/docs/examples/examples_js_offline_default/ref_with_other_elements.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + OF + +
+ + +
+ +

OF

Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Unique Identifer

+
+ + + + + +

Must be at least 5 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"29292929292929292929292"
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

first name

+
+ + + + + +

Must be at least 10 characters long

Must be at most 250 characters long

+ +
+
Example:
+
"John"
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

last name

+
+ + + + + +

Must be at least 5 characters long

Must be at most 10 characters long

+ +
+
Example:
+
"Doe"
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/examples/examples_js_offline_default/ref_with_tabs.html b/docs/examples/examples_js_offline_default/ref_with_tabs.html index 153e4268..90a4a5cf 100644 --- a/docs/examples/examples_js_offline_default/ref_with_tabs.html +++ b/docs/examples/examples_js_offline_default/ref_with_tabs.html @@ -3544,7 +3544,247 @@

Signature

Signature

Type: object

Unique top level property for simple signatures. (signaturecore)

-
Same definition as Signature + + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + +
@@ -3552,26 +3792,9287 @@

-

+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: object
+ + +

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: array
+

Unique top level property for Multiple Signatures. (multisignature)

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +

Signature

Type: array
+

Unique top level property for Signature Chains. (signaturechain)

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as Signature +
+
+
+
+
+
+
+ + +

Signature

Type: object
+

Unique top level property for simple signatures. (signaturecore)

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + +

Algorithm

Type: enum (of string)
+

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"
+
+ + + + + + +
+ + +

Algorithm

Type: stringFormat: uri
+

Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.

+
+ + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Key ID

Type: string
+

Optional. Application specific string identifying the signature key.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Public key

Type: object
+

Optional. Public key object.

+
+ +

+ +

+
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "EC" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EC curve name.

+
+

Must be one of:

+
  • "P-256"
  • "P-384"
  • "P-521"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "OKP" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Curve name

Type: enum (of string)
+

EdDSA curve name.

+
+

Must be one of:

+
  • "Ed25519"
  • "Ed448"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Coordinate

Type: string
+

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.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + Type: 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.

+ + +
+ +
+ + + Type: object
+ + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: const
+Specific value: "RSA" + + + + + + +
+
+
+
+
+ + + +
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
Same definition as kty +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Modulus

Type: string
+

RSA modulus.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Exponent

Type: string
+

RSA exponent.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Key type indicator.

+
+ +
+

Must be one of:

+
  • "EC"
  • "OKP"
  • "RSA"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +

Certificate path

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + +
-
-
+
-
+

- +

-
+
Type: object
+ objectA + + + + signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + excludes

Excludes

Type: array of string
+

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.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
@@ -3589,18 +13201,24 @@

-
+
+

+
+
+
+
+
-
+

- +

-
+

Signature

Type: object
-Same definition as signature + signature + + + + oneOf + + + + item 0 + + + + signers + + + + Signature + + + + value

Signature

Type: string
+

The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications.

+
+ + + + + + +
+
+
+
+
+ + + + + +
diff --git a/docs/examples/examples_md_default/defaults.md b/docs/examples/examples_md_default/defaults.md index eb7b2988..7b64666b 100644 --- a/docs/examples/examples_md_default/defaults.md +++ b/docs/examples/examples_md_default/defaults.md @@ -12,7 +12,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. Property `root > a` @@ -34,7 +34,7 @@ | **Required** | No | | **Additional properties** | [[Any type: allowed]](# "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_default/ref_with_other_elements.md b/docs/examples/examples_md_default/ref_with_other_elements.md new file mode 100644 index 00000000..75bd0e11 --- /dev/null +++ b/docs/examples/examples_md_default/ref_with_other_elements.md @@ -0,0 +1,103 @@ +# OF + +- [1. Property `OF > uuid`](#uuid) +- [2. Property `OF > firstName`](#firstName) +- [3. Property `OF > lastName`](#lastName) + +**Title:** OF + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "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. Property `OF > uuid` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** Unique Identifer + +**Example:** + +```json +"29292929292929292929292" +``` + +**Example:** + +```json +"29292929292929292929292" +``` + +| Restrictions | | +| -------------- | --- | +| **Min length** | 5 | +| **Max length** | 250 | + +## 2. Property `OF > firstName` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** first name + +**Example:** + +```json +"John" +``` + +**Example:** + +```json +"John" +``` + +| Restrictions | | +| -------------- | --- | +| **Min length** | 10 | +| **Max length** | 250 | + +## 3. Property `OF > lastName` + +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **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_default/ref_with_tabs.md b/docs/examples/examples_md_default/ref_with_tabs.md index d1dd0fb6..204dfacb 100644 --- a/docs/examples/examples_md_default/ref_with_tabs.md +++ b/docs/examples/examples_md_default/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. Property `root > objectB`](#objectB) - [2.1. 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) | | | | ------------------------- | ------------------------------------------------------------------------- | @@ -541,11 +629,107 @@ Must be one of: | **Type** | `object` | | **Required** | No | | **Additional properties** | [[Not allowed]](# "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. 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** | `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) | + +###### 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. + +##### 1.1.3.2. 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. + +##### 1.1.3.3. 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. + +| 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` | | | | ------------------------- | ------------------------------------------------------------------------- | @@ -553,20 +737,1126 @@ Must be one of: | **Required** | No | | **Additional properties** | [[Any type: allowed]](# "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 | +###### 1.1.3.3.1.1. If (kty = "EC") -### 2.1. Property `root > objectB > signature` +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "Additional Properties not allowed.") | -**Title:** Signature +| 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)` | +| **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. 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. 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. 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.") | + +###### 1.1.3.3.2.1. If (kty = "OKP") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "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)` | +| **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. 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. 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.") | -| **Same definition as** | [signature](#objectA_signature) | + +###### 1.1.3.3.3.1. If (kty = "RSA") + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Not allowed]](# "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)` | +| **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. 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. 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. 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" + +##### 1.1.3.4. 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) | - | + +###### 1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 1.1.3.5. 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) | - | + +###### 1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 1.1.3.6. 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. Property `root > objectB` + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "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. 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.") | + +| 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` | +| **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 | + +| 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` | +| **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. 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. 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. + +| 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` | +| **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.") | + +| 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)` | +| **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. 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. 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. 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.") | + +| 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)` | +| **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. 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. 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.") | + +| 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)` | +| **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. 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. 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. 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. 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. 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. 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.") | + +| 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` | +| **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) + +| 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` | +| **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. 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. 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. + +| 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` | +| **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.") | + +| 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)` | +| **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. 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. 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. 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.") | + +| 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)` | +| **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. 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. 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.") | + +| 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)` | +| **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. 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. 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. 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. 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. 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. 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. ---------------------------------------------------------------------------------------------------------------------------- Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) diff --git a/docs/examples/examples_md_nested_default/defaults.md b/docs/examples/examples_md_nested_default/defaults.md index 2c9df505..9b7808db 100644 --- a/docs/examples/examples_md_nested_default/defaults.md +++ b/docs/examples/examples_md_nested_default/defaults.md @@ -42,7 +42,7 @@ | **Required** | No | | **Additional properties** | [[Any type: allowed]](# "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_default/ref_with_other_elements.md b/docs/examples/examples_md_nested_default/ref_with_other_elements.md new file mode 100644 index 00000000..579003ce --- /dev/null +++ b/docs/examples/examples_md_nested_default/ref_with_other_elements.md @@ -0,0 +1,103 @@ +# OF + +- [1. [Optional] Property OF > uuid](#uuid) +- [2. [Optional] Property OF > firstName](#firstName) +- [3. [Optional] Property OF > lastName](#lastName) + +**Title:** OF + +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "Additional Properties of any type are allowed.") | + +
+ + 1. [Optional] Property OF > uuid + + +
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** Unique Identifer + +| Restrictions | | +| -------------- | --- | +| **Min length** | 5 | +| **Max length** | 250 | + +**Example:** + +```json +"29292929292929292929292" +``` + +
+
+ +
+ + 2. [Optional] Property OF > firstName + + +
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** first name + +| Restrictions | | +| -------------- | --- | +| **Min length** | 10 | +| **Max length** | 250 | + +**Example:** + +```json +"John" +``` + +
+
+ +
+ + 3. [Optional] Property OF > lastName + + +
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Required** | No | +| **Defined in** | #/$defs/ofString | + +**Description:** last name + +| Restrictions | | +| -------------- | -- | +| **Min length** | 5 | +| **Max length** | 10 | + +**Example:** + +```json +"Doe" +``` + +
+
+ +---------------------------------------------------------------------------------------------------------------------------- +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_default/ref_with_tabs.md b/docs/examples/examples_md_nested_default/ref_with_tabs.md index 736429a6..23fd4cda 100644 --- a/docs/examples/examples_md_nested_default/ref_with_tabs.md +++ b/docs/examples/examples_md_nested_default/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) | | | | ------------------------- | ------------------------------------------------------------------------- | @@ -688,10 +776,74 @@ Must be one of: | **Type** | `object` | | **Required** | No | | **Additional properties** | [[Not allowed]](# "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) +
+ + 1.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) | + +
+ +###### 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. +
@@ -699,37 +851,1581 @@ Must be one of:
+
+ + 1.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. [Optional] Property root > objectB + 1.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) | + +
+ +###### 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" + +
+
+ +
+
+ +
+ + 1.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) | - | + +###### 1.1.3.4.1. root > objectA > signature > oneOf > item 0 > signers > Signature > certificatePath > certificatePath items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +
+
+ +
+ + 1.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) | - | + +###### 1.1.3.5.1. root > objectA > signature > oneOf > item 0 > signers > Signature > excludes > excludes items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +
+
+ +
+ + 1.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. + +
+
+ + + + + + + + + + + +
+ + 2. [Optional] Property root > objectB + + +
+ +| | | +| ------------------------- | ------------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | [[Any type: allowed]](# "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. + +
+
+ +
+ +
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.") | + +
+ + 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" +``` + +
+
+ +
+ + 3. [Optional] Property OF > lastName + + +
+ +| | | +| -------------- | ---------------- | +| **Type** | `string` | +| **Defined in** | #/$defs/ofString | + +**Description:** last name + +| Restrictions | | +| -------------- | -- | +| **Min length** | 5 | +| **Max length** | 10 | + +**Example:** + +```json +"Doe" +``` + +
+
+ +---------------------------------------------------------------------------------------------------------------------------- +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) +
+ + 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) | + +
+ +###### 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. +
@@ -662,35 +811,1494 @@ Must be one of:
+
+ + 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.3.1.2. [Required] 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. [Required] 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. [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. + +
+
+ +
+ + + + +
+ + + + +
+ + 2. [Optional] 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.") | + +
+ + 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.3.1.2. [Required] 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. [Required] 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. [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.3.1.2. [Required] 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. [Required] 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. [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. + +
+
+ +
+ +
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 ", "AbdulRahman Al Hamali "] license = "Apache-2.0"