mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
crypto/des: remove obsolete functions.
Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
5d8b70a45d
commit
bfcdd4d098
@ -1,12 +1,11 @@
|
||||
LIBS=../../libcrypto
|
||||
SOURCE[../../libcrypto]=\
|
||||
set_key.c ecb_enc.c cbc_enc.c \
|
||||
ecb3_enc.c cfb64enc.c cfb64ede.c cfb_enc.c ofb64ede.c \
|
||||
enc_read.c enc_writ.c ofb64enc.c \
|
||||
ofb_enc.c str2key.c pcbc_enc.c qud_cksm.c rand_key.c \
|
||||
ecb3_enc.c cfb64enc.c cfb64ede.c cfb_enc.c \
|
||||
ofb64ede.c ofb64enc.c ofb_enc.c \
|
||||
str2key.c pcbc_enc.c qud_cksm.c rand_key.c \
|
||||
{- $target{des_asm_src} -} \
|
||||
fcrypt.c xcbc_enc.c rpc_enc.c cbc_cksm.c \
|
||||
read2pwd.c
|
||||
fcrypt.c xcbc_enc.c rpc_enc.c cbc_cksm.c
|
||||
|
||||
GENERATE[des_enc-sparc.S]=asm/des_enc.m4
|
||||
GENERATE[dest4-sparcv9.S]=asm/dest4-sparcv9.pl $(PERLASM_SCHEME)
|
||||
|
@ -60,38 +60,12 @@
|
||||
|
||||
# include <openssl/e_os2.h>
|
||||
|
||||
# if defined(OPENSSL_SYS_WIN32)
|
||||
# ifndef OPENSSL_SYS_MSDOS
|
||||
# define OPENSSL_SYS_MSDOS
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
|
||||
# ifndef OPENSSL_SYS_MSDOS
|
||||
# if !defined(OPENSSL_SYS_VMS) || defined(__DECC)
|
||||
# ifdef OPENSSL_UNISTD
|
||||
# include OPENSSL_UNISTD
|
||||
# else
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
# include <math.h>
|
||||
# endif
|
||||
# endif
|
||||
# include <openssl/des.h>
|
||||
|
||||
# ifdef OPENSSL_SYS_MSDOS /* Visual C++ 2.1 (Windows NT/95) */
|
||||
# include <stdlib.h>
|
||||
# include <errno.h>
|
||||
# include <time.h>
|
||||
# include <io.h>
|
||||
# endif
|
||||
|
||||
# if defined(__STDC__) || defined(OPENSSL_SYS_VMS) || defined(M_XENIX) || defined(OPENSSL_SYS_MSDOS)
|
||||
# include <string.h>
|
||||
# endif
|
||||
|
||||
# ifdef OPENSSL_BUILD_SHLIBCRYPTO
|
||||
# undef OPENSSL_EXTERN
|
||||
# define OPENSSL_EXTERN OPENSSL_EXPORT
|
||||
|
@ -1,234 +0,0 @@
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include "internal/cryptlib.h"
|
||||
#include "des_locl.h"
|
||||
|
||||
/* This has some uglies in it but it works - even over sockets. */
|
||||
/*
|
||||
* extern int errno;
|
||||
*/
|
||||
OPENSSL_IMPLEMENT_GLOBAL(int, DES_rw_mode, DES_PCBC_MODE)
|
||||
|
||||
/*-
|
||||
* WARNINGS:
|
||||
*
|
||||
* - The data format used by DES_enc_write() and DES_enc_read()
|
||||
* has a cryptographic weakness: When asked to write more
|
||||
* than MAXWRITE bytes, DES_enc_write will split the data
|
||||
* into several chunks that are all encrypted
|
||||
* using the same IV. So don't use these functions unless you
|
||||
* are sure you know what you do (in which case you might
|
||||
* not want to use them anyway).
|
||||
*
|
||||
* - This code cannot handle non-blocking sockets.
|
||||
*
|
||||
* - This function uses an internal state and thus cannot be
|
||||
* used on multiple files.
|
||||
*/
|
||||
int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
|
||||
DES_cblock *iv)
|
||||
{
|
||||
#if defined(OPENSSL_NO_POSIX_IO)
|
||||
return (0);
|
||||
#else
|
||||
/* data to be unencrypted */
|
||||
int net_num = 0;
|
||||
static unsigned char *net = NULL;
|
||||
/*
|
||||
* extra unencrypted data for when a block of 100 comes in but is
|
||||
* des_read one byte at a time.
|
||||
*/
|
||||
static unsigned char *unnet = NULL;
|
||||
static int unnet_start = 0;
|
||||
static int unnet_left = 0;
|
||||
static unsigned char *tmpbuf = NULL;
|
||||
int i;
|
||||
long num = 0, rnum;
|
||||
unsigned char *p;
|
||||
|
||||
if (tmpbuf == NULL) {
|
||||
tmpbuf = OPENSSL_malloc(BSIZE);
|
||||
if (tmpbuf == NULL)
|
||||
return (-1);
|
||||
}
|
||||
if (net == NULL) {
|
||||
net = OPENSSL_malloc(BSIZE);
|
||||
if (net == NULL)
|
||||
return (-1);
|
||||
}
|
||||
if (unnet == NULL) {
|
||||
unnet = OPENSSL_malloc(BSIZE);
|
||||
if (unnet == NULL)
|
||||
return (-1);
|
||||
}
|
||||
/* left over data from last decrypt */
|
||||
if (unnet_left != 0) {
|
||||
if (unnet_left < len) {
|
||||
/*
|
||||
* we still still need more data but will return with the number
|
||||
* of bytes we have - should always check the return value
|
||||
*/
|
||||
memcpy(buf, &(unnet[unnet_start]), unnet_left);
|
||||
/*
|
||||
* eay 26/08/92 I had the next 2 lines reversed :-(
|
||||
*/
|
||||
i = unnet_left;
|
||||
unnet_start = unnet_left = 0;
|
||||
} else {
|
||||
memcpy(buf, &(unnet[unnet_start]), len);
|
||||
unnet_start += len;
|
||||
unnet_left -= len;
|
||||
i = len;
|
||||
}
|
||||
return (i);
|
||||
}
|
||||
|
||||
/* We need to get more data. */
|
||||
if (len > MAXWRITE)
|
||||
len = MAXWRITE;
|
||||
|
||||
/* first - get the length */
|
||||
while (net_num < HDRSIZE) {
|
||||
# ifndef OPENSSL_SYS_WIN32
|
||||
i = read(fd, (void *)&(net[net_num]), HDRSIZE - net_num);
|
||||
# else
|
||||
i = _read(fd, (void *)&(net[net_num]), HDRSIZE - net_num);
|
||||
# endif
|
||||
# ifdef EINTR
|
||||
if ((i == -1) && (errno == EINTR))
|
||||
continue;
|
||||
# endif
|
||||
if (i <= 0)
|
||||
return (0);
|
||||
net_num += i;
|
||||
}
|
||||
|
||||
/* we now have at net_num bytes in net */
|
||||
p = net;
|
||||
/* num=0; */
|
||||
n2l(p, num);
|
||||
/*
|
||||
* num should be rounded up to the next group of eight we make sure that
|
||||
* we have read a multiple of 8 bytes from the net.
|
||||
*/
|
||||
if ((num > MAXWRITE) || (num < 0)) /* error */
|
||||
return (-1);
|
||||
rnum = (num < 8) ? 8 : ((num + 7) / 8 * 8);
|
||||
|
||||
net_num = 0;
|
||||
while (net_num < rnum) {
|
||||
# ifndef OPENSSL_SYS_WIN32
|
||||
i = read(fd, (void *)&(net[net_num]), rnum - net_num);
|
||||
# else
|
||||
i = _read(fd, (void *)&(net[net_num]), rnum - net_num);
|
||||
# endif
|
||||
# ifdef EINTR
|
||||
if ((i == -1) && (errno == EINTR))
|
||||
continue;
|
||||
# endif
|
||||
if (i <= 0)
|
||||
return (0);
|
||||
net_num += i;
|
||||
}
|
||||
|
||||
/* Check if there will be data left over. */
|
||||
if (len < num) {
|
||||
if (DES_rw_mode & DES_PCBC_MODE)
|
||||
DES_pcbc_encrypt(net, unnet, num, sched, iv, DES_DECRYPT);
|
||||
else
|
||||
DES_cbc_encrypt(net, unnet, num, sched, iv, DES_DECRYPT);
|
||||
memcpy(buf, unnet, len);
|
||||
unnet_start = len;
|
||||
unnet_left = num - len;
|
||||
|
||||
/*
|
||||
* The following line is done because we return num as the number of
|
||||
* bytes read.
|
||||
*/
|
||||
num = len;
|
||||
} else {
|
||||
/*-
|
||||
* >output is a multiple of 8 byes, if len < rnum
|
||||
* >we must be careful. The user must be aware that this
|
||||
* >routine will write more bytes than he asked for.
|
||||
* >The length of the buffer must be correct.
|
||||
* FIXED - Should be ok now 18-9-90 - eay */
|
||||
if (len < rnum) {
|
||||
|
||||
if (DES_rw_mode & DES_PCBC_MODE)
|
||||
DES_pcbc_encrypt(net, tmpbuf, num, sched, iv, DES_DECRYPT);
|
||||
else
|
||||
DES_cbc_encrypt(net, tmpbuf, num, sched, iv, DES_DECRYPT);
|
||||
|
||||
/*
|
||||
* eay 26/08/92 fix a bug that returned more bytes than you asked
|
||||
* for (returned len bytes :-(
|
||||
*/
|
||||
memcpy(buf, tmpbuf, num);
|
||||
} else {
|
||||
if (DES_rw_mode & DES_PCBC_MODE)
|
||||
DES_pcbc_encrypt(net, buf, num, sched, iv, DES_DECRYPT);
|
||||
else
|
||||
DES_cbc_encrypt(net, buf, num, sched, iv, DES_DECRYPT);
|
||||
}
|
||||
}
|
||||
return num;
|
||||
#endif /* OPENSSL_NO_POSIX_IO */
|
||||
}
|
@ -1,180 +0,0 @@
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
#include "internal/cryptlib.h"
|
||||
#include "des_locl.h"
|
||||
#include <openssl/rand.h>
|
||||
|
||||
/*-
|
||||
* WARNINGS:
|
||||
*
|
||||
* - The data format used by DES_enc_write() and DES_enc_read()
|
||||
* has a cryptographic weakness: When asked to write more
|
||||
* than MAXWRITE bytes, DES_enc_write will split the data
|
||||
* into several chunks that are all encrypted
|
||||
* using the same IV. So don't use these functions unless you
|
||||
* are sure you know what you do (in which case you might
|
||||
* not want to use them anyway).
|
||||
*
|
||||
* - This code cannot handle non-blocking sockets.
|
||||
*/
|
||||
|
||||
int DES_enc_write(int fd, const void *_buf, int len,
|
||||
DES_key_schedule *sched, DES_cblock *iv)
|
||||
{
|
||||
#if defined(OPENSSL_NO_POSIX_IO)
|
||||
return (-1);
|
||||
#else
|
||||
# ifdef _LIBC
|
||||
extern unsigned long time();
|
||||
extern int write();
|
||||
# endif
|
||||
const unsigned char *buf = _buf;
|
||||
long rnum;
|
||||
int i, j, k, outnum;
|
||||
static unsigned char *outbuf = NULL;
|
||||
unsigned char shortbuf[8];
|
||||
unsigned char *p;
|
||||
const unsigned char *cp;
|
||||
static int start = 1;
|
||||
|
||||
if (len < 0)
|
||||
return -1;
|
||||
|
||||
if (outbuf == NULL) {
|
||||
outbuf = OPENSSL_malloc(BSIZE + HDRSIZE);
|
||||
if (outbuf == NULL)
|
||||
return (-1);
|
||||
}
|
||||
/*
|
||||
* If we are sending less than 8 bytes, the same char will look the same
|
||||
* if we don't pad it out with random bytes
|
||||
*/
|
||||
if (start) {
|
||||
start = 0;
|
||||
}
|
||||
|
||||
/* lets recurse if we want to send the data in small chunks */
|
||||
if (len > MAXWRITE) {
|
||||
j = 0;
|
||||
for (i = 0; i < len; i += k) {
|
||||
k = DES_enc_write(fd, &(buf[i]),
|
||||
((len - i) > MAXWRITE) ? MAXWRITE : (len - i),
|
||||
sched, iv);
|
||||
if (k < 0)
|
||||
return (k);
|
||||
else
|
||||
j += k;
|
||||
}
|
||||
return (j);
|
||||
}
|
||||
|
||||
/* write length first */
|
||||
p = outbuf;
|
||||
l2n(len, p);
|
||||
|
||||
/* pad short strings */
|
||||
if (len < 8) {
|
||||
cp = shortbuf;
|
||||
memcpy(shortbuf, buf, len);
|
||||
if (RAND_bytes(shortbuf + len, 8 - len) <= 0)
|
||||
return -1;
|
||||
rnum = 8;
|
||||
} else {
|
||||
cp = buf;
|
||||
rnum = ((len + 7) / 8 * 8); /* round up to nearest eight */
|
||||
}
|
||||
|
||||
if (DES_rw_mode & DES_PCBC_MODE)
|
||||
DES_pcbc_encrypt(cp, &(outbuf[HDRSIZE]), (len < 8) ? 8 : len, sched,
|
||||
iv, DES_ENCRYPT);
|
||||
else
|
||||
DES_cbc_encrypt(cp, &(outbuf[HDRSIZE]), (len < 8) ? 8 : len, sched,
|
||||
iv, DES_ENCRYPT);
|
||||
|
||||
/* output */
|
||||
outnum = rnum + HDRSIZE;
|
||||
|
||||
for (j = 0; j < outnum; j += i) {
|
||||
/*
|
||||
* eay 26/08/92 I was not doing writing from where we got up to.
|
||||
*/
|
||||
# ifndef _WIN32
|
||||
i = write(fd, (void *)&(outbuf[j]), outnum - j);
|
||||
# else
|
||||
i = _write(fd, (void *)&(outbuf[j]), outnum - j);
|
||||
# endif
|
||||
if (i == -1) {
|
||||
# ifdef EINTR
|
||||
if (errno == EINTR)
|
||||
i = 0;
|
||||
else
|
||||
# endif
|
||||
/*
|
||||
* This is really a bad error - very bad It will stuff-up
|
||||
* both ends.
|
||||
*/
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
|
||||
return (len);
|
||||
#endif /* OPENSSL_NO_POSIX_IO */
|
||||
}
|
@ -1,146 +0,0 @@
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2001-2002 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <openssl/des.h>
|
||||
#include <openssl/ui.h>
|
||||
#include <openssl/crypto.h>
|
||||
|
||||
#ifndef OPENSSL_NO_UI
|
||||
|
||||
#ifndef BUFSIZ
|
||||
#define BUFSIZ 256
|
||||
#endif
|
||||
|
||||
int DES_read_password(DES_cblock *key, const char *prompt, int verify)
|
||||
{
|
||||
int ok;
|
||||
char buf[BUFSIZ], buff[BUFSIZ];
|
||||
|
||||
if ((ok = UI_UTIL_read_pw(buf, buff, BUFSIZ, prompt, verify)) == 0)
|
||||
DES_string_to_key(buf, key);
|
||||
OPENSSL_cleanse(buf, BUFSIZ);
|
||||
OPENSSL_cleanse(buff, BUFSIZ);
|
||||
return (ok);
|
||||
}
|
||||
|
||||
int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2,
|
||||
const char *prompt, int verify)
|
||||
{
|
||||
int ok;
|
||||
char buf[BUFSIZ], buff[BUFSIZ];
|
||||
|
||||
if ((ok = UI_UTIL_read_pw(buf, buff, BUFSIZ, prompt, verify)) == 0)
|
||||
DES_string_to_2keys(buf, key1, key2);
|
||||
OPENSSL_cleanse(buf, BUFSIZ);
|
||||
OPENSSL_cleanse(buff, BUFSIZ);
|
||||
return (ok);
|
||||
}
|
||||
#endif
|
@ -10,7 +10,7 @@ DES_ofb64_encrypt, DES_xcbc_encrypt, DES_ede2_cbc_encrypt,
|
||||
DES_ede2_cfb64_encrypt, DES_ede2_ofb64_encrypt, DES_ede3_cbc_encrypt,
|
||||
DES_ede3_cfb64_encrypt, DES_ede3_ofb64_encrypt,
|
||||
DES_cbc_cksum, DES_quad_cksum, DES_string_to_key, DES_string_to_2keys,
|
||||
DES_fcrypt, DES_crypt, DES_enc_read, DES_enc_write - DES encryption
|
||||
DES_fcrypt, DES_crypt - DES encryption
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
@ -93,11 +93,6 @@ DES_fcrypt, DES_crypt, DES_enc_read, DES_enc_write - DES encryption
|
||||
char *DES_fcrypt(const char *buf, const char *salt, char *ret);
|
||||
char *DES_crypt(const char *buf, const char *salt);
|
||||
|
||||
int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
|
||||
DES_cblock *iv);
|
||||
int DES_enc_write(int fd, const void *buf, int len,
|
||||
DES_key_schedule *sched, DES_cblock *iv);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This library contains a fast implementation of the DES encryption
|
||||
@ -256,25 +251,6 @@ containing the length of the following encrypted data. The encrypted
|
||||
data then follows, padded with random data out to a multiple of 8
|
||||
bytes.
|
||||
|
||||
DES_enc_read() is used to read I<len> bytes from file descriptor
|
||||
I<fd> into buffer I<buf>. The data being read from I<fd> is assumed to
|
||||
have come from DES_enc_write() and is decrypted using I<sched> for
|
||||
the key schedule and I<iv> for the initial vector.
|
||||
|
||||
B<Warning:> The data format used by DES_enc_write() and DES_enc_read()
|
||||
has a cryptographic weakness: When asked to write more than MAXWRITE
|
||||
bytes, DES_enc_write() will split the data into several chunks that
|
||||
are all encrypted using the same IV. So don't use these functions
|
||||
unless you are sure you know what you do (in which case you might not
|
||||
want to use them anyway). They cannot handle non-blocking sockets.
|
||||
DES_enc_read() uses an internal state and thus cannot be used on
|
||||
multiple files.
|
||||
|
||||
I<DES_rw_mode> is used to specify the encryption mode to use with
|
||||
DES_enc_read() and DES_end_write(). If set to I<DES_PCBC_MODE> (the
|
||||
default), DES_pcbc_encrypt is used. If set to I<DES_CBC_MODE>
|
||||
DES_cbc_encrypt is used.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
DES_3cbc_encrypt() is flawed and must not be used in applications.
|
||||
|
@ -113,8 +113,6 @@ typedef struct DES_ks {
|
||||
|
||||
OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */
|
||||
# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key)
|
||||
OPENSSL_DECLARE_GLOBAL(int, DES_rw_mode); /* defaults to DES_PCBC_MODE */
|
||||
# define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode)
|
||||
|
||||
const char *DES_options(void);
|
||||
void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
|
||||
@ -182,10 +180,6 @@ void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
long length, DES_key_schedule *ks1,
|
||||
DES_key_schedule *ks2, DES_key_schedule *ks3,
|
||||
DES_cblock *ivec, int *num);
|
||||
int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched,
|
||||
DES_cblock *iv);
|
||||
int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched,
|
||||
DES_cblock *iv);
|
||||
char *DES_fcrypt(const char *buf, const char *salt, char *ret);
|
||||
char *DES_crypt(const char *buf, const char *salt);
|
||||
void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
|
||||
@ -218,12 +212,6 @@ void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
long length, DES_key_schedule *schedule,
|
||||
DES_cblock *ivec, int *num);
|
||||
|
||||
#ifndef OPENSSL_NO_UI
|
||||
int DES_read_password(DES_cblock *key, const char *prompt, int verify);
|
||||
int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2,
|
||||
const char *prompt, int verify);
|
||||
#endif
|
||||
|
||||
# define DES_fixup_key_parity DES_set_odd_parity
|
||||
|
||||
# ifdef __cplusplus
|
||||
|
@ -1069,7 +1069,7 @@ TS_REQ_set_msg_imprint 1037 1_1_0 EXIST::FUNCTION:TS
|
||||
BN_mod_sub_quick 1038 1_1_0 EXIST::FUNCTION:
|
||||
SMIME_write_CMS 1039 1_1_0 EXIST::FUNCTION:CMS
|
||||
i2d_DSAPublicKey 1040 1_1_0 EXIST::FUNCTION:DSA
|
||||
DES_enc_write 1041 1_1_0 EXIST::FUNCTION:DES
|
||||
DES_enc_write 1041 1_1_0 NOEXIST::FUNCTION:
|
||||
SMIME_text 1042 1_1_0 EXIST::FUNCTION:
|
||||
PKCS7_add_recipient_info 1043 1_1_0 EXIST::FUNCTION:
|
||||
BN_get_word 1044 1_1_0 EXIST::FUNCTION:
|
||||
@ -1407,8 +1407,7 @@ ASN1_SCTX_get_app_data 1365 1_1_0 EXIST::FUNCTION:
|
||||
X509_get_default_cert_file_env 1366 1_1_0 EXIST::FUNCTION:
|
||||
X509v3_addr_validate_resource_set 1367 1_1_0 EXIST::FUNCTION:RFC3779
|
||||
d2i_X509_VAL 1368 1_1_0 EXIST::FUNCTION:
|
||||
_shadow_DES_rw_mode 1369 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES
|
||||
_shadow_DES_rw_mode 1369 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES
|
||||
_shadow_DES_rw_mode 1369 1_1_0 NOEXIST::FUNCTION:
|
||||
CRYPTO_gcm128_decrypt_ctr32 1370 1_1_0 EXIST::FUNCTION:
|
||||
DHparams_print 1371 1_1_0 EXIST::FUNCTION:DH
|
||||
sk_unshift 1372 1_1_0 EXIST::FUNCTION:
|
||||
@ -2246,7 +2245,7 @@ TS_RESP_CTX_set_accuracy 2174 1_1_0 EXIST::FUNCTION:TS
|
||||
NETSCAPE_SPKI_get_pubkey 2175 1_1_0 EXIST::FUNCTION:
|
||||
ECDSA_do_sign_ex 2176 1_1_0 EXIST::FUNCTION:EC
|
||||
OCSP_ONEREQ_get_ext 2177 1_1_0 EXIST::FUNCTION:OCSP
|
||||
DES_read_password 2178 1_1_0 EXIST::FUNCTION:DES,UI
|
||||
DES_read_password 2178 1_1_0 NOEXIST::FUNCTION:
|
||||
BN_get_rfc3526_prime_4096 2179 1_1_0 EXIST::FUNCTION:
|
||||
d2i_PKCS7_fp 2180 1_1_0 EXIST::FUNCTION:STDIO
|
||||
PEM_write_bio_NETSCAPE_CERT_SEQUENCE 2181 1_1_0 EXIST::FUNCTION:
|
||||
@ -3496,7 +3495,7 @@ X509_CINF_new 3382 1_1_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_keygen_init 3383 1_1_0 EXIST::FUNCTION:
|
||||
EVP_aes_192_ocb 3384 1_1_0 EXIST::FUNCTION:OCB
|
||||
EVP_camellia_256_cfb1 3385 1_1_0 EXIST::FUNCTION:CAMELLIA
|
||||
DES_read_2passwords 3386 1_1_0 EXIST::FUNCTION:DES,UI
|
||||
DES_read_2passwords 3386 1_1_0 NOEXIST::FUNCTION:
|
||||
CRYPTO_secure_actual_size 3387 1_1_0 EXIST::FUNCTION:
|
||||
COMP_CTX_free 3388 1_1_0 EXIST::FUNCTION:COMP
|
||||
i2d_PBE2PARAM 3389 1_1_0 EXIST::FUNCTION:
|
||||
@ -3931,7 +3930,7 @@ USERNOTICE_it 3809 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:
|
||||
PKEY_USAGE_PERIOD_it 3810 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
|
||||
PKEY_USAGE_PERIOD_it 3810 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
|
||||
BN_mul_word 3811 1_1_0 EXIST::FUNCTION:
|
||||
DES_enc_read 3812 1_1_0 EXIST::FUNCTION:DES
|
||||
DES_enc_read 3812 1_1_0 NOEXIST::FUNCTION:
|
||||
i2d_IPAddressRange 3813 1_1_0 EXIST::FUNCTION:RFC3779
|
||||
CMS_unsigned_add1_attr_by_txt 3814 1_1_0 EXIST::FUNCTION:CMS
|
||||
d2i_RSA_PUBKEY 3815 1_1_0 EXIST::FUNCTION:RSA
|
||||
|
Loading…
Reference in New Issue
Block a user