Skip to content

Commit 07b86aa

Browse files
committed
Adds support for ML-KEM key encapsulation mechanism
Signed-off-by: Prabhu Subramanian <[email protected]>
1 parent 8cf06b2 commit 07b86aa

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

schema/jsf-0.82.schema.json

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"$id": "http://cyclonedx.org/schema/jsf-0.82.schema.json",
44
"type": "object",
55
"title": "JSON Signature Format (JSF) standard",
6-
"$comment" : "JSON Signature Format schema is published under the terms of the Apache License 2.0. JSF was developed by Anders Rundgren ([email protected]) as a part of the OpenKeyStore project. This schema extends the JSF standard to include post-quantum algorithms (ML-DSA) following NIST FIPS 204, excluding 'extensions'.",
6+
"$comment" : "JSON Signature Format schema is published under the terms of the Apache License 2.0. JSF was developed by Anders Rundgren ([email protected]) as a part of the OpenKeyStore project. This schema extends the JSF standard to include post-quantum algorithms (ML-DSA and ML-KEM) following NIST FIPS 204 and FIPS 203 standards, excluding 'extensions'.",
77
"definitions": {
88
"signature": {
99
"type": "object",
@@ -33,7 +33,7 @@
3333
},
3434
{
3535
"title": "Signature",
36-
"description": "Unique top level property for simple signatures. (signaturecore). Supports both classical and post-quantum algorithms including ML-DSA variants.",
36+
"description": "Unique top level property for simple signatures. (signaturecore). Supports both classical and post-quantum algorithms including ML-DSA and ML-KEM variants.",
3737
"$ref": "#/definitions/signer"
3838
}
3939
]
@@ -52,7 +52,7 @@
5252
{
5353
"type": "string",
5454
"title": "Algorithm",
55-
"description": "Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms, plus post-quantum algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of \"EdDSA\". Three post-quantum ML-DSA algorithms have been added following NIST FIPS 204 standardization.",
55+
"description": "Signature or KEM algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms, plus post-quantum algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of \"EdDSA\". Post-quantum ML-DSA signature algorithms and ML-KEM key encapsulation mechanisms have been added following NIST FIPS 204 and FIPS 203 standardization.",
5656
"enum": [
5757
"RS256",
5858
"RS384",
@@ -70,13 +70,16 @@
7070
"HS512",
7171
"ML-DSA-44",
7272
"ML-DSA-65",
73-
"ML-DSA-87"
73+
"ML-DSA-87",
74+
"ML-KEM-512",
75+
"ML-KEM-768",
76+
"ML-KEM-1024"
7477
]
7578
},
7679
{
7780
"type": "string",
7881
"title": "Algorithm",
79-
"description": "Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.",
82+
"description": "Signature or KEM algorithm. Note: If proprietary algorithms are added, they must be expressed as URIs.",
8083
"format": "uri"
8184
}
8285
]
@@ -88,7 +91,7 @@
8891
},
8992
"publicKey": {
9093
"title": "Public key",
91-
"description": "Optional. Public key object. Supports classical key types (EC, RSA, OKP) and post-quantum key types (PQ) for ML-DSA algorithms.",
94+
"description": "Optional. Public key object. Supports classical key types (EC, RSA, OKP) and post-quantum key types (PQ) for ML-DSA and ML-KEM algorithms.",
9295
"$ref": "#/definitions/publicKey"
9396
},
9497
"certificatePath": {
@@ -109,15 +112,15 @@
109112
},
110113
"value": {
111114
"type": "string",
112-
"title": "Signature",
113-
"description": "The signature data encoded as base64url without padding. Encoding standards: (1) Classical algorithms (RS256, ES256, Ed25519, etc.): Follow JWA [RFC7518] specifications for signature serialization. (2) Post-quantum algorithms (ML-DSA-44, ML-DSA-65, ML-DSA-87): Follow NIST FIPS 204 standard for ML-DSA signature encoding."
115+
"title": "Signature or Encapsulated Key",
116+
"description": "The signature data or encapsulated key encoded as base64url without padding. Encoding standards: (1) Classical algorithms (RS256, ES256, Ed25519, etc.): Follow JWA [RFC7518] specifications for signature serialization. (2) Post-quantum signature algorithms (ML-DSA-44, ML-DSA-65, ML-DSA-87): Follow NIST FIPS 204 standard for ML-DSA signature encoding. (3) Post-quantum KEM algorithms (ML-KEM-512, ML-KEM-768, ML-KEM-1024): Follow NIST FIPS 203 standard for ML-KEM encapsulated key encoding."
114117
}
115118
}
116119
},
117120
"keyType": {
118121
"type": "string",
119122
"title": "Key type",
120-
"description": "Key type indicator. 'PQ' indicates post-quantum algorithms following NIST FIPS 204 standards, specifically ML-DSA algorithms.",
123+
"description": "Key type indicator. 'PQ' indicates post-quantum algorithms following NIST FIPS 204 and FIPS 203 standards, including ML-DSA signature algorithms and ML-KEM key encapsulation mechanisms.",
121124
"enum": [
122125
"EC",
123126
"OKP",
@@ -127,7 +130,7 @@
127130
},
128131
"publicKey": {
129132
"title": "Public key",
130-
"description": "Optional. Public key object. Supports classical key types (EC, RSA, OKP) and post-quantum key types (PQ) for ML-DSA algorithms.",
133+
"description": "Optional. Public key object. Supports classical key types (EC, RSA, OKP) and post-quantum key types (PQ) for ML-DSA and ML-KEM algorithms.",
131134
"type": "object",
132135
"required": [
133136
"kty"
@@ -259,14 +262,17 @@
259262
"description": "Post-quantum algorithm identifier.",
260263
"enum": [
261264
"ML-DSA-44",
262-
"ML-DSA-65",
263-
"ML-DSA-87"
265+
"ML-DSA-65",
266+
"ML-DSA-87",
267+
"ML-KEM-512",
268+
"ML-KEM-768",
269+
"ML-KEM-1024"
264270
]
265271
},
266272
"x": {
267273
"type": "string",
268274
"title": "Public Key",
269-
"description": "ML-DSA public key data encoded as base64url without padding, following NIST FIPS 204 specification for the corresponding algorithm variant."
275+
"description": "Post-quantum public key data encoded as base64url without padding. For ML-DSA algorithms, follows NIST FIPS 204 specification. For ML-KEM algorithms, follows NIST FIPS 203 specification for the corresponding algorithm variant."
270276
}
271277
}
272278
}

0 commit comments

Comments
 (0)