X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/075439a799cb100243786f586b855a35f5788a65..3b09bd841c6f31e968717e46b5e995fff0481924:/progs/key.c diff --git a/progs/key.c b/progs/key.c index c59eac0f..d5bfedb8 100644 --- a/progs/key.c +++ b/progs/key.c @@ -53,6 +53,7 @@ #include "bintab.h" #include "bbs.h" +#include "des.h" #include "dh.h" #include "dsa.h" #include "dsarand.h" @@ -411,7 +412,6 @@ static void alg_des(keyopts *k) unsigned sz; octet *p; key_data *kd; - int i; if (!k->bits) k->bits = 168; @@ -422,13 +422,7 @@ static void alg_des(keyopts *k) sz = k->bits / 7; p = sub_alloc(sz); k->r->ops->fill(k->r, p, sz); - for (i = 0; i < sz; i++) { - octet x = p[i] | 0x01; - x = x ^ (x >> 4); - x = x ^ (x >> 2); - x = x ^ (x >> 1); - p[i] = (p[i] & 0xfe) | (x & 0x01); - } + des_fixparity(p, p, sz); kd = key_newbinary(KCAT_SYMM | KF_BURN, p, sz); memset(p, 0, sz); dolock(k, &kd, 0);