From 0acd4437ac6689fc37b95c19de083996fa1be965 Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Wed, 20 Mar 2024 15:40:58 -0400 Subject: [PATCH 1/6] Add .editorconfig. --- .editorconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d8da069 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 2 From a4824652f809b0bba6d3f7d9067891fe4db577ba Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Wed, 20 Mar 2024 15:41:50 -0400 Subject: [PATCH 2/6] Fix whitespace in GrotoNetworking.json. --- implementations/GrottoNetworking.json | 70 +++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/implementations/GrottoNetworking.json b/implementations/GrottoNetworking.json index ef1b6b6..38dd86d 100644 --- a/implementations/GrottoNetworking.json +++ b/implementations/GrottoNetworking.json @@ -1,37 +1,37 @@ { - "name": "Grotto Networking", - "implementation": "Grotto Selective Disclosure Libraries", - "issuers": [{ - "id": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP#zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP", - "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/issue", - "tags": ["ecdsa-sd-2023"], - "supportedEcdsaKeyTypes": ["P-256"] - }, - { - "id": "did:key:zUC7DerdEmfZ8f4pFajXgGwJoMkV1ofMTmEG5UoNvnWiPiLuGKNeqgRpLH2TV4Xe5mJ2cXV76gRN7LFQwapF1VFu6x2yrr5ci1mXqC1WNUrnHnLgvfZfMH7h6xP6qsf9EKRQrPQ#zUC7DerdEmfZ8f4pFajXgGwJoMkV1ofMTmEG5UoNvnWiPiLuGKNeqgRpLH2TV4Xe5mJ2cXV76gRN7LFQwapF1VFu6x2yrr5ci1mXqC1WNUrnHnLgvfZfMH7h6xP6qsf9EKRQrPQ", - "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/issue", - "tags": ["bbs-2023"] - }], - "verifiers": [{ - "id": "https://vcverifier.grotto-networking.com/test", - "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/verify", - "tags": ["ecdsa-sd-2023"], - "supportedEcdsaKeyTypes": ["P-256"] - }, - { - "id": "https://vcverifier.grotto-networking.com/test", - "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/verify", - "tags": ["bbs-2023"] - } - ], - "vcHolders": [{ - "id": "https://vcholder.grotto-networking.com/test", - "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/derive", - "tags": ["vcHolder"] - }, - { - "id": "https://vcholder.grotto-networking.com/test", - "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/derive", - "tags": ["vcHolder", "bbs-2023"] - }] + "name": "Grotto Networking", + "implementation": "Grotto Selective Disclosure Libraries", + "issuers": [{ + "id": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP#zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP", + "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/issue", + "tags": ["ecdsa-sd-2023"], + "supportedEcdsaKeyTypes": ["P-256"] + }, + { + "id": "did:key:zUC7DerdEmfZ8f4pFajXgGwJoMkV1ofMTmEG5UoNvnWiPiLuGKNeqgRpLH2TV4Xe5mJ2cXV76gRN7LFQwapF1VFu6x2yrr5ci1mXqC1WNUrnHnLgvfZfMH7h6xP6qsf9EKRQrPQ#zUC7DerdEmfZ8f4pFajXgGwJoMkV1ofMTmEG5UoNvnWiPiLuGKNeqgRpLH2TV4Xe5mJ2cXV76gRN7LFQwapF1VFu6x2yrr5ci1mXqC1WNUrnHnLgvfZfMH7h6xP6qsf9EKRQrPQ", + "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/issue", + "tags": ["bbs-2023"] + }], + "verifiers": [{ + "id": "https://vcverifier.grotto-networking.com/test", + "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/verify", + "tags": ["ecdsa-sd-2023"], + "supportedEcdsaKeyTypes": ["P-256"] + }, + { + "id": "https://vcverifier.grotto-networking.com/test", + "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/verify", + "tags": ["bbs-2023"] } + ], + "vcHolders": [{ + "id": "https://vcholder.grotto-networking.com/test", + "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/derive", + "tags": ["vcHolder"] + }, + { + "id": "https://vcholder.grotto-networking.com/test", + "endpoint": "https://ecdsa-sd.grotto-networking.com/BBS/credentials/derive", + "tags": ["vcHolder", "bbs-2023"] + }] +} From 074a607ae0c1676606324bcc718e3445244c3847 Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Wed, 20 Mar 2024 15:59:48 -0400 Subject: [PATCH 3/6] Add more metadata to implementations. --- implementations/ApiCatalog.json | 8 ++++++-- implementations/DanubeTech.json | 8 ++++++-- implementations/DigitalBazaar.json | 8 ++++++-- implementations/EWF.json | 8 ++++++-- implementations/GrottoNetworking.json | 7 +++++-- implementations/LearnCard.json | 5 ++++- implementations/SpruceID.json | 5 ++++- implementations/Trinsic.json | 5 ++++- implementations/bovine.json | 6 +++++- 9 files changed, 46 insertions(+), 14 deletions(-) diff --git a/implementations/ApiCatalog.json b/implementations/ApiCatalog.json index 3a4c30c..9c1abe8 100644 --- a/implementations/ApiCatalog.json +++ b/implementations/ApiCatalog.json @@ -1,6 +1,10 @@ { - "name": "apicatalog.com", - "implementation": "Iron Verifiable Credentials", + "vendor": { + "name": "apicatalog.com", + "url": "https://apicatalog.com/" + }, + "name": "Iron Verifiable Credentials", + "url": "https://github.com/filip26/iron-verifiable-credentials", "verifiers": [ { "id": "https://vc.apicatalog.com/verifier", diff --git a/implementations/DanubeTech.json b/implementations/DanubeTech.json index 3ccebe9..650c6d9 100644 --- a/implementations/DanubeTech.json +++ b/implementations/DanubeTech.json @@ -1,6 +1,10 @@ { - "name": "Danube Tech", - "implementation": "uni", + "vendor": { + "name": "Danube Tech", + "url": "https://danubetech.com/" + }, + "name": "uni", + "url": "https://danubetech.com/tech/uni-issuer-verifier", "issuers": [{ "id": "did:key:z6MksvTdeczd92YQ5W2V2gL9kXdRvD2AEiyJPoWieP95HUDo", "endpoint": "https://uniissuer.io/1.0/credentials/issue", diff --git a/implementations/DigitalBazaar.json b/implementations/DigitalBazaar.json index 8ea5eb8..5809ac8 100644 --- a/implementations/DigitalBazaar.json +++ b/implementations/DigitalBazaar.json @@ -1,6 +1,10 @@ { - "name": "Digital Bazaar", - "implementation": "Veres (Q/A)", + "vendor": { + "name": "Digital Bazaar", + "url": "https://digitalbazaar.com/" + }, + "name": "Veres (Q/A)", + "url": "https://demo.veresewallet.dev/", "issuers": [{ "id": "https://issuer.qa.veres.app/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR", "endpoint": "https://issuer.qa.veres.app/issuers/z1AEwLo7tZ3TrsPgRcgLJqQvR/credentials/issue", diff --git a/implementations/EWF.json b/implementations/EWF.json index cd02d8f..86ef11e 100644 --- a/implementations/EWF.json +++ b/implementations/EWF.json @@ -1,6 +1,10 @@ { - "name": "EWF", - "implementation": "Energy Web Foundation VC-API", + "vendor": { + "name": "EWF", + "url": "https://www.energyweb.org/" + }, + "name": "Energy Web Foundation VC-API", + "url": "https://github.com/openwallet-foundation-labs/vc-api/tree/develop/apps/vc-api", "issuers": [{ "id": "did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", "endpoint": "https://vc-api-dev.energyweb.org/v1/vc-api/credentials/issue", diff --git a/implementations/GrottoNetworking.json b/implementations/GrottoNetworking.json index 38dd86d..3933cb3 100644 --- a/implementations/GrottoNetworking.json +++ b/implementations/GrottoNetworking.json @@ -1,6 +1,9 @@ { - "name": "Grotto Networking", - "implementation": "Grotto Selective Disclosure Libraries", + "vendor": { + "name": "Grotto Networking", + "url": "https://grotto-networking.com/" + }, + "name": "Grotto Selective Disclosure Libraries", "issuers": [{ "id": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP#zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP", "endpoint": "https://ecdsa-sd.grotto-networking.com/credentials/issue", diff --git a/implementations/LearnCard.json b/implementations/LearnCard.json index ebfdd9e..d2d7d55 100644 --- a/implementations/LearnCard.json +++ b/implementations/LearnCard.json @@ -1,6 +1,9 @@ { + "vendor": { + "name": "LearnCard", + "url": "https://www.learncard.com/" + }, "name": "LearnCard", - "implementation": "LearnCard", "issuers": [{ "id": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", "endpoint": "https://bridge.learncard.com/credentials/issue", diff --git a/implementations/SpruceID.json b/implementations/SpruceID.json index 9d4b6f3..f9ed7ae 100644 --- a/implementations/SpruceID.json +++ b/implementations/SpruceID.json @@ -1,6 +1,9 @@ { + "vendor": { + "name": "SpruceID", + "url": "https://spruceid.com/" + }, "name": "SpruceID", - "implementation": "SpruceID", "issuers": [{ "id": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", "endpoint": "https://vc.spruceid.xyz/credentials/issue", diff --git a/implementations/Trinsic.json b/implementations/Trinsic.json index 0ef9fd2..2502944 100644 --- a/implementations/Trinsic.json +++ b/implementations/Trinsic.json @@ -1,6 +1,9 @@ { + "vendor": { + "name": "Trinsic", + "url": "https://trinsic.id/" + }, "name": "Trinsic", - "implementation": "Trinsic", "issuers": [{ "id": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", "endpoint": "https://interop.connect.trinsic.cloud/vc-api/credentials/issue", diff --git a/implementations/bovine.json b/implementations/bovine.json index c45654a..e7bf090 100644 --- a/implementations/bovine.json +++ b/implementations/bovine.json @@ -1,6 +1,10 @@ { + "vendor": { + "name": "helge", + "url": "https://codeberg.org/helge" + }, "name": "bovine", - "implementation": "bovine", + "url": "https://bovine.social/", "issuers": [{ "id": "did:key:z6MkuEij7SCByU2MNp6Ec4iiLWdqEepvxawtq5LgqbymdsXd", "endpoint": "https://bovine.social/w3c-di/issue/eddsa-rdfc-2022", From a0b29ffb3b0b20abb8888b9dca929fea7f30cc97 Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Tue, 26 Mar 2024 15:12:36 -0400 Subject: [PATCH 4/6] Add initial context file. This lays the foundation for eventually turning this metadata into VCs. The context uses a mix of the W3Cs EARL vocabulary, DOAP (which EARL uses), Schema.org, and a temporary `reporter` namespace mapped to https://github.com/digitalbazaar/mocha-w3c-interop-reporter# which is the primary software which consumes these details to generate W3C test reports. This context MAY (and likely should) move in the future either to that repo or to some more permanent home. --- context.json | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 context.json diff --git a/context.json b/context.json new file mode 100644 index 0000000..4138b43 --- /dev/null +++ b/context.json @@ -0,0 +1,52 @@ +{ + "@context": { + "earl": "https://www.w3.org/ns/earl#", + "doap": "http://usefulinc.com/ns/doap#", + "schema": "http://schema.org/", + "reporter": "https://github.com/digitalbazaar/mocha-w3c-interop-reporter#", + + "Software": "earl:Software", + "TestSubject": "earl:TestSubject", + "Organization": "schema:Organization", + "Person": "schema:Person", + + "id": "@id", + "name": "schema:name", + "url": { + "@id": "schema:url", + "@type": "@id" + }, + "vendor": { + "@id": "doap:vendor" + }, + "email": "schema:email", + + "options": { + "@id": "https://w3c-ccg.github.io/vc-api/#options", + "@type": "@json" + }, + + "tags": { + "@id": "schema:keywords" + }, + "issuers": { + "@id": "cred:issuer", + "@container": "@set" + }, + "verifiers": { + "@id": "cred:verifier", + "@container": "@set" + }, + "endpoint": { + "@id": "doap:service-endpoint", + "@type": "@id" + }, + + "zcap": "reporter:zcap", + "capability": "reporter:capability", + "keySeed": "reporter:keySeed", + "supportedEcdsaKeyTypes": "reporter:supportedEcdsaKeyTypes", + "vcHolders": "reporter:vcHolders", + "vpVerifiers": "reporter:vpVerifiers" + } +} From 78b231b4017b124402de495233391b7ac50a8aeb Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Tue, 26 Mar 2024 15:23:16 -0400 Subject: [PATCH 5/6] Set types using new context terms. --- implementations/ApiCatalog.json | 2 ++ implementations/DanubeTech.json | 2 ++ implementations/DigitalBazaar.json | 2 ++ implementations/EWF.json | 2 ++ implementations/GrottoNetworking.json | 2 ++ implementations/LearnCard.json | 2 ++ implementations/SpruceID.json | 2 ++ implementations/Trinsic.json | 2 ++ implementations/bovine.json | 2 ++ 9 files changed, 18 insertions(+) diff --git a/implementations/ApiCatalog.json b/implementations/ApiCatalog.json index 9c1abe8..49d928a 100644 --- a/implementations/ApiCatalog.json +++ b/implementations/ApiCatalog.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "apicatalog.com", "url": "https://apicatalog.com/" }, + "@type": ["TestSubject", "Software"], "name": "Iron Verifiable Credentials", "url": "https://github.com/filip26/iron-verifiable-credentials", "verifiers": [ diff --git a/implementations/DanubeTech.json b/implementations/DanubeTech.json index 650c6d9..e005210 100644 --- a/implementations/DanubeTech.json +++ b/implementations/DanubeTech.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "Danube Tech", "url": "https://danubetech.com/" }, + "@type": ["TestSubject", "Software"], "name": "uni", "url": "https://danubetech.com/tech/uni-issuer-verifier", "issuers": [{ diff --git a/implementations/DigitalBazaar.json b/implementations/DigitalBazaar.json index 5809ac8..25f301e 100644 --- a/implementations/DigitalBazaar.json +++ b/implementations/DigitalBazaar.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "Digital Bazaar", "url": "https://digitalbazaar.com/" }, + "@type": ["TestSubject", "Software"], "name": "Veres (Q/A)", "url": "https://demo.veresewallet.dev/", "issuers": [{ diff --git a/implementations/EWF.json b/implementations/EWF.json index 86ef11e..c45a7d4 100644 --- a/implementations/EWF.json +++ b/implementations/EWF.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "EWF", "url": "https://www.energyweb.org/" }, + "@type": ["TestSubject", "Software"], "name": "Energy Web Foundation VC-API", "url": "https://github.com/openwallet-foundation-labs/vc-api/tree/develop/apps/vc-api", "issuers": [{ diff --git a/implementations/GrottoNetworking.json b/implementations/GrottoNetworking.json index 3933cb3..43369d8 100644 --- a/implementations/GrottoNetworking.json +++ b/implementations/GrottoNetworking.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "Grotto Networking", "url": "https://grotto-networking.com/" }, + "@type": ["TestSubject", "Software"], "name": "Grotto Selective Disclosure Libraries", "issuers": [{ "id": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP#zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP", diff --git a/implementations/LearnCard.json b/implementations/LearnCard.json index d2d7d55..ea73b0c 100644 --- a/implementations/LearnCard.json +++ b/implementations/LearnCard.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "LearnCard", "url": "https://www.learncard.com/" }, + "@type": ["TestSubject", "Software"], "name": "LearnCard", "issuers": [{ "id": "did:key:z6MkjSz4mYqcn7dePGuktJ5PxecMkXQQHWRg8Lm6okATyFVh", diff --git a/implementations/SpruceID.json b/implementations/SpruceID.json index f9ed7ae..8072fd8 100644 --- a/implementations/SpruceID.json +++ b/implementations/SpruceID.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "SpruceID", "url": "https://spruceid.com/" }, + "@type": ["TestSubject", "Software"], "name": "SpruceID", "issuers": [{ "id": "did:key:z6MkgND5U5Kedizov5nxeh2ZCVUTDRSmAfbNqPhzCq8b72Ra", diff --git a/implementations/Trinsic.json b/implementations/Trinsic.json index 2502944..39296f6 100644 --- a/implementations/Trinsic.json +++ b/implementations/Trinsic.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Organization", "name": "Trinsic", "url": "https://trinsic.id/" }, + "@type": ["TestSubject", "Software"], "name": "Trinsic", "issuers": [{ "id": "did:key:z6MkqbpLSbqnY1pxVyhBCDYcFsv4ZgGgqP32kzNrf5deWVPU", diff --git a/implementations/bovine.json b/implementations/bovine.json index e7bf090..b2ba80e 100644 --- a/implementations/bovine.json +++ b/implementations/bovine.json @@ -1,8 +1,10 @@ { "vendor": { + "@type": "Person", "name": "helge", "url": "https://codeberg.org/helge" }, + "@type": ["TestSubject", "Software"], "name": "bovine", "url": "https://bovine.social/", "issuers": [{ From b20e692a5fc3042df2bbc2b6c7fd0624ac0050f7 Mon Sep 17 00:00:00 2001 From: Benjamin Young <byoung@digitalbazaar.com> Date: Tue, 26 Mar 2024 15:33:15 -0400 Subject: [PATCH 6/6] Add support email address to Digital Bazaar info. --- implementations/DigitalBazaar.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/implementations/DigitalBazaar.json b/implementations/DigitalBazaar.json index 25f301e..938a3c7 100644 --- a/implementations/DigitalBazaar.json +++ b/implementations/DigitalBazaar.json @@ -2,7 +2,8 @@ "vendor": { "@type": "Organization", "name": "Digital Bazaar", - "url": "https://digitalbazaar.com/" + "url": "https://digitalbazaar.com/", + "email": "support@digitalbazaar.com" }, "@type": ["TestSubject", "Software"], "name": "Veres (Q/A)",