#include <catacomb/x25519.h>
#include <catacomb/x448.h>
#include <catacomb/ed25519.h>
+#include <catacomb/ed448.h>
#include <catacomb/gf.h>
#include <catacomb/gfreduce.h>
C(X448_KEYSZ), C(X448_PUBSZ), C(X448_OUTSZ),
C(ED25519_KEYSZ), C(ED25519_PUBSZ), C(ED25519_SIGSZ),
C(ED25519_MAXPERSOSZ),
+ C(ED448_KEYSZ), C(ED448_PUBSZ), C(ED448_SIGSZ), C(ED448_MAXPERSOSZ),
#define ENTRY(tag, val, str) C(KERR_##tag),
KEY_ERRORS(ENTRY)
#undef ENTRY
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.
/*----- Ed25519 and related algorithms ------------------------------------*/
#define EDDSAS(_) \
- _(ED25519, ed25519, -1, ctx)
+ _(ED25519, ed25519, -1, ctx) \
+ _(ED448, ed448, 0, )
#define DEFEDDSA(ED, ed, phdflt, sigver) \
\