From f59e11281cc9e0b92bbb545838b4d8e63db7d316 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 20 Aug 2023 05:57:39 +0000 Subject: [PATCH 1/3] Issue 12815: JsonLD parsing problems with data-integrity --- src/Util/JsonLD.php | 3 + static/security-data-integrity-v1.jsonld | 72 ++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 static/security-data-integrity-v1.jsonld diff --git a/src/Util/JsonLD.php b/src/Util/JsonLD.php index beb01f0cc..8f492bdcf 100644 --- a/src/Util/JsonLD.php +++ b/src/Util/JsonLD.php @@ -49,6 +49,9 @@ class JsonLD case 'https://w3id.org/identity/v1': $url = DI::basePath() . '/static/identity-v1.jsonld'; break; + case 'https://w3id.org/security/data-integrity/v1': + $url = DI::basePath() . '/static/security-data-integrity-v1.jsonld'; + break; case 'https://www.w3.org/ns/activitystreams': $url = DI::basePath() . '/static/activitystreams.jsonld'; break; diff --git a/static/security-data-integrity-v1.jsonld b/static/security-data-integrity-v1.jsonld new file mode 100644 index 000000000..24c054e39 --- /dev/null +++ b/static/security-data-integrity-v1.jsonld @@ -0,0 +1,72 @@ +{ + "@context": { + "id": "@id", + "type": "@type", + "proof": { + "@id": "https://w3id.org/security#proof", + "@type": "@id" + }, + "DataIntegrityProof": { + "@id": "https://w3id.org/security#DataIntegrityProof", + "@context": { + "@protected": true, + "id": "@id", + "type": "@type", + "challenge": "https://w3id.org/security#challenge", + "created": { + "@id": "http://purl.org/dc/terms/created", + "@type": "http://www.w3.org/2001/XMLSchema#dateTime" + }, + "domain": "https://w3id.org/security#domain", + "expires": { + "@id": "https://w3id.org/security#expiration", + "@type": "http://www.w3.org/2001/XMLSchema#dateTime" + }, + "nonce": "https://w3id.org/security#nonce", + "proofPurpose": { + "@id": "https://w3id.org/security#proofPurpose", + "@type": "@vocab", + "@context": { + "@protected": true, + "id": "@id", + "type": "@type", + "assertionMethod": { + "@id": "https://w3id.org/security#assertionMethod", + "@type": "@id", + "@container": "@set" + }, + "authentication": { + "@id": "https://w3id.org/security#authenticationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityInvocation": { + "@id": "https://w3id.org/security#capabilityInvocationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityDelegation": { + "@id": "https://w3id.org/security#capabilityDelegationMethod", + "@type": "@id", + "@container": "@set" + }, + "keyAgreement": { + "@id": "https://w3id.org/security#keyAgreementMethod", + "@type": "@id", + "@container": "@set" + } + } + }, + "cryptosuite": "https://w3id.org/security#cryptosuite", + "proofValue": { + "@id": "https://w3id.org/security#proofValue", + "@type": "https://w3id.org/security#multibase" + }, + "verificationMethod": { + "@id": "https://w3id.org/security#verificationMethod", + "@type": "@id" + } + } + } + } +} \ No newline at end of file From 12d6080a48fe8c5be3fcdd75864ae4376ae458fe Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 20 Aug 2023 12:13:25 +0000 Subject: [PATCH 2/3] Added another context --- src/Util/JsonLD.php | 11 +++++++---- static/security-multikey-v1.jsonld | 30 ++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 static/security-multikey-v1.jsonld diff --git a/src/Util/JsonLD.php b/src/Util/JsonLD.php index 8f492bdcf..63787db08 100644 --- a/src/Util/JsonLD.php +++ b/src/Util/JsonLD.php @@ -46,12 +46,15 @@ class JsonLD case 'https://w3id.org/security/v1': $url = DI::basePath() . '/static/security-v1.jsonld'; break; - case 'https://w3id.org/identity/v1': - $url = DI::basePath() . '/static/identity-v1.jsonld'; - break; case 'https://w3id.org/security/data-integrity/v1': $url = DI::basePath() . '/static/security-data-integrity-v1.jsonld'; break; + case 'https://w3id.org/security/multikey/v1': + $url = DI::basePath() . '/static/security-multikey-v1.jsonld'; + break; + case 'https://w3id.org/identity/v1': + $url = DI::basePath() . '/static/identity-v1.jsonld'; + break; case 'https://www.w3.org/ns/activitystreams': $url = DI::basePath() . '/static/activitystreams.jsonld'; break; @@ -98,7 +101,7 @@ class JsonLD $result = DI::cache()->get('documentLoader:' . $url); if (!is_null($result)) { - return $result; + //return $result; } $data = jsonld_default_document_loader($url); diff --git a/static/security-multikey-v1.jsonld b/static/security-multikey-v1.jsonld new file mode 100644 index 000000000..21f74601c --- /dev/null +++ b/static/security-multikey-v1.jsonld @@ -0,0 +1,30 @@ +{ + "@context": { + "id": "@id", + "type": "@type", + "Multikey": { + "@id": "https://w3id.org/security#Multikey", + "@context": { + "@protected": true, + "id": "@id", + "type": "@type", + "controller": { + "@id": "https://w3id.org/security#controller", + "@type": "@id" + }, + "revoked": { + "@id": "https://w3id.org/security#revoked", + "@type": "http://www.w3.org/2001/XMLSchema#dateTime" + }, + "publicKeyMultibase": { + "@id": "https://w3id.org/security#publicKeyMultibase", + "@type": "https://w3id.org/security#multibase" + }, + "secretKeyMultibase": { + "@id": "https://w3id.org/security#secretKeyMultibase", + "@type": "https://w3id.org/security#multibase" + } + } + } + } +} \ No newline at end of file From 4097808b95dcdac41fd4146a560eb6f941891c94 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 20 Aug 2023 12:39:05 +0000 Subject: [PATCH 3/3] Resture previous state --- src/Util/JsonLD.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Util/JsonLD.php b/src/Util/JsonLD.php index 63787db08..427205958 100644 --- a/src/Util/JsonLD.php +++ b/src/Util/JsonLD.php @@ -101,7 +101,7 @@ class JsonLD $result = DI::cache()->get('documentLoader:' . $url); if (!is_null($result)) { - //return $result; + return $result; } $data = jsonld_default_document_loader($url);