~mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
symm/des.c: Introduce a function to fix or check key parity.
[catacomb]
/
progs
/
key.c
diff --git
a/progs/key.c
b/progs/key.c
index
c59eac0
..
d5bfedb
100644
(file)
--- a/
progs/key.c
+++ b/
progs/key.c
@@
-53,6
+53,7
@@
#include "bintab.h"
#include "bbs.h"
#include "bintab.h"
#include "bbs.h"
+#include "des.h"
#include "dh.h"
#include "dsa.h"
#include "dsarand.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;
unsigned sz;
octet *p;
key_data *kd;
- int i;
if (!k->bits)
k->bits = 168;
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);
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);
kd = key_newbinary(KCAT_SYMM | KF_BURN, p, sz);
memset(p, 0, sz);
dolock(k, &kd, 0);