def sign()

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