def synthesize_crypto(job):
with open_repository(job.repository) as repository:
if bin_to_hex(repository.id) != job.repository.repository_id:
raise RepositoryIDMismatch(bin_to_hex(repository.id), job.repository.repository_id)
manifest, key = Manifest.load(repository)
client_key = synthesize_client_key(key, repository)
if not isinstance(client_key, PlaintextKey):
job.client_key_data = client_key.get_key_data()
job.client_key_type = client_key.synthetic_type
client_manifest = SyntheticManifest(client_key, repository.id)
job.client_manifest_data = bin_to_hex(client_manifest.write())
job.client_manifest_id_str = client_manifest.id_str
transaction.get().note('Synthesized crypto for job %s' % job.id)
transaction.commit()
评论列表
文章目录