summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/set_key.c
diff options
context:
space:
mode:
authorbeck <>1999-09-29 04:37:45 +0000
committerbeck <>1999-09-29 04:37:45 +0000
commitde8f24ea083384bb66b32ec105dc4743c5663cdf (patch)
tree1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/des/set_key.c
parentcb929d29896bcb87c2a97417fbd03e50078fc178 (diff)
downloadopenbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz
openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2
openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/des/set_key.c')
-rw-r--r--src/lib/libcrypto/des/set_key.c36
1 files changed, 12 insertions, 24 deletions
diff --git a/src/lib/libcrypto/des/set_key.c b/src/lib/libcrypto/des/set_key.c
index c3bcd7ee2b..52553a4c16 100644
--- a/src/lib/libcrypto/des/set_key.c
+++ b/src/lib/libcrypto/des/set_key.c
@@ -67,16 +67,10 @@
67#include "podd.h" 67#include "podd.h"
68#include "sk.h" 68#include "sk.h"
69 69
70#ifndef NOPROTO 70static int check_parity(const_des_cblock *key);
71static int check_parity(des_cblock (*key)); 71OPENSSL_GLOBAL int des_check_key=0;
72#else
73static int check_parity();
74#endif
75 72
76int des_check_key=0; 73void des_set_odd_parity(des_cblock *key)
77
78void des_set_odd_parity(key)
79des_cblock (*key);
80 { 74 {
81 int i; 75 int i;
82 76
@@ -84,8 +78,7 @@ des_cblock (*key);
84 (*key)[i]=odd_parity[(*key)[i]]; 78 (*key)[i]=odd_parity[(*key)[i]];
85 } 79 }
86 80
87static int check_parity(key) 81static int check_parity(const_des_cblock *key)
88des_cblock (*key);
89 { 82 {
90 int i; 83 int i;
91 84
@@ -111,8 +104,8 @@ static des_cblock weak_keys[NUM_WEAK_KEY]={
111 /* weak keys */ 104 /* weak keys */
112 {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}, 105 {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},
113 {0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE}, 106 {0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE},
114 {0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F}, 107 {0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E},
115 {0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0}, 108 {0xE0,0xE0,0xE0,0xE0,0xF1,0xF1,0xF1,0xF1},
116 /* semi-weak keys */ 109 /* semi-weak keys */
117 {0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE}, 110 {0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE},
118 {0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01}, 111 {0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01},
@@ -127,8 +120,7 @@ static des_cblock weak_keys[NUM_WEAK_KEY]={
127 {0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE}, 120 {0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE},
128 {0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1}}; 121 {0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1}};
129 122
130int des_is_weak_key(key) 123int des_is_weak_key(const_des_cblock *key)
131des_cblock (*key);
132 { 124 {
133 int i; 125 int i;
134 126
@@ -157,13 +149,11 @@ des_cblock (*key);
157 * return -1 if key parity error, 149 * return -1 if key parity error,
158 * return -2 if illegal weak key. 150 * return -2 if illegal weak key.
159 */ 151 */
160int des_set_key(key, schedule) 152int des_set_key(const_des_cblock *key, des_key_schedule schedule)
161des_cblock (*key);
162des_key_schedule schedule;
163 { 153 {
164 static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; 154 static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
165 register DES_LONG c,d,t,s,t2; 155 register DES_LONG c,d,t,s,t2;
166 register unsigned char *in; 156 register const unsigned char *in;
167 register DES_LONG *k; 157 register DES_LONG *k;
168 register int i; 158 register int i;
169 159
@@ -176,8 +166,8 @@ des_key_schedule schedule;
176 return(-2); 166 return(-2);
177 } 167 }
178 168
179 k=(DES_LONG *)schedule; 169 k = &schedule->ks.deslong[0];
180 in=(unsigned char *)key; 170 in = &(*key)[0];
181 171
182 c2l(in,c); 172 c2l(in,c);
183 c2l(in,d); 173 c2l(in,d);
@@ -238,9 +228,7 @@ des_key_schedule schedule;
238 return(0); 228 return(0);
239 } 229 }
240 230
241int des_key_sched(key, schedule) 231int des_key_sched(const_des_cblock *key, des_key_schedule schedule)
242des_cblock (*key);
243des_key_schedule schedule;
244 { 232 {
245 return(des_set_key(key,schedule)); 233 return(des_set_key(key,schedule));
246 } 234 }