pubkey.c: Add support for Ed448 signatures, following RFC8032.
[catacomb-python] / catacomb / __init__.py
index 5cbf993..e283744 100644 (file)
@@ -910,6 +910,18 @@ class Ed25519Priv (_EdDSAPriv, Ed25519Pub):
   def sign(me, msg, **kw):
     return ed25519_sign(me.priv, msg, pub = me.pub, **kw)
 
+class Ed448Pub (_EdDSAPub):
+  _PUBSZ = KeySZSet(ED448_PUBSZ)
+  _HASH = shake256
+  def verify(me, msg, sig, **kw):
+    return ed448_verify(me.pub, msg, sig, **kw)
+
+class Ed448Priv (_EdDSAPriv, Ed448Pub):
+  _KEYSZ = KeySZAny(ED448_KEYSZ)
+  def _pubkey(me, priv): return ed448_pubkey(priv)
+  def sign(me, msg, **kw):
+    return ed448_sign(me.priv, msg, pub = me.pub, **kw)
+
 ###--------------------------------------------------------------------------
 ### Built-in named curves and prime groups.