mirror of https://gitlab.com/bashrc2/epicyon
Support for multikey v1 context within jsonld signature verification
parent
693655f1b2
commit
29ec9f08a7
42
context.py
42
context.py
|
@ -22,6 +22,7 @@ VALID_CONTEXTS = (
|
||||||
"*/socialweb/webfinger.jsonld",
|
"*/socialweb/webfinger.jsonld",
|
||||||
"https://www.w3.org/ns/did/v1",
|
"https://www.w3.org/ns/did/v1",
|
||||||
"https://w3id.org/security/multikey/v1",
|
"https://w3id.org/security/multikey/v1",
|
||||||
|
"https://w3c.github.io/vc-data-integrity/contexts/multikey/v1.jsonld",
|
||||||
"https://w3id.org/security/data-integrity/v1"
|
"https://w3id.org/security/data-integrity/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -84,6 +85,47 @@ def has_valid_context(post_json_object: {}) -> bool:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def get_multikey_v1_schema() -> {}:
|
||||||
|
""" https://w3id.org/security/multikey/v1
|
||||||
|
https://w3c.github.io/vc-data-integrity/contexts/multikey/v1.jsonld
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"@context": {
|
||||||
|
"id": "@id",
|
||||||
|
"type": "@type",
|
||||||
|
"@protected": True,
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"expires": {
|
||||||
|
"@id": "https://w3id.org/security#expiration",
|
||||||
|
"@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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_did_v1_schema() -> {}:
|
def get_did_v1_schema() -> {}:
|
||||||
# https://www.w3.org/ns/did/v1
|
# https://www.w3.org/ns/did/v1
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -49,6 +49,7 @@ from context import get_v1security_schema
|
||||||
from context import get_activitystreams_schema
|
from context import get_activitystreams_schema
|
||||||
from context import get_webfinger_schema
|
from context import get_webfinger_schema
|
||||||
from context import get_did_v1_schema
|
from context import get_did_v1_schema
|
||||||
|
from context import get_multikey_v1_schema
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from functools import cmp_to_key
|
from functools import cmp_to_key
|
||||||
|
@ -449,6 +450,14 @@ def load_document(url):
|
||||||
'document': get_webfinger_schema()
|
'document': get_webfinger_schema()
|
||||||
}
|
}
|
||||||
return doc
|
return doc
|
||||||
|
elif (url == "https://w3id.org/security/multikey/v1" or
|
||||||
|
url.endswith("/vc-data-integrity/contexts/multikey/v1.jsonld")):
|
||||||
|
doc = {
|
||||||
|
'contextUrl': None,
|
||||||
|
'documentUrl': url,
|
||||||
|
'document': get_multikey_v1_schema()
|
||||||
|
}
|
||||||
|
return doc
|
||||||
elif url == 'https://litepub.social/litepub/context.jsonld':
|
elif url == 'https://litepub.social/litepub/context.jsonld':
|
||||||
doc = {
|
doc = {
|
||||||
'contextUrl': None,
|
'contextUrl': None,
|
||||||
|
|
Loading…
Reference in New Issue