X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/blobdiff_plain/848ba392a415557f73bbca53e2dc350348f96849..dafb2da44bb35c7057744ca820833cde6d43c534:/catacomb/__init__.py diff --git a/catacomb/__init__.py b/catacomb/__init__.py index 115e8fe..9522528 100644 --- a/catacomb/__init__.py +++ b/catacomb/__init__.py @@ -495,6 +495,22 @@ class X25519Priv (_BoxyPriv, X25519Pub): def _op(me, k, X): return x25519(k, X) def _hashkey(me, z): return hsalsa20_prf(z, Z128) +class Ed25519Pub (object): + def __init__(me, pub): + me.pub = pub + def verify(me, msg, sig): + return ed25519_verify(me.pub, msg, sig) + +class Ed25519Priv (Ed25519Pub): + def __init__(me, priv): + me.priv = priv + Ed25519Pub.__init__(me, ed25519_pubkey(priv)) + def sign(me, msg): + return ed25519_sign(me.priv, msg, pub = me.pub) + @classmethod + def generate(cls, rng = rand): + return cls(rng.block(ED25519_KEYSZ)) + ###-------------------------------------------------------------------------- ### Built-in named curves and prime groups.