JSONschema and python improvements

* JSON Schema manually updated to be more semantically valid.
* Python script improved to be more verbose with exceptions
* Templating file improved by adding an additional macro.

Signed-off-by: Archana <archana.madhavan@silabs.com>
Signed-off-by: Asfandyar Orakzai <asfandyar.orakzai@silabs.com>
This commit is contained in:
Archana 2022-02-27 05:38:55 +05:30 committed by Asfandyar Orakzai
parent e17071a5ee
commit fdbbcba3eb
8 changed files with 176 additions and 185 deletions

View file

@ -2,25 +2,31 @@
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"prefix": {
"_comment": {
"type": "string"
},
"prefix": {
"type": "string",
"pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
},
"type": {
"type": "string"
"type": "string",
"const": ["opaque"]
},
"location": {
"type": "string"
"type": ["integer","string"],
"pattern": "^(0x|0X)?[a-fA-F0-9]+$"
},
"dependency": {
"mbedtls/h_depend_on": {
"type": "string"
},
"headers": {
"type": "array",
"items": [
{
"items": {
"type": "string"
}
]
},
"minItems": 1,
"uniqueItems": true
},
"capabilities": {
"type": "array",
@ -31,71 +37,33 @@
"_comment": {
"type": "string"
},
"depend_on": {
"mbedtls/c_depend_on": {
"type": "string"
},
"entry_points": {
"type": "array",
"items": [
{
"type": "string"
"items": {
"type": "string",
"enum": ["import_key", "export_key", "export_public_key",
"copy_key", "get_builtin_key"]
},
{
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"_comment",
"depend_on",
"entry_points"
]
},
{
"type": "object",
"properties": {
"_comment": {
"type": "string"
},
"depend_on": {
"type": "string"
},
"entry_points": {
"type": "array",
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
"minItems": 1,
"uniqueItems": true
},
"name": {
"type": "object",
"properties": {
"copy_key": {
"type": "string"
},
"get_builtin_key": {
"type": "string"
"patternProperties": {
"^[A-Z_a-z][0-9A-Z_a-z]*$": {
"type": "string",
"pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
}
},
"required": [
"copy_key",
"get_builtin_key"
]
"minItems": 1,
"uniqueItems": true
}
},
"required": [
"_comment",
"depend_on",
"entry_points",
"name"
"entry_points"
]
}
]
@ -105,8 +73,6 @@
"prefix",
"type",
"location",
"dependency",
"headers",
"capabilities"
]
}

View file

@ -2,22 +2,27 @@
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"prefix": {
"_comment": {
"type": "string"
},
"prefix": {
"type": "string",
"pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
},
"type": {
"type": "string"
"type": "string",
"const": ["transparent"]
},
"dependency": {
"mbedtls/h_depend_on": {
"type": "string"
},
"headers": {
"type": "array",
"items": [
{
"items": {
"type": "string"
}
]
},
"minItems": 1,
"uniqueItems": true
},
"capabilities": {
"type": "array",
@ -28,79 +33,46 @@
"_comment": {
"type": "string"
},
"depend_on": {
"mbedtls/c_depend_on": {
"type": "string"
},
"entry_points": {
"type": "array",
"items": [
{
"type": "string"
"items": {
"type": "string",
"enum": ["import_key", "export_key", "export_public_key",
"copy_key", "get_builtin_key"]
},
{
"type": "string"
}
]
},
"fallback": {
"type": "boolean"
}
},
"required": [
"_comment",
"depend_on",
"entry_points",
"fallback"
]
},
{
"type": "object",
"properties": {
"_comment": {
"type": "string"
},
"depend_on": {
"type": "string"
},
"entry_points": {
"type": "array",
"items": [
{
"type": "string"
}
]
},
"fallback": {
"type": "boolean"
"minItems": 1,
"uniqueItems": true
},
"name": {
"type": "object",
"properties": {
"export_public_key": {
"type": "string"
"patternProperties": {
"^[A-Z_a-z][0-9A-Z_a-z]*$": {
"type": "string",
"pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$"
}
},
"required": [
"export_public_key"
]
"minItems": 1,
"uniqueItems": true
},
"fallback": {
"type": "boolean",
"default": "false"
}
},
"required": [
"_comment",
"depend_on",
"entry_points",
"fallback",
"name"
"entry_points"
]
}
]
],
"default": []
}
},
"required": [
"prefix",
"type",
"dependency",
"headers",
"capabilities"
]
}

View file

@ -2,18 +2,18 @@
"prefix": "mbedtls_test",
"type": "opaque",
"location": "0x7fffff",
"dependency": "defined(PSA_CRYPTO_DRIVER_TEST)",
"mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"headers": ["test/drivers/test_driver.h"],
"capabilities": [
{
"_comment": "The mbedTLS opaque driver supports import key/export key/export_public key",
"depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"_comment": "The Mbed TLS opaque driver supports import key/export key/export_public key",
"mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"entry_points": ["import_key", "export_key", "export_public_key"]
},
{
"_comment": "The mbedTLS opaque driver supports copy key/ get builtin key",
"depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"entry_points": ["copy_key","get_builtin_key"],
"_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key",
"mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"entry_points": ["copy_key", "get_builtin_key"],
"name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"}
}
]

View file

@ -1,18 +1,18 @@
{
"prefix": "mbedtls_test",
"type": "transparent",
"dependency": "defined(PSA_CRYPTO_DRIVER_TEST)",
"mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"headers": ["test/drivers/test_driver.h"],
"capabilities": [
{
"_comment": "The mbedTLS transparent driver supports import key/export key",
"depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"_comment": "The Mbed TLS transparent driver supports import key/export key",
"mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"entry_points": ["import_key", "export_key"],
"fallback": true
},
{
"_comment": "The mbedTLS transparent driver supports export_public key",
"depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"_comment": "The Mbed TLS transparent driver supports export_public key",
"mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)",
"entry_points": ["export_public_key"],
"fallback": true,
"name": {"export_public_key":"mbedtls_test_transparent_export_public_key"}