From 11d76e72ddbd1dafab70c35213db30396dcb7e44 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Wed, 1 Jul 2020 17:10:55 +0100 Subject: [PATCH] tuf.api: WIP implement Timestamp Signed-off-by: Joshua Lock --- tuf/api/metadata.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tuf/api/metadata.py b/tuf/api/metadata.py index 074ed76b..4c8b109c 100644 --- a/tuf/api/metadata.py +++ b/tuf/api/metadata.py @@ -130,15 +130,21 @@ def write_to_json(self, filename: str) -> None: class Timestamp(Metadata): def __init__(self, consistent_snapshot: bool = True, expiration: relativedelta = relativedelta(days=1), keyring: Keyring = None, version: int = 1): - super().__init__(consistent_snapshot, expiration, relativedelta, keyring, version) + super().__init__(consistent_snapshot, expiration, keyring, version) - # FIXME def signable(self): - return generate_timestamp_metadata() + expires = self.expiration.replace(tzinfo=None).isoformat()+'Z' + filedict = self.signed['meta'] + return tuf.formats.build_dict_conforming_to_schema( + tuf.formats.TIMESTAMP_SCHEMA, version=self.version, + expires=expires, meta=filedict) # Update metadata about the snapshot metadata. def update(self, rolename: str, version: int, length: int, hashes: JsonDict): - raise NotImplementedError() + fileinfo = self.signed['meta'][f'{rolename}.json'] + fileinfo['version'] = version + fileinfo['length'] = length + fileinfo['hashes'] = hashes class Snapshot(Metadata): def __init__(self, consistent_snapshot: bool = True, expiration: relativedelta = relativedelta(days=1), keyring: Keyring = None, version: int = 1):