X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fdes%2Fenc_read.c;h=e7c853f5cc7be14b1b46deffa9d9fd6ea242446c;hp=51694a8bcf228bb4f10c2d6cff66f8deb2c6bee6;hb=0089a9dfa8a3e783d27c74623081dfa8c4352c29;hpb=e1999b1dab0d74f0779aaa63dd10bba2e48fe457 diff --git a/crypto/des/enc_read.c b/crypto/des/enc_read.c index 51694a8bcf..e7c853f5cc 100644 --- a/crypto/des/enc_read.c +++ b/crypto/des/enc_read.c @@ -63,15 +63,15 @@ /* This has some uglies in it but it works - even over sockets. */ /*extern int errno;*/ -OPENSSL_GLOBAL int des_rw_mode=DES_PCBC_MODE; +OPENSSL_IMPLEMENT_GLOBAL(int,DES_rw_mode,DES_PCBC_MODE) /* * WARNINGS: * - * - The data format used by des_enc_write() and des_enc_read() + * - 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 + * 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 @@ -84,9 +84,12 @@ OPENSSL_GLOBAL int des_rw_mode=DES_PCBC_MODE; */ -int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, - des_cblock iv) +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; @@ -103,17 +106,17 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, if (tmpbuf == NULL) { - tmpbuf=Malloc(BSIZE); + tmpbuf=OPENSSL_malloc(BSIZE); if (tmpbuf == NULL) return(-1); } if (net == NULL) { - net=Malloc(BSIZE); + net=OPENSSL_malloc(BSIZE); if (net == NULL) return(-1); } if (unnet == NULL) { - unnet=Malloc(BSIZE); + unnet=OPENSSL_malloc(BSIZE); if (unnet == NULL) return(-1); } /* left over data from last decrypt */ @@ -147,7 +150,11 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, /* first - get the length */ while (net_num < HDRSIZE) { - i=read(fd,&(net[net_num]),HDRSIZE-net_num); +#ifndef _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 @@ -169,7 +176,11 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, net_num=0; while (net_num < rnum) { - i=read(fd,&(net[net_num]),rnum-net_num); +#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 @@ -180,10 +191,10 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, /* 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); + 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); + DES_cbc_encrypt(net,unnet,num,sched,iv,DES_DECRYPT); memcpy(buf,unnet,len); unnet_start=len; unnet_left=num-len; @@ -202,11 +213,11 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, if (len < rnum) { - if (des_rw_mode & DES_PCBC_MODE) - des_pcbc_encrypt(net,tmpbuf,num,sched,iv, + 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_cbc_encrypt(net,tmpbuf,num,sched,iv, DES_DECRYPT); /* eay 26/08/92 fix a bug that returned more @@ -215,14 +226,15 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched, } else { - if (des_rw_mode & DES_PCBC_MODE) - des_pcbc_encrypt(net,buf,num,sched,iv, + 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_cbc_encrypt(net,buf,num,sched,iv, DES_DECRYPT); } } return num; +#endif /* OPENSSL_NO_POSIX_IO */ }