base/asm-common.h (x86), and knock-on: Add macros for full-size regs.
[catacomb] / progs / cc-sig.c
index fb5e1c3..4c1defc 100644 (file)
 
 #include <stdlib.h>
 
+#include <mLib/macros.h>
 #include <mLib/report.h>
 
 #include "rand.h"
 #include "sha.h"
 #include "has160.h"
 #include "sha512.h"
+#include "sha3.h"
 
 #include "ct.h"
 #include "ec.h"
@@ -46,6 +48,7 @@
 #include "gkcdsa.h"
 #include "rsa.h"
 #include "ed25519.h"
+#include "ed448.h"
 
 #include "cc.h"
 
@@ -577,7 +580,8 @@ static const sigops eckcdsa_vrf = {
 /* --- EdDSA --- */
 
 #define EDDSAS(_)                                                      \
-  _(ed25519, ed25519ctx, ED25519, "Ed25519", sha512)
+  _(ed25519, ed25519ctx, ED25519, "Ed25519", sha512)                   \
+  _(ed448, ed448, ED448, "Ed448", shake256)
 
 typedef struct eddsa_sigctx {
   sig s;
@@ -806,7 +810,7 @@ sig *getsig(key *k, const char *app, int wantpriv)
   if ((q = key_getattr(0, k, "sig")) != 0) {
     dstr_puts(&d, q);
     p = d.buf;
-  } else if (strncmp(k->type, app, n) == 0 && k->type[n] == '-') {
+  } else if (STRNCMP(k->type, ==, app, n) && k->type[n] == '-') {
     dstr_puts(&d, k->type);
     p = d.buf + n + 1;
   } else
@@ -829,7 +833,7 @@ sig *getsig(key *k, const char *app, int wantpriv)
   /* --- Look up the algorithms in the table --- */
 
   for (st = sigtab; st->name; st++) {
-    if (strcmp(st->name, salg) == 0)
+    if (STRCMP(st->name, ==, salg))
       goto s_found;
   }
   die(EXIT_FAILURE, "signature algorithm `%s' not found in key `%s'",