summaryrefslogtreecommitdiff
path: root/lib/libdes
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2006-03-19 19:35:00 +0000
committerchristos <christos@NetBSD.org>2006-03-19 19:35:00 +0000
commite1b2ea7ce980535cde995f09e2ce75b4ccdfed47 (patch)
treeca7a11605a3490d06b5e7af5019126c3ca590dd5 /lib/libdes
parent8fe92db79810dbb9f12c66fb6871c603ca927e1a (diff)
Change des_key_schedule to be an array of DES_LONG instead of abusing
struct and union semantics.
Diffstat (limited to 'lib/libdes')
-rw-r--r--lib/libdes/des.h12
-rw-r--r--lib/libdes/odes_enc.c4
-rw-r--r--lib/libdes/oset_key.c2
3 files changed, 11 insertions, 7 deletions
diff --git a/lib/libdes/des.h b/lib/libdes/des.h
index 49b909ec646..716305b8604 100644
--- a/lib/libdes/des.h
+++ b/lib/libdes/des.h
@@ -1,4 +1,4 @@
-/* $NetBSD: des.h,v 1.4 2003/07/24 14:16:30 itojun Exp $ */
+/* $NetBSD: des.h,v 1.5 2006/03/19 19:35:00 christos Exp $ */
/* crypto/des/des.h */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
@@ -77,6 +77,10 @@ typedef /* const */ unsigned char const_des_cblock[8];
/* With "const", gcc 2.8.1 on Solaris thinks that des_cblock *
* and const_des_cblock * are incompatible pointer types. */
+#define DES_KEY_SZ 8 /*(sizeof(des_cblock))*/
+#define DES_SCHEDULE_SZ 128 /*(sizeof(des_key_schedule))*/
+
+#ifdef notdef
typedef struct des_ks_struct
{
union {
@@ -89,9 +93,9 @@ typedef struct des_ks_struct
int weak_key;
#endif
} des_key_schedule[16];
-
-#define DES_KEY_SZ 8 /*(sizeof(des_cblock))*/
-#define DES_SCHEDULE_SZ 128 /*(sizeof(des_key_schedule))*/
+#else
+typedef DES_LONG des_key_schedule[DES_SCHEDULE_SZ / sizeof(DES_LONG)];
+#endif
#define DES_ENCRYPT 1
#define DES_DECRYPT 0
diff --git a/lib/libdes/odes_enc.c b/lib/libdes/odes_enc.c
index 0e92c925ca5..e97b59c6b9a 100644
--- a/lib/libdes/odes_enc.c
+++ b/lib/libdes/odes_enc.c
@@ -84,7 +84,7 @@ void des_encrypt1(DES_LONG *data, des_key_schedule ks, int enc)
r=ROTATE(r,29)&0xffffffffL;
l=ROTATE(l,29)&0xffffffffL;
- s=ks->ks.deslong;
+ s=ks;
/* I don't know if it is worth the effort of loop unrolling the
* inner loop */
if (enc)
@@ -180,7 +180,7 @@ void des_encrypt2(DES_LONG *data, des_key_schedule ks, int enc)
r=ROTATE(r,29)&0xffffffffL;
l=ROTATE(l,29)&0xffffffffL;
- s=ks->ks.deslong;
+ s=ks;
/* I don't know if it is worth the effort of loop unrolling the
* inner loop */
if (enc)
diff --git a/lib/libdes/oset_key.c b/lib/libdes/oset_key.c
index 1f43e3208dc..318e46290e7 100644
--- a/lib/libdes/oset_key.c
+++ b/lib/libdes/oset_key.c
@@ -342,7 +342,7 @@ void des_set_key_unchecked(const_des_cblock *key, des_key_schedule schedule)
register DES_LONG *k;
register int i;
- k = &schedule->ks.deslong[0];
+ k = schedule;
in = &(*key)[0];
c2l(in,c);