| OLD | NEW |
| (Empty) |
| 1 /* crypto/des/des_old.c -*- mode:C; c-file-style: "eay" -*- */ | |
| 2 | |
| 3 /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING | |
| 4 * | |
| 5 * The function names in here are deprecated and are only present to | |
| 6 * provide an interface compatible with libdes. OpenSSL now provides | |
| 7 * functions where "des_" has been replaced with "DES_" in the names, | |
| 8 * to make it possible to make incompatible changes that are needed | |
| 9 * for C type security and other stuff. | |
| 10 * | |
| 11 * Please consider starting to use the DES_ functions rather than the | |
| 12 * des_ ones. The des_ functions will dissapear completely before | |
| 13 * OpenSSL 1.0! | |
| 14 * | |
| 15 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING | |
| 16 */ | |
| 17 | |
| 18 /* Written by Richard Levitte (richard@levitte.org) for the OpenSSL | |
| 19 * project 2001. | |
| 20 */ | |
| 21 /* ==================================================================== | |
| 22 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. | |
| 23 * | |
| 24 * Redistribution and use in source and binary forms, with or without | |
| 25 * modification, are permitted provided that the following conditions | |
| 26 * are met: | |
| 27 * | |
| 28 * 1. Redistributions of source code must retain the above copyright | |
| 29 * notice, this list of conditions and the following disclaimer. | |
| 30 * | |
| 31 * 2. Redistributions in binary form must reproduce the above copyright | |
| 32 * notice, this list of conditions and the following disclaimer in | |
| 33 * the documentation and/or other materials provided with the | |
| 34 * distribution. | |
| 35 * | |
| 36 * 3. All advertising materials mentioning features or use of this | |
| 37 * software must display the following acknowledgment: | |
| 38 * "This product includes software developed by the OpenSSL Project | |
| 39 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | |
| 40 * | |
| 41 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | |
| 42 * endorse or promote products derived from this software without | |
| 43 * prior written permission. For written permission, please contact | |
| 44 * openssl-core@openssl.org. | |
| 45 * | |
| 46 * 5. Products derived from this software may not be called "OpenSSL" | |
| 47 * nor may "OpenSSL" appear in their names without prior written | |
| 48 * permission of the OpenSSL Project. | |
| 49 * | |
| 50 * 6. Redistributions of any form whatsoever must retain the following | |
| 51 * acknowledgment: | |
| 52 * "This product includes software developed by the OpenSSL Project | |
| 53 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | |
| 54 * | |
| 55 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | |
| 56 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 57 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
| 58 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | |
| 59 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| 60 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | |
| 61 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
| 62 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| 63 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | |
| 64 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
| 65 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | |
| 66 * OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 67 * ==================================================================== | |
| 68 * | |
| 69 * This product includes cryptographic software written by Eric Young | |
| 70 * (eay@cryptsoft.com). This product includes software written by Tim | |
| 71 * Hudson (tjh@cryptsoft.com). | |
| 72 * | |
| 73 */ | |
| 74 | |
| 75 #define OPENSSL_DES_LIBDES_COMPATIBILITY | |
| 76 #include <openssl/des.h> | |
| 77 #include <openssl/rand.h> | |
| 78 | |
| 79 const char *_ossl_old_des_options(void) | |
| 80 { | |
| 81 return DES_options(); | |
| 82 } | |
| 83 void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output, | |
| 84 des_key_schedule ks1,des_key_schedule ks2, | |
| 85 des_key_schedule ks3, int enc) | |
| 86 { | |
| 87 DES_ecb3_encrypt((const_DES_cblock *)input, output, | |
| 88 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 89 (DES_key_schedule *)ks3, enc); | |
| 90 } | |
| 91 DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cbloc
k *output, | |
| 92 long length,des_key_schedule schedule,_ossl_old_des_cblock *ivec) | |
| 93 { | |
| 94 return DES_cbc_cksum((unsigned char *)input, output, length, | |
| 95 (DES_key_schedule *)schedule, ivec); | |
| 96 } | |
| 97 void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output,long length, | |
| 98 des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc) | |
| 99 { | |
| 100 DES_cbc_encrypt((unsigned char *)input, (unsigned char *)output, | |
| 101 length, (DES_key_schedule *)schedule, ivec, enc); | |
| 102 } | |
| 103 void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output,long length, | |
| 104 des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc) | |
| 105 { | |
| 106 DES_ncbc_encrypt((unsigned char *)input, (unsigned char *)output, | |
| 107 length, (DES_key_schedule *)schedule, ivec, enc); | |
| 108 } | |
| 109 void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output,long length, | |
| 110 des_key_schedule schedule,_ossl_old_des_cblock *ivec, | |
| 111 _ossl_old_des_cblock *inw,_ossl_old_des_cblock *outw,int enc) | |
| 112 { | |
| 113 DES_xcbc_encrypt((unsigned char *)input, (unsigned char *)output, | |
| 114 length, (DES_key_schedule *)schedule, ivec, inw, outw, enc); | |
| 115 } | |
| 116 void _ossl_old_des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits, | |
| 117 long length,des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc
) | |
| 118 { | |
| 119 DES_cfb_encrypt(in, out, numbits, length, | |
| 120 (DES_key_schedule *)schedule, ivec, enc); | |
| 121 } | |
| 122 void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output, | |
| 123 des_key_schedule ks,int enc) | |
| 124 { | |
| 125 DES_ecb_encrypt(input, output, (DES_key_schedule *)ks, enc); | |
| 126 } | |
| 127 void _ossl_old_des_encrypt(DES_LONG *data,des_key_schedule ks, int enc) | |
| 128 { | |
| 129 DES_encrypt1(data, (DES_key_schedule *)ks, enc); | |
| 130 } | |
| 131 void _ossl_old_des_encrypt2(DES_LONG *data,des_key_schedule ks, int enc) | |
| 132 { | |
| 133 DES_encrypt2(data, (DES_key_schedule *)ks, enc); | |
| 134 } | |
| 135 void _ossl_old_des_encrypt3(DES_LONG *data, des_key_schedule ks1, | |
| 136 des_key_schedule ks2, des_key_schedule ks3) | |
| 137 { | |
| 138 DES_encrypt3(data, (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 139 (DES_key_schedule *)ks3); | |
| 140 } | |
| 141 void _ossl_old_des_decrypt3(DES_LONG *data, des_key_schedule ks1, | |
| 142 des_key_schedule ks2, des_key_schedule ks3) | |
| 143 { | |
| 144 DES_decrypt3(data, (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 145 (DES_key_schedule *)ks3); | |
| 146 } | |
| 147 void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, _ossl_old_des_c
block *output, | |
| 148 long length, des_key_schedule ks1, des_key_schedule ks2, | |
| 149 des_key_schedule ks3, _ossl_old_des_cblock *ivec, int enc) | |
| 150 { | |
| 151 DES_ede3_cbc_encrypt((unsigned char *)input, (unsigned char *)output, | |
| 152 length, (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 153 (DES_key_schedule *)ks3, ivec, enc); | |
| 154 } | |
| 155 void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, | |
| 156 long length, des_key_schedule ks1, des_key_schedule ks2, | |
| 157 des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num, int enc) | |
| 158 { | |
| 159 DES_ede3_cfb64_encrypt(in, out, length, | |
| 160 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 161 (DES_key_schedule *)ks3, ivec, num, enc); | |
| 162 } | |
| 163 void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, | |
| 164 long length, des_key_schedule ks1, des_key_schedule ks2, | |
| 165 des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num) | |
| 166 { | |
| 167 DES_ede3_ofb64_encrypt(in, out, length, | |
| 168 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, | |
| 169 (DES_key_schedule *)ks3, ivec, num); | |
| 170 } | |
| 171 | |
| 172 #if 0 /* broken code, preserved just in case anyone specifically looks for this
*/ | |
| 173 void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), _ossl_old_des_
cblock (*in_white), | |
| 174 _ossl_old_des_cblock (*out_white)) | |
| 175 { | |
| 176 DES_xwhite_in2out(des_key, in_white, out_white); | |
| 177 } | |
| 178 #endif | |
| 179 | |
| 180 int _ossl_old_des_enc_read(int fd,char *buf,int len,des_key_schedule sched, | |
| 181 _ossl_old_des_cblock *iv) | |
| 182 { | |
| 183 return DES_enc_read(fd, buf, len, (DES_key_schedule *)sched, iv); | |
| 184 } | |
| 185 int _ossl_old_des_enc_write(int fd,char *buf,int len,des_key_schedule sched, | |
| 186 _ossl_old_des_cblock *iv) | |
| 187 { | |
| 188 return DES_enc_write(fd, buf, len, (DES_key_schedule *)sched, iv); | |
| 189 } | |
| 190 char *_ossl_old_des_fcrypt(const char *buf,const char *salt, char *ret) | |
| 191 { | |
| 192 return DES_fcrypt(buf, salt, ret); | |
| 193 } | |
| 194 char *_ossl_old_des_crypt(const char *buf,const char *salt) | |
| 195 { | |
| 196 return DES_crypt(buf, salt); | |
| 197 } | |
| 198 char *_ossl_old_crypt(const char *buf,const char *salt) | |
| 199 { | |
| 200 return DES_crypt(buf, salt); | |
| 201 } | |
| 202 void _ossl_old_des_ofb_encrypt(unsigned char *in,unsigned char *out, | |
| 203 int numbits,long length,des_key_schedule schedule,_ossl_old_des_cblock *
ivec) | |
| 204 { | |
| 205 DES_ofb_encrypt(in, out, numbits, length, (DES_key_schedule *)schedule, | |
| 206 ivec); | |
| 207 } | |
| 208 void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
*output,long length, | |
| 209 des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc) | |
| 210 { | |
| 211 DES_pcbc_encrypt((unsigned char *)input, (unsigned char *)output, | |
| 212 length, (DES_key_schedule *)schedule, ivec, enc); | |
| 213 } | |
| 214 DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cblo
ck *output, | |
| 215 long length,int out_count,_ossl_old_des_cblock *seed) | |
| 216 { | |
| 217 return DES_quad_cksum((unsigned char *)input, output, length, | |
| 218 out_count, seed); | |
| 219 } | |
| 220 void _ossl_old_des_random_seed(_ossl_old_des_cblock key) | |
| 221 { | |
| 222 RAND_seed(key, sizeof(_ossl_old_des_cblock)); | |
| 223 } | |
| 224 void _ossl_old_des_random_key(_ossl_old_des_cblock ret) | |
| 225 { | |
| 226 DES_random_key((DES_cblock *)ret); | |
| 227 } | |
| 228 int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, | |
| 229 int verify) | |
| 230 { | |
| 231 return DES_read_password(key, prompt, verify); | |
| 232 } | |
| 233 int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, _ossl_old_des_cblo
ck *key2, | |
| 234 const char *prompt, int verify) | |
| 235 { | |
| 236 return DES_read_2passwords(key1, key2, prompt, verify); | |
| 237 } | |
| 238 void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key) | |
| 239 { | |
| 240 DES_set_odd_parity(key); | |
| 241 } | |
| 242 int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key) | |
| 243 { | |
| 244 return DES_is_weak_key(key); | |
| 245 } | |
| 246 int _ossl_old_des_set_key(_ossl_old_des_cblock *key,des_key_schedule schedule) | |
| 247 { | |
| 248 return DES_set_key(key, (DES_key_schedule *)schedule); | |
| 249 } | |
| 250 int _ossl_old_des_key_sched(_ossl_old_des_cblock *key,des_key_schedule schedule) | |
| 251 { | |
| 252 return DES_key_sched(key, (DES_key_schedule *)schedule); | |
| 253 } | |
| 254 void _ossl_old_des_string_to_key(char *str,_ossl_old_des_cblock *key) | |
| 255 { | |
| 256 DES_string_to_key(str, key); | |
| 257 } | |
| 258 void _ossl_old_des_string_to_2keys(char *str,_ossl_old_des_cblock *key1,_ossl_ol
d_des_cblock *key2) | |
| 259 { | |
| 260 DES_string_to_2keys(str, key1, key2); | |
| 261 } | |
| 262 void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, long len
gth, | |
| 263 des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num, int enc
) | |
| 264 { | |
| 265 DES_cfb64_encrypt(in, out, length, (DES_key_schedule *)schedule, | |
| 266 ivec, num, enc); | |
| 267 } | |
| 268 void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, long len
gth, | |
| 269 des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num) | |
| 270 { | |
| 271 DES_ofb64_encrypt(in, out, length, (DES_key_schedule *)schedule, | |
| 272 ivec, num); | |
| 273 } | |
| OLD | NEW |