in api/plugins/crypto.py [0:0]
def sign(key, text):
""" Signs a string with the private key """
hashver = cryptography.hazmat.primitives.hashes.SHA1()
hasher = cryptography.hazmat.primitives.hashes.Hash(hashver, cryptography.hazmat.backends.default_backend())
retval = b""
i = 0
txtl = len(text)
ks = int(key.key_size / 8)
while i < txtl:
chunk = text[i:i+ks-1]
i += ks
hasher.update(chunk.encode('utf-8'))
digest = hasher.finalize()
sig = key.sign(
digest,
cryptography.hazmat.primitives.asymmetric.padding.PSS(
mgf=cryptography.hazmat.primitives.asymmetric.padding.MGF1(cryptography.hazmat.primitives.hashes.SHA1()),
salt_length=cryptography.hazmat.primitives.asymmetric.padding.PSS.MAX_LENGTH
),
cryptography.hazmat.primitives.asymmetric.utils.Prehashed(hashver)
)
return sig