Skip to content

Commit 11d76e7

Browse files
committed
tuf.api: WIP implement Timestamp
Signed-off-by: Joshua Lock <[email protected]>
1 parent 57c98d4 commit 11d76e7

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

tuf/api/metadata.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,21 @@ def write_to_json(self, filename: str) -> None:
130130

131131
class Timestamp(Metadata):
132132
def __init__(self, consistent_snapshot: bool = True, expiration: relativedelta = relativedelta(days=1), keyring: Keyring = None, version: int = 1):
133-
super().__init__(consistent_snapshot, expiration, relativedelta, keyring, version)
133+
super().__init__(consistent_snapshot, expiration, keyring, version)
134134

135-
# FIXME
136135
def signable(self):
137-
return generate_timestamp_metadata()
136+
expires = self.expiration.replace(tzinfo=None).isoformat()+'Z'
137+
filedict = self.signed['meta']
138+
return tuf.formats.build_dict_conforming_to_schema(
139+
tuf.formats.TIMESTAMP_SCHEMA, version=self.version,
140+
expires=expires, meta=filedict)
138141

139142
# Update metadata about the snapshot metadata.
140143
def update(self, rolename: str, version: int, length: int, hashes: JsonDict):
141-
raise NotImplementedError()
144+
fileinfo = self.signed['meta'][f'{rolename}.json']
145+
fileinfo['version'] = version
146+
fileinfo['length'] = length
147+
fileinfo['hashes'] = hashes
142148

143149
class Snapshot(Metadata):
144150
def __init__(self, consistent_snapshot: bool = True, expiration: relativedelta = relativedelta(days=1), keyring: Keyring = None, version: int = 1):

0 commit comments

Comments
 (0)