Run util/openssl-format-source -v -c .
Reviewed-by: Tim Hudson <tjh@openssl.org>
This commit is contained in:
46
bugs/alpha.c
46
bugs/alpha.c
@@ -5,21 +5,21 @@
|
||||
* 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:
|
||||
@@ -34,10 +34,10 @@
|
||||
* 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
|
||||
* 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
|
||||
@@ -49,16 +49,17 @@
|
||||
* 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.]
|
||||
*/
|
||||
|
||||
/* while not exactly a bug (ASN1 C leaves this undefined) it is
|
||||
* something to watch out for. This was fine on linux/NT/Solaris but not
|
||||
* Alpha */
|
||||
/*
|
||||
* while not exactly a bug (ASN1 C leaves this undefined) it is something to
|
||||
* watch out for. This was fine on linux/NT/Solaris but not Alpha
|
||||
*/
|
||||
|
||||
/*-
|
||||
* it is basically an example of
|
||||
@@ -70,23 +71,22 @@
|
||||
|
||||
#define TYPE unsigned int
|
||||
|
||||
void func(a,b)
|
||||
void func(a, b)
|
||||
TYPE *a;
|
||||
TYPE b;
|
||||
{
|
||||
printf("%ld -1 == %ld\n",a[0],b);
|
||||
}
|
||||
{
|
||||
printf("%ld -1 == %ld\n", a[0], b);
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
TYPE data[5]={1L,2L,3L,4L,5L};
|
||||
TYPE *p;
|
||||
int i;
|
||||
{
|
||||
TYPE data[5] = { 1L, 2L, 3L, 4L, 5L };
|
||||
TYPE *p;
|
||||
int i;
|
||||
|
||||
p=data;
|
||||
p = data;
|
||||
|
||||
for (i=0; i<4; i++)
|
||||
{
|
||||
func(p,*(p++));
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
func(p, *(p++));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* There is a bug in
|
||||
* gcc version 2.5.8 (88open OCS/BCS, DG-2.5.8.3, Oct 14 1994)
|
||||
* as shipped with DGUX 5.4R3.10 that can be bypassed by defining
|
||||
* DG_GCC_BUG in my code.
|
||||
* The bug manifests itself by the vaule of a pointer that is
|
||||
* used only by reference, not having it's value change when it is used
|
||||
* to check for exiting the loop. Probably caused by there being 2
|
||||
* copies of the valiable, one in a register and one being an address
|
||||
* that is passed. */
|
||||
/*
|
||||
* There is a bug in gcc version 2.5.8 (88open OCS/BCS, DG-2.5.8.3, Oct 14
|
||||
* 1994) as shipped with DGUX 5.4R3.10 that can be bypassed by defining
|
||||
* DG_GCC_BUG in my code. The bug manifests itself by the vaule of a pointer
|
||||
* that is used only by reference, not having it's value change when it is
|
||||
* used to check for exiting the loop. Probably caused by there being 2
|
||||
* copies of the valiable, one in a register and one being an address that is
|
||||
* passed.
|
||||
*/
|
||||
|
||||
/*-
|
||||
* compare the out put from
|
||||
@@ -24,23 +24,22 @@
|
||||
|
||||
void inc(a)
|
||||
int *a;
|
||||
{
|
||||
(*a)++;
|
||||
}
|
||||
{
|
||||
(*a)++;
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
int p=0;
|
||||
{
|
||||
int p = 0;
|
||||
#ifdef FIXBUG
|
||||
int dummy;
|
||||
int dummy;
|
||||
#endif
|
||||
|
||||
while (p<3)
|
||||
{
|
||||
fprintf(stderr,"%08X\n",p);
|
||||
inc(&p);
|
||||
while (p < 3) {
|
||||
fprintf(stderr, "%08X\n", p);
|
||||
inc(&p);
|
||||
#ifdef FIXBUG
|
||||
dummy+=p;
|
||||
dummy += p;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are
|
||||
* the only versions of IRIX I have access to.
|
||||
* defining FIXBUG removes the bug.
|
||||
* (bug is still present in IRIX 6.3 according to
|
||||
* Gage <agage@forgetmenot.Mines.EDU>
|
||||
/*
|
||||
* This compiler bug it present on IRIX 5.3, 5.1 and 4.0.5 (these are the
|
||||
* only versions of IRIX I have access to. defining FIXBUG removes the bug.
|
||||
* (bug is still present in IRIX 6.3 according to Gage
|
||||
* <agage@forgetmenot.Mines.EDU>
|
||||
*/
|
||||
|
||||
|
||||
/*-
|
||||
* Compare the output from
|
||||
* cc sgiccbug.c; ./a.out
|
||||
@@ -18,41 +18,43 @@
|
||||
* cc -O sgiccbug.c; ./a.out
|
||||
*/
|
||||
|
||||
static unsigned long a[4]={0x01234567,0x89ABCDEF,0xFEDCBA98,0x76543210};
|
||||
static unsigned long b[4]={0x89ABCDEF,0xFEDCBA98,0x76543210,0x01234567};
|
||||
static unsigned long c[4]={0x77777778,0x8ACF1357,0x88888888,0x7530ECA9};
|
||||
static unsigned long a[4] =
|
||||
{ 0x01234567, 0x89ABCDEF, 0xFEDCBA98, 0x76543210 };
|
||||
static unsigned long b[4] =
|
||||
{ 0x89ABCDEF, 0xFEDCBA98, 0x76543210, 0x01234567 };
|
||||
static unsigned long c[4] =
|
||||
{ 0x77777778, 0x8ACF1357, 0x88888888, 0x7530ECA9 };
|
||||
|
||||
main()
|
||||
{
|
||||
unsigned long r[4];
|
||||
sub(r,a,b);
|
||||
fprintf(stderr,"input a= %08X %08X %08X %08X\n",a[3],a[2],a[1],a[0]);
|
||||
fprintf(stderr,"input b= %08X %08X %08X %08X\n",b[3],b[2],b[1],b[0]);
|
||||
fprintf(stderr,"output = %08X %08X %08X %08X\n",r[3],r[2],r[1],r[0]);
|
||||
fprintf(stderr,"correct= %08X %08X %08X %08X\n",c[3],c[2],c[1],c[0]);
|
||||
}
|
||||
{
|
||||
unsigned long r[4];
|
||||
sub(r, a, b);
|
||||
fprintf(stderr, "input a= %08X %08X %08X %08X\n", a[3], a[2], a[1], a[0]);
|
||||
fprintf(stderr, "input b= %08X %08X %08X %08X\n", b[3], b[2], b[1], b[0]);
|
||||
fprintf(stderr, "output = %08X %08X %08X %08X\n", r[3], r[2], r[1], r[0]);
|
||||
fprintf(stderr, "correct= %08X %08X %08X %08X\n", c[3], c[2], c[1], c[0]);
|
||||
}
|
||||
|
||||
int sub(r,a,b)
|
||||
unsigned long *r,*a,*b;
|
||||
{
|
||||
register unsigned long t1,t2,*ap,*bp,*rp;
|
||||
int i,carry;
|
||||
int sub(r, a, b)
|
||||
unsigned long *r, *a, *b;
|
||||
{
|
||||
register unsigned long t1, t2, *ap, *bp, *rp;
|
||||
int i, carry;
|
||||
#ifdef FIXBUG
|
||||
unsigned long dummy;
|
||||
unsigned long dummy;
|
||||
#endif
|
||||
|
||||
ap=a;
|
||||
bp=b;
|
||||
rp=r;
|
||||
carry=0;
|
||||
for (i=0; i<4; i++)
|
||||
{
|
||||
t1= *(ap++);
|
||||
t2= *(bp++);
|
||||
t1=(t1-t2);
|
||||
ap = a;
|
||||
bp = b;
|
||||
rp = r;
|
||||
carry = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
t1 = *(ap++);
|
||||
t2 = *(bp++);
|
||||
t1 = (t1 - t2);
|
||||
#ifdef FIXBUG
|
||||
dummy=t1;
|
||||
dummy = t1;
|
||||
#endif
|
||||
*(rp++)=t1&0xffffffff;
|
||||
}
|
||||
}
|
||||
*(rp++) = t1 & 0xffffffff;
|
||||
}
|
||||
}
|
||||
|
||||
119
bugs/stream.c
119
bugs/stream.c
@@ -5,21 +5,21 @@
|
||||
* 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:
|
||||
@@ -34,10 +34,10 @@
|
||||
* 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
|
||||
* 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
|
||||
@@ -49,7 +49,7 @@
|
||||
* 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
|
||||
@@ -59,73 +59,74 @@
|
||||
#include <stdio.h>
|
||||
#include <openssl/rc4.h>
|
||||
#ifdef OPENSSL_NO_DES
|
||||
#include <des.h>
|
||||
# include <des.h>
|
||||
#else
|
||||
#include <openssl/des.h>
|
||||
# include <openssl/des.h>
|
||||
#endif
|
||||
|
||||
/* show how stream ciphers are not very good. The mac has no affect
|
||||
* on RC4 while it does for cfb DES
|
||||
/*
|
||||
* show how stream ciphers are not very good. The mac has no affect on RC4
|
||||
* while it does for cfb DES
|
||||
*/
|
||||
|
||||
main()
|
||||
{
|
||||
fprintf(stderr,"rc4\n");
|
||||
rc4();
|
||||
fprintf(stderr,"cfb des\n");
|
||||
des();
|
||||
}
|
||||
{
|
||||
fprintf(stderr, "rc4\n");
|
||||
rc4();
|
||||
fprintf(stderr, "cfb des\n");
|
||||
des();
|
||||
}
|
||||
|
||||
int des()
|
||||
{
|
||||
des_key_schedule ks;
|
||||
des_cblock iv,key;
|
||||
int num;
|
||||
static char *keystr="01234567";
|
||||
static char *in1="0123456789ABCEDFdata 12345";
|
||||
static char *in2="9876543210abcdefdata 12345";
|
||||
unsigned char out[100];
|
||||
int i;
|
||||
{
|
||||
des_key_schedule ks;
|
||||
des_cblock iv, key;
|
||||
int num;
|
||||
static char *keystr = "01234567";
|
||||
static char *in1 = "0123456789ABCEDFdata 12345";
|
||||
static char *in2 = "9876543210abcdefdata 12345";
|
||||
unsigned char out[100];
|
||||
int i;
|
||||
|
||||
des_set_key((des_cblock *)keystr,ks);
|
||||
des_set_key((des_cblock *)keystr, ks);
|
||||
|
||||
num=0;
|
||||
memset(iv,0,8);
|
||||
des_cfb64_encrypt(in1,out,26,ks,(des_cblock *)iv,&num,1);
|
||||
for (i=0; i<26; i++)
|
||||
fprintf(stderr,"%02X ",out[i]);
|
||||
fprintf(stderr,"\n");
|
||||
num = 0;
|
||||
memset(iv, 0, 8);
|
||||
des_cfb64_encrypt(in1, out, 26, ks, (des_cblock *)iv, &num, 1);
|
||||
for (i = 0; i < 26; i++)
|
||||
fprintf(stderr, "%02X ", out[i]);
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
num=0;
|
||||
memset(iv,0,8);
|
||||
des_cfb64_encrypt(in2,out,26,ks,(des_cblock *)iv,&num,1);
|
||||
for (i=0; i<26; i++)
|
||||
fprintf(stderr,"%02X ",out[i]);
|
||||
fprintf(stderr,"\n");
|
||||
}
|
||||
num = 0;
|
||||
memset(iv, 0, 8);
|
||||
des_cfb64_encrypt(in2, out, 26, ks, (des_cblock *)iv, &num, 1);
|
||||
for (i = 0; i < 26; i++)
|
||||
fprintf(stderr, "%02X ", out[i]);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
int rc4()
|
||||
{
|
||||
static char *keystr="0123456789abcdef";
|
||||
RC4_KEY key;
|
||||
unsigned char in[100],out[100];
|
||||
int i;
|
||||
{
|
||||
static char *keystr = "0123456789abcdef";
|
||||
RC4_KEY key;
|
||||
unsigned char in[100], out[100];
|
||||
int i;
|
||||
|
||||
RC4_set_key(&key,16,keystr);
|
||||
in[0]='\0';
|
||||
strcpy(in,"0123456789ABCEDFdata 12345");
|
||||
RC4(key,26,in,out);
|
||||
RC4_set_key(&key, 16, keystr);
|
||||
in[0] = '\0';
|
||||
strcpy(in, "0123456789ABCEDFdata 12345");
|
||||
RC4(key, 26, in, out);
|
||||
|
||||
for (i=0; i<26; i++)
|
||||
fprintf(stderr,"%02X ",out[i]);
|
||||
fprintf(stderr,"\n");
|
||||
for (i = 0; i < 26; i++)
|
||||
fprintf(stderr, "%02X ", out[i]);
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
RC4_set_key(&key,16,keystr);
|
||||
in[0]='\0';
|
||||
strcpy(in,"9876543210abcdefdata 12345");
|
||||
RC4(key,26,in,out);
|
||||
RC4_set_key(&key, 16, keystr);
|
||||
in[0] = '\0';
|
||||
strcpy(in, "9876543210abcdefdata 12345");
|
||||
RC4(key, 26, in, out);
|
||||
|
||||
for (i=0; i<26; i++)
|
||||
fprintf(stderr,"%02X ",out[i]);
|
||||
fprintf(stderr,"\n");
|
||||
}
|
||||
for (i = 0; i < 26; i++)
|
||||
fprintf(stderr, "%02X ", out[i]);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
@@ -13,34 +13,32 @@
|
||||
*/
|
||||
|
||||
main()
|
||||
{
|
||||
f(5);
|
||||
f(0);
|
||||
}
|
||||
{
|
||||
f(5);
|
||||
f(0);
|
||||
}
|
||||
|
||||
int f(a)
|
||||
int a;
|
||||
{
|
||||
switch(a&7)
|
||||
{
|
||||
case 7:
|
||||
printf("7\n");
|
||||
case 6:
|
||||
printf("6\n");
|
||||
case 5:
|
||||
printf("5\n");
|
||||
case 4:
|
||||
printf("4\n");
|
||||
case 3:
|
||||
printf("3\n");
|
||||
case 2:
|
||||
printf("2\n");
|
||||
case 1:
|
||||
printf("1\n");
|
||||
{
|
||||
switch (a & 7) {
|
||||
case 7:
|
||||
printf("7\n");
|
||||
case 6:
|
||||
printf("6\n");
|
||||
case 5:
|
||||
printf("5\n");
|
||||
case 4:
|
||||
printf("4\n");
|
||||
case 3:
|
||||
printf("3\n");
|
||||
case 2:
|
||||
printf("2\n");
|
||||
case 1:
|
||||
printf("1\n");
|
||||
#ifdef FIX_BUG
|
||||
case 0:
|
||||
;
|
||||
case 0:
|
||||
;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user