Skip to content

Commit 76745f2

Browse files
Initial checkin of algorithm family support.
Signed-off-by: Steve Springett <[email protected]>
1 parent efc7163 commit 76745f2

File tree

2 files changed

+168
-0
lines changed

2 files changed

+168
-0
lines changed

schema/cryptography-defs.json

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
{
2+
"$schema": "http://cyclonedx.org/schema/cryptography-defs.schema.json",
3+
"lastUpdated": "2025-03-22T00:00:00Z",
4+
"algorithms": [
5+
{
6+
"family": "RSASSA-PKCS1",
7+
"standard": [
8+
{"name": "RFC8017", "url": "https://datatracker.ietf.org/doc/html/rfc8017"},
9+
{"name": "IEEE1363", "url": "https://standards.ieee.org/ieee/1363/"}
10+
],
11+
"variant": "RSA-PKCS1-1.5-{digestAlgorithm}-{keyLength}",
12+
"primitive": "signature"
13+
},
14+
{
15+
"family": "RSASSA-PSS",
16+
"standard": [
17+
{"name": "RFC8017", "url": "https://datatracker.ietf.org/doc/html/rfc8017"},
18+
{"name": "IEEE1363A", "url": "https://standards.ieee.org/ieee/1363a/"}
19+
],
20+
"variant": "RSA-PSS-{digestAlgorithm}-{saltLength}-{keyLength}",
21+
"primitive": "signature"
22+
},
23+
{
24+
"family": "RSAES-PKCS1",
25+
"standard": [
26+
{"name": "RFC8017", "url": "https://datatracker.ietf.org/doc/html/rfc8017"}
27+
],
28+
"variant": "RSA-PKCS1-1.5-{keyLength}",
29+
"primitive": "pke"
30+
},
31+
{
32+
"family": "RSAES-OAEP",
33+
"standard": [
34+
{"name": "RFC8017", "url": "https://datatracker.ietf.org/doc/html/rfc8017"}
35+
],
36+
"variant": "RSA-OAEP-{hashAlgorithm}-{maskGenAlgorithm}-{keyLength}",
37+
"primitive": "pke"
38+
},
39+
{
40+
"family": "EdDSA",
41+
"standard": [
42+
{"name": "RFC8032", "url": "https://datatracker.ietf.org/doc/html/rfc8032"}
43+
],
44+
"variant": "Ed{25519|448}{|ph|ctx}",
45+
"primitive": "signature"
46+
},
47+
{
48+
"family": "ECDSA",
49+
"standard": [
50+
{"name": "FIPS186-4", "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf"},
51+
{"name": "X9.62", "url": "https://x9.org/standards/x9-62/"}
52+
],
53+
"variant": "ECDSA-{curve}-{hash}",
54+
"primitive": "signature"
55+
},
56+
{
57+
"family": "ECDH",
58+
"standard": [
59+
{"name": "SP800-56A", "url": "https://csrc.nist.gov/publications/detail/sp/800-56a/rev-3/final"},
60+
{"name": "IEEE1363", "url": "https://standards.ieee.org/ieee/1363/"},
61+
{"name": "X9.63", "url": "https://x9.org/standards/x9-63/"}
62+
],
63+
"variant": "ECDH-{curve}",
64+
"primitive": "key-agree"
65+
},
66+
{
67+
"family": "FFDH",
68+
"standard": [
69+
{"name": "RFC7919", "url": "https://datatracker.ietf.org/doc/html/rfc7919"},
70+
{"name": "SP800-56A", "url": "https://csrc.nist.gov/publications/detail/sp/800-56a/rev-3/final"}
71+
],
72+
"variant": "FFDH-{named_group}",
73+
"primitive": "key-agree"
74+
},
75+
{
76+
"family": "SHA-1",
77+
"standard": [
78+
{"name": "FIPS180-4", "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf"}
79+
],
80+
"variant": "SHA-1",
81+
"primitive": "hash"
82+
},
83+
{
84+
"family": "SHA-2",
85+
"standard": [
86+
{"name": "FIPS180-4", "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf"}
87+
],
88+
"variant": "SHA-{224|256|384|512|512/224|512/256}",
89+
"primitive": "hash"
90+
}
91+
]
92+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"$id": "http://cyclonedx.org/schema/cryptography-defs.schema.json",
4+
"title": "Cryptographic Algorithm Family Definitions",
5+
"description": "Enumerates cryptographic algorithm families and their specific metadata.",
6+
"type": "object",
7+
"additionalProperties": false,
8+
"properties": {
9+
"$schema": {
10+
"type": "string"
11+
},
12+
"lastUpdated": {
13+
"type": "string",
14+
"format": "date-time",
15+
"title": "Last Updated",
16+
"description": "The date and time (timestamp) when the data was last updated."
17+
},
18+
"algorithms": {
19+
"type": "array",
20+
"title": "Algorithm Families",
21+
"description": "An array of cryptographic algorithm family definitions.",
22+
"additionalItems": false,
23+
"items": {
24+
"type": "object",
25+
"title": "Algorithm Family",
26+
"description": "Defines a cryptographic algorithm family and its metadata.",
27+
"additionalProperties": false,
28+
"properties": {
29+
"family": {
30+
"type": "string",
31+
"title": "Algorithm Family",
32+
"description": "The name of the cryptographic algorithm family."
33+
},
34+
"standard": {
35+
"type": "array",
36+
"title": "Standards",
37+
"description": "List of standards defining or relating to the algorithm family.",
38+
"additionalItems": false,
39+
"items": {
40+
"type": "object",
41+
"title": "Standard Reference",
42+
"description": "Reference to a standard, including its name and URL.",
43+
"additionalProperties": false,
44+
"properties": {
45+
"name": {
46+
"type": "string",
47+
"title": "Standard Name",
48+
"description": "The name or identifier of the standard."
49+
},
50+
"url": {
51+
"type": "string",
52+
"format": "iri",
53+
"title": "Standard URL",
54+
"description": "A URL pointing to the standard's official documentation."
55+
}
56+
},
57+
"required": ["name", "url"]
58+
}
59+
},
60+
"variant": {
61+
"type": "string",
62+
"title": "Variant",
63+
"description": "Defines the pattern used to construct the complete algorithm name. Placeholders are defined by {} for algorithm-specific properties."
64+
},
65+
"primitive": {
66+
"type": "string",
67+
"title": "Primitive",
68+
"description": "Type of cryptographic primitive (e.g., signature, encryption, hash)."
69+
}
70+
},
71+
"required": ["family", "variant", "primitive"]
72+
}
73+
}
74+
},
75+
"required": ["lastUpdated", "algorithms"]
76+
}

0 commit comments

Comments
 (0)