From 1be8a44852cf48d26eeab3b61f44c5e3838c1d71 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 28 Apr 2026 17:44:57 +0100 Subject: [PATCH 1/5] Adding JSS examples --- 103705/examples/example_jss/csp_results.json | 19 +++++++++++++++++++ .../example_jss/request_jss_private_key.txt | 4 ++++ .../example_jss/request_jss_public_key.txt | 4 ++++ testing/json/ts_103705_ex_jss_json.json | 11 +++++++++++ 4 files changed, 38 insertions(+) create mode 100644 103705/examples/example_jss/csp_results.json create mode 100644 103705/examples/example_jss/request_jss_private_key.txt create mode 100644 103705/examples/example_jss/request_jss_public_key.txt create mode 100644 testing/json/ts_103705_ex_jss_json.json diff --git a/103705/examples/example_jss/csp_results.json b/103705/examples/example_jss/csp_results.json new file mode 100644 index 0000000..f277444 --- /dev/null +++ b/103705/examples/example_jss/csp_results.json @@ -0,0 +1,19 @@ +{ + "recordSetDescription": { + "schemaId": "etsi.org/ts_103_705/1.1.1", + "resultSetId": "788e190d-fb2e-416e-9798-12a66ebe0a1a", + "queryReference": "LDID_1", + "created": "2023-06-08T09:31:56.000000Z", + "recordTypes": { + "Subscription": "example.com_csp-exampleservices_1.2.3#$defs/definedRecords" + } + }, + "signatures": [ + { + "hash_algorithm": "sha-256", + "algorithm": "Ed448", + "public_key": "MEMwBQYDK2VxAzoAPTyXPyIqU1VWCuEml1VjvnBYv2I+AvNteIGsTtVc2pT7erIVLDdJRq18tDhZifqW0WGYSy0yVYQA", + "value": "VeLSybGWQ62XWOhhWTVN2p8lYyqpIyO3Lb+mAAXQmbx7CMTa5NNxpxTKqmegWVeCetFZ8zKNI68AkA1hdS2XBlAtqFKCOq6l8rGsRSa3uOHnIXZMD/wmZdsWMnrRzSaJYfeBKpZUwXgqQ627j2cnWDQA" + } + ] +} \ No newline at end of file diff --git a/103705/examples/example_jss/request_jss_private_key.txt b/103705/examples/example_jss/request_jss_private_key.txt new file mode 100644 index 0000000..77c0a76 --- /dev/null +++ b/103705/examples/example_jss/request_jss_private_key.txt @@ -0,0 +1,4 @@ +-----BEGIN PRIVATE KEY----- +MEcCAQAwBQYDK2VxBDsEOSorOHhQFkvXmylksjqu3I8oIogfarelL6o/t6n9SKy5 +grmgVExkD8fOlx++Mxe2fcyaHcEeSERuCA== +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/103705/examples/example_jss/request_jss_public_key.txt b/103705/examples/example_jss/request_jss_public_key.txt new file mode 100644 index 0000000..fc58e7a --- /dev/null +++ b/103705/examples/example_jss/request_jss_public_key.txt @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MEMwBQYDK2VxAzoAPTyXPyIqU1VWCuEml1VjvnBYv2I+AvNteIGsTtVc2pT7erIV +LDdJRq18tDhZifqW0WGYSy0yVYQA +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/testing/json/ts_103705_ex_jss_json.json b/testing/json/ts_103705_ex_jss_json.json new file mode 100644 index 0000000..c9ad621 --- /dev/null +++ b/testing/json/ts_103705_ex_jss_json.json @@ -0,0 +1,11 @@ +{ + "coreSchema": "103705/schema/response.schema.json", + "supportingSchemas": [ + "103705/schema/", + "103280/TS_103_280.schema.json", + "103705/examples/example1/csp_records.schema.json" + ], + "instanceDocs": [ + "103705/examples/example1/csp_results.json" + ] +} -- GitLab From efc34c2033aa572524774fcdba9a5a89df806242 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 28 Apr 2026 17:52:41 +0100 Subject: [PATCH 2/5] Adding JSS examples --- testing/json/ts_103705_ex_jss_json.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/json/ts_103705_ex_jss_json.json b/testing/json/ts_103705_ex_jss_json.json index c9ad621..8475c55 100644 --- a/testing/json/ts_103705_ex_jss_json.json +++ b/testing/json/ts_103705_ex_jss_json.json @@ -6,6 +6,6 @@ "103705/examples/example1/csp_records.schema.json" ], "instanceDocs": [ - "103705/examples/example1/csp_results.json" + "103705/examples/example_jss/csp_results.json" ] } -- GitLab From 467a01a01c749f3687511d44f49b47b2d4c001b0 Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 29 Apr 2026 06:49:42 +0100 Subject: [PATCH 3/5] Updating example --- 103705/examples/example_jss/csp_results.json | 62 +++++++++++++++++--- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/103705/examples/example_jss/csp_results.json b/103705/examples/example_jss/csp_results.json index f277444..468aef6 100644 --- a/103705/examples/example_jss/csp_results.json +++ b/103705/examples/example_jss/csp_results.json @@ -1,19 +1,63 @@ { "recordSetDescription": { - "schemaId": "etsi.org/ts_103_705/1.1.1", - "resultSetId": "788e190d-fb2e-416e-9798-12a66ebe0a1a", - "queryReference": "LDID_1", - "created": "2023-06-08T09:31:56.000000Z", - "recordTypes": { - "Subscription": "example.com_csp-exampleservices_1.2.3#$defs/definedRecords" - } + "etsiSchemaId": "urn:etsi:li:103705:response-schema-id:v1.5.1", + "etsiSpecificationVersion": "0.3.0", + "cspName": "csp.example.com", + "cspSchemaId": "csp.example_1", + "cspSchemaVersion": "1.0.0", + "resultSetId": "9a25db0c-d0f3-4ae5-b618-bd1a9a0056c2", + "requestReference": "LDID", + "created": "2024-04-25T09:31:56.000000Z" }, + "recordSet": [ + { + "id": "3da91ade-f526-4e55-b5da-0c8178f25c24", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/CallRecord", + "timeBegin": "2024-04-20T10:04:00.000000Z", + "timeEnd": "2024-04-20T10:05:00.000000Z", + "endReason": 16, + "parties": [ + { + "identity": { + "phoneNumber": "491713920067" + }, + "role": "originating", + "initialAccessTechnology": "5G" + }, + { + "identity": { + "phoneNumber": "441632960123" + }, + "role": "terminating" + } + ] + }, + { + "id": "8be3fc6b-a2dd-4104-9af1-d6b1f70081a0", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/MessagingRecord", + "eventTime": "2024-04-18T10:04:00.000000Z", + "parties": [ + { + "identity": { + "phoneNumber": "441632960123" + }, + "role": "sender" + }, + { + "identity": { + "phoneNumber": "491713920067" + }, + "role": "receiver" + } + ] + } + ], "signatures": [ { "hash_algorithm": "sha-256", "algorithm": "Ed448", "public_key": "MEMwBQYDK2VxAzoAPTyXPyIqU1VWCuEml1VjvnBYv2I+AvNteIGsTtVc2pT7erIVLDdJRq18tDhZifqW0WGYSy0yVYQA", - "value": "VeLSybGWQ62XWOhhWTVN2p8lYyqpIyO3Lb+mAAXQmbx7CMTa5NNxpxTKqmegWVeCetFZ8zKNI68AkA1hdS2XBlAtqFKCOq6l8rGsRSa3uOHnIXZMD/wmZdsWMnrRzSaJYfeBKpZUwXgqQ627j2cnWDQA" + "value": "aTl8uy/NuKN9Nr6Y/snPhAWyo58OGW/Mwh7BVjp0sdCgRpZXfBYZswYLNopfXxEwhhOwqFJrWSiA+hXHTBlBb2MWwC5ir1TcloYsfP2SDZFJY24ESSysZejkLFVZ8fn7FDMeX2Zsn4wp2z6Kfcw3nBMA" } ] -} \ No newline at end of file +} -- GitLab From 1211e4fc38d871fb9132f395162030fa13f880d9 Mon Sep 17 00:00:00 2001 From: Herbert Slaghekke Date: Wed, 29 Apr 2026 12:05:48 +0000 Subject: [PATCH 4/5] Added JSS signatures --- 103705/schema/response.schema.json | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/103705/schema/response.schema.json b/103705/schema/response.schema.json index 2a7c484..b3e394f 100644 --- a/103705/schema/response.schema.json +++ b/103705/schema/response.schema.json @@ -13,8 +13,49 @@ }, "Signature": { "$ref": "#/$defs/Signature" + }, + "Signatures": { + "$ref": "#/$defs/Signatures" } }, + "oneOf": [ + { + "required": [ + "Signatures" + ], + "not": { + "required": [ + "Signature" + ] + } + }, + { + "required": [ + "Signature" + ], + "not": { + "required": [ + "Signatures" + ] + } + }, + { + "not": { + "anyOf": [ + { + "required": [ + "Signatures" + ] + }, + { + "required": [ + "Signature" + ] + } + ] + } + } + ], "required": [ "recordSetDescription", "recordSet" @@ -128,6 +169,32 @@ "protected", "signature" ] + }, + "Signatures": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string" + }, + "algorithm": { + "type": "string" + }, + "public_key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "hash_algorithm", + "algorithm", + "value" + ] + } } } } -- GitLab From 761d1e8fc08af1e41f15d7ec5782f4bf7f5a405e Mon Sep 17 00:00:00 2001 From: Herbert Slaghekke Date: Thu, 30 Apr 2026 08:45:01 +0000 Subject: [PATCH 5/5] OneOff construction removed --- 103705/schema/response.schema.json | 38 ------------------------------ 1 file changed, 38 deletions(-) diff --git a/103705/schema/response.schema.json b/103705/schema/response.schema.json index b3e394f..b81ab98 100644 --- a/103705/schema/response.schema.json +++ b/103705/schema/response.schema.json @@ -18,44 +18,6 @@ "$ref": "#/$defs/Signatures" } }, - "oneOf": [ - { - "required": [ - "Signatures" - ], - "not": { - "required": [ - "Signature" - ] - } - }, - { - "required": [ - "Signature" - ], - "not": { - "required": [ - "Signatures" - ] - } - }, - { - "not": { - "anyOf": [ - { - "required": [ - "Signatures" - ] - }, - { - "required": [ - "Signature" - ] - } - ] - } - } - ], "required": [ "recordSetDescription", "recordSet" -- GitLab