diff options
Diffstat (limited to 'src/lib/libcrypto/des/set_key.c')
-rw-r--r-- | src/lib/libcrypto/des/set_key.c | 36 |
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 | 70 | static int check_parity(const_des_cblock *key); |
71 | static int check_parity(des_cblock (*key)); | 71 | OPENSSL_GLOBAL int des_check_key=0; |
72 | #else | ||
73 | static int check_parity(); | ||
74 | #endif | ||
75 | 72 | ||
76 | int des_check_key=0; | 73 | void des_set_odd_parity(des_cblock *key) |
77 | |||
78 | void des_set_odd_parity(key) | ||
79 | des_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 | ||
87 | static int check_parity(key) | 81 | static int check_parity(const_des_cblock *key) |
88 | des_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 | ||
130 | int des_is_weak_key(key) | 123 | int des_is_weak_key(const_des_cblock *key) |
131 | des_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 | */ |
160 | int des_set_key(key, schedule) | 152 | int des_set_key(const_des_cblock *key, des_key_schedule schedule) |
161 | des_cblock (*key); | ||
162 | des_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 | ||
241 | int des_key_sched(key, schedule) | 231 | int des_key_sched(const_des_cblock *key, des_key_schedule schedule) |
242 | des_cblock (*key); | ||
243 | des_key_schedule schedule; | ||
244 | { | 232 | { |
245 | return(des_set_key(key,schedule)); | 233 | return(des_set_key(key,schedule)); |
246 | } | 234 | } |