Ejemplo n.º 1
0
def read_keys(keydir):
    f = open(os.path.join(keydir, 'key1.priv'), "r")
    b64sk = f.read()
    f.close()
    sk = base64.b64decode(b64sk)
    pk = ed25519.publickey(sk)
    return (sk, pk)
Ejemplo n.º 2
0
def get_crypto_signature(message, secret_key=None, keyfile=None):
    if keyfile:
        ioa = IoAdapterFileReader.use(keyfile)
        secret_key = ioa.file.read()
        ioa.close()
    secret_key = base64.b64decode(secret_key)
    public_key = ed25519.publickey(secret_key)
    signature = ed25519.signature(message, secret_key, public_key)
    b64signature = base64.b64encode(signature)
    return b64signature
Ejemplo n.º 3
0
def generate_keys(public_key_path, secret_key_path):
    """
    Generates a public and a private key pair and stores them in respective files
    """
    try:
        secret_key = os.urandom(64)
        #sr = random.SystemRandom()
        #secret_key = sr.getrandbits(512)
    except NotImplementedError:
        raise Exception("crypto.generate_keys: Running on a system without a safe random number generator,cannot create safe cryptographic keys on this system.")
    public_key = ed25519.publickey(secret_key)

    b64secret_key = base64.b64encode(secret_key)
    b64public_key = base64.b64encode(public_key)

    pubfile = IoAdapterFileWriter.use(public_key_path)
    pubfile.file.write(codecs.decode(b64public_key,'utf-8'))
    pubfile.close()

    secfile = IoAdapterFileWriter.use(secret_key_path)
    secfile.file.write(codecs.decode(b64secret_key,'utf-8'))
    secfile.close()