diff options
author | Andrew Godwin | 2022-11-12 21:14:21 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-11-12 21:14:21 -0700 |
commit | 878f56b411279cd9865a7ec05f1d14c9f70f6187 (patch) | |
tree | 93f3c65e109a014041e4380a854bdf8b4dd7fe6d /core | |
parent | dd4328ae523bb375dd871e85d1bacd9311e87a89 (diff) | |
download | takahe-878f56b411279cd9865a7ec05f1d14c9f70f6187.tar.gz takahe-878f56b411279cd9865a7ec05f1d14c9f70f6187.tar.bz2 takahe-878f56b411279cd9865a7ec05f1d14c9f70f6187.zip |
Post URIs and host-meta
Diffstat (limited to 'core')
-rw-r--r-- | core/ld.py | 12 | ||||
-rw-r--r-- | core/signatures.py | 4 |
2 files changed, 12 insertions, 4 deletions
@@ -1,6 +1,6 @@ import datetime import urllib.parse as urllib_parse -from typing import Dict, List, Union +from typing import Dict, List, Optional, Union from pyld import jsonld from pyld.jsonld import JsonLdError @@ -414,5 +414,13 @@ def canonicalise(json_data: Dict, include_security: bool = False) -> Dict: return jsonld.compact(jsonld.expand(json_data), context) -def format_date(value: datetime.datetime) -> str: +def format_ld_date(value: datetime.datetime) -> str: return value.strftime(DATETIME_FORMAT) + + +def parse_ld_date(value: Optional[str]) -> Optional[datetime.datetime]: + if value is None: + return None + return datetime.datetime.strptime(value, DATETIME_FORMAT).replace( + tzinfo=datetime.timezone.utc + ) diff --git a/core/signatures.py b/core/signatures.py index 74b5324..0959333 100644 --- a/core/signatures.py +++ b/core/signatures.py @@ -11,7 +11,7 @@ from django.utils.http import http_date, parse_http_date from OpenSSL import crypto from pyld import jsonld -from core.ld import format_date +from core.ld import format_ld_date class VerificationError(BaseException): @@ -261,7 +261,7 @@ class LDSignature: options: Dict[str, str] = { "@context": "https://w3id.org/identity/v1", "creator": key_id, - "created": format_date(timezone.now()), + "created": format_ld_date(timezone.now()), } # Get the normalised hash of each document final_hash = cls.normalized_hash(options) + cls.normalized_hash(document) |