#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"
#include "gkcdsa.h"
#include "rsa.h"
#include "ed25519.h"
+#include "ed448.h"
#include "cc.h"
/* --- EdDSA --- */
#define EDDSAS(_) \
- _(ed25519, ed25519ctx, ED25519, "Ed25519", sha512)
+ _(ed25519, ed25519ctx, ED25519, "Ed25519", sha512) \
+ _(ed448, ed448, ED448, "Ed448", shake256)
typedef struct eddsa_sigctx {
sig s;
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
/* --- 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'",