in kinto-remote-settings/src/kinto_remote_settings/signer/backends/local_ecdsa.py [0:0]
def sign(self, payload):
if isinstance(payload, str): # pragma: no cover
payload = payload.encode("utf-8")
payload = SIGN_PREFIX + payload
private_key = self.load_private_key()
signature = private_key.sign(
payload, hashfunc=hashlib.sha384, sigencode=ecdsa.util.sigencode_string
)
x5u = ""
enc_signature = base64.urlsafe_b64encode(signature).decode("utf-8")
return {"signature": enc_signature, "x5u": x5u, "mode": "p384ecdsa"}