diff options
Diffstat (limited to 'src')
77 files changed, 9 insertions, 1606 deletions
diff --git a/src/lib/libcrypto/Attic/Makefile b/src/lib/libcrypto/Attic/Makefile index aa105e37a2..326915d520 100644 --- a/src/lib/libcrypto/Attic/Makefile +++ b/src/lib/libcrypto/Attic/Makefile | |||
| @@ -35,13 +35,13 @@ GENERAL=Makefile README crypto-lib.com install.com | |||
| 35 | LIB= $(TOP)/libcrypto.a | 35 | LIB= $(TOP)/libcrypto.a |
| 36 | SHARED_LIB= libcrypto$(SHLIB_EXT) | 36 | SHARED_LIB= libcrypto$(SHLIB_EXT) |
| 37 | LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \ | 37 | LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \ |
| 38 | ebcdic.c uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c | 38 | uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c |
| 39 | LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o \ | 39 | LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o \ |
| 40 | uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ) | 40 | uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ) |
| 41 | 41 | ||
| 42 | SRC= $(LIBSRC) | 42 | SRC= $(LIBSRC) |
| 43 | 43 | ||
| 44 | EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \ | 44 | EXHEADER= crypto.h opensslv.h opensslconf.h symhacks.h \ |
| 45 | ossl_typ.h | 45 | ossl_typ.h |
| 46 | HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER) | 46 | HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER) |
| 47 | 47 | ||
diff --git a/src/lib/libcrypto/asn1/a_gentm.c b/src/lib/libcrypto/asn1/a_gentm.c index 04266e790a..4f312ee6c9 100644 --- a/src/lib/libcrypto/asn1/a_gentm.c +++ b/src/lib/libcrypto/asn1/a_gentm.c | |||
| @@ -68,18 +68,6 @@ | |||
| 68 | 68 | ||
| 69 | int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **pp) | 69 | int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **pp) |
| 70 | { | 70 | { |
| 71 | #ifdef CHARSET_EBCDIC | ||
| 72 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 73 | int len; | ||
| 74 | char tmp[24]; | ||
| 75 | ASN1_STRING tmpstr = *(ASN1_STRING *)a; | ||
| 76 | |||
| 77 | len = tmpstr.length; | ||
| 78 | ebcdic2ascii(tmp, tmpstr.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 79 | tmpstr.data = tmp; | ||
| 80 | |||
| 81 | a = (ASN1_GENERALIZEDTIME *) &tmpstr; | ||
| 82 | #endif | ||
| 83 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 71 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 84 | V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL)); | 72 | V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL)); |
| 85 | } | 73 | } |
| @@ -97,9 +85,6 @@ ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, | |||
| 97 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ERR_R_NESTED_ASN1_ERROR); | 85 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ERR_R_NESTED_ASN1_ERROR); |
| 98 | return(NULL); | 86 | return(NULL); |
| 99 | } | 87 | } |
| 100 | #ifdef CHARSET_EBCDIC | ||
| 101 | ascii2ebcdic(ret->data, ret->data, ret->length); | ||
| 102 | #endif | ||
| 103 | if (!ASN1_GENERALIZEDTIME_check(ret)) | 88 | if (!ASN1_GENERALIZEDTIME_check(ret)) |
| 104 | { | 89 | { |
| 105 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_INVALID_TIME_FORMAT); | 90 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_INVALID_TIME_FORMAT); |
| @@ -256,8 +241,5 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, | |||
| 256 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); | 241 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); |
| 257 | s->length=strlen(p); | 242 | s->length=strlen(p); |
| 258 | s->type=V_ASN1_GENERALIZEDTIME; | 243 | s->type=V_ASN1_GENERALIZEDTIME; |
| 259 | #ifdef CHARSET_EBCDIC_not | ||
| 260 | ebcdic2ascii(s->data, s->data, s->length); | ||
| 261 | #endif | ||
| 262 | return(s); | 244 | return(s); |
| 263 | } | 245 | } |
diff --git a/src/lib/libcrypto/asn1/a_mbstr.c b/src/lib/libcrypto/asn1/a_mbstr.c index 264d8f677f..dc953c8325 100644 --- a/src/lib/libcrypto/asn1/a_mbstr.c +++ b/src/lib/libcrypto/asn1/a_mbstr.c | |||
| @@ -385,16 +385,9 @@ static int is_printable(unsigned long value) | |||
| 385 | /* Note: we can't use 'isalnum' because certain accented | 385 | /* Note: we can't use 'isalnum' because certain accented |
| 386 | * characters may count as alphanumeric in some environments. | 386 | * characters may count as alphanumeric in some environments. |
| 387 | */ | 387 | */ |
| 388 | #ifndef CHARSET_EBCDIC | ||
| 389 | if((ch >= 'a') && (ch <= 'z')) return 1; | 388 | if((ch >= 'a') && (ch <= 'z')) return 1; |
| 390 | if((ch >= 'A') && (ch <= 'Z')) return 1; | 389 | if((ch >= 'A') && (ch <= 'Z')) return 1; |
| 391 | if((ch >= '0') && (ch <= '9')) return 1; | 390 | if((ch >= '0') && (ch <= '9')) return 1; |
| 392 | if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1; | 391 | if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1; |
| 393 | #else /*CHARSET_EBCDIC*/ | ||
| 394 | if((ch >= os_toascii['a']) && (ch <= os_toascii['z'])) return 1; | ||
| 395 | if((ch >= os_toascii['A']) && (ch <= os_toascii['Z'])) return 1; | ||
| 396 | if((ch >= os_toascii['0']) && (ch <= os_toascii['9'])) return 1; | ||
| 397 | if ((ch == os_toascii[' ']) || strchr("'()+,-./:=?", os_toebcdic[ch])) return 1; | ||
| 398 | #endif /*CHARSET_EBCDIC*/ | ||
| 399 | return 0; | 392 | return 0; |
| 400 | } | 393 | } |
diff --git a/src/lib/libcrypto/asn1/a_print.c b/src/lib/libcrypto/asn1/a_print.c index d18e772320..9eec5034e1 100644 --- a/src/lib/libcrypto/asn1/a_print.c +++ b/src/lib/libcrypto/asn1/a_print.c | |||
| @@ -72,7 +72,6 @@ int ASN1_PRINTABLE_type(const unsigned char *s, int len) | |||
| 72 | while ((*s) && (len-- != 0)) | 72 | while ((*s) && (len-- != 0)) |
| 73 | { | 73 | { |
| 74 | c= *(s++); | 74 | c= *(s++); |
| 75 | #ifndef CHARSET_EBCDIC | ||
| 76 | if (!( ((c >= 'a') && (c <= 'z')) || | 75 | if (!( ((c >= 'a') && (c <= 'z')) || |
| 77 | ((c >= 'A') && (c <= 'Z')) || | 76 | ((c >= 'A') && (c <= 'Z')) || |
| 78 | (c == ' ') || | 77 | (c == ' ') || |
| @@ -86,13 +85,6 @@ int ASN1_PRINTABLE_type(const unsigned char *s, int len) | |||
| 86 | ia5=1; | 85 | ia5=1; |
| 87 | if (c&0x80) | 86 | if (c&0x80) |
| 88 | t61=1; | 87 | t61=1; |
| 89 | #else | ||
| 90 | if (!isalnum(c) && (c != ' ') && | ||
| 91 | strchr("'()+,-./:=?", c) == NULL) | ||
| 92 | ia5=1; | ||
| 93 | if (os_toascii[c] & 0x80) | ||
| 94 | t61=1; | ||
| 95 | #endif | ||
| 96 | } | 88 | } |
| 97 | if (t61) return(V_ASN1_T61STRING); | 89 | if (t61) return(V_ASN1_T61STRING); |
| 98 | if (ia5) return(V_ASN1_IA5STRING); | 90 | if (ia5) return(V_ASN1_IA5STRING); |
diff --git a/src/lib/libcrypto/asn1/a_time.c b/src/lib/libcrypto/asn1/a_time.c index e2eb9b243e..4ade88f065 100644 --- a/src/lib/libcrypto/asn1/a_time.c +++ b/src/lib/libcrypto/asn1/a_time.c | |||
| @@ -74,21 +74,6 @@ IMPLEMENT_ASN1_FUNCTIONS(ASN1_TIME) | |||
| 74 | #if 0 | 74 | #if 0 |
| 75 | int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **pp) | 75 | int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **pp) |
| 76 | { | 76 | { |
| 77 | #ifdef CHARSET_EBCDIC | ||
| 78 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 79 | char tmp[24]; | ||
| 80 | ASN1_STRING tmpstr; | ||
| 81 | |||
| 82 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) { | ||
| 83 | int len; | ||
| 84 | |||
| 85 | tmpstr = *(ASN1_STRING *)a; | ||
| 86 | len = tmpstr.length; | ||
| 87 | ebcdic2ascii(tmp, tmpstr.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 88 | tmpstr.data = tmp; | ||
| 89 | a = (ASN1_GENERALIZEDTIME *) &tmpstr; | ||
| 90 | } | ||
| 91 | #endif | ||
| 92 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) | 77 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) |
| 93 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 78 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 94 | a->type ,V_ASN1_UNIVERSAL)); | 79 | a->type ,V_ASN1_UNIVERSAL)); |
diff --git a/src/lib/libcrypto/asn1/a_utctm.c b/src/lib/libcrypto/asn1/a_utctm.c index 615395b738..f2e7de16af 100644 --- a/src/lib/libcrypto/asn1/a_utctm.c +++ b/src/lib/libcrypto/asn1/a_utctm.c | |||
| @@ -65,20 +65,8 @@ | |||
| 65 | #if 0 | 65 | #if 0 |
| 66 | int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) | 66 | int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) |
| 67 | { | 67 | { |
| 68 | #ifndef CHARSET_EBCDIC | ||
| 69 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 68 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 70 | V_ASN1_UTCTIME,V_ASN1_UNIVERSAL)); | 69 | V_ASN1_UTCTIME,V_ASN1_UNIVERSAL)); |
| 71 | #else | ||
| 72 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 73 | int len; | ||
| 74 | char tmp[24]; | ||
| 75 | ASN1_STRING x = *(ASN1_STRING *)a; | ||
| 76 | |||
| 77 | len = x.length; | ||
| 78 | ebcdic2ascii(tmp, x.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 79 | x.data = tmp; | ||
| 80 | return i2d_ASN1_bytes(&x, pp, V_ASN1_UTCTIME,V_ASN1_UNIVERSAL); | ||
| 81 | #endif | ||
| 82 | } | 70 | } |
| 83 | 71 | ||
| 84 | 72 | ||
| @@ -94,9 +82,6 @@ ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, unsigned char **pp, | |||
| 94 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR); | 82 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR); |
| 95 | return(NULL); | 83 | return(NULL); |
| 96 | } | 84 | } |
| 97 | #ifdef CHARSET_EBCDIC | ||
| 98 | ascii2ebcdic(ret->data, ret->data, ret->length); | ||
| 99 | #endif | ||
| 100 | if (!ASN1_UTCTIME_check(ret)) | 85 | if (!ASN1_UTCTIME_check(ret)) |
| 101 | { | 86 | { |
| 102 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_INVALID_TIME_FORMAT); | 87 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_INVALID_TIME_FORMAT); |
| @@ -233,9 +218,6 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, | |||
| 233 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); | 218 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); |
| 234 | s->length=strlen(p); | 219 | s->length=strlen(p); |
| 235 | s->type=V_ASN1_UTCTIME; | 220 | s->type=V_ASN1_UTCTIME; |
| 236 | #ifdef CHARSET_EBCDIC_not | ||
| 237 | ebcdic2ascii(s->data, s->data, s->length); | ||
| 238 | #endif | ||
| 239 | return(s); | 221 | return(s); |
| 240 | } | 222 | } |
| 241 | 223 | ||
diff --git a/src/lib/libcrypto/asn1/f_int.c b/src/lib/libcrypto/asn1/f_int.c index 9494e597ab..8b92fad9df 100644 --- a/src/lib/libcrypto/asn1/f_int.c +++ b/src/lib/libcrypto/asn1/f_int.c | |||
| @@ -123,18 +123,9 @@ int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size) | |||
| 123 | 123 | ||
| 124 | for (j=0; j<i; j++) | 124 | for (j=0; j<i; j++) |
| 125 | { | 125 | { |
| 126 | #ifndef CHARSET_EBCDIC | ||
| 127 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || | 126 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || |
| 128 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 127 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || |
| 129 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) | 128 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) |
| 130 | #else | ||
| 131 | /* This #ifdef is not strictly necessary, since | ||
| 132 | * the characters A...F a...f 0...9 are contiguous | ||
| 133 | * (yes, even in EBCDIC - but not the whole alphabet). | ||
| 134 | * Nevertheless, isxdigit() is faster. | ||
| 135 | */ | ||
| 136 | if (!isxdigit(buf[j])) | ||
| 137 | #endif | ||
| 138 | { | 129 | { |
| 139 | i=j; | 130 | i=j; |
| 140 | break; | 131 | break; |
diff --git a/src/lib/libcrypto/asn1/f_string.c b/src/lib/libcrypto/asn1/f_string.c index 968698a798..f7d36adac7 100644 --- a/src/lib/libcrypto/asn1/f_string.c +++ b/src/lib/libcrypto/asn1/f_string.c | |||
| @@ -123,18 +123,9 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) | |||
| 123 | 123 | ||
| 124 | for (j=i-1; j>0; j--) | 124 | for (j=i-1; j>0; j--) |
| 125 | { | 125 | { |
| 126 | #ifndef CHARSET_EBCDIC | ||
| 127 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || | 126 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || |
| 128 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 127 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || |
| 129 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) | 128 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) |
| 130 | #else | ||
| 131 | /* This #ifdef is not strictly necessary, since | ||
| 132 | * the characters A...F a...f 0...9 are contiguous | ||
| 133 | * (yes, even in EBCDIC - but not the whole alphabet). | ||
| 134 | * Nevertheless, isxdigit() is faster. | ||
| 135 | */ | ||
| 136 | if (!isxdigit(buf[j])) | ||
| 137 | #endif | ||
| 138 | { | 129 | { |
| 139 | i=j; | 130 | i=j; |
| 140 | break; | 131 | break; |
diff --git a/src/lib/libcrypto/asn1/t_x509.c b/src/lib/libcrypto/asn1/t_x509.c index edbb39a02f..bbf00c7a29 100644 --- a/src/lib/libcrypto/asn1/t_x509.c +++ b/src/lib/libcrypto/asn1/t_x509.c | |||
| @@ -485,7 +485,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase) | |||
| 485 | c=s; | 485 | c=s; |
| 486 | for (;;) | 486 | for (;;) |
| 487 | { | 487 | { |
| 488 | #ifndef CHARSET_EBCDIC | ||
| 489 | if ( ((*s == '/') && | 488 | if ( ((*s == '/') && |
| 490 | ((s[1] >= 'A') && (s[1] <= 'Z') && ( | 489 | ((s[1] >= 'A') && (s[1] <= 'Z') && ( |
| 491 | (s[2] == '=') || | 490 | (s[2] == '=') || |
| @@ -493,15 +492,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase) | |||
| 493 | (s[3] == '=')) | 492 | (s[3] == '=')) |
| 494 | ))) || | 493 | ))) || |
| 495 | (*s == '\0')) | 494 | (*s == '\0')) |
| 496 | #else | ||
| 497 | if ( ((*s == '/') && | ||
| 498 | (isupper(s[1]) && ( | ||
| 499 | (s[2] == '=') || | ||
| 500 | (isupper(s[2]) && | ||
| 501 | (s[3] == '=')) | ||
| 502 | ))) || | ||
| 503 | (*s == '\0')) | ||
| 504 | #endif | ||
| 505 | { | 495 | { |
| 506 | i=s-c; | 496 | i=s-c; |
| 507 | if (BIO_write(bp,c,i) != i) goto err; | 497 | if (BIO_write(bp,c,i) != i) goto err; |
diff --git a/src/lib/libcrypto/bf/bftest.c b/src/lib/libcrypto/bf/bftest.c index 97e6634d37..20caf0f3f8 100644 --- a/src/lib/libcrypto/bf/bftest.c +++ b/src/lib/libcrypto/bf/bftest.c | |||
| @@ -75,10 +75,6 @@ int main(int argc, char *argv[]) | |||
| 75 | #else | 75 | #else |
| 76 | #include <openssl/blowfish.h> | 76 | #include <openssl/blowfish.h> |
| 77 | 77 | ||
| 78 | #ifdef CHARSET_EBCDIC | ||
| 79 | #include <openssl/ebcdic.h> | ||
| 80 | #endif | ||
| 81 | |||
| 82 | static char *bf_key[2]={ | 78 | static char *bf_key[2]={ |
| 83 | "abcdefghijklmnopqrstuvwxyz", | 79 | "abcdefghijklmnopqrstuvwxyz", |
| 84 | "Who is John Galt?" | 80 | "Who is John Galt?" |
| @@ -361,16 +357,9 @@ static int test(void) | |||
| 361 | unsigned char out[8]; | 357 | unsigned char out[8]; |
| 362 | BF_LONG len; | 358 | BF_LONG len; |
| 363 | 359 | ||
| 364 | #ifdef CHARSET_EBCDIC | ||
| 365 | ebcdic2ascii(cbc_data, cbc_data, strlen(cbc_data)); | ||
| 366 | #endif | ||
| 367 | |||
| 368 | printf("testing blowfish in raw ecb mode\n"); | 360 | printf("testing blowfish in raw ecb mode\n"); |
| 369 | for (n=0; n<2; n++) | 361 | for (n=0; n<2; n++) |
| 370 | { | 362 | { |
| 371 | #ifdef CHARSET_EBCDIC | ||
| 372 | ebcdic2ascii(bf_key[n], bf_key[n], strlen(bf_key[n])); | ||
| 373 | #endif | ||
| 374 | BF_set_key(&key,strlen(bf_key[n]),(unsigned char *)bf_key[n]); | 363 | BF_set_key(&key,strlen(bf_key[n]),(unsigned char *)bf_key[n]); |
| 375 | 364 | ||
| 376 | data[0]=bf_plain[n][0]; | 365 | data[0]=bf_plain[n][0]; |
diff --git a/src/lib/libcrypto/bio/b_dump.c b/src/lib/libcrypto/bio/b_dump.c index bea94969a2..32d523563e 100644 --- a/src/lib/libcrypto/bio/b_dump.c +++ b/src/lib/libcrypto/bio/b_dump.c | |||
| @@ -125,14 +125,8 @@ BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u), | |||
| 125 | if (((i*dump_width) + j) >= len) | 125 | if (((i*dump_width) + j) >= len) |
| 126 | break; | 126 | break; |
| 127 | ch = ((unsigned char)*(s + i * dump_width + j)) & 0xff; | 127 | ch = ((unsigned char)*(s + i * dump_width + j)) & 0xff; |
| 128 | #ifndef CHARSET_EBCDIC | ||
| 129 | (void) snprintf(tmp, sizeof tmp, "%c", | 128 | (void) snprintf(tmp, sizeof tmp, "%c", |
| 130 | ((ch >= ' ') && (ch <= '~')) ? ch : '.'); | 129 | ((ch >= ' ') && (ch <= '~')) ? ch : '.'); |
| 131 | #else | ||
| 132 | (void) snprintf(tmp, sizeof tmp, "%c", | ||
| 133 | ((ch >= os_toascii[' ']) && (ch <= os_toascii['~'])) | ||
| 134 | ? os_toebcdic[ch] : '.'); | ||
| 135 | #endif | ||
| 136 | BUF_strlcat(buf, tmp, sizeof buf); | 130 | BUF_strlcat(buf, tmp, sizeof buf); |
| 137 | } | 131 | } |
| 138 | BUF_strlcat(buf, "\n", sizeof buf); | 132 | BUF_strlcat(buf, "\n", sizeof buf); |
diff --git a/src/lib/libcrypto/conf/conf_def.h b/src/lib/libcrypto/conf/conf_def.h index 92a7d8ad77..b18e6e2728 100644 --- a/src/lib/libcrypto/conf/conf_def.h +++ b/src/lib/libcrypto/conf/conf_def.h | |||
| @@ -78,7 +78,6 @@ | |||
| 78 | CONF_PUNCTUATION) | 78 | CONF_PUNCTUATION) |
| 79 | 79 | ||
| 80 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) | 80 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) |
| 81 | #ifndef CHARSET_EBCDIC | ||
| 82 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) | 81 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) |
| 83 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) | 82 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) |
| 84 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) | 83 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) |
| @@ -92,22 +91,6 @@ | |||
| 92 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) | 91 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) |
| 93 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) | 92 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) |
| 94 | 93 | ||
| 95 | #else /*CHARSET_EBCDIC*/ | ||
| 96 | |||
| 97 | #define IS_COMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_COMMENT) | ||
| 98 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_FCOMMENT) | ||
| 99 | #define IS_EOF(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_EOF) | ||
| 100 | #define IS_ESC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ESC) | ||
| 101 | #define IS_NUMBER(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_NUMBER) | ||
| 102 | #define IS_WS(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_WS) | ||
| 103 | #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC) | ||
| 104 | #define IS_ALPHA_NUMERIC_PUNCT(c,a) \ | ||
| 105 | (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC_PUNCT) | ||
| 106 | #define IS_QUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_QUOTE) | ||
| 107 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_DQUOTE) | ||
| 108 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_HIGHBIT) | ||
| 109 | #endif /*CHARSET_EBCDIC*/ | ||
| 110 | |||
| 111 | static unsigned short CONF_type_default[256]={ | 94 | static unsigned short CONF_type_default[256]={ |
| 112 | 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, | 95 | 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, |
| 113 | 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000, | 96 | 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000, |
diff --git a/src/lib/libcrypto/conf/keysets.pl b/src/lib/libcrypto/conf/keysets.pl index 50ed67fa52..fe17be57fe 100644 --- a/src/lib/libcrypto/conf/keysets.pl +++ b/src/lib/libcrypto/conf/keysets.pl | |||
| @@ -132,7 +132,6 @@ print <<"EOF"; | |||
| 132 | CONF_PUNCTUATION) | 132 | CONF_PUNCTUATION) |
| 133 | 133 | ||
| 134 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) | 134 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) |
| 135 | #ifndef CHARSET_EBCDIC | ||
| 136 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) | 135 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) |
| 137 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) | 136 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) |
| 138 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) | 137 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) |
| @@ -146,21 +145,6 @@ print <<"EOF"; | |||
| 146 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) | 145 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) |
| 147 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) | 146 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) |
| 148 | 147 | ||
| 149 | #else /*CHARSET_EBCDIC*/ | ||
| 150 | |||
| 151 | #define IS_COMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_COMMENT) | ||
| 152 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_FCOMMENT) | ||
| 153 | #define IS_EOF(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_EOF) | ||
| 154 | #define IS_ESC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ESC) | ||
| 155 | #define IS_NUMBER(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_NUMBER) | ||
| 156 | #define IS_WS(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_WS) | ||
| 157 | #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC) | ||
| 158 | #define IS_ALPHA_NUMERIC_PUNCT(c,a) \\ | ||
| 159 | (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC_PUNCT) | ||
| 160 | #define IS_QUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_QUOTE) | ||
| 161 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_DQUOTE) | ||
| 162 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_HIGHBIT) | ||
| 163 | #endif /*CHARSET_EBCDIC*/ | ||
| 164 | 148 | ||
| 165 | EOF | 149 | EOF |
| 166 | 150 | ||
diff --git a/src/lib/libcrypto/crypto.h b/src/lib/libcrypto/crypto.h index baeba25b99..351ccfd35b 100644 --- a/src/lib/libcrypto/crypto.h +++ b/src/lib/libcrypto/crypto.h | |||
| @@ -130,10 +130,6 @@ | |||
| 130 | #include <openssl/opensslv.h> | 130 | #include <openssl/opensslv.h> |
| 131 | #include <openssl/ossl_typ.h> | 131 | #include <openssl/ossl_typ.h> |
| 132 | 132 | ||
| 133 | #ifdef CHARSET_EBCDIC | ||
| 134 | #include <openssl/ebcdic.h> | ||
| 135 | #endif | ||
| 136 | |||
| 137 | #ifdef __cplusplus | 133 | #ifdef __cplusplus |
| 138 | extern "C" { | 134 | extern "C" { |
| 139 | #endif | 135 | #endif |
diff --git a/src/lib/libcrypto/crypto/Makefile b/src/lib/libcrypto/crypto/Makefile index f07176f829..e3bb0a2b36 100644 --- a/src/lib/libcrypto/crypto/Makefile +++ b/src/lib/libcrypto/crypto/Makefile | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $OpenBSD: Makefile,v 1.7 2014/04/15 17:20:09 beck Exp $ | 1 | # $OpenBSD: Makefile,v 1.8 2014/04/15 17:46:16 beck Exp $ |
| 2 | 2 | ||
| 3 | LIB= crypto | 3 | LIB= crypto |
| 4 | 4 | ||
| @@ -43,7 +43,7 @@ CFLAGS+= -I${LCRYPTO_SRC}/modes -I${LCRYPTO_SRC}/asn1 -I${LCRYPTO_SRC}/evp | |||
| 43 | 43 | ||
| 44 | # crypto/ | 44 | # crypto/ |
| 45 | SRCS+= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c cpt_err.c | 45 | SRCS+= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c cpt_err.c |
| 46 | SRCS+= ebcdic.c uid.c o_time.c o_str.c o_fips.c o_init.c fips_ers.c | 46 | SRCS+= uid.c o_time.c o_str.c o_fips.c o_init.c fips_ers.c |
| 47 | 47 | ||
| 48 | # aes/ | 48 | # aes/ |
| 49 | SRCS+= aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c | 49 | SRCS+= aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c |
| @@ -369,7 +369,6 @@ HDRS=\ | |||
| 369 | crypto/dh/dh.h \ | 369 | crypto/dh/dh.h \ |
| 370 | crypto/dsa/dsa.h \ | 370 | crypto/dsa/dsa.h \ |
| 371 | crypto/dso/dso.h \ | 371 | crypto/dso/dso.h \ |
| 372 | crypto/ebcdic.h \ | ||
| 373 | crypto/ec/ec.h \ | 372 | crypto/ec/ec.h \ |
| 374 | crypto/ecdh/ecdh.h \ | 373 | crypto/ecdh/ecdh.h \ |
| 375 | crypto/ecdsa/ecdsa.h \ | 374 | crypto/ecdsa/ecdsa.h \ |
diff --git a/src/lib/libcrypto/des/fcrypt.c b/src/lib/libcrypto/des/fcrypt.c index ccbdff250f..d02189b290 100644 --- a/src/lib/libcrypto/des/fcrypt.c +++ b/src/lib/libcrypto/des/fcrypt.c | |||
| @@ -1,13 +1,5 @@ | |||
| 1 | /* NOCW */ | 1 | /* NOCW */ |
| 2 | #include <stdio.h> | 2 | #include <stdio.h> |
| 3 | #ifdef _OSD_POSIX | ||
| 4 | #ifndef CHARSET_EBCDIC | ||
| 5 | #define CHARSET_EBCDIC 1 | ||
| 6 | #endif | ||
| 7 | #endif | ||
| 8 | #ifdef CHARSET_EBCDIC | ||
| 9 | #include <openssl/ebcdic.h> | ||
| 10 | #endif | ||
| 11 | 3 | ||
| 12 | /* This version of crypt has been developed from my MIT compatible | 4 | /* This version of crypt has been developed from my MIT compatible |
| 13 | * DES library. | 5 | * DES library. |
| @@ -62,37 +54,7 @@ char *DES_crypt(const char *buf, const char *salt) | |||
| 62 | { | 54 | { |
| 63 | static char buff[14]; | 55 | static char buff[14]; |
| 64 | 56 | ||
| 65 | #ifndef CHARSET_EBCDIC | ||
| 66 | return(DES_fcrypt(buf,salt,buff)); | 57 | return(DES_fcrypt(buf,salt,buff)); |
| 67 | #else | ||
| 68 | char e_salt[2+1]; | ||
| 69 | char e_buf[32+1]; /* replace 32 by 8 ? */ | ||
| 70 | char *ret; | ||
| 71 | |||
| 72 | /* Copy at most 2 chars of salt */ | ||
| 73 | if ((e_salt[0] = salt[0]) != '\0') | ||
| 74 | e_salt[1] = salt[1]; | ||
| 75 | |||
| 76 | /* Copy at most 32 chars of password */ | ||
| 77 | strncpy (e_buf, buf, sizeof(e_buf)); | ||
| 78 | |||
| 79 | /* Make sure we have a delimiter */ | ||
| 80 | e_salt[sizeof(e_salt)-1] = e_buf[sizeof(e_buf)-1] = '\0'; | ||
| 81 | |||
| 82 | /* Convert the e_salt to ASCII, as that's what DES_fcrypt works on */ | ||
| 83 | ebcdic2ascii(e_salt, e_salt, sizeof e_salt); | ||
| 84 | |||
| 85 | /* Convert the cleartext password to ASCII */ | ||
| 86 | ebcdic2ascii(e_buf, e_buf, sizeof e_buf); | ||
| 87 | |||
| 88 | /* Encrypt it (from/to ASCII) */ | ||
| 89 | ret = DES_fcrypt(e_buf,e_salt,buff); | ||
| 90 | |||
| 91 | /* Convert the result back to EBCDIC */ | ||
| 92 | ascii2ebcdic(ret, ret, strlen(ret)); | ||
| 93 | |||
| 94 | return ret; | ||
| 95 | #endif | ||
| 96 | } | 58 | } |
| 97 | 59 | ||
| 98 | 60 | ||
| @@ -115,18 +77,10 @@ char *DES_fcrypt(const char *buf, const char *salt, char *ret) | |||
| 115 | * crypt to "*". This was found when replacing the crypt in | 77 | * crypt to "*". This was found when replacing the crypt in |
| 116 | * our shared libraries. People found that the disabled | 78 | * our shared libraries. People found that the disabled |
| 117 | * accounts effectively had no passwd :-(. */ | 79 | * accounts effectively had no passwd :-(. */ |
| 118 | #ifndef CHARSET_EBCDIC | ||
| 119 | x=ret[0]=((salt[0] == '\0')?'A':salt[0]); | 80 | x=ret[0]=((salt[0] == '\0')?'A':salt[0]); |
| 120 | Eswap0=con_salt[x]<<2; | 81 | Eswap0=con_salt[x]<<2; |
| 121 | x=ret[1]=((salt[1] == '\0')?'A':salt[1]); | 82 | x=ret[1]=((salt[1] == '\0')?'A':salt[1]); |
| 122 | Eswap1=con_salt[x]<<6; | 83 | Eswap1=con_salt[x]<<6; |
| 123 | #else | ||
| 124 | x=ret[0]=((salt[0] == '\0')?os_toascii['A']:salt[0]); | ||
| 125 | Eswap0=con_salt[x]<<2; | ||
| 126 | x=ret[1]=((salt[1] == '\0')?os_toascii['A']:salt[1]); | ||
| 127 | Eswap1=con_salt[x]<<6; | ||
| 128 | #endif | ||
| 129 | |||
| 130 | /* EAY | 84 | /* EAY |
| 131 | r=strlen(buf); | 85 | r=strlen(buf); |
| 132 | r=(r+7)/8; | 86 | r=(r+7)/8; |
diff --git a/src/lib/libcrypto/ebcdic.c b/src/lib/libcrypto/ebcdic.c deleted file mode 100644 index 2ac26abc72..0000000000 --- a/src/lib/libcrypto/ebcdic.c +++ /dev/null | |||
| @@ -1,221 +0,0 @@ | |||
| 1 | /* crypto/ebcdic.c */ | ||
| 2 | |||
| 3 | #ifndef CHARSET_EBCDIC | ||
| 4 | |||
| 5 | #include <openssl/e_os2.h> | ||
| 6 | #if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX) | ||
| 7 | static void *dummy = &dummy; | ||
| 8 | #endif | ||
| 9 | |||
| 10 | #else /*CHARSET_EBCDIC*/ | ||
| 11 | |||
| 12 | #include "ebcdic.h" | ||
| 13 | /* Initial Port for Apache-1.3 by <Martin.Kraemer@Mch.SNI.De> | ||
| 14 | * Adapted for OpenSSL-0.9.4 by <Martin.Kraemer@Mch.SNI.De> | ||
| 15 | */ | ||
| 16 | |||
| 17 | #ifdef _OSD_POSIX | ||
| 18 | /* | ||
| 19 | "BS2000 OSD" is a POSIX subsystem on a main frame. | ||
| 20 | It is made by Siemens AG, Germany, for their BS2000 mainframe machines. | ||
| 21 | Within the POSIX subsystem, the same character set was chosen as in | ||
| 22 | "native BS2000", namely EBCDIC. (EDF04) | ||
| 23 | |||
| 24 | The name "ASCII" in these routines is misleading: actually, conversion | ||
| 25 | is not between EBCDIC and ASCII, but EBCDIC(EDF04) and ISO-8859.1; | ||
| 26 | that means that (western european) national characters are preserved. | ||
| 27 | |||
| 28 | This table is identical to the one used by rsh/rcp/ftp and other POSIX tools. | ||
| 29 | */ | ||
| 30 | |||
| 31 | /* Here's the bijective ebcdic-to-ascii table: */ | ||
| 32 | const unsigned char os_toascii[256] = { | ||
| 33 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, | ||
| 34 | 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ | ||
| 35 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, | ||
| 36 | 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ | ||
| 37 | /*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, | ||
| 38 | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /*................*/ | ||
| 39 | /*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, | ||
| 40 | 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /*................*/ | ||
| 41 | /*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, | ||
| 42 | 0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+|*/ | ||
| 43 | /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, | ||
| 44 | 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /*&.........!$*);.*/ | ||
| 45 | /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, | ||
| 46 | 0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*-/........^,%_>?*/ | ||
| 47 | /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, | ||
| 48 | 0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*..........:#@'="*/ | ||
| 49 | /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
| 50 | 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*.abcdefghi......*/ | ||
| 51 | /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
| 52 | 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*.jklmnopqr......*/ | ||
| 53 | /*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
| 54 | 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*..stuvwxyz......*/ | ||
| 55 | /*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, | ||
| 56 | 0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /*...........[\]..*/ | ||
| 57 | /*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | ||
| 58 | 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*.ABCDEFGHI......*/ | ||
| 59 | /*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
| 60 | 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /*.JKLMNOPQR......*/ | ||
| 61 | /*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
| 62 | 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*..STUVWXYZ......*/ | ||
| 63 | /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
| 64 | 0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e /*0123456789.{.}.~*/ | ||
| 65 | }; | ||
| 66 | |||
| 67 | |||
| 68 | /* The ascii-to-ebcdic table: */ | ||
| 69 | const unsigned char os_toebcdic[256] = { | ||
| 70 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, | ||
| 71 | 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ | ||
| 72 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, | ||
| 73 | 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ | ||
| 74 | /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, | ||
| 75 | 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ | ||
| 76 | /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
| 77 | 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*0123456789:;<=>?*/ | ||
| 78 | /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
| 79 | 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*@ABCDEFGHIJKLMNO*/ | ||
| 80 | /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, | ||
| 81 | 0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d, /*PQRSTUVWXYZ[\]^_*/ | ||
| 82 | /*60*/ 0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | ||
| 83 | 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*`abcdefghijklmno*/ | ||
| 84 | /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
| 85 | 0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07, /*pqrstuvwxyz{|}~.*/ | ||
| 86 | /*80*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, | ||
| 87 | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /*................*/ | ||
| 88 | /*90*/ 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, | ||
| 89 | 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f, /*................*/ | ||
| 90 | /*a0*/ 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5, | ||
| 91 | 0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1, /*................*/ | ||
| 92 | /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, | ||
| 93 | 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*................*/ | ||
| 94 | /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, | ||
| 95 | 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*................*/ | ||
| 96 | /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, | ||
| 97 | 0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59, /*................*/ | ||
| 98 | /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, | ||
| 99 | 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*................*/ | ||
| 100 | /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, | ||
| 101 | 0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /*................*/ | ||
| 102 | }; | ||
| 103 | |||
| 104 | #else /*_OSD_POSIX*/ | ||
| 105 | |||
| 106 | /* | ||
| 107 | This code does basic character mapping for IBM's TPF and OS/390 operating systems. | ||
| 108 | It is a modified version of the BS2000 table. | ||
| 109 | |||
| 110 | Bijective EBCDIC (character set IBM-1047) to US-ASCII table: | ||
| 111 | This table is bijective - there are no ambigous or duplicate characters. | ||
| 112 | */ | ||
| 113 | const unsigned char os_toascii[256] = { | ||
| 114 | 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, /* 00-0f: */ | ||
| 115 | 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ | ||
| 116 | 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, /* 10-1f: */ | ||
| 117 | 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ | ||
| 118 | 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, /* 20-2f: */ | ||
| 119 | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */ | ||
| 120 | 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30-3f: */ | ||
| 121 | 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */ | ||
| 122 | 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40-4f: */ | ||
| 123 | 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* ...........<(+| */ | ||
| 124 | 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50-5f: */ | ||
| 125 | 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* &.........!$*);^ */ | ||
| 126 | 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60-6f: */ | ||
| 127 | 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/.........,%_>? */ | ||
| 128 | 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70-7f: */ | ||
| 129 | 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* .........`:#@'=" */ | ||
| 130 | 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80-8f: */ | ||
| 131 | 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */ | ||
| 132 | 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90-9f: */ | ||
| 133 | 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */ | ||
| 134 | 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* a0-af: */ | ||
| 135 | 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* .~stuvwxyz...[.. */ | ||
| 136 | 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* b0-bf: */ | ||
| 137 | 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* .............].. */ | ||
| 138 | 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* c0-cf: */ | ||
| 139 | 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* {ABCDEFGHI...... */ | ||
| 140 | 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* d0-df: */ | ||
| 141 | 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* }JKLMNOPQR...... */ | ||
| 142 | 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* e0-ef: */ | ||
| 143 | 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* \.STUVWXYZ...... */ | ||
| 144 | 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* f0-ff: */ | ||
| 145 | 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* 0123456789...... */ | ||
| 146 | }; | ||
| 147 | |||
| 148 | |||
| 149 | /* | ||
| 150 | The US-ASCII to EBCDIC (character set IBM-1047) table: | ||
| 151 | This table is bijective (no ambiguous or duplicate characters) | ||
| 152 | */ | ||
| 153 | const unsigned char os_toebcdic[256] = { | ||
| 154 | 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 00-0f: */ | ||
| 155 | 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ | ||
| 156 | 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 10-1f: */ | ||
| 157 | 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ | ||
| 158 | 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 20-2f: */ | ||
| 159 | 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ | ||
| 160 | 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 30-3f: */ | ||
| 161 | 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0123456789:;<=>? */ | ||
| 162 | 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 40-4f: */ | ||
| 163 | 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* @ABCDEFGHIJKLMNO */ | ||
| 164 | 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 50-5f: */ | ||
| 165 | 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* PQRSTUVWXYZ[\]^_ */ | ||
| 166 | 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 60-6f: */ | ||
| 167 | 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* `abcdefghijklmno */ | ||
| 168 | 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 70-7f: */ | ||
| 169 | 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* pqrstuvwxyz{|}~. */ | ||
| 170 | 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, /* 80-8f: */ | ||
| 171 | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /* ................ */ | ||
| 172 | 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, /* 90-9f: */ | ||
| 173 | 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0xff, /* ................ */ | ||
| 174 | 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* a0-af: */ | ||
| 175 | 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* ................ */ | ||
| 176 | 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* b0-bf: */ | ||
| 177 | 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* ................ */ | ||
| 178 | 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* c0-cf: */ | ||
| 179 | 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* ................ */ | ||
| 180 | 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* d0-df: */ | ||
| 181 | 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* ................ */ | ||
| 182 | 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* e0-ef: */ | ||
| 183 | 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* ................ */ | ||
| 184 | 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* f0-ff: */ | ||
| 185 | 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /* ................ */ | ||
| 186 | }; | ||
| 187 | #endif /*_OSD_POSIX*/ | ||
| 188 | |||
| 189 | /* Translate a memory block from EBCDIC (host charset) to ASCII (net charset) | ||
| 190 | * dest and srce may be identical, or separate memory blocks, but | ||
| 191 | * should not overlap. These functions intentionally have an interface | ||
| 192 | * compatible to memcpy(3). | ||
| 193 | */ | ||
| 194 | |||
| 195 | void * | ||
| 196 | ebcdic2ascii(void *dest, const void *srce, size_t count) | ||
| 197 | { | ||
| 198 | unsigned char *udest = dest; | ||
| 199 | const unsigned char *usrce = srce; | ||
| 200 | |||
| 201 | while (count-- != 0) { | ||
| 202 | *udest++ = os_toascii[*usrce++]; | ||
| 203 | } | ||
| 204 | |||
| 205 | return dest; | ||
| 206 | } | ||
| 207 | |||
| 208 | void * | ||
| 209 | ascii2ebcdic(void *dest, const void *srce, size_t count) | ||
| 210 | { | ||
| 211 | unsigned char *udest = dest; | ||
| 212 | const unsigned char *usrce = srce; | ||
| 213 | |||
| 214 | while (count-- != 0) { | ||
| 215 | *udest++ = os_toebcdic[*usrce++]; | ||
| 216 | } | ||
| 217 | |||
| 218 | return dest; | ||
| 219 | } | ||
| 220 | |||
| 221 | #endif | ||
diff --git a/src/lib/libcrypto/ebcdic.h b/src/lib/libcrypto/ebcdic.h deleted file mode 100644 index 6d65afcf9e..0000000000 --- a/src/lib/libcrypto/ebcdic.h +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | /* crypto/ebcdic.h */ | ||
| 2 | |||
| 3 | #ifndef HEADER_EBCDIC_H | ||
| 4 | #define HEADER_EBCDIC_H | ||
| 5 | |||
| 6 | #include <sys/types.h> | ||
| 7 | |||
| 8 | /* Avoid name clashes with other applications */ | ||
| 9 | #define os_toascii _openssl_os_toascii | ||
| 10 | #define os_toebcdic _openssl_os_toebcdic | ||
| 11 | #define ebcdic2ascii _openssl_ebcdic2ascii | ||
| 12 | #define ascii2ebcdic _openssl_ascii2ebcdic | ||
| 13 | |||
| 14 | extern const unsigned char os_toascii[256]; | ||
| 15 | extern const unsigned char os_toebcdic[256]; | ||
| 16 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); | ||
| 17 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); | ||
| 18 | |||
| 19 | #endif | ||
diff --git a/src/lib/libcrypto/evp/encode.c b/src/lib/libcrypto/evp/encode.c index 28546a84bc..7af9a2780b 100644 --- a/src/lib/libcrypto/evp/encode.c +++ b/src/lib/libcrypto/evp/encode.c | |||
| @@ -60,19 +60,8 @@ | |||
| 60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
| 61 | #include <openssl/evp.h> | 61 | #include <openssl/evp.h> |
| 62 | 62 | ||
| 63 | #ifndef CHARSET_EBCDIC | ||
| 64 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) | 63 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) |
| 65 | #define conv_ascii2bin(a) (data_ascii2bin[(a)&0x7f]) | 64 | #define conv_ascii2bin(a) (data_ascii2bin[(a)&0x7f]) |
| 66 | #else | ||
| 67 | /* We assume that PEM encoded files are EBCDIC files | ||
| 68 | * (i.e., printable text files). Convert them here while decoding. | ||
| 69 | * When encoding, output is EBCDIC (text) format again. | ||
| 70 | * (No need for conversion in the conv_bin2ascii macro, as the | ||
| 71 | * underlying textstring data_bin2ascii[] is already EBCDIC) | ||
| 72 | */ | ||
| 73 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) | ||
| 74 | #define conv_ascii2bin(a) (data_ascii2bin[os_toascii[a]&0x7f]) | ||
| 75 | #endif | ||
| 76 | 65 | ||
| 77 | /* 64 char lines | 66 | /* 64 char lines |
| 78 | * pad input with 0 | 67 | * pad input with 0 |
diff --git a/src/lib/libcrypto/hmac/hmactest.c b/src/lib/libcrypto/hmac/hmactest.c index 1b906b81af..282e06e53e 100644 --- a/src/lib/libcrypto/hmac/hmactest.c +++ b/src/lib/libcrypto/hmac/hmactest.c | |||
| @@ -74,9 +74,6 @@ int main(int argc, char *argv[]) | |||
| 74 | #include <openssl/md5.h> | 74 | #include <openssl/md5.h> |
| 75 | #endif | 75 | #endif |
| 76 | 76 | ||
| 77 | #ifdef CHARSET_EBCDIC | ||
| 78 | #include <openssl/ebcdic.h> | ||
| 79 | #endif | ||
| 80 | 77 | ||
| 81 | #ifndef OPENSSL_NO_MD5 | 78 | #ifndef OPENSSL_NO_MD5 |
| 82 | static struct test_st | 79 | static struct test_st |
| @@ -132,14 +129,6 @@ int main(int argc, char *argv[]) | |||
| 132 | #ifdef OPENSSL_NO_MD5 | 129 | #ifdef OPENSSL_NO_MD5 |
| 133 | printf("test skipped: MD5 disabled\n"); | 130 | printf("test skipped: MD5 disabled\n"); |
| 134 | #else | 131 | #else |
| 135 | |||
| 136 | #ifdef CHARSET_EBCDIC | ||
| 137 | ebcdic2ascii(test[0].data, test[0].data, test[0].data_len); | ||
| 138 | ebcdic2ascii(test[1].data, test[1].data, test[1].data_len); | ||
| 139 | ebcdic2ascii(test[2].key, test[2].key, test[2].key_len); | ||
| 140 | ebcdic2ascii(test[2].data, test[2].data, test[2].data_len); | ||
| 141 | #endif | ||
| 142 | |||
| 143 | for (i=0; i<4; i++) | 132 | for (i=0; i<4; i++) |
| 144 | { | 133 | { |
| 145 | p=pt(HMAC(EVP_md5(), | 134 | p=pt(HMAC(EVP_md5(), |
diff --git a/src/lib/libcrypto/md2/md2_one.c b/src/lib/libcrypto/md2/md2_one.c index f7fef5cc0a..cb8594e085 100644 --- a/src/lib/libcrypto/md2/md2_one.c +++ b/src/lib/libcrypto/md2/md2_one.c | |||
| @@ -71,23 +71,7 @@ unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md) | |||
| 71 | if (md == NULL) md=m; | 71 | if (md == NULL) md=m; |
| 72 | if (!MD2_Init(&c)) | 72 | if (!MD2_Init(&c)) |
| 73 | return NULL; | 73 | return NULL; |
| 74 | #ifndef CHARSET_EBCDIC | ||
| 75 | MD2_Update(&c,d,n); | 74 | MD2_Update(&c,d,n); |
| 76 | #else | ||
| 77 | { | ||
| 78 | char temp[1024]; | ||
| 79 | unsigned long chunk; | ||
| 80 | |||
| 81 | while (n > 0) | ||
| 82 | { | ||
| 83 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 84 | ebcdic2ascii(temp, d, chunk); | ||
| 85 | MD2_Update(&c,temp,chunk); | ||
| 86 | n -= chunk; | ||
| 87 | d += chunk; | ||
| 88 | } | ||
| 89 | } | ||
| 90 | #endif | ||
| 91 | MD2_Final(md,&c); | 75 | MD2_Final(md,&c); |
| 92 | OPENSSL_cleanse(&c,sizeof(c)); /* Security consideration */ | 76 | OPENSSL_cleanse(&c,sizeof(c)); /* Security consideration */ |
| 93 | return(md); | 77 | return(md); |
diff --git a/src/lib/libcrypto/md2/md2test.c b/src/lib/libcrypto/md2/md2test.c index db5f5bc6d2..0195214036 100644 --- a/src/lib/libcrypto/md2/md2test.c +++ b/src/lib/libcrypto/md2/md2test.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/md2.h> | 73 | #include <openssl/md2.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | static char *test[]={ | 75 | static char *test[]={ |
| 80 | "", | 76 | "", |
| 81 | "a", | 77 | "a", |
diff --git a/src/lib/libcrypto/md4/md4_one.c b/src/lib/libcrypto/md4/md4_one.c index bb64362638..ed6ce33650 100644 --- a/src/lib/libcrypto/md4/md4_one.c +++ b/src/lib/libcrypto/md4/md4_one.c | |||
| @@ -61,10 +61,6 @@ | |||
| 61 | #include <openssl/md4.h> | 61 | #include <openssl/md4.h> |
| 62 | #include <openssl/crypto.h> | 62 | #include <openssl/crypto.h> |
| 63 | 63 | ||
| 64 | #ifdef CHARSET_EBCDIC | ||
| 65 | #include <openssl/ebcdic.h> | ||
| 66 | #endif | ||
| 67 | |||
| 68 | unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) | 64 | unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) |
| 69 | { | 65 | { |
| 70 | MD4_CTX c; | 66 | MD4_CTX c; |
| @@ -73,23 +69,7 @@ unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) | |||
| 73 | if (md == NULL) md=m; | 69 | if (md == NULL) md=m; |
| 74 | if (!MD4_Init(&c)) | 70 | if (!MD4_Init(&c)) |
| 75 | return NULL; | 71 | return NULL; |
| 76 | #ifndef CHARSET_EBCDIC | ||
| 77 | MD4_Update(&c,d,n); | 72 | MD4_Update(&c,d,n); |
| 78 | #else | ||
| 79 | { | ||
| 80 | char temp[1024]; | ||
| 81 | unsigned long chunk; | ||
| 82 | |||
| 83 | while (n > 0) | ||
| 84 | { | ||
| 85 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 86 | ebcdic2ascii(temp, d, chunk); | ||
| 87 | MD4_Update(&c,temp,chunk); | ||
| 88 | n -= chunk; | ||
| 89 | d += chunk; | ||
| 90 | } | ||
| 91 | } | ||
| 92 | #endif | ||
| 93 | MD4_Final(md,&c); | 73 | MD4_Final(md,&c); |
| 94 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ | 74 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ |
| 95 | return(md); | 75 | return(md); |
diff --git a/src/lib/libcrypto/md5/md5_one.c b/src/lib/libcrypto/md5/md5_one.c index 43fee89379..839e27e972 100644 --- a/src/lib/libcrypto/md5/md5_one.c +++ b/src/lib/libcrypto/md5/md5_one.c | |||
| @@ -61,10 +61,6 @@ | |||
| 61 | #include <openssl/md5.h> | 61 | #include <openssl/md5.h> |
| 62 | #include <openssl/crypto.h> | 62 | #include <openssl/crypto.h> |
| 63 | 63 | ||
| 64 | #ifdef CHARSET_EBCDIC | ||
| 65 | #include <openssl/ebcdic.h> | ||
| 66 | #endif | ||
| 67 | |||
| 68 | unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) | 64 | unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) |
| 69 | { | 65 | { |
| 70 | MD5_CTX c; | 66 | MD5_CTX c; |
| @@ -73,23 +69,7 @@ unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) | |||
| 73 | if (md == NULL) md=m; | 69 | if (md == NULL) md=m; |
| 74 | if (!MD5_Init(&c)) | 70 | if (!MD5_Init(&c)) |
| 75 | return NULL; | 71 | return NULL; |
| 76 | #ifndef CHARSET_EBCDIC | ||
| 77 | MD5_Update(&c,d,n); | 72 | MD5_Update(&c,d,n); |
| 78 | #else | ||
| 79 | { | ||
| 80 | char temp[1024]; | ||
| 81 | unsigned long chunk; | ||
| 82 | |||
| 83 | while (n > 0) | ||
| 84 | { | ||
| 85 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 86 | ebcdic2ascii(temp, d, chunk); | ||
| 87 | MD5_Update(&c,temp,chunk); | ||
| 88 | n -= chunk; | ||
| 89 | d += chunk; | ||
| 90 | } | ||
| 91 | } | ||
| 92 | #endif | ||
| 93 | MD5_Final(md,&c); | 73 | MD5_Final(md,&c); |
| 94 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ | 74 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ |
| 95 | return(md); | 75 | return(md); |
diff --git a/src/lib/libcrypto/mdc2/mdc2test.c b/src/lib/libcrypto/mdc2/mdc2test.c index 017b31add2..cf8f65cf27 100644 --- a/src/lib/libcrypto/mdc2/mdc2test.c +++ b/src/lib/libcrypto/mdc2/mdc2test.c | |||
| @@ -76,10 +76,6 @@ int main(int argc, char *argv[]) | |||
| 76 | #include <openssl/evp.h> | 76 | #include <openssl/evp.h> |
| 77 | #include <openssl/mdc2.h> | 77 | #include <openssl/mdc2.h> |
| 78 | 78 | ||
| 79 | #ifdef CHARSET_EBCDIC | ||
| 80 | #include <openssl/ebcdic.h> | ||
| 81 | #endif | ||
| 82 | |||
| 83 | static unsigned char pad1[16]={ | 79 | static unsigned char pad1[16]={ |
| 84 | 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA, | 80 | 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA, |
| 85 | 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A | 81 | 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A |
| @@ -98,10 +94,6 @@ int main(int argc, char *argv[]) | |||
| 98 | EVP_MD_CTX c; | 94 | EVP_MD_CTX c; |
| 99 | static char *text="Now is the time for all "; | 95 | static char *text="Now is the time for all "; |
| 100 | 96 | ||
| 101 | #ifdef CHARSET_EBCDIC | ||
| 102 | ebcdic2ascii(text,text,strlen(text)); | ||
| 103 | #endif | ||
| 104 | |||
| 105 | EVP_MD_CTX_init(&c); | 97 | EVP_MD_CTX_init(&c); |
| 106 | EVP_DigestInit_ex(&c,EVP_mdc2(), NULL); | 98 | EVP_DigestInit_ex(&c,EVP_mdc2(), NULL); |
| 107 | EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text)); | 99 | EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text)); |
diff --git a/src/lib/libcrypto/objects/obj_dat.c b/src/lib/libcrypto/objects/obj_dat.c index a597284c80..bced796e62 100644 --- a/src/lib/libcrypto/objects/obj_dat.c +++ b/src/lib/libcrypto/objects/obj_dat.c | |||
| @@ -705,22 +705,6 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base_, int num, | |||
| 705 | else | 705 | else |
| 706 | break; | 706 | break; |
| 707 | } | 707 | } |
| 708 | #ifdef CHARSET_EBCDIC | ||
| 709 | /* THIS IS A KLUDGE - Because the *_obj is sorted in ASCII order, and | ||
| 710 | * I don't have perl (yet), we revert to a *LINEAR* search | ||
| 711 | * when the object wasn't found in the binary search. | ||
| 712 | */ | ||
| 713 | if (c != 0) | ||
| 714 | { | ||
| 715 | for (i=0; i<num; ++i) | ||
| 716 | { | ||
| 717 | p= &(base[i*size]); | ||
| 718 | c = (*cmp)(key,p); | ||
| 719 | if (c == 0 || (c < 0 && (flags & OBJ_BSEARCH_VALUE_ON_NOMATCH))) | ||
| 720 | return p; | ||
| 721 | } | ||
| 722 | } | ||
| 723 | #endif | ||
| 724 | if (c != 0 && !(flags & OBJ_BSEARCH_VALUE_ON_NOMATCH)) | 708 | if (c != 0 && !(flags & OBJ_BSEARCH_VALUE_ON_NOMATCH)) |
| 725 | p = NULL; | 709 | p = NULL; |
| 726 | else if (c == 0 && (flags & OBJ_BSEARCH_FIRST_VALUE_ON_MATCH)) | 710 | else if (c == 0 && (flags & OBJ_BSEARCH_FIRST_VALUE_ON_MATCH)) |
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c index 5a421fc4b6..74baa2ec1c 100644 --- a/src/lib/libcrypto/pem/pem_lib.c +++ b/src/lib/libcrypto/pem/pem_lib.c | |||
| @@ -382,10 +382,6 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, | |||
| 382 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,PEM_R_READ_KEY); | 382 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,PEM_R_READ_KEY); |
| 383 | goto err; | 383 | goto err; |
| 384 | } | 384 | } |
| 385 | #ifdef CHARSET_EBCDIC | ||
| 386 | /* Convert the pass phrase from EBCDIC */ | ||
| 387 | ebcdic2ascii(buf, buf, klen); | ||
| 388 | #endif | ||
| 389 | kstr=(unsigned char *)buf; | 385 | kstr=(unsigned char *)buf; |
| 390 | } | 386 | } |
| 391 | RAND_add(data,i,0);/* put in the RSA key. */ | 387 | RAND_add(data,i,0);/* put in the RSA key. */ |
| @@ -458,11 +454,6 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, | |||
| 458 | PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_PASSWORD_READ); | 454 | PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_PASSWORD_READ); |
| 459 | return(0); | 455 | return(0); |
| 460 | } | 456 | } |
| 461 | #ifdef CHARSET_EBCDIC | ||
| 462 | /* Convert the pass phrase from EBCDIC */ | ||
| 463 | ebcdic2ascii(buf, buf, klen); | ||
| 464 | #endif | ||
| 465 | |||
| 466 | if (!EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), | 457 | if (!EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), |
| 467 | (unsigned char *)buf,klen,1,key,NULL)) | 458 | (unsigned char *)buf,klen,1,key,NULL)) |
| 468 | return 0; | 459 | return 0; |
| @@ -516,15 +507,9 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) | |||
| 516 | for (;;) | 507 | for (;;) |
| 517 | { | 508 | { |
| 518 | c= *header; | 509 | c= *header; |
| 519 | #ifndef CHARSET_EBCDIC | ||
| 520 | if (!( ((c >= 'A') && (c <= 'Z')) || (c == '-') || | 510 | if (!( ((c >= 'A') && (c <= 'Z')) || (c == '-') || |
| 521 | ((c >= '0') && (c <= '9')))) | 511 | ((c >= '0') && (c <= '9')))) |
| 522 | break; | 512 | break; |
| 523 | #else | ||
| 524 | if (!( isupper(c) || (c == '-') || | ||
| 525 | isdigit(c))) | ||
| 526 | break; | ||
| 527 | #endif | ||
| 528 | header++; | 513 | header++; |
| 529 | } | 514 | } |
| 530 | *header='\0'; | 515 | *header='\0'; |
diff --git a/src/lib/libcrypto/ripemd/rmdtest.c b/src/lib/libcrypto/ripemd/rmdtest.c index fb34e0e836..b32fda96ed 100644 --- a/src/lib/libcrypto/ripemd/rmdtest.c +++ b/src/lib/libcrypto/ripemd/rmdtest.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/ripemd.h> | 72 | #include <openssl/ripemd.h> |
| 73 | #include <openssl/evp.h> | 73 | #include <openssl/evp.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | static char *test[]={ | 75 | static char *test[]={ |
| 80 | "", | 76 | "", |
| 81 | "a", | 77 | "a", |
| @@ -112,9 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | i=1; | 108 | i=1; |
| 113 | while (*P != NULL) | 109 | while (*P != NULL) |
| 114 | { | 110 | { |
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii((char *)*P, (char *)*P, strlen((char *)*P)); | ||
| 117 | #endif | ||
| 118 | EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL); | 111 | EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL); |
| 119 | p=pt(md); | 112 | p=pt(md); |
| 120 | if (strcmp(p,(char *)*R) != 0) | 113 | if (strcmp(p,(char *)*R) != 0) |
diff --git a/src/lib/libcrypto/sha/sha1test.c b/src/lib/libcrypto/sha/sha1test.c index 6feb3964c7..ad9e3dc407 100644 --- a/src/lib/libcrypto/sha/sha1test.c +++ b/src/lib/libcrypto/sha/sha1test.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/sha.h> | 73 | #include <openssl/sha.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #undef SHA_0 /* FIPS 180 */ | 75 | #undef SHA_0 /* FIPS 180 */ |
| 80 | #define SHA_1 /* FIPS 180-1 */ | 76 | #define SHA_1 /* FIPS 180-1 */ |
| 81 | 77 | ||
| @@ -112,11 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | EVP_MD_CTX c; | 108 | EVP_MD_CTX c; |
| 113 | unsigned char md[SHA_DIGEST_LENGTH]; | 109 | unsigned char md[SHA_DIGEST_LENGTH]; |
| 114 | 110 | ||
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
| 117 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
| 118 | #endif | ||
| 119 | |||
| 120 | EVP_MD_CTX_init(&c); | 111 | EVP_MD_CTX_init(&c); |
| 121 | P=test; | 112 | P=test; |
| 122 | R=ret; | 113 | R=ret; |
| @@ -139,9 +130,6 @@ int main(int argc, char *argv[]) | |||
| 139 | } | 130 | } |
| 140 | 131 | ||
| 141 | memset(buf,'a',1000); | 132 | memset(buf,'a',1000); |
| 142 | #ifdef CHARSET_EBCDIC | ||
| 143 | ebcdic2ascii(buf, buf, 1000); | ||
| 144 | #endif /*CHARSET_EBCDIC*/ | ||
| 145 | EVP_DigestInit_ex(&c,EVP_sha1(), NULL); | 133 | EVP_DigestInit_ex(&c,EVP_sha1(), NULL); |
| 146 | for (i=0; i<1000; i++) | 134 | for (i=0; i<1000; i++) |
| 147 | EVP_DigestUpdate(&c,buf,1000); | 135 | EVP_DigestUpdate(&c,buf,1000); |
diff --git a/src/lib/libcrypto/sha/shatest.c b/src/lib/libcrypto/sha/shatest.c index 27614646d1..6c93c39590 100644 --- a/src/lib/libcrypto/sha/shatest.c +++ b/src/lib/libcrypto/sha/shatest.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/sha.h> | 73 | #include <openssl/sha.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #define SHA_0 /* FIPS 180 */ | 75 | #define SHA_0 /* FIPS 180 */ |
| 80 | #undef SHA_1 /* FIPS 180-1 */ | 76 | #undef SHA_1 /* FIPS 180-1 */ |
| 81 | 77 | ||
| @@ -112,11 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | EVP_MD_CTX c; | 108 | EVP_MD_CTX c; |
| 113 | unsigned char md[SHA_DIGEST_LENGTH]; | 109 | unsigned char md[SHA_DIGEST_LENGTH]; |
| 114 | 110 | ||
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
| 117 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
| 118 | #endif | ||
| 119 | |||
| 120 | EVP_MD_CTX_init(&c); | 111 | EVP_MD_CTX_init(&c); |
| 121 | P=test; | 112 | P=test; |
| 122 | R=ret; | 113 | R=ret; |
| @@ -139,9 +130,6 @@ int main(int argc, char *argv[]) | |||
| 139 | } | 130 | } |
| 140 | 131 | ||
| 141 | memset(buf,'a',1000); | 132 | memset(buf,'a',1000); |
| 142 | #ifdef CHARSET_EBCDIC | ||
| 143 | ebcdic2ascii(buf, buf, 1000); | ||
| 144 | #endif /*CHARSET_EBCDIC*/ | ||
| 145 | EVP_DigestInit_ex(&c,EVP_sha(), NULL); | 133 | EVP_DigestInit_ex(&c,EVP_sha(), NULL); |
| 146 | for (i=0; i<1000; i++) | 134 | for (i=0; i<1000; i++) |
| 147 | EVP_DigestUpdate(&c,buf,1000); | 135 | EVP_DigestUpdate(&c,buf,1000); |
diff --git a/src/lib/libcrypto/x509/x509_obj.c b/src/lib/libcrypto/x509/x509_obj.c index 21fed9f838..bcc1e7429e 100644 --- a/src/lib/libcrypto/x509/x509_obj.c +++ b/src/lib/libcrypto/x509/x509_obj.c | |||
| @@ -75,9 +75,6 @@ int i; | |||
| 75 | static const char hex[17]="0123456789ABCDEF"; | 75 | static const char hex[17]="0123456789ABCDEF"; |
| 76 | int gs_doit[4]; | 76 | int gs_doit[4]; |
| 77 | char tmp_buf[80]; | 77 | char tmp_buf[80]; |
| 78 | #ifdef CHARSET_EBCDIC | ||
| 79 | char ebcdic_buf[1024]; | ||
| 80 | #endif | ||
| 81 | 78 | ||
| 82 | if (buf == NULL) | 79 | if (buf == NULL) |
| 83 | { | 80 | { |
| @@ -114,20 +111,6 @@ int i; | |||
| 114 | type=ne->value->type; | 111 | type=ne->value->type; |
| 115 | num=ne->value->length; | 112 | num=ne->value->length; |
| 116 | q=ne->value->data; | 113 | q=ne->value->data; |
| 117 | #ifdef CHARSET_EBCDIC | ||
| 118 | if (type == V_ASN1_GENERALSTRING || | ||
| 119 | type == V_ASN1_VISIBLESTRING || | ||
| 120 | type == V_ASN1_PRINTABLESTRING || | ||
| 121 | type == V_ASN1_TELETEXSTRING || | ||
| 122 | type == V_ASN1_VISIBLESTRING || | ||
| 123 | type == V_ASN1_IA5STRING) { | ||
| 124 | ascii2ebcdic(ebcdic_buf, q, | ||
| 125 | (num > sizeof ebcdic_buf) | ||
| 126 | ? sizeof ebcdic_buf : num); | ||
| 127 | q=ebcdic_buf; | ||
| 128 | } | ||
| 129 | #endif | ||
| 130 | |||
| 131 | if ((type == V_ASN1_GENERALSTRING) && ((num%4) == 0)) | 114 | if ((type == V_ASN1_GENERALSTRING) && ((num%4) == 0)) |
| 132 | { | 115 | { |
| 133 | gs_doit[0]=gs_doit[1]=gs_doit[2]=gs_doit[3]=0; | 116 | gs_doit[0]=gs_doit[1]=gs_doit[2]=gs_doit[3]=0; |
| @@ -149,12 +132,7 @@ int i; | |||
| 149 | { | 132 | { |
| 150 | if (!gs_doit[j&3]) continue; | 133 | if (!gs_doit[j&3]) continue; |
| 151 | l2++; | 134 | l2++; |
| 152 | #ifndef CHARSET_EBCDIC | ||
| 153 | if ((q[j] < ' ') || (q[j] > '~')) l2+=3; | 135 | if ((q[j] < ' ') || (q[j] > '~')) l2+=3; |
| 154 | #else | ||
| 155 | if ((os_toascii[q[j]] < os_toascii[' ']) || | ||
| 156 | (os_toascii[q[j]] > os_toascii['~'])) l2+=3; | ||
| 157 | #endif | ||
| 158 | } | 136 | } |
| 159 | 137 | ||
| 160 | lold=l; | 138 | lold=l; |
| @@ -173,15 +151,10 @@ int i; | |||
| 173 | *(p++)='/'; | 151 | *(p++)='/'; |
| 174 | memcpy(p,s,(unsigned int)l1); p+=l1; | 152 | memcpy(p,s,(unsigned int)l1); p+=l1; |
| 175 | *(p++)='='; | 153 | *(p++)='='; |
| 176 | |||
| 177 | #ifndef CHARSET_EBCDIC /* q was assigned above already. */ | ||
| 178 | q=ne->value->data; | 154 | q=ne->value->data; |
| 179 | #endif | ||
| 180 | |||
| 181 | for (j=0; j<num; j++) | 155 | for (j=0; j<num; j++) |
| 182 | { | 156 | { |
| 183 | if (!gs_doit[j&3]) continue; | 157 | if (!gs_doit[j&3]) continue; |
| 184 | #ifndef CHARSET_EBCDIC | ||
| 185 | n=q[j]; | 158 | n=q[j]; |
| 186 | if ((n < ' ') || (n > '~')) | 159 | if ((n < ' ') || (n > '~')) |
| 187 | { | 160 | { |
| @@ -192,19 +165,6 @@ int i; | |||
| 192 | } | 165 | } |
| 193 | else | 166 | else |
| 194 | *(p++)=n; | 167 | *(p++)=n; |
| 195 | #else | ||
| 196 | n=os_toascii[q[j]]; | ||
| 197 | if ((n < os_toascii[' ']) || | ||
| 198 | (n > os_toascii['~'])) | ||
| 199 | { | ||
| 200 | *(p++)='\\'; | ||
| 201 | *(p++)='x'; | ||
| 202 | *(p++)=hex[(n>>4)&0x0f]; | ||
| 203 | *(p++)=hex[n&0x0f]; | ||
| 204 | } | ||
| 205 | else | ||
| 206 | *(p++)=q[j]; | ||
| 207 | #endif | ||
| 208 | } | 168 | } |
| 209 | *p='\0'; | 169 | *p='\0'; |
| 210 | } | 170 | } |
diff --git a/src/lib/libcrypto/x509v3/v3_ia5.c b/src/lib/libcrypto/x509v3/v3_ia5.c index 4ff12b52b5..ab1c5188b8 100644 --- a/src/lib/libcrypto/x509v3/v3_ia5.c +++ b/src/lib/libcrypto/x509v3/v3_ia5.c | |||
| @@ -105,9 +105,6 @@ static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, | |||
| 105 | M_ASN1_IA5STRING_free(ia5); | 105 | M_ASN1_IA5STRING_free(ia5); |
| 106 | goto err; | 106 | goto err; |
| 107 | } | 107 | } |
| 108 | #ifdef CHARSET_EBCDIC | ||
| 109 | ebcdic2ascii(ia5->data, ia5->data, ia5->length); | ||
| 110 | #endif /*CHARSET_EBCDIC*/ | ||
| 111 | return ia5; | 108 | return ia5; |
| 112 | err: | 109 | err: |
| 113 | X509V3err(X509V3_F_S2I_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); | 110 | X509V3err(X509V3_F_S2I_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); |
diff --git a/src/lib/libcrypto/x509v3/v3_prn.c b/src/lib/libcrypto/x509v3/v3_prn.c index 3146218708..2124b447b4 100644 --- a/src/lib/libcrypto/x509v3/v3_prn.c +++ b/src/lib/libcrypto/x509v3/v3_prn.c | |||
| @@ -83,22 +83,7 @@ void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml) | |||
| 83 | nval = sk_CONF_VALUE_value(val, i); | 83 | nval = sk_CONF_VALUE_value(val, i); |
| 84 | if(!nval->name) BIO_puts(out, nval->value); | 84 | if(!nval->name) BIO_puts(out, nval->value); |
| 85 | else if(!nval->value) BIO_puts(out, nval->name); | 85 | else if(!nval->value) BIO_puts(out, nval->name); |
| 86 | #ifndef CHARSET_EBCDIC | ||
| 87 | else BIO_printf(out, "%s:%s", nval->name, nval->value); | 86 | else BIO_printf(out, "%s:%s", nval->name, nval->value); |
| 88 | #else | ||
| 89 | else { | ||
| 90 | int len; | ||
| 91 | char *tmp; | ||
| 92 | len = strlen(nval->value)+1; | ||
| 93 | tmp = OPENSSL_malloc(len); | ||
| 94 | if (tmp) | ||
| 95 | { | ||
| 96 | ascii2ebcdic(tmp, nval->value, len); | ||
| 97 | BIO_printf(out, "%s:%s", nval->name, tmp); | ||
| 98 | OPENSSL_free(tmp); | ||
| 99 | } | ||
| 100 | } | ||
| 101 | #endif | ||
| 102 | if(ml) BIO_puts(out, "\n"); | 87 | if(ml) BIO_puts(out, "\n"); |
| 103 | } | 88 | } |
| 104 | } | 89 | } |
| @@ -127,22 +112,7 @@ int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int inde | |||
| 127 | ok = 0; | 112 | ok = 0; |
| 128 | goto err; | 113 | goto err; |
| 129 | } | 114 | } |
| 130 | #ifndef CHARSET_EBCDIC | ||
| 131 | BIO_printf(out, "%*s%s", indent, "", value); | 115 | BIO_printf(out, "%*s%s", indent, "", value); |
| 132 | #else | ||
| 133 | { | ||
| 134 | int len; | ||
| 135 | char *tmp; | ||
| 136 | len = strlen(value)+1; | ||
| 137 | tmp = OPENSSL_malloc(len); | ||
| 138 | if (tmp) | ||
| 139 | { | ||
| 140 | ascii2ebcdic(tmp, value, len); | ||
| 141 | BIO_printf(out, "%*s%s", indent, "", tmp); | ||
| 142 | OPENSSL_free(tmp); | ||
| 143 | } | ||
| 144 | } | ||
| 145 | #endif | ||
| 146 | } else if(method->i2v) { | 116 | } else if(method->i2v) { |
| 147 | if(!(nval = method->i2v(method, ext_str, NULL))) { | 117 | if(!(nval = method->i2v(method, ext_str, NULL))) { |
| 148 | ok = 0; | 118 | ok = 0; |
diff --git a/src/lib/libcrypto/x509v3/v3_utl.c b/src/lib/libcrypto/x509v3/v3_utl.c index e030234540..c4b6143eff 100644 --- a/src/lib/libcrypto/x509v3/v3_utl.c +++ b/src/lib/libcrypto/x509v3/v3_utl.c | |||
| @@ -378,10 +378,6 @@ char *hex_to_string(const unsigned char *buffer, long len) | |||
| 378 | *q++ = ':'; | 378 | *q++ = ':'; |
| 379 | } | 379 | } |
| 380 | q[-1] = 0; | 380 | q[-1] = 0; |
| 381 | #ifdef CHARSET_EBCDIC | ||
| 382 | ebcdic2ascii(tmp, tmp, q - tmp - 1); | ||
| 383 | #endif | ||
| 384 | |||
| 385 | return tmp; | 381 | return tmp; |
| 386 | } | 382 | } |
| 387 | 383 | ||
| @@ -400,14 +396,8 @@ unsigned char *string_to_hex(const char *str, long *len) | |||
| 400 | if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err; | 396 | if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err; |
| 401 | for(p = (unsigned char *)str, q = hexbuf; *p;) { | 397 | for(p = (unsigned char *)str, q = hexbuf; *p;) { |
| 402 | ch = *p++; | 398 | ch = *p++; |
| 403 | #ifdef CHARSET_EBCDIC | ||
| 404 | ch = os_toebcdic[ch]; | ||
| 405 | #endif | ||
| 406 | if(ch == ':') continue; | 399 | if(ch == ':') continue; |
| 407 | cl = *p++; | 400 | cl = *p++; |
| 408 | #ifdef CHARSET_EBCDIC | ||
| 409 | cl = os_toebcdic[cl]; | ||
| 410 | #endif | ||
| 411 | if(!cl) { | 401 | if(!cl) { |
| 412 | X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS); | 402 | X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS); |
| 413 | OPENSSL_free(hexbuf); | 403 | OPENSSL_free(hexbuf); |
| @@ -844,21 +834,13 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, | |||
| 844 | * multiple instances | 834 | * multiple instances |
| 845 | */ | 835 | */ |
| 846 | for(p = type; *p ; p++) | 836 | for(p = type; *p ; p++) |
| 847 | #ifndef CHARSET_EBCDIC | ||
| 848 | if ((*p == ':') || (*p == ',') || (*p == '.')) | 837 | if ((*p == ':') || (*p == ',') || (*p == '.')) |
| 849 | #else | ||
| 850 | if ((*p == os_toascii[':']) || (*p == os_toascii[',']) || (*p == os_toascii['.'])) | ||
| 851 | #endif | ||
| 852 | { | 838 | { |
| 853 | p++; | 839 | p++; |
| 854 | if(*p) type = p; | 840 | if(*p) type = p; |
| 855 | break; | 841 | break; |
| 856 | } | 842 | } |
| 857 | #ifndef CHARSET_EBCDIC | ||
| 858 | if (*type == '+') | 843 | if (*type == '+') |
| 859 | #else | ||
| 860 | if (*type == os_toascii['+']) | ||
| 861 | #endif | ||
| 862 | { | 844 | { |
| 863 | mval = -1; | 845 | mval = -1; |
| 864 | type++; | 846 | type++; |
diff --git a/src/lib/libssl/src/apps/passwd.c b/src/lib/libssl/src/apps/passwd.c index 473fe46cbd..9eabeb488c 100644 --- a/src/lib/libssl/src/apps/passwd.c +++ b/src/lib/libssl/src/apps/passwd.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* apps/passwd.c */ | 1 | /* apps/passwd.c */ |
| 2 | 2 | ||
| 3 | #if defined OPENSSL_NO_MD5 || defined CHARSET_EBCDIC | 3 | #if defined OPENSSL_NO_MD5 |
| 4 | # define NO_MD5CRYPT_1 | 4 | # define NO_MD5CRYPT_1 |
| 5 | #endif | 5 | #endif |
| 6 | 6 | ||
| @@ -440,10 +440,6 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p, | |||
| 440 | (*salt_p)[0] = cov_2char[(*salt_p)[0] & 0x3f]; /* 6 bits */ | 440 | (*salt_p)[0] = cov_2char[(*salt_p)[0] & 0x3f]; /* 6 bits */ |
| 441 | (*salt_p)[1] = cov_2char[(*salt_p)[1] & 0x3f]; /* 6 bits */ | 441 | (*salt_p)[1] = cov_2char[(*salt_p)[1] & 0x3f]; /* 6 bits */ |
| 442 | (*salt_p)[2] = 0; | 442 | (*salt_p)[2] = 0; |
| 443 | #ifdef CHARSET_EBCDIC | ||
| 444 | ascii2ebcdic(*salt_p, *salt_p, 2); /* des_crypt will convert | ||
| 445 | * back to ASCII */ | ||
| 446 | #endif | ||
| 447 | } | 443 | } |
| 448 | #endif /* !OPENSSL_NO_DES */ | 444 | #endif /* !OPENSSL_NO_DES */ |
| 449 | 445 | ||
diff --git a/src/lib/libssl/src/apps/req.c b/src/lib/libssl/src/apps/req.c index f1f412887d..4b5c813cef 100644 --- a/src/lib/libssl/src/apps/req.c +++ b/src/lib/libssl/src/apps/req.c | |||
| @@ -1397,20 +1397,12 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk, | |||
| 1397 | * multiple instances | 1397 | * multiple instances |
| 1398 | */ | 1398 | */ |
| 1399 | for(p = v->name; *p ; p++) | 1399 | for(p = v->name; *p ; p++) |
| 1400 | #ifndef CHARSET_EBCDIC | ||
| 1401 | if ((*p == ':') || (*p == ',') || (*p == '.')) { | 1400 | if ((*p == ':') || (*p == ',') || (*p == '.')) { |
| 1402 | #else | ||
| 1403 | if ((*p == os_toascii[':']) || (*p == os_toascii[',']) || (*p == os_toascii['.'])) { | ||
| 1404 | #endif | ||
| 1405 | p++; | 1401 | p++; |
| 1406 | if(*p) type = p; | 1402 | if(*p) type = p; |
| 1407 | break; | 1403 | break; |
| 1408 | } | 1404 | } |
| 1409 | #ifndef CHARSET_EBCDIC | ||
| 1410 | if (*p == '+') | 1405 | if (*p == '+') |
| 1411 | #else | ||
| 1412 | if (*p == os_toascii['+']) | ||
| 1413 | #endif | ||
| 1414 | { | 1406 | { |
| 1415 | p++; | 1407 | p++; |
| 1416 | mval = -1; | 1408 | mval = -1; |
| @@ -1486,9 +1478,6 @@ start: | |||
| 1486 | return(0); | 1478 | return(0); |
| 1487 | } | 1479 | } |
| 1488 | buf[--i]='\0'; | 1480 | buf[--i]='\0'; |
| 1489 | #ifdef CHARSET_EBCDIC | ||
| 1490 | ebcdic2ascii(buf, buf, i); | ||
| 1491 | #endif | ||
| 1492 | if(!req_check_len(i, n_min, n_max)) goto start; | 1481 | if(!req_check_len(i, n_min, n_max)) goto start; |
| 1493 | if (!X509_NAME_add_entry_by_NID(n,nid, chtype, | 1482 | if (!X509_NAME_add_entry_by_NID(n,nid, chtype, |
| 1494 | (unsigned char *) buf, -1,-1,mval)) goto err; | 1483 | (unsigned char *) buf, -1,-1,mval)) goto err; |
| @@ -1545,9 +1534,6 @@ start: | |||
| 1545 | return(0); | 1534 | return(0); |
| 1546 | } | 1535 | } |
| 1547 | buf[--i]='\0'; | 1536 | buf[--i]='\0'; |
| 1548 | #ifdef CHARSET_EBCDIC | ||
| 1549 | ebcdic2ascii(buf, buf, i); | ||
| 1550 | #endif | ||
| 1551 | if(!req_check_len(i, n_min, n_max)) goto start; | 1537 | if(!req_check_len(i, n_min, n_max)) goto start; |
| 1552 | 1538 | ||
| 1553 | if(!X509_REQ_add1_attr_by_NID(req, nid, chtype, | 1539 | if(!X509_REQ_add1_attr_by_NID(req, nid, chtype, |
diff --git a/src/lib/libssl/src/apps/s_client.c b/src/lib/libssl/src/apps/s_client.c index 78566a595e..87fd958cbd 100644 --- a/src/lib/libssl/src/apps/s_client.c +++ b/src/lib/libssl/src/apps/s_client.c | |||
| @@ -1752,9 +1752,6 @@ SSL_set_tlsext_status_ids(con, ids); | |||
| 1752 | else if (!ssl_pending && FD_ISSET(fileno(stdout),&writefds)) | 1752 | else if (!ssl_pending && FD_ISSET(fileno(stdout),&writefds)) |
| 1753 | #endif | 1753 | #endif |
| 1754 | { | 1754 | { |
| 1755 | #ifdef CHARSET_EBCDIC | ||
| 1756 | ascii2ebcdic(&(sbuf[sbuf_off]),&(sbuf[sbuf_off]),sbuf_len); | ||
| 1757 | #endif | ||
| 1758 | i=raw_write_stdout(&(sbuf[sbuf_off]),sbuf_len); | 1755 | i=raw_write_stdout(&(sbuf[sbuf_off]),sbuf_len); |
| 1759 | 1756 | ||
| 1760 | if (i <= 0) | 1757 | if (i <= 0) |
| @@ -1885,9 +1882,6 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240 | |||
| 1885 | { | 1882 | { |
| 1886 | cbuf_len=i; | 1883 | cbuf_len=i; |
| 1887 | cbuf_off=0; | 1884 | cbuf_off=0; |
| 1888 | #ifdef CHARSET_EBCDIC | ||
| 1889 | ebcdic2ascii(cbuf, cbuf, i); | ||
| 1890 | #endif | ||
| 1891 | } | 1885 | } |
| 1892 | 1886 | ||
| 1893 | write_ssl=1; | 1887 | write_ssl=1; |
diff --git a/src/lib/libssl/src/apps/s_server.c b/src/lib/libssl/src/apps/s_server.c index 53da15da23..de54aa6abd 100644 --- a/src/lib/libssl/src/apps/s_server.c +++ b/src/lib/libssl/src/apps/s_server.c | |||
| @@ -567,156 +567,6 @@ static void sv_usage(void) | |||
| 567 | static int local_argc=0; | 567 | static int local_argc=0; |
| 568 | static char **local_argv; | 568 | static char **local_argv; |
| 569 | 569 | ||
| 570 | #ifdef CHARSET_EBCDIC | ||
| 571 | static int ebcdic_new(BIO *bi); | ||
| 572 | static int ebcdic_free(BIO *a); | ||
| 573 | static int ebcdic_read(BIO *b, char *out, int outl); | ||
| 574 | static int ebcdic_write(BIO *b, const char *in, int inl); | ||
| 575 | static long ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr); | ||
| 576 | static int ebcdic_gets(BIO *bp, char *buf, int size); | ||
| 577 | static int ebcdic_puts(BIO *bp, const char *str); | ||
| 578 | |||
| 579 | #define BIO_TYPE_EBCDIC_FILTER (18|0x0200) | ||
| 580 | static BIO_METHOD methods_ebcdic= | ||
| 581 | { | ||
| 582 | BIO_TYPE_EBCDIC_FILTER, | ||
| 583 | "EBCDIC/ASCII filter", | ||
| 584 | ebcdic_write, | ||
| 585 | ebcdic_read, | ||
| 586 | ebcdic_puts, | ||
| 587 | ebcdic_gets, | ||
| 588 | ebcdic_ctrl, | ||
| 589 | ebcdic_new, | ||
| 590 | ebcdic_free, | ||
| 591 | }; | ||
| 592 | |||
| 593 | typedef struct | ||
| 594 | { | ||
| 595 | size_t alloced; | ||
| 596 | char buff[1]; | ||
| 597 | } EBCDIC_OUTBUFF; | ||
| 598 | |||
| 599 | BIO_METHOD *BIO_f_ebcdic_filter() | ||
| 600 | { | ||
| 601 | return(&methods_ebcdic); | ||
| 602 | } | ||
| 603 | |||
| 604 | static int ebcdic_new(BIO *bi) | ||
| 605 | { | ||
| 606 | EBCDIC_OUTBUFF *wbuf; | ||
| 607 | |||
| 608 | wbuf = (EBCDIC_OUTBUFF *)OPENSSL_malloc(sizeof(EBCDIC_OUTBUFF) + 1024); | ||
| 609 | wbuf->alloced = 1024; | ||
| 610 | wbuf->buff[0] = '\0'; | ||
| 611 | |||
| 612 | bi->ptr=(char *)wbuf; | ||
| 613 | bi->init=1; | ||
| 614 | bi->flags=0; | ||
| 615 | return(1); | ||
| 616 | } | ||
| 617 | |||
| 618 | static int ebcdic_free(BIO *a) | ||
| 619 | { | ||
| 620 | if (a == NULL) return(0); | ||
| 621 | if (a->ptr != NULL) | ||
| 622 | OPENSSL_free(a->ptr); | ||
| 623 | a->ptr=NULL; | ||
| 624 | a->init=0; | ||
| 625 | a->flags=0; | ||
| 626 | return(1); | ||
| 627 | } | ||
| 628 | |||
| 629 | static int ebcdic_read(BIO *b, char *out, int outl) | ||
| 630 | { | ||
| 631 | int ret=0; | ||
| 632 | |||
| 633 | if (out == NULL || outl == 0) return(0); | ||
| 634 | if (b->next_bio == NULL) return(0); | ||
| 635 | |||
| 636 | ret=BIO_read(b->next_bio,out,outl); | ||
| 637 | if (ret > 0) | ||
| 638 | ascii2ebcdic(out,out,ret); | ||
| 639 | return(ret); | ||
| 640 | } | ||
| 641 | |||
| 642 | static int ebcdic_write(BIO *b, const char *in, int inl) | ||
| 643 | { | ||
| 644 | EBCDIC_OUTBUFF *wbuf; | ||
| 645 | int ret=0; | ||
| 646 | int num; | ||
| 647 | unsigned char n; | ||
| 648 | |||
| 649 | if ((in == NULL) || (inl <= 0)) return(0); | ||
| 650 | if (b->next_bio == NULL) return(0); | ||
| 651 | |||
| 652 | wbuf=(EBCDIC_OUTBUFF *)b->ptr; | ||
| 653 | |||
| 654 | if (inl > (num = wbuf->alloced)) | ||
| 655 | { | ||
| 656 | num = num + num; /* double the size */ | ||
| 657 | if (num < inl) | ||
| 658 | num = inl; | ||
| 659 | OPENSSL_free(wbuf); | ||
| 660 | wbuf=(EBCDIC_OUTBUFF *)OPENSSL_malloc(sizeof(EBCDIC_OUTBUFF) + num); | ||
| 661 | |||
| 662 | wbuf->alloced = num; | ||
| 663 | wbuf->buff[0] = '\0'; | ||
| 664 | |||
| 665 | b->ptr=(char *)wbuf; | ||
| 666 | } | ||
| 667 | |||
| 668 | ebcdic2ascii(wbuf->buff, in, inl); | ||
| 669 | |||
| 670 | ret=BIO_write(b->next_bio, wbuf->buff, inl); | ||
| 671 | |||
| 672 | return(ret); | ||
| 673 | } | ||
| 674 | |||
| 675 | static long ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr) | ||
| 676 | { | ||
| 677 | long ret; | ||
| 678 | |||
| 679 | if (b->next_bio == NULL) return(0); | ||
| 680 | switch (cmd) | ||
| 681 | { | ||
| 682 | case BIO_CTRL_DUP: | ||
| 683 | ret=0L; | ||
| 684 | break; | ||
| 685 | default: | ||
| 686 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | ||
| 687 | break; | ||
| 688 | } | ||
| 689 | return(ret); | ||
| 690 | } | ||
| 691 | |||
| 692 | static int ebcdic_gets(BIO *bp, char *buf, int size) | ||
| 693 | { | ||
| 694 | int i, ret=0; | ||
| 695 | if (bp->next_bio == NULL) return(0); | ||
| 696 | /* return(BIO_gets(bp->next_bio,buf,size));*/ | ||
| 697 | for (i=0; i<size-1; ++i) | ||
| 698 | { | ||
| 699 | ret = ebcdic_read(bp,&buf[i],1); | ||
| 700 | if (ret <= 0) | ||
| 701 | break; | ||
| 702 | else if (buf[i] == '\n') | ||
| 703 | { | ||
| 704 | ++i; | ||
| 705 | break; | ||
| 706 | } | ||
| 707 | } | ||
| 708 | if (i < size) | ||
| 709 | buf[i] = '\0'; | ||
| 710 | return (ret < 0 && i == 0) ? ret : i; | ||
| 711 | } | ||
| 712 | |||
| 713 | static int ebcdic_puts(BIO *bp, const char *str) | ||
| 714 | { | ||
| 715 | if (bp->next_bio == NULL) return(0); | ||
| 716 | return ebcdic_write(bp, str, strlen(str)); | ||
| 717 | } | ||
| 718 | #endif | ||
| 719 | |||
| 720 | #ifndef OPENSSL_NO_TLSEXT | 570 | #ifndef OPENSSL_NO_TLSEXT |
| 721 | 571 | ||
| 722 | /* This is a context that we pass to callbacks */ | 572 | /* This is a context that we pass to callbacks */ |
| @@ -2231,9 +2081,6 @@ static int sv_body(char *hostname, int s, unsigned char *context) | |||
| 2231 | print_stats(bio_s_out,SSL_get_SSL_CTX(con)); | 2081 | print_stats(bio_s_out,SSL_get_SSL_CTX(con)); |
| 2232 | } | 2082 | } |
| 2233 | } | 2083 | } |
| 2234 | #ifdef CHARSET_EBCDIC | ||
| 2235 | ebcdic2ascii(buf,buf,i); | ||
| 2236 | #endif | ||
| 2237 | l=k=0; | 2084 | l=k=0; |
| 2238 | for (;;) | 2085 | for (;;) |
| 2239 | { | 2086 | { |
| @@ -2316,9 +2163,6 @@ again: | |||
| 2316 | switch (SSL_get_error(con,i)) | 2163 | switch (SSL_get_error(con,i)) |
| 2317 | { | 2164 | { |
| 2318 | case SSL_ERROR_NONE: | 2165 | case SSL_ERROR_NONE: |
| 2319 | #ifdef CHARSET_EBCDIC | ||
| 2320 | ascii2ebcdic(buf,buf,i); | ||
| 2321 | #endif | ||
| 2322 | raw_write_stdout(buf, | 2166 | raw_write_stdout(buf, |
| 2323 | (unsigned int)i); | 2167 | (unsigned int)i); |
| 2324 | if (SSL_pending(con)) goto again; | 2168 | if (SSL_pending(con)) goto again; |
| @@ -2612,9 +2456,6 @@ static int www_body(char *hostname, int s, unsigned char *context) | |||
| 2612 | /* SSL_set_fd(con,s); */ | 2456 | /* SSL_set_fd(con,s); */ |
| 2613 | BIO_set_ssl(ssl_bio,con,BIO_CLOSE); | 2457 | BIO_set_ssl(ssl_bio,con,BIO_CLOSE); |
| 2614 | BIO_push(io,ssl_bio); | 2458 | BIO_push(io,ssl_bio); |
| 2615 | #ifdef CHARSET_EBCDIC | ||
| 2616 | io = BIO_push(BIO_new(BIO_f_ebcdic_filter()),io); | ||
| 2617 | #endif | ||
| 2618 | 2459 | ||
| 2619 | if (s_debug) | 2460 | if (s_debug) |
| 2620 | { | 2461 | { |
diff --git a/src/lib/libssl/src/crypto/Makefile b/src/lib/libssl/src/crypto/Makefile index aa105e37a2..326915d520 100644 --- a/src/lib/libssl/src/crypto/Makefile +++ b/src/lib/libssl/src/crypto/Makefile | |||
| @@ -35,13 +35,13 @@ GENERAL=Makefile README crypto-lib.com install.com | |||
| 35 | LIB= $(TOP)/libcrypto.a | 35 | LIB= $(TOP)/libcrypto.a |
| 36 | SHARED_LIB= libcrypto$(SHLIB_EXT) | 36 | SHARED_LIB= libcrypto$(SHLIB_EXT) |
| 37 | LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \ | 37 | LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \ |
| 38 | ebcdic.c uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c | 38 | uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c |
| 39 | LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o \ | 39 | LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o \ |
| 40 | uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ) | 40 | uid.o o_time.o o_str.o o_dir.o o_fips.o o_init.o fips_ers.o $(CPUID_OBJ) |
| 41 | 41 | ||
| 42 | SRC= $(LIBSRC) | 42 | SRC= $(LIBSRC) |
| 43 | 43 | ||
| 44 | EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \ | 44 | EXHEADER= crypto.h opensslv.h opensslconf.h symhacks.h \ |
| 45 | ossl_typ.h | 45 | ossl_typ.h |
| 46 | HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER) | 46 | HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER) |
| 47 | 47 | ||
diff --git a/src/lib/libssl/src/crypto/asn1/a_gentm.c b/src/lib/libssl/src/crypto/asn1/a_gentm.c index 04266e790a..4f312ee6c9 100644 --- a/src/lib/libssl/src/crypto/asn1/a_gentm.c +++ b/src/lib/libssl/src/crypto/asn1/a_gentm.c | |||
| @@ -68,18 +68,6 @@ | |||
| 68 | 68 | ||
| 69 | int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **pp) | 69 | int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **pp) |
| 70 | { | 70 | { |
| 71 | #ifdef CHARSET_EBCDIC | ||
| 72 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 73 | int len; | ||
| 74 | char tmp[24]; | ||
| 75 | ASN1_STRING tmpstr = *(ASN1_STRING *)a; | ||
| 76 | |||
| 77 | len = tmpstr.length; | ||
| 78 | ebcdic2ascii(tmp, tmpstr.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 79 | tmpstr.data = tmp; | ||
| 80 | |||
| 81 | a = (ASN1_GENERALIZEDTIME *) &tmpstr; | ||
| 82 | #endif | ||
| 83 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 71 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 84 | V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL)); | 72 | V_ASN1_GENERALIZEDTIME,V_ASN1_UNIVERSAL)); |
| 85 | } | 73 | } |
| @@ -97,9 +85,6 @@ ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, | |||
| 97 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ERR_R_NESTED_ASN1_ERROR); | 85 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ERR_R_NESTED_ASN1_ERROR); |
| 98 | return(NULL); | 86 | return(NULL); |
| 99 | } | 87 | } |
| 100 | #ifdef CHARSET_EBCDIC | ||
| 101 | ascii2ebcdic(ret->data, ret->data, ret->length); | ||
| 102 | #endif | ||
| 103 | if (!ASN1_GENERALIZEDTIME_check(ret)) | 88 | if (!ASN1_GENERALIZEDTIME_check(ret)) |
| 104 | { | 89 | { |
| 105 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_INVALID_TIME_FORMAT); | 90 | ASN1err(ASN1_F_D2I_ASN1_GENERALIZEDTIME,ASN1_R_INVALID_TIME_FORMAT); |
| @@ -256,8 +241,5 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, | |||
| 256 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); | 241 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); |
| 257 | s->length=strlen(p); | 242 | s->length=strlen(p); |
| 258 | s->type=V_ASN1_GENERALIZEDTIME; | 243 | s->type=V_ASN1_GENERALIZEDTIME; |
| 259 | #ifdef CHARSET_EBCDIC_not | ||
| 260 | ebcdic2ascii(s->data, s->data, s->length); | ||
| 261 | #endif | ||
| 262 | return(s); | 244 | return(s); |
| 263 | } | 245 | } |
diff --git a/src/lib/libssl/src/crypto/asn1/a_mbstr.c b/src/lib/libssl/src/crypto/asn1/a_mbstr.c index 264d8f677f..dc953c8325 100644 --- a/src/lib/libssl/src/crypto/asn1/a_mbstr.c +++ b/src/lib/libssl/src/crypto/asn1/a_mbstr.c | |||
| @@ -385,16 +385,9 @@ static int is_printable(unsigned long value) | |||
| 385 | /* Note: we can't use 'isalnum' because certain accented | 385 | /* Note: we can't use 'isalnum' because certain accented |
| 386 | * characters may count as alphanumeric in some environments. | 386 | * characters may count as alphanumeric in some environments. |
| 387 | */ | 387 | */ |
| 388 | #ifndef CHARSET_EBCDIC | ||
| 389 | if((ch >= 'a') && (ch <= 'z')) return 1; | 388 | if((ch >= 'a') && (ch <= 'z')) return 1; |
| 390 | if((ch >= 'A') && (ch <= 'Z')) return 1; | 389 | if((ch >= 'A') && (ch <= 'Z')) return 1; |
| 391 | if((ch >= '0') && (ch <= '9')) return 1; | 390 | if((ch >= '0') && (ch <= '9')) return 1; |
| 392 | if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1; | 391 | if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1; |
| 393 | #else /*CHARSET_EBCDIC*/ | ||
| 394 | if((ch >= os_toascii['a']) && (ch <= os_toascii['z'])) return 1; | ||
| 395 | if((ch >= os_toascii['A']) && (ch <= os_toascii['Z'])) return 1; | ||
| 396 | if((ch >= os_toascii['0']) && (ch <= os_toascii['9'])) return 1; | ||
| 397 | if ((ch == os_toascii[' ']) || strchr("'()+,-./:=?", os_toebcdic[ch])) return 1; | ||
| 398 | #endif /*CHARSET_EBCDIC*/ | ||
| 399 | return 0; | 392 | return 0; |
| 400 | } | 393 | } |
diff --git a/src/lib/libssl/src/crypto/asn1/a_print.c b/src/lib/libssl/src/crypto/asn1/a_print.c index d18e772320..9eec5034e1 100644 --- a/src/lib/libssl/src/crypto/asn1/a_print.c +++ b/src/lib/libssl/src/crypto/asn1/a_print.c | |||
| @@ -72,7 +72,6 @@ int ASN1_PRINTABLE_type(const unsigned char *s, int len) | |||
| 72 | while ((*s) && (len-- != 0)) | 72 | while ((*s) && (len-- != 0)) |
| 73 | { | 73 | { |
| 74 | c= *(s++); | 74 | c= *(s++); |
| 75 | #ifndef CHARSET_EBCDIC | ||
| 76 | if (!( ((c >= 'a') && (c <= 'z')) || | 75 | if (!( ((c >= 'a') && (c <= 'z')) || |
| 77 | ((c >= 'A') && (c <= 'Z')) || | 76 | ((c >= 'A') && (c <= 'Z')) || |
| 78 | (c == ' ') || | 77 | (c == ' ') || |
| @@ -86,13 +85,6 @@ int ASN1_PRINTABLE_type(const unsigned char *s, int len) | |||
| 86 | ia5=1; | 85 | ia5=1; |
| 87 | if (c&0x80) | 86 | if (c&0x80) |
| 88 | t61=1; | 87 | t61=1; |
| 89 | #else | ||
| 90 | if (!isalnum(c) && (c != ' ') && | ||
| 91 | strchr("'()+,-./:=?", c) == NULL) | ||
| 92 | ia5=1; | ||
| 93 | if (os_toascii[c] & 0x80) | ||
| 94 | t61=1; | ||
| 95 | #endif | ||
| 96 | } | 88 | } |
| 97 | if (t61) return(V_ASN1_T61STRING); | 89 | if (t61) return(V_ASN1_T61STRING); |
| 98 | if (ia5) return(V_ASN1_IA5STRING); | 90 | if (ia5) return(V_ASN1_IA5STRING); |
diff --git a/src/lib/libssl/src/crypto/asn1/a_time.c b/src/lib/libssl/src/crypto/asn1/a_time.c index e2eb9b243e..4ade88f065 100644 --- a/src/lib/libssl/src/crypto/asn1/a_time.c +++ b/src/lib/libssl/src/crypto/asn1/a_time.c | |||
| @@ -74,21 +74,6 @@ IMPLEMENT_ASN1_FUNCTIONS(ASN1_TIME) | |||
| 74 | #if 0 | 74 | #if 0 |
| 75 | int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **pp) | 75 | int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **pp) |
| 76 | { | 76 | { |
| 77 | #ifdef CHARSET_EBCDIC | ||
| 78 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 79 | char tmp[24]; | ||
| 80 | ASN1_STRING tmpstr; | ||
| 81 | |||
| 82 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) { | ||
| 83 | int len; | ||
| 84 | |||
| 85 | tmpstr = *(ASN1_STRING *)a; | ||
| 86 | len = tmpstr.length; | ||
| 87 | ebcdic2ascii(tmp, tmpstr.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 88 | tmpstr.data = tmp; | ||
| 89 | a = (ASN1_GENERALIZEDTIME *) &tmpstr; | ||
| 90 | } | ||
| 91 | #endif | ||
| 92 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) | 77 | if(a->type == V_ASN1_UTCTIME || a->type == V_ASN1_GENERALIZEDTIME) |
| 93 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 78 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 94 | a->type ,V_ASN1_UNIVERSAL)); | 79 | a->type ,V_ASN1_UNIVERSAL)); |
diff --git a/src/lib/libssl/src/crypto/asn1/a_utctm.c b/src/lib/libssl/src/crypto/asn1/a_utctm.c index 615395b738..f2e7de16af 100644 --- a/src/lib/libssl/src/crypto/asn1/a_utctm.c +++ b/src/lib/libssl/src/crypto/asn1/a_utctm.c | |||
| @@ -65,20 +65,8 @@ | |||
| 65 | #if 0 | 65 | #if 0 |
| 66 | int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) | 66 | int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) |
| 67 | { | 67 | { |
| 68 | #ifndef CHARSET_EBCDIC | ||
| 69 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, | 68 | return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, |
| 70 | V_ASN1_UTCTIME,V_ASN1_UNIVERSAL)); | 69 | V_ASN1_UTCTIME,V_ASN1_UNIVERSAL)); |
| 71 | #else | ||
| 72 | /* KLUDGE! We convert to ascii before writing DER */ | ||
| 73 | int len; | ||
| 74 | char tmp[24]; | ||
| 75 | ASN1_STRING x = *(ASN1_STRING *)a; | ||
| 76 | |||
| 77 | len = x.length; | ||
| 78 | ebcdic2ascii(tmp, x.data, (len >= sizeof tmp) ? sizeof tmp : len); | ||
| 79 | x.data = tmp; | ||
| 80 | return i2d_ASN1_bytes(&x, pp, V_ASN1_UTCTIME,V_ASN1_UNIVERSAL); | ||
| 81 | #endif | ||
| 82 | } | 70 | } |
| 83 | 71 | ||
| 84 | 72 | ||
| @@ -94,9 +82,6 @@ ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, unsigned char **pp, | |||
| 94 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR); | 82 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR); |
| 95 | return(NULL); | 83 | return(NULL); |
| 96 | } | 84 | } |
| 97 | #ifdef CHARSET_EBCDIC | ||
| 98 | ascii2ebcdic(ret->data, ret->data, ret->length); | ||
| 99 | #endif | ||
| 100 | if (!ASN1_UTCTIME_check(ret)) | 85 | if (!ASN1_UTCTIME_check(ret)) |
| 101 | { | 86 | { |
| 102 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_INVALID_TIME_FORMAT); | 87 | ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_INVALID_TIME_FORMAT); |
| @@ -233,9 +218,6 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, | |||
| 233 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); | 218 | ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); |
| 234 | s->length=strlen(p); | 219 | s->length=strlen(p); |
| 235 | s->type=V_ASN1_UTCTIME; | 220 | s->type=V_ASN1_UTCTIME; |
| 236 | #ifdef CHARSET_EBCDIC_not | ||
| 237 | ebcdic2ascii(s->data, s->data, s->length); | ||
| 238 | #endif | ||
| 239 | return(s); | 221 | return(s); |
| 240 | } | 222 | } |
| 241 | 223 | ||
diff --git a/src/lib/libssl/src/crypto/asn1/f_int.c b/src/lib/libssl/src/crypto/asn1/f_int.c index 9494e597ab..8b92fad9df 100644 --- a/src/lib/libssl/src/crypto/asn1/f_int.c +++ b/src/lib/libssl/src/crypto/asn1/f_int.c | |||
| @@ -123,18 +123,9 @@ int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size) | |||
| 123 | 123 | ||
| 124 | for (j=0; j<i; j++) | 124 | for (j=0; j<i; j++) |
| 125 | { | 125 | { |
| 126 | #ifndef CHARSET_EBCDIC | ||
| 127 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || | 126 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || |
| 128 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 127 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || |
| 129 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) | 128 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) |
| 130 | #else | ||
| 131 | /* This #ifdef is not strictly necessary, since | ||
| 132 | * the characters A...F a...f 0...9 are contiguous | ||
| 133 | * (yes, even in EBCDIC - but not the whole alphabet). | ||
| 134 | * Nevertheless, isxdigit() is faster. | ||
| 135 | */ | ||
| 136 | if (!isxdigit(buf[j])) | ||
| 137 | #endif | ||
| 138 | { | 129 | { |
| 139 | i=j; | 130 | i=j; |
| 140 | break; | 131 | break; |
diff --git a/src/lib/libssl/src/crypto/asn1/f_string.c b/src/lib/libssl/src/crypto/asn1/f_string.c index 968698a798..f7d36adac7 100644 --- a/src/lib/libssl/src/crypto/asn1/f_string.c +++ b/src/lib/libssl/src/crypto/asn1/f_string.c | |||
| @@ -123,18 +123,9 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) | |||
| 123 | 123 | ||
| 124 | for (j=i-1; j>0; j--) | 124 | for (j=i-1; j>0; j--) |
| 125 | { | 125 | { |
| 126 | #ifndef CHARSET_EBCDIC | ||
| 127 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || | 126 | if (!( ((buf[j] >= '0') && (buf[j] <= '9')) || |
| 128 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 127 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || |
| 129 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) | 128 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) |
| 130 | #else | ||
| 131 | /* This #ifdef is not strictly necessary, since | ||
| 132 | * the characters A...F a...f 0...9 are contiguous | ||
| 133 | * (yes, even in EBCDIC - but not the whole alphabet). | ||
| 134 | * Nevertheless, isxdigit() is faster. | ||
| 135 | */ | ||
| 136 | if (!isxdigit(buf[j])) | ||
| 137 | #endif | ||
| 138 | { | 129 | { |
| 139 | i=j; | 130 | i=j; |
| 140 | break; | 131 | break; |
diff --git a/src/lib/libssl/src/crypto/asn1/t_x509.c b/src/lib/libssl/src/crypto/asn1/t_x509.c index edbb39a02f..bbf00c7a29 100644 --- a/src/lib/libssl/src/crypto/asn1/t_x509.c +++ b/src/lib/libssl/src/crypto/asn1/t_x509.c | |||
| @@ -485,7 +485,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase) | |||
| 485 | c=s; | 485 | c=s; |
| 486 | for (;;) | 486 | for (;;) |
| 487 | { | 487 | { |
| 488 | #ifndef CHARSET_EBCDIC | ||
| 489 | if ( ((*s == '/') && | 488 | if ( ((*s == '/') && |
| 490 | ((s[1] >= 'A') && (s[1] <= 'Z') && ( | 489 | ((s[1] >= 'A') && (s[1] <= 'Z') && ( |
| 491 | (s[2] == '=') || | 490 | (s[2] == '=') || |
| @@ -493,15 +492,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase) | |||
| 493 | (s[3] == '=')) | 492 | (s[3] == '=')) |
| 494 | ))) || | 493 | ))) || |
| 495 | (*s == '\0')) | 494 | (*s == '\0')) |
| 496 | #else | ||
| 497 | if ( ((*s == '/') && | ||
| 498 | (isupper(s[1]) && ( | ||
| 499 | (s[2] == '=') || | ||
| 500 | (isupper(s[2]) && | ||
| 501 | (s[3] == '=')) | ||
| 502 | ))) || | ||
| 503 | (*s == '\0')) | ||
| 504 | #endif | ||
| 505 | { | 495 | { |
| 506 | i=s-c; | 496 | i=s-c; |
| 507 | if (BIO_write(bp,c,i) != i) goto err; | 497 | if (BIO_write(bp,c,i) != i) goto err; |
diff --git a/src/lib/libssl/src/crypto/bf/bftest.c b/src/lib/libssl/src/crypto/bf/bftest.c index 97e6634d37..20caf0f3f8 100644 --- a/src/lib/libssl/src/crypto/bf/bftest.c +++ b/src/lib/libssl/src/crypto/bf/bftest.c | |||
| @@ -75,10 +75,6 @@ int main(int argc, char *argv[]) | |||
| 75 | #else | 75 | #else |
| 76 | #include <openssl/blowfish.h> | 76 | #include <openssl/blowfish.h> |
| 77 | 77 | ||
| 78 | #ifdef CHARSET_EBCDIC | ||
| 79 | #include <openssl/ebcdic.h> | ||
| 80 | #endif | ||
| 81 | |||
| 82 | static char *bf_key[2]={ | 78 | static char *bf_key[2]={ |
| 83 | "abcdefghijklmnopqrstuvwxyz", | 79 | "abcdefghijklmnopqrstuvwxyz", |
| 84 | "Who is John Galt?" | 80 | "Who is John Galt?" |
| @@ -361,16 +357,9 @@ static int test(void) | |||
| 361 | unsigned char out[8]; | 357 | unsigned char out[8]; |
| 362 | BF_LONG len; | 358 | BF_LONG len; |
| 363 | 359 | ||
| 364 | #ifdef CHARSET_EBCDIC | ||
| 365 | ebcdic2ascii(cbc_data, cbc_data, strlen(cbc_data)); | ||
| 366 | #endif | ||
| 367 | |||
| 368 | printf("testing blowfish in raw ecb mode\n"); | 360 | printf("testing blowfish in raw ecb mode\n"); |
| 369 | for (n=0; n<2; n++) | 361 | for (n=0; n<2; n++) |
| 370 | { | 362 | { |
| 371 | #ifdef CHARSET_EBCDIC | ||
| 372 | ebcdic2ascii(bf_key[n], bf_key[n], strlen(bf_key[n])); | ||
| 373 | #endif | ||
| 374 | BF_set_key(&key,strlen(bf_key[n]),(unsigned char *)bf_key[n]); | 363 | BF_set_key(&key,strlen(bf_key[n]),(unsigned char *)bf_key[n]); |
| 375 | 364 | ||
| 376 | data[0]=bf_plain[n][0]; | 365 | data[0]=bf_plain[n][0]; |
diff --git a/src/lib/libssl/src/crypto/bio/b_dump.c b/src/lib/libssl/src/crypto/bio/b_dump.c index bea94969a2..32d523563e 100644 --- a/src/lib/libssl/src/crypto/bio/b_dump.c +++ b/src/lib/libssl/src/crypto/bio/b_dump.c | |||
| @@ -125,14 +125,8 @@ BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u), | |||
| 125 | if (((i*dump_width) + j) >= len) | 125 | if (((i*dump_width) + j) >= len) |
| 126 | break; | 126 | break; |
| 127 | ch = ((unsigned char)*(s + i * dump_width + j)) & 0xff; | 127 | ch = ((unsigned char)*(s + i * dump_width + j)) & 0xff; |
| 128 | #ifndef CHARSET_EBCDIC | ||
| 129 | (void) snprintf(tmp, sizeof tmp, "%c", | 128 | (void) snprintf(tmp, sizeof tmp, "%c", |
| 130 | ((ch >= ' ') && (ch <= '~')) ? ch : '.'); | 129 | ((ch >= ' ') && (ch <= '~')) ? ch : '.'); |
| 131 | #else | ||
| 132 | (void) snprintf(tmp, sizeof tmp, "%c", | ||
| 133 | ((ch >= os_toascii[' ']) && (ch <= os_toascii['~'])) | ||
| 134 | ? os_toebcdic[ch] : '.'); | ||
| 135 | #endif | ||
| 136 | BUF_strlcat(buf, tmp, sizeof buf); | 130 | BUF_strlcat(buf, tmp, sizeof buf); |
| 137 | } | 131 | } |
| 138 | BUF_strlcat(buf, "\n", sizeof buf); | 132 | BUF_strlcat(buf, "\n", sizeof buf); |
diff --git a/src/lib/libssl/src/crypto/conf/conf_def.h b/src/lib/libssl/src/crypto/conf/conf_def.h index 92a7d8ad77..b18e6e2728 100644 --- a/src/lib/libssl/src/crypto/conf/conf_def.h +++ b/src/lib/libssl/src/crypto/conf/conf_def.h | |||
| @@ -78,7 +78,6 @@ | |||
| 78 | CONF_PUNCTUATION) | 78 | CONF_PUNCTUATION) |
| 79 | 79 | ||
| 80 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) | 80 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) |
| 81 | #ifndef CHARSET_EBCDIC | ||
| 82 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) | 81 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) |
| 83 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) | 82 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) |
| 84 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) | 83 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) |
| @@ -92,22 +91,6 @@ | |||
| 92 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) | 91 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) |
| 93 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) | 92 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) |
| 94 | 93 | ||
| 95 | #else /*CHARSET_EBCDIC*/ | ||
| 96 | |||
| 97 | #define IS_COMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_COMMENT) | ||
| 98 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_FCOMMENT) | ||
| 99 | #define IS_EOF(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_EOF) | ||
| 100 | #define IS_ESC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ESC) | ||
| 101 | #define IS_NUMBER(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_NUMBER) | ||
| 102 | #define IS_WS(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_WS) | ||
| 103 | #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC) | ||
| 104 | #define IS_ALPHA_NUMERIC_PUNCT(c,a) \ | ||
| 105 | (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC_PUNCT) | ||
| 106 | #define IS_QUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_QUOTE) | ||
| 107 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_DQUOTE) | ||
| 108 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_HIGHBIT) | ||
| 109 | #endif /*CHARSET_EBCDIC*/ | ||
| 110 | |||
| 111 | static unsigned short CONF_type_default[256]={ | 94 | static unsigned short CONF_type_default[256]={ |
| 112 | 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, | 95 | 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, |
| 113 | 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000, | 96 | 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000, |
diff --git a/src/lib/libssl/src/crypto/conf/keysets.pl b/src/lib/libssl/src/crypto/conf/keysets.pl index 50ed67fa52..fe17be57fe 100644 --- a/src/lib/libssl/src/crypto/conf/keysets.pl +++ b/src/lib/libssl/src/crypto/conf/keysets.pl | |||
| @@ -132,7 +132,6 @@ print <<"EOF"; | |||
| 132 | CONF_PUNCTUATION) | 132 | CONF_PUNCTUATION) |
| 133 | 133 | ||
| 134 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) | 134 | #define KEYTYPES(c) ((unsigned short *)((c)->meth_data)) |
| 135 | #ifndef CHARSET_EBCDIC | ||
| 136 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) | 135 | #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) |
| 137 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) | 136 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) |
| 138 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) | 137 | #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) |
| @@ -146,21 +145,6 @@ print <<"EOF"; | |||
| 146 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) | 145 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) |
| 147 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) | 146 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) |
| 148 | 147 | ||
| 149 | #else /*CHARSET_EBCDIC*/ | ||
| 150 | |||
| 151 | #define IS_COMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_COMMENT) | ||
| 152 | #define IS_FCOMMENT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_FCOMMENT) | ||
| 153 | #define IS_EOF(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_EOF) | ||
| 154 | #define IS_ESC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ESC) | ||
| 155 | #define IS_NUMBER(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_NUMBER) | ||
| 156 | #define IS_WS(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_WS) | ||
| 157 | #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC) | ||
| 158 | #define IS_ALPHA_NUMERIC_PUNCT(c,a) \\ | ||
| 159 | (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_ALPHA_NUMERIC_PUNCT) | ||
| 160 | #define IS_QUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_QUOTE) | ||
| 161 | #define IS_DQUOTE(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_DQUOTE) | ||
| 162 | #define IS_HIGHBIT(c,a) (KEYTYPES(c)[os_toascii[a]&0xff]&CONF_HIGHBIT) | ||
| 163 | #endif /*CHARSET_EBCDIC*/ | ||
| 164 | 148 | ||
| 165 | EOF | 149 | EOF |
| 166 | 150 | ||
diff --git a/src/lib/libssl/src/crypto/crypto.h b/src/lib/libssl/src/crypto/crypto.h index baeba25b99..351ccfd35b 100644 --- a/src/lib/libssl/src/crypto/crypto.h +++ b/src/lib/libssl/src/crypto/crypto.h | |||
| @@ -130,10 +130,6 @@ | |||
| 130 | #include <openssl/opensslv.h> | 130 | #include <openssl/opensslv.h> |
| 131 | #include <openssl/ossl_typ.h> | 131 | #include <openssl/ossl_typ.h> |
| 132 | 132 | ||
| 133 | #ifdef CHARSET_EBCDIC | ||
| 134 | #include <openssl/ebcdic.h> | ||
| 135 | #endif | ||
| 136 | |||
| 137 | #ifdef __cplusplus | 133 | #ifdef __cplusplus |
| 138 | extern "C" { | 134 | extern "C" { |
| 139 | #endif | 135 | #endif |
diff --git a/src/lib/libssl/src/crypto/des/fcrypt.c b/src/lib/libssl/src/crypto/des/fcrypt.c index ccbdff250f..d02189b290 100644 --- a/src/lib/libssl/src/crypto/des/fcrypt.c +++ b/src/lib/libssl/src/crypto/des/fcrypt.c | |||
| @@ -1,13 +1,5 @@ | |||
| 1 | /* NOCW */ | 1 | /* NOCW */ |
| 2 | #include <stdio.h> | 2 | #include <stdio.h> |
| 3 | #ifdef _OSD_POSIX | ||
| 4 | #ifndef CHARSET_EBCDIC | ||
| 5 | #define CHARSET_EBCDIC 1 | ||
| 6 | #endif | ||
| 7 | #endif | ||
| 8 | #ifdef CHARSET_EBCDIC | ||
| 9 | #include <openssl/ebcdic.h> | ||
| 10 | #endif | ||
| 11 | 3 | ||
| 12 | /* This version of crypt has been developed from my MIT compatible | 4 | /* This version of crypt has been developed from my MIT compatible |
| 13 | * DES library. | 5 | * DES library. |
| @@ -62,37 +54,7 @@ char *DES_crypt(const char *buf, const char *salt) | |||
| 62 | { | 54 | { |
| 63 | static char buff[14]; | 55 | static char buff[14]; |
| 64 | 56 | ||
| 65 | #ifndef CHARSET_EBCDIC | ||
| 66 | return(DES_fcrypt(buf,salt,buff)); | 57 | return(DES_fcrypt(buf,salt,buff)); |
| 67 | #else | ||
| 68 | char e_salt[2+1]; | ||
| 69 | char e_buf[32+1]; /* replace 32 by 8 ? */ | ||
| 70 | char *ret; | ||
| 71 | |||
| 72 | /* Copy at most 2 chars of salt */ | ||
| 73 | if ((e_salt[0] = salt[0]) != '\0') | ||
| 74 | e_salt[1] = salt[1]; | ||
| 75 | |||
| 76 | /* Copy at most 32 chars of password */ | ||
| 77 | strncpy (e_buf, buf, sizeof(e_buf)); | ||
| 78 | |||
| 79 | /* Make sure we have a delimiter */ | ||
| 80 | e_salt[sizeof(e_salt)-1] = e_buf[sizeof(e_buf)-1] = '\0'; | ||
| 81 | |||
| 82 | /* Convert the e_salt to ASCII, as that's what DES_fcrypt works on */ | ||
| 83 | ebcdic2ascii(e_salt, e_salt, sizeof e_salt); | ||
| 84 | |||
| 85 | /* Convert the cleartext password to ASCII */ | ||
| 86 | ebcdic2ascii(e_buf, e_buf, sizeof e_buf); | ||
| 87 | |||
| 88 | /* Encrypt it (from/to ASCII) */ | ||
| 89 | ret = DES_fcrypt(e_buf,e_salt,buff); | ||
| 90 | |||
| 91 | /* Convert the result back to EBCDIC */ | ||
| 92 | ascii2ebcdic(ret, ret, strlen(ret)); | ||
| 93 | |||
| 94 | return ret; | ||
| 95 | #endif | ||
| 96 | } | 58 | } |
| 97 | 59 | ||
| 98 | 60 | ||
| @@ -115,18 +77,10 @@ char *DES_fcrypt(const char *buf, const char *salt, char *ret) | |||
| 115 | * crypt to "*". This was found when replacing the crypt in | 77 | * crypt to "*". This was found when replacing the crypt in |
| 116 | * our shared libraries. People found that the disabled | 78 | * our shared libraries. People found that the disabled |
| 117 | * accounts effectively had no passwd :-(. */ | 79 | * accounts effectively had no passwd :-(. */ |
| 118 | #ifndef CHARSET_EBCDIC | ||
| 119 | x=ret[0]=((salt[0] == '\0')?'A':salt[0]); | 80 | x=ret[0]=((salt[0] == '\0')?'A':salt[0]); |
| 120 | Eswap0=con_salt[x]<<2; | 81 | Eswap0=con_salt[x]<<2; |
| 121 | x=ret[1]=((salt[1] == '\0')?'A':salt[1]); | 82 | x=ret[1]=((salt[1] == '\0')?'A':salt[1]); |
| 122 | Eswap1=con_salt[x]<<6; | 83 | Eswap1=con_salt[x]<<6; |
| 123 | #else | ||
| 124 | x=ret[0]=((salt[0] == '\0')?os_toascii['A']:salt[0]); | ||
| 125 | Eswap0=con_salt[x]<<2; | ||
| 126 | x=ret[1]=((salt[1] == '\0')?os_toascii['A']:salt[1]); | ||
| 127 | Eswap1=con_salt[x]<<6; | ||
| 128 | #endif | ||
| 129 | |||
| 130 | /* EAY | 84 | /* EAY |
| 131 | r=strlen(buf); | 85 | r=strlen(buf); |
| 132 | r=(r+7)/8; | 86 | r=(r+7)/8; |
diff --git a/src/lib/libssl/src/crypto/ebcdic.c b/src/lib/libssl/src/crypto/ebcdic.c deleted file mode 100644 index 2ac26abc72..0000000000 --- a/src/lib/libssl/src/crypto/ebcdic.c +++ /dev/null | |||
| @@ -1,221 +0,0 @@ | |||
| 1 | /* crypto/ebcdic.c */ | ||
| 2 | |||
| 3 | #ifndef CHARSET_EBCDIC | ||
| 4 | |||
| 5 | #include <openssl/e_os2.h> | ||
| 6 | #if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX) | ||
| 7 | static void *dummy = &dummy; | ||
| 8 | #endif | ||
| 9 | |||
| 10 | #else /*CHARSET_EBCDIC*/ | ||
| 11 | |||
| 12 | #include "ebcdic.h" | ||
| 13 | /* Initial Port for Apache-1.3 by <Martin.Kraemer@Mch.SNI.De> | ||
| 14 | * Adapted for OpenSSL-0.9.4 by <Martin.Kraemer@Mch.SNI.De> | ||
| 15 | */ | ||
| 16 | |||
| 17 | #ifdef _OSD_POSIX | ||
| 18 | /* | ||
| 19 | "BS2000 OSD" is a POSIX subsystem on a main frame. | ||
| 20 | It is made by Siemens AG, Germany, for their BS2000 mainframe machines. | ||
| 21 | Within the POSIX subsystem, the same character set was chosen as in | ||
| 22 | "native BS2000", namely EBCDIC. (EDF04) | ||
| 23 | |||
| 24 | The name "ASCII" in these routines is misleading: actually, conversion | ||
| 25 | is not between EBCDIC and ASCII, but EBCDIC(EDF04) and ISO-8859.1; | ||
| 26 | that means that (western european) national characters are preserved. | ||
| 27 | |||
| 28 | This table is identical to the one used by rsh/rcp/ftp and other POSIX tools. | ||
| 29 | */ | ||
| 30 | |||
| 31 | /* Here's the bijective ebcdic-to-ascii table: */ | ||
| 32 | const unsigned char os_toascii[256] = { | ||
| 33 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, | ||
| 34 | 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ | ||
| 35 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, | ||
| 36 | 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ | ||
| 37 | /*20*/ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, | ||
| 38 | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /*................*/ | ||
| 39 | /*30*/ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, | ||
| 40 | 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /*................*/ | ||
| 41 | /*40*/ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, | ||
| 42 | 0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+|*/ | ||
| 43 | /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, | ||
| 44 | 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /*&.........!$*);.*/ | ||
| 45 | /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, | ||
| 46 | 0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*-/........^,%_>?*/ | ||
| 47 | /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, | ||
| 48 | 0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*..........:#@'="*/ | ||
| 49 | /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | ||
| 50 | 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*.abcdefghi......*/ | ||
| 51 | /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, | ||
| 52 | 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*.jklmnopqr......*/ | ||
| 53 | /*a0*/ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, | ||
| 54 | 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*..stuvwxyz......*/ | ||
| 55 | /*b0*/ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, | ||
| 56 | 0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /*...........[\]..*/ | ||
| 57 | /*c0*/ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | ||
| 58 | 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*.ABCDEFGHI......*/ | ||
| 59 | /*d0*/ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, | ||
| 60 | 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /*.JKLMNOPQR......*/ | ||
| 61 | /*e0*/ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, | ||
| 62 | 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*..STUVWXYZ......*/ | ||
| 63 | /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | ||
| 64 | 0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e /*0123456789.{.}.~*/ | ||
| 65 | }; | ||
| 66 | |||
| 67 | |||
| 68 | /* The ascii-to-ebcdic table: */ | ||
| 69 | const unsigned char os_toebcdic[256] = { | ||
| 70 | /*00*/ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, | ||
| 71 | 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................*/ | ||
| 72 | /*10*/ 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, | ||
| 73 | 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /*................*/ | ||
| 74 | /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, | ||
| 75 | 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ | ||
| 76 | /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | ||
| 77 | 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*0123456789:;<=>?*/ | ||
| 78 | /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | ||
| 79 | 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*@ABCDEFGHIJKLMNO*/ | ||
| 80 | /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, | ||
| 81 | 0xe7, 0xe8, 0xe9, 0xbb, 0xbc, 0xbd, 0x6a, 0x6d, /*PQRSTUVWXYZ[\]^_*/ | ||
| 82 | /*60*/ 0x4a, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | ||
| 83 | 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*`abcdefghijklmno*/ | ||
| 84 | /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, | ||
| 85 | 0xa7, 0xa8, 0xa9, 0xfb, 0x4f, 0xfd, 0xff, 0x07, /*pqrstuvwxyz{|}~.*/ | ||
| 86 | /*80*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, | ||
| 87 | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /*................*/ | ||
| 88 | /*90*/ 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, | ||
| 89 | 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0x5f, /*................*/ | ||
| 90 | /*a0*/ 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xd0, 0xb5, | ||
| 91 | 0x79, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xa1, /*................*/ | ||
| 92 | /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, | ||
| 93 | 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*................*/ | ||
| 94 | /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, | ||
| 95 | 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*................*/ | ||
| 96 | /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, | ||
| 97 | 0x80, 0xe0, 0xfe, 0xdd, 0xfc, 0xad, 0xae, 0x59, /*................*/ | ||
| 98 | /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, | ||
| 99 | 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*................*/ | ||
| 100 | /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, | ||
| 101 | 0x70, 0xc0, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /*................*/ | ||
| 102 | }; | ||
| 103 | |||
| 104 | #else /*_OSD_POSIX*/ | ||
| 105 | |||
| 106 | /* | ||
| 107 | This code does basic character mapping for IBM's TPF and OS/390 operating systems. | ||
| 108 | It is a modified version of the BS2000 table. | ||
| 109 | |||
| 110 | Bijective EBCDIC (character set IBM-1047) to US-ASCII table: | ||
| 111 | This table is bijective - there are no ambigous or duplicate characters. | ||
| 112 | */ | ||
| 113 | const unsigned char os_toascii[256] = { | ||
| 114 | 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, /* 00-0f: */ | ||
| 115 | 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ | ||
| 116 | 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, /* 10-1f: */ | ||
| 117 | 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ | ||
| 118 | 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, /* 20-2f: */ | ||
| 119 | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */ | ||
| 120 | 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30-3f: */ | ||
| 121 | 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */ | ||
| 122 | 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40-4f: */ | ||
| 123 | 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* ...........<(+| */ | ||
| 124 | 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50-5f: */ | ||
| 125 | 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* &.........!$*);^ */ | ||
| 126 | 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60-6f: */ | ||
| 127 | 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/.........,%_>? */ | ||
| 128 | 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70-7f: */ | ||
| 129 | 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* .........`:#@'=" */ | ||
| 130 | 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80-8f: */ | ||
| 131 | 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */ | ||
| 132 | 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90-9f: */ | ||
| 133 | 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */ | ||
| 134 | 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* a0-af: */ | ||
| 135 | 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* .~stuvwxyz...[.. */ | ||
| 136 | 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* b0-bf: */ | ||
| 137 | 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* .............].. */ | ||
| 138 | 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* c0-cf: */ | ||
| 139 | 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* {ABCDEFGHI...... */ | ||
| 140 | 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* d0-df: */ | ||
| 141 | 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* }JKLMNOPQR...... */ | ||
| 142 | 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* e0-ef: */ | ||
| 143 | 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* \.STUVWXYZ...... */ | ||
| 144 | 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* f0-ff: */ | ||
| 145 | 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* 0123456789...... */ | ||
| 146 | }; | ||
| 147 | |||
| 148 | |||
| 149 | /* | ||
| 150 | The US-ASCII to EBCDIC (character set IBM-1047) table: | ||
| 151 | This table is bijective (no ambiguous or duplicate characters) | ||
| 152 | */ | ||
| 153 | const unsigned char os_toebcdic[256] = { | ||
| 154 | 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 00-0f: */ | ||
| 155 | 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ | ||
| 156 | 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 10-1f: */ | ||
| 157 | 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ | ||
| 158 | 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 20-2f: */ | ||
| 159 | 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ | ||
| 160 | 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 30-3f: */ | ||
| 161 | 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0123456789:;<=>? */ | ||
| 162 | 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 40-4f: */ | ||
| 163 | 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* @ABCDEFGHIJKLMNO */ | ||
| 164 | 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 50-5f: */ | ||
| 165 | 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* PQRSTUVWXYZ[\]^_ */ | ||
| 166 | 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 60-6f: */ | ||
| 167 | 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* `abcdefghijklmno */ | ||
| 168 | 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 70-7f: */ | ||
| 169 | 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* pqrstuvwxyz{|}~. */ | ||
| 170 | 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, /* 80-8f: */ | ||
| 171 | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /* ................ */ | ||
| 172 | 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, /* 90-9f: */ | ||
| 173 | 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0xff, /* ................ */ | ||
| 174 | 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* a0-af: */ | ||
| 175 | 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* ................ */ | ||
| 176 | 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* b0-bf: */ | ||
| 177 | 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* ................ */ | ||
| 178 | 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* c0-cf: */ | ||
| 179 | 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* ................ */ | ||
| 180 | 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* d0-df: */ | ||
| 181 | 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* ................ */ | ||
| 182 | 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* e0-ef: */ | ||
| 183 | 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* ................ */ | ||
| 184 | 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* f0-ff: */ | ||
| 185 | 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /* ................ */ | ||
| 186 | }; | ||
| 187 | #endif /*_OSD_POSIX*/ | ||
| 188 | |||
| 189 | /* Translate a memory block from EBCDIC (host charset) to ASCII (net charset) | ||
| 190 | * dest and srce may be identical, or separate memory blocks, but | ||
| 191 | * should not overlap. These functions intentionally have an interface | ||
| 192 | * compatible to memcpy(3). | ||
| 193 | */ | ||
| 194 | |||
| 195 | void * | ||
| 196 | ebcdic2ascii(void *dest, const void *srce, size_t count) | ||
| 197 | { | ||
| 198 | unsigned char *udest = dest; | ||
| 199 | const unsigned char *usrce = srce; | ||
| 200 | |||
| 201 | while (count-- != 0) { | ||
| 202 | *udest++ = os_toascii[*usrce++]; | ||
| 203 | } | ||
| 204 | |||
| 205 | return dest; | ||
| 206 | } | ||
| 207 | |||
| 208 | void * | ||
| 209 | ascii2ebcdic(void *dest, const void *srce, size_t count) | ||
| 210 | { | ||
| 211 | unsigned char *udest = dest; | ||
| 212 | const unsigned char *usrce = srce; | ||
| 213 | |||
| 214 | while (count-- != 0) { | ||
| 215 | *udest++ = os_toebcdic[*usrce++]; | ||
| 216 | } | ||
| 217 | |||
| 218 | return dest; | ||
| 219 | } | ||
| 220 | |||
| 221 | #endif | ||
diff --git a/src/lib/libssl/src/crypto/ebcdic.h b/src/lib/libssl/src/crypto/ebcdic.h deleted file mode 100644 index 6d65afcf9e..0000000000 --- a/src/lib/libssl/src/crypto/ebcdic.h +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | /* crypto/ebcdic.h */ | ||
| 2 | |||
| 3 | #ifndef HEADER_EBCDIC_H | ||
| 4 | #define HEADER_EBCDIC_H | ||
| 5 | |||
| 6 | #include <sys/types.h> | ||
| 7 | |||
| 8 | /* Avoid name clashes with other applications */ | ||
| 9 | #define os_toascii _openssl_os_toascii | ||
| 10 | #define os_toebcdic _openssl_os_toebcdic | ||
| 11 | #define ebcdic2ascii _openssl_ebcdic2ascii | ||
| 12 | #define ascii2ebcdic _openssl_ascii2ebcdic | ||
| 13 | |||
| 14 | extern const unsigned char os_toascii[256]; | ||
| 15 | extern const unsigned char os_toebcdic[256]; | ||
| 16 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); | ||
| 17 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); | ||
| 18 | |||
| 19 | #endif | ||
diff --git a/src/lib/libssl/src/crypto/evp/encode.c b/src/lib/libssl/src/crypto/evp/encode.c index 28546a84bc..7af9a2780b 100644 --- a/src/lib/libssl/src/crypto/evp/encode.c +++ b/src/lib/libssl/src/crypto/evp/encode.c | |||
| @@ -60,19 +60,8 @@ | |||
| 60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
| 61 | #include <openssl/evp.h> | 61 | #include <openssl/evp.h> |
| 62 | 62 | ||
| 63 | #ifndef CHARSET_EBCDIC | ||
| 64 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) | 63 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) |
| 65 | #define conv_ascii2bin(a) (data_ascii2bin[(a)&0x7f]) | 64 | #define conv_ascii2bin(a) (data_ascii2bin[(a)&0x7f]) |
| 66 | #else | ||
| 67 | /* We assume that PEM encoded files are EBCDIC files | ||
| 68 | * (i.e., printable text files). Convert them here while decoding. | ||
| 69 | * When encoding, output is EBCDIC (text) format again. | ||
| 70 | * (No need for conversion in the conv_bin2ascii macro, as the | ||
| 71 | * underlying textstring data_bin2ascii[] is already EBCDIC) | ||
| 72 | */ | ||
| 73 | #define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) | ||
| 74 | #define conv_ascii2bin(a) (data_ascii2bin[os_toascii[a]&0x7f]) | ||
| 75 | #endif | ||
| 76 | 65 | ||
| 77 | /* 64 char lines | 66 | /* 64 char lines |
| 78 | * pad input with 0 | 67 | * pad input with 0 |
diff --git a/src/lib/libssl/src/crypto/hmac/hmactest.c b/src/lib/libssl/src/crypto/hmac/hmactest.c index 1b906b81af..282e06e53e 100644 --- a/src/lib/libssl/src/crypto/hmac/hmactest.c +++ b/src/lib/libssl/src/crypto/hmac/hmactest.c | |||
| @@ -74,9 +74,6 @@ int main(int argc, char *argv[]) | |||
| 74 | #include <openssl/md5.h> | 74 | #include <openssl/md5.h> |
| 75 | #endif | 75 | #endif |
| 76 | 76 | ||
| 77 | #ifdef CHARSET_EBCDIC | ||
| 78 | #include <openssl/ebcdic.h> | ||
| 79 | #endif | ||
| 80 | 77 | ||
| 81 | #ifndef OPENSSL_NO_MD5 | 78 | #ifndef OPENSSL_NO_MD5 |
| 82 | static struct test_st | 79 | static struct test_st |
| @@ -132,14 +129,6 @@ int main(int argc, char *argv[]) | |||
| 132 | #ifdef OPENSSL_NO_MD5 | 129 | #ifdef OPENSSL_NO_MD5 |
| 133 | printf("test skipped: MD5 disabled\n"); | 130 | printf("test skipped: MD5 disabled\n"); |
| 134 | #else | 131 | #else |
| 135 | |||
| 136 | #ifdef CHARSET_EBCDIC | ||
| 137 | ebcdic2ascii(test[0].data, test[0].data, test[0].data_len); | ||
| 138 | ebcdic2ascii(test[1].data, test[1].data, test[1].data_len); | ||
| 139 | ebcdic2ascii(test[2].key, test[2].key, test[2].key_len); | ||
| 140 | ebcdic2ascii(test[2].data, test[2].data, test[2].data_len); | ||
| 141 | #endif | ||
| 142 | |||
| 143 | for (i=0; i<4; i++) | 132 | for (i=0; i<4; i++) |
| 144 | { | 133 | { |
| 145 | p=pt(HMAC(EVP_md5(), | 134 | p=pt(HMAC(EVP_md5(), |
diff --git a/src/lib/libssl/src/crypto/md2/md2_one.c b/src/lib/libssl/src/crypto/md2/md2_one.c index f7fef5cc0a..cb8594e085 100644 --- a/src/lib/libssl/src/crypto/md2/md2_one.c +++ b/src/lib/libssl/src/crypto/md2/md2_one.c | |||
| @@ -71,23 +71,7 @@ unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md) | |||
| 71 | if (md == NULL) md=m; | 71 | if (md == NULL) md=m; |
| 72 | if (!MD2_Init(&c)) | 72 | if (!MD2_Init(&c)) |
| 73 | return NULL; | 73 | return NULL; |
| 74 | #ifndef CHARSET_EBCDIC | ||
| 75 | MD2_Update(&c,d,n); | 74 | MD2_Update(&c,d,n); |
| 76 | #else | ||
| 77 | { | ||
| 78 | char temp[1024]; | ||
| 79 | unsigned long chunk; | ||
| 80 | |||
| 81 | while (n > 0) | ||
| 82 | { | ||
| 83 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 84 | ebcdic2ascii(temp, d, chunk); | ||
| 85 | MD2_Update(&c,temp,chunk); | ||
| 86 | n -= chunk; | ||
| 87 | d += chunk; | ||
| 88 | } | ||
| 89 | } | ||
| 90 | #endif | ||
| 91 | MD2_Final(md,&c); | 75 | MD2_Final(md,&c); |
| 92 | OPENSSL_cleanse(&c,sizeof(c)); /* Security consideration */ | 76 | OPENSSL_cleanse(&c,sizeof(c)); /* Security consideration */ |
| 93 | return(md); | 77 | return(md); |
diff --git a/src/lib/libssl/src/crypto/md2/md2test.c b/src/lib/libssl/src/crypto/md2/md2test.c index db5f5bc6d2..0195214036 100644 --- a/src/lib/libssl/src/crypto/md2/md2test.c +++ b/src/lib/libssl/src/crypto/md2/md2test.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/md2.h> | 73 | #include <openssl/md2.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | static char *test[]={ | 75 | static char *test[]={ |
| 80 | "", | 76 | "", |
| 81 | "a", | 77 | "a", |
diff --git a/src/lib/libssl/src/crypto/md4/md4_one.c b/src/lib/libssl/src/crypto/md4/md4_one.c index bb64362638..ed6ce33650 100644 --- a/src/lib/libssl/src/crypto/md4/md4_one.c +++ b/src/lib/libssl/src/crypto/md4/md4_one.c | |||
| @@ -61,10 +61,6 @@ | |||
| 61 | #include <openssl/md4.h> | 61 | #include <openssl/md4.h> |
| 62 | #include <openssl/crypto.h> | 62 | #include <openssl/crypto.h> |
| 63 | 63 | ||
| 64 | #ifdef CHARSET_EBCDIC | ||
| 65 | #include <openssl/ebcdic.h> | ||
| 66 | #endif | ||
| 67 | |||
| 68 | unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) | 64 | unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) |
| 69 | { | 65 | { |
| 70 | MD4_CTX c; | 66 | MD4_CTX c; |
| @@ -73,23 +69,7 @@ unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md) | |||
| 73 | if (md == NULL) md=m; | 69 | if (md == NULL) md=m; |
| 74 | if (!MD4_Init(&c)) | 70 | if (!MD4_Init(&c)) |
| 75 | return NULL; | 71 | return NULL; |
| 76 | #ifndef CHARSET_EBCDIC | ||
| 77 | MD4_Update(&c,d,n); | 72 | MD4_Update(&c,d,n); |
| 78 | #else | ||
| 79 | { | ||
| 80 | char temp[1024]; | ||
| 81 | unsigned long chunk; | ||
| 82 | |||
| 83 | while (n > 0) | ||
| 84 | { | ||
| 85 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 86 | ebcdic2ascii(temp, d, chunk); | ||
| 87 | MD4_Update(&c,temp,chunk); | ||
| 88 | n -= chunk; | ||
| 89 | d += chunk; | ||
| 90 | } | ||
| 91 | } | ||
| 92 | #endif | ||
| 93 | MD4_Final(md,&c); | 73 | MD4_Final(md,&c); |
| 94 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ | 74 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ |
| 95 | return(md); | 75 | return(md); |
diff --git a/src/lib/libssl/src/crypto/md5/md5_one.c b/src/lib/libssl/src/crypto/md5/md5_one.c index 43fee89379..839e27e972 100644 --- a/src/lib/libssl/src/crypto/md5/md5_one.c +++ b/src/lib/libssl/src/crypto/md5/md5_one.c | |||
| @@ -61,10 +61,6 @@ | |||
| 61 | #include <openssl/md5.h> | 61 | #include <openssl/md5.h> |
| 62 | #include <openssl/crypto.h> | 62 | #include <openssl/crypto.h> |
| 63 | 63 | ||
| 64 | #ifdef CHARSET_EBCDIC | ||
| 65 | #include <openssl/ebcdic.h> | ||
| 66 | #endif | ||
| 67 | |||
| 68 | unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) | 64 | unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) |
| 69 | { | 65 | { |
| 70 | MD5_CTX c; | 66 | MD5_CTX c; |
| @@ -73,23 +69,7 @@ unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) | |||
| 73 | if (md == NULL) md=m; | 69 | if (md == NULL) md=m; |
| 74 | if (!MD5_Init(&c)) | 70 | if (!MD5_Init(&c)) |
| 75 | return NULL; | 71 | return NULL; |
| 76 | #ifndef CHARSET_EBCDIC | ||
| 77 | MD5_Update(&c,d,n); | 72 | MD5_Update(&c,d,n); |
| 78 | #else | ||
| 79 | { | ||
| 80 | char temp[1024]; | ||
| 81 | unsigned long chunk; | ||
| 82 | |||
| 83 | while (n > 0) | ||
| 84 | { | ||
| 85 | chunk = (n > sizeof(temp)) ? sizeof(temp) : n; | ||
| 86 | ebcdic2ascii(temp, d, chunk); | ||
| 87 | MD5_Update(&c,temp,chunk); | ||
| 88 | n -= chunk; | ||
| 89 | d += chunk; | ||
| 90 | } | ||
| 91 | } | ||
| 92 | #endif | ||
| 93 | MD5_Final(md,&c); | 73 | MD5_Final(md,&c); |
| 94 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ | 74 | OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */ |
| 95 | return(md); | 75 | return(md); |
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2test.c b/src/lib/libssl/src/crypto/mdc2/mdc2test.c index 017b31add2..cf8f65cf27 100644 --- a/src/lib/libssl/src/crypto/mdc2/mdc2test.c +++ b/src/lib/libssl/src/crypto/mdc2/mdc2test.c | |||
| @@ -76,10 +76,6 @@ int main(int argc, char *argv[]) | |||
| 76 | #include <openssl/evp.h> | 76 | #include <openssl/evp.h> |
| 77 | #include <openssl/mdc2.h> | 77 | #include <openssl/mdc2.h> |
| 78 | 78 | ||
| 79 | #ifdef CHARSET_EBCDIC | ||
| 80 | #include <openssl/ebcdic.h> | ||
| 81 | #endif | ||
| 82 | |||
| 83 | static unsigned char pad1[16]={ | 79 | static unsigned char pad1[16]={ |
| 84 | 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA, | 80 | 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA, |
| 85 | 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A | 81 | 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A |
| @@ -98,10 +94,6 @@ int main(int argc, char *argv[]) | |||
| 98 | EVP_MD_CTX c; | 94 | EVP_MD_CTX c; |
| 99 | static char *text="Now is the time for all "; | 95 | static char *text="Now is the time for all "; |
| 100 | 96 | ||
| 101 | #ifdef CHARSET_EBCDIC | ||
| 102 | ebcdic2ascii(text,text,strlen(text)); | ||
| 103 | #endif | ||
| 104 | |||
| 105 | EVP_MD_CTX_init(&c); | 97 | EVP_MD_CTX_init(&c); |
| 106 | EVP_DigestInit_ex(&c,EVP_mdc2(), NULL); | 98 | EVP_DigestInit_ex(&c,EVP_mdc2(), NULL); |
| 107 | EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text)); | 99 | EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text)); |
diff --git a/src/lib/libssl/src/crypto/objects/obj_dat.c b/src/lib/libssl/src/crypto/objects/obj_dat.c index a597284c80..bced796e62 100644 --- a/src/lib/libssl/src/crypto/objects/obj_dat.c +++ b/src/lib/libssl/src/crypto/objects/obj_dat.c | |||
| @@ -705,22 +705,6 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base_, int num, | |||
| 705 | else | 705 | else |
| 706 | break; | 706 | break; |
| 707 | } | 707 | } |
| 708 | #ifdef CHARSET_EBCDIC | ||
| 709 | /* THIS IS A KLUDGE - Because the *_obj is sorted in ASCII order, and | ||
| 710 | * I don't have perl (yet), we revert to a *LINEAR* search | ||
| 711 | * when the object wasn't found in the binary search. | ||
| 712 | */ | ||
| 713 | if (c != 0) | ||
| 714 | { | ||
| 715 | for (i=0; i<num; ++i) | ||
| 716 | { | ||
| 717 | p= &(base[i*size]); | ||
| 718 | c = (*cmp)(key,p); | ||
| 719 | if (c == 0 || (c < 0 && (flags & OBJ_BSEARCH_VALUE_ON_NOMATCH))) | ||
| 720 | return p; | ||
| 721 | } | ||
| 722 | } | ||
| 723 | #endif | ||
| 724 | if (c != 0 && !(flags & OBJ_BSEARCH_VALUE_ON_NOMATCH)) | 708 | if (c != 0 && !(flags & OBJ_BSEARCH_VALUE_ON_NOMATCH)) |
| 725 | p = NULL; | 709 | p = NULL; |
| 726 | else if (c == 0 && (flags & OBJ_BSEARCH_FIRST_VALUE_ON_MATCH)) | 710 | else if (c == 0 && (flags & OBJ_BSEARCH_FIRST_VALUE_ON_MATCH)) |
diff --git a/src/lib/libssl/src/crypto/pem/pem_lib.c b/src/lib/libssl/src/crypto/pem/pem_lib.c index 5a421fc4b6..74baa2ec1c 100644 --- a/src/lib/libssl/src/crypto/pem/pem_lib.c +++ b/src/lib/libssl/src/crypto/pem/pem_lib.c | |||
| @@ -382,10 +382,6 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, | |||
| 382 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,PEM_R_READ_KEY); | 382 | PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,PEM_R_READ_KEY); |
| 383 | goto err; | 383 | goto err; |
| 384 | } | 384 | } |
| 385 | #ifdef CHARSET_EBCDIC | ||
| 386 | /* Convert the pass phrase from EBCDIC */ | ||
| 387 | ebcdic2ascii(buf, buf, klen); | ||
| 388 | #endif | ||
| 389 | kstr=(unsigned char *)buf; | 385 | kstr=(unsigned char *)buf; |
| 390 | } | 386 | } |
| 391 | RAND_add(data,i,0);/* put in the RSA key. */ | 387 | RAND_add(data,i,0);/* put in the RSA key. */ |
| @@ -458,11 +454,6 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, | |||
| 458 | PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_PASSWORD_READ); | 454 | PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_PASSWORD_READ); |
| 459 | return(0); | 455 | return(0); |
| 460 | } | 456 | } |
| 461 | #ifdef CHARSET_EBCDIC | ||
| 462 | /* Convert the pass phrase from EBCDIC */ | ||
| 463 | ebcdic2ascii(buf, buf, klen); | ||
| 464 | #endif | ||
| 465 | |||
| 466 | if (!EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), | 457 | if (!EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), |
| 467 | (unsigned char *)buf,klen,1,key,NULL)) | 458 | (unsigned char *)buf,klen,1,key,NULL)) |
| 468 | return 0; | 459 | return 0; |
| @@ -516,15 +507,9 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) | |||
| 516 | for (;;) | 507 | for (;;) |
| 517 | { | 508 | { |
| 518 | c= *header; | 509 | c= *header; |
| 519 | #ifndef CHARSET_EBCDIC | ||
| 520 | if (!( ((c >= 'A') && (c <= 'Z')) || (c == '-') || | 510 | if (!( ((c >= 'A') && (c <= 'Z')) || (c == '-') || |
| 521 | ((c >= '0') && (c <= '9')))) | 511 | ((c >= '0') && (c <= '9')))) |
| 522 | break; | 512 | break; |
| 523 | #else | ||
| 524 | if (!( isupper(c) || (c == '-') || | ||
| 525 | isdigit(c))) | ||
| 526 | break; | ||
| 527 | #endif | ||
| 528 | header++; | 513 | header++; |
| 529 | } | 514 | } |
| 530 | *header='\0'; | 515 | *header='\0'; |
diff --git a/src/lib/libssl/src/crypto/ripemd/rmdtest.c b/src/lib/libssl/src/crypto/ripemd/rmdtest.c index fb34e0e836..b32fda96ed 100644 --- a/src/lib/libssl/src/crypto/ripemd/rmdtest.c +++ b/src/lib/libssl/src/crypto/ripemd/rmdtest.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/ripemd.h> | 72 | #include <openssl/ripemd.h> |
| 73 | #include <openssl/evp.h> | 73 | #include <openssl/evp.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | static char *test[]={ | 75 | static char *test[]={ |
| 80 | "", | 76 | "", |
| 81 | "a", | 77 | "a", |
| @@ -112,9 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | i=1; | 108 | i=1; |
| 113 | while (*P != NULL) | 109 | while (*P != NULL) |
| 114 | { | 110 | { |
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii((char *)*P, (char *)*P, strlen((char *)*P)); | ||
| 117 | #endif | ||
| 118 | EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL); | 111 | EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_ripemd160(), NULL); |
| 119 | p=pt(md); | 112 | p=pt(md); |
| 120 | if (strcmp(p,(char *)*R) != 0) | 113 | if (strcmp(p,(char *)*R) != 0) |
diff --git a/src/lib/libssl/src/crypto/sha/sha1test.c b/src/lib/libssl/src/crypto/sha/sha1test.c index 6feb3964c7..ad9e3dc407 100644 --- a/src/lib/libssl/src/crypto/sha/sha1test.c +++ b/src/lib/libssl/src/crypto/sha/sha1test.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/sha.h> | 73 | #include <openssl/sha.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #undef SHA_0 /* FIPS 180 */ | 75 | #undef SHA_0 /* FIPS 180 */ |
| 80 | #define SHA_1 /* FIPS 180-1 */ | 76 | #define SHA_1 /* FIPS 180-1 */ |
| 81 | 77 | ||
| @@ -112,11 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | EVP_MD_CTX c; | 108 | EVP_MD_CTX c; |
| 113 | unsigned char md[SHA_DIGEST_LENGTH]; | 109 | unsigned char md[SHA_DIGEST_LENGTH]; |
| 114 | 110 | ||
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
| 117 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
| 118 | #endif | ||
| 119 | |||
| 120 | EVP_MD_CTX_init(&c); | 111 | EVP_MD_CTX_init(&c); |
| 121 | P=test; | 112 | P=test; |
| 122 | R=ret; | 113 | R=ret; |
| @@ -139,9 +130,6 @@ int main(int argc, char *argv[]) | |||
| 139 | } | 130 | } |
| 140 | 131 | ||
| 141 | memset(buf,'a',1000); | 132 | memset(buf,'a',1000); |
| 142 | #ifdef CHARSET_EBCDIC | ||
| 143 | ebcdic2ascii(buf, buf, 1000); | ||
| 144 | #endif /*CHARSET_EBCDIC*/ | ||
| 145 | EVP_DigestInit_ex(&c,EVP_sha1(), NULL); | 133 | EVP_DigestInit_ex(&c,EVP_sha1(), NULL); |
| 146 | for (i=0; i<1000; i++) | 134 | for (i=0; i<1000; i++) |
| 147 | EVP_DigestUpdate(&c,buf,1000); | 135 | EVP_DigestUpdate(&c,buf,1000); |
diff --git a/src/lib/libssl/src/crypto/sha/shatest.c b/src/lib/libssl/src/crypto/sha/shatest.c index 27614646d1..6c93c39590 100644 --- a/src/lib/libssl/src/crypto/sha/shatest.c +++ b/src/lib/libssl/src/crypto/sha/shatest.c | |||
| @@ -72,10 +72,6 @@ int main(int argc, char *argv[]) | |||
| 72 | #include <openssl/evp.h> | 72 | #include <openssl/evp.h> |
| 73 | #include <openssl/sha.h> | 73 | #include <openssl/sha.h> |
| 74 | 74 | ||
| 75 | #ifdef CHARSET_EBCDIC | ||
| 76 | #include <openssl/ebcdic.h> | ||
| 77 | #endif | ||
| 78 | |||
| 79 | #define SHA_0 /* FIPS 180 */ | 75 | #define SHA_0 /* FIPS 180 */ |
| 80 | #undef SHA_1 /* FIPS 180-1 */ | 76 | #undef SHA_1 /* FIPS 180-1 */ |
| 81 | 77 | ||
| @@ -112,11 +108,6 @@ int main(int argc, char *argv[]) | |||
| 112 | EVP_MD_CTX c; | 108 | EVP_MD_CTX c; |
| 113 | unsigned char md[SHA_DIGEST_LENGTH]; | 109 | unsigned char md[SHA_DIGEST_LENGTH]; |
| 114 | 110 | ||
| 115 | #ifdef CHARSET_EBCDIC | ||
| 116 | ebcdic2ascii(test[0], test[0], strlen(test[0])); | ||
| 117 | ebcdic2ascii(test[1], test[1], strlen(test[1])); | ||
| 118 | #endif | ||
| 119 | |||
| 120 | EVP_MD_CTX_init(&c); | 111 | EVP_MD_CTX_init(&c); |
| 121 | P=test; | 112 | P=test; |
| 122 | R=ret; | 113 | R=ret; |
| @@ -139,9 +130,6 @@ int main(int argc, char *argv[]) | |||
| 139 | } | 130 | } |
| 140 | 131 | ||
| 141 | memset(buf,'a',1000); | 132 | memset(buf,'a',1000); |
| 142 | #ifdef CHARSET_EBCDIC | ||
| 143 | ebcdic2ascii(buf, buf, 1000); | ||
| 144 | #endif /*CHARSET_EBCDIC*/ | ||
| 145 | EVP_DigestInit_ex(&c,EVP_sha(), NULL); | 133 | EVP_DigestInit_ex(&c,EVP_sha(), NULL); |
| 146 | for (i=0; i<1000; i++) | 134 | for (i=0; i<1000; i++) |
| 147 | EVP_DigestUpdate(&c,buf,1000); | 135 | EVP_DigestUpdate(&c,buf,1000); |
diff --git a/src/lib/libssl/src/crypto/x509/x509_obj.c b/src/lib/libssl/src/crypto/x509/x509_obj.c index 21fed9f838..bcc1e7429e 100644 --- a/src/lib/libssl/src/crypto/x509/x509_obj.c +++ b/src/lib/libssl/src/crypto/x509/x509_obj.c | |||
| @@ -75,9 +75,6 @@ int i; | |||
| 75 | static const char hex[17]="0123456789ABCDEF"; | 75 | static const char hex[17]="0123456789ABCDEF"; |
| 76 | int gs_doit[4]; | 76 | int gs_doit[4]; |
| 77 | char tmp_buf[80]; | 77 | char tmp_buf[80]; |
| 78 | #ifdef CHARSET_EBCDIC | ||
| 79 | char ebcdic_buf[1024]; | ||
| 80 | #endif | ||
| 81 | 78 | ||
| 82 | if (buf == NULL) | 79 | if (buf == NULL) |
| 83 | { | 80 | { |
| @@ -114,20 +111,6 @@ int i; | |||
| 114 | type=ne->value->type; | 111 | type=ne->value->type; |
| 115 | num=ne->value->length; | 112 | num=ne->value->length; |
| 116 | q=ne->value->data; | 113 | q=ne->value->data; |
| 117 | #ifdef CHARSET_EBCDIC | ||
| 118 | if (type == V_ASN1_GENERALSTRING || | ||
| 119 | type == V_ASN1_VISIBLESTRING || | ||
| 120 | type == V_ASN1_PRINTABLESTRING || | ||
| 121 | type == V_ASN1_TELETEXSTRING || | ||
| 122 | type == V_ASN1_VISIBLESTRING || | ||
| 123 | type == V_ASN1_IA5STRING) { | ||
| 124 | ascii2ebcdic(ebcdic_buf, q, | ||
| 125 | (num > sizeof ebcdic_buf) | ||
| 126 | ? sizeof ebcdic_buf : num); | ||
| 127 | q=ebcdic_buf; | ||
| 128 | } | ||
| 129 | #endif | ||
| 130 | |||
| 131 | if ((type == V_ASN1_GENERALSTRING) && ((num%4) == 0)) | 114 | if ((type == V_ASN1_GENERALSTRING) && ((num%4) == 0)) |
| 132 | { | 115 | { |
| 133 | gs_doit[0]=gs_doit[1]=gs_doit[2]=gs_doit[3]=0; | 116 | gs_doit[0]=gs_doit[1]=gs_doit[2]=gs_doit[3]=0; |
| @@ -149,12 +132,7 @@ int i; | |||
| 149 | { | 132 | { |
| 150 | if (!gs_doit[j&3]) continue; | 133 | if (!gs_doit[j&3]) continue; |
| 151 | l2++; | 134 | l2++; |
| 152 | #ifndef CHARSET_EBCDIC | ||
| 153 | if ((q[j] < ' ') || (q[j] > '~')) l2+=3; | 135 | if ((q[j] < ' ') || (q[j] > '~')) l2+=3; |
| 154 | #else | ||
| 155 | if ((os_toascii[q[j]] < os_toascii[' ']) || | ||
| 156 | (os_toascii[q[j]] > os_toascii['~'])) l2+=3; | ||
| 157 | #endif | ||
| 158 | } | 136 | } |
| 159 | 137 | ||
| 160 | lold=l; | 138 | lold=l; |
| @@ -173,15 +151,10 @@ int i; | |||
| 173 | *(p++)='/'; | 151 | *(p++)='/'; |
| 174 | memcpy(p,s,(unsigned int)l1); p+=l1; | 152 | memcpy(p,s,(unsigned int)l1); p+=l1; |
| 175 | *(p++)='='; | 153 | *(p++)='='; |
| 176 | |||
| 177 | #ifndef CHARSET_EBCDIC /* q was assigned above already. */ | ||
| 178 | q=ne->value->data; | 154 | q=ne->value->data; |
| 179 | #endif | ||
| 180 | |||
| 181 | for (j=0; j<num; j++) | 155 | for (j=0; j<num; j++) |
| 182 | { | 156 | { |
| 183 | if (!gs_doit[j&3]) continue; | 157 | if (!gs_doit[j&3]) continue; |
| 184 | #ifndef CHARSET_EBCDIC | ||
| 185 | n=q[j]; | 158 | n=q[j]; |
| 186 | if ((n < ' ') || (n > '~')) | 159 | if ((n < ' ') || (n > '~')) |
| 187 | { | 160 | { |
| @@ -192,19 +165,6 @@ int i; | |||
| 192 | } | 165 | } |
| 193 | else | 166 | else |
| 194 | *(p++)=n; | 167 | *(p++)=n; |
| 195 | #else | ||
| 196 | n=os_toascii[q[j]]; | ||
| 197 | if ((n < os_toascii[' ']) || | ||
| 198 | (n > os_toascii['~'])) | ||
| 199 | { | ||
| 200 | *(p++)='\\'; | ||
| 201 | *(p++)='x'; | ||
| 202 | *(p++)=hex[(n>>4)&0x0f]; | ||
| 203 | *(p++)=hex[n&0x0f]; | ||
| 204 | } | ||
| 205 | else | ||
| 206 | *(p++)=q[j]; | ||
| 207 | #endif | ||
| 208 | } | 168 | } |
| 209 | *p='\0'; | 169 | *p='\0'; |
| 210 | } | 170 | } |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_ia5.c b/src/lib/libssl/src/crypto/x509v3/v3_ia5.c index 4ff12b52b5..ab1c5188b8 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_ia5.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_ia5.c | |||
| @@ -105,9 +105,6 @@ static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, | |||
| 105 | M_ASN1_IA5STRING_free(ia5); | 105 | M_ASN1_IA5STRING_free(ia5); |
| 106 | goto err; | 106 | goto err; |
| 107 | } | 107 | } |
| 108 | #ifdef CHARSET_EBCDIC | ||
| 109 | ebcdic2ascii(ia5->data, ia5->data, ia5->length); | ||
| 110 | #endif /*CHARSET_EBCDIC*/ | ||
| 111 | return ia5; | 108 | return ia5; |
| 112 | err: | 109 | err: |
| 113 | X509V3err(X509V3_F_S2I_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); | 110 | X509V3err(X509V3_F_S2I_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_prn.c b/src/lib/libssl/src/crypto/x509v3/v3_prn.c index 3146218708..2124b447b4 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_prn.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_prn.c | |||
| @@ -83,22 +83,7 @@ void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml) | |||
| 83 | nval = sk_CONF_VALUE_value(val, i); | 83 | nval = sk_CONF_VALUE_value(val, i); |
| 84 | if(!nval->name) BIO_puts(out, nval->value); | 84 | if(!nval->name) BIO_puts(out, nval->value); |
| 85 | else if(!nval->value) BIO_puts(out, nval->name); | 85 | else if(!nval->value) BIO_puts(out, nval->name); |
| 86 | #ifndef CHARSET_EBCDIC | ||
| 87 | else BIO_printf(out, "%s:%s", nval->name, nval->value); | 86 | else BIO_printf(out, "%s:%s", nval->name, nval->value); |
| 88 | #else | ||
| 89 | else { | ||
| 90 | int len; | ||
| 91 | char *tmp; | ||
| 92 | len = strlen(nval->value)+1; | ||
| 93 | tmp = OPENSSL_malloc(len); | ||
| 94 | if (tmp) | ||
| 95 | { | ||
| 96 | ascii2ebcdic(tmp, nval->value, len); | ||
| 97 | BIO_printf(out, "%s:%s", nval->name, tmp); | ||
| 98 | OPENSSL_free(tmp); | ||
| 99 | } | ||
| 100 | } | ||
| 101 | #endif | ||
| 102 | if(ml) BIO_puts(out, "\n"); | 87 | if(ml) BIO_puts(out, "\n"); |
| 103 | } | 88 | } |
| 104 | } | 89 | } |
| @@ -127,22 +112,7 @@ int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int inde | |||
| 127 | ok = 0; | 112 | ok = 0; |
| 128 | goto err; | 113 | goto err; |
| 129 | } | 114 | } |
| 130 | #ifndef CHARSET_EBCDIC | ||
| 131 | BIO_printf(out, "%*s%s", indent, "", value); | 115 | BIO_printf(out, "%*s%s", indent, "", value); |
| 132 | #else | ||
| 133 | { | ||
| 134 | int len; | ||
| 135 | char *tmp; | ||
| 136 | len = strlen(value)+1; | ||
| 137 | tmp = OPENSSL_malloc(len); | ||
| 138 | if (tmp) | ||
| 139 | { | ||
| 140 | ascii2ebcdic(tmp, value, len); | ||
| 141 | BIO_printf(out, "%*s%s", indent, "", tmp); | ||
| 142 | OPENSSL_free(tmp); | ||
| 143 | } | ||
| 144 | } | ||
| 145 | #endif | ||
| 146 | } else if(method->i2v) { | 116 | } else if(method->i2v) { |
| 147 | if(!(nval = method->i2v(method, ext_str, NULL))) { | 117 | if(!(nval = method->i2v(method, ext_str, NULL))) { |
| 148 | ok = 0; | 118 | ok = 0; |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_utl.c b/src/lib/libssl/src/crypto/x509v3/v3_utl.c index e030234540..c4b6143eff 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_utl.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_utl.c | |||
| @@ -378,10 +378,6 @@ char *hex_to_string(const unsigned char *buffer, long len) | |||
| 378 | *q++ = ':'; | 378 | *q++ = ':'; |
| 379 | } | 379 | } |
| 380 | q[-1] = 0; | 380 | q[-1] = 0; |
| 381 | #ifdef CHARSET_EBCDIC | ||
| 382 | ebcdic2ascii(tmp, tmp, q - tmp - 1); | ||
| 383 | #endif | ||
| 384 | |||
| 385 | return tmp; | 381 | return tmp; |
| 386 | } | 382 | } |
| 387 | 383 | ||
| @@ -400,14 +396,8 @@ unsigned char *string_to_hex(const char *str, long *len) | |||
| 400 | if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err; | 396 | if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err; |
| 401 | for(p = (unsigned char *)str, q = hexbuf; *p;) { | 397 | for(p = (unsigned char *)str, q = hexbuf; *p;) { |
| 402 | ch = *p++; | 398 | ch = *p++; |
| 403 | #ifdef CHARSET_EBCDIC | ||
| 404 | ch = os_toebcdic[ch]; | ||
| 405 | #endif | ||
| 406 | if(ch == ':') continue; | 399 | if(ch == ':') continue; |
| 407 | cl = *p++; | 400 | cl = *p++; |
| 408 | #ifdef CHARSET_EBCDIC | ||
| 409 | cl = os_toebcdic[cl]; | ||
| 410 | #endif | ||
| 411 | if(!cl) { | 401 | if(!cl) { |
| 412 | X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS); | 402 | X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS); |
| 413 | OPENSSL_free(hexbuf); | 403 | OPENSSL_free(hexbuf); |
| @@ -844,21 +834,13 @@ int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, | |||
| 844 | * multiple instances | 834 | * multiple instances |
| 845 | */ | 835 | */ |
| 846 | for(p = type; *p ; p++) | 836 | for(p = type; *p ; p++) |
| 847 | #ifndef CHARSET_EBCDIC | ||
| 848 | if ((*p == ':') || (*p == ',') || (*p == '.')) | 837 | if ((*p == ':') || (*p == ',') || (*p == '.')) |
| 849 | #else | ||
| 850 | if ((*p == os_toascii[':']) || (*p == os_toascii[',']) || (*p == os_toascii['.'])) | ||
| 851 | #endif | ||
| 852 | { | 838 | { |
| 853 | p++; | 839 | p++; |
| 854 | if(*p) type = p; | 840 | if(*p) type = p; |
| 855 | break; | 841 | break; |
| 856 | } | 842 | } |
| 857 | #ifndef CHARSET_EBCDIC | ||
| 858 | if (*type == '+') | 843 | if (*type == '+') |
| 859 | #else | ||
| 860 | if (*type == os_toascii['+']) | ||
| 861 | #endif | ||
| 862 | { | 844 | { |
| 863 | mval = -1; | 845 | mval = -1; |
| 864 | type++; | 846 | type++; |
diff --git a/src/lib/libssl/src/ssl/s2_lib.c b/src/lib/libssl/src/ssl/s2_lib.c index d3764ebbe9..76ed912927 100644 --- a/src/lib/libssl/src/ssl/s2_lib.c +++ b/src/lib/libssl/src/ssl/s2_lib.c | |||
| @@ -475,10 +475,6 @@ ssl2_generate_key_material(SSL *s) | |||
| 475 | 475 | ||
| 476 | md5 = EVP_md5(); | 476 | md5 = EVP_md5(); |
| 477 | 477 | ||
| 478 | #ifdef CHARSET_EBCDIC | ||
| 479 | c = os_toascii['0']; /* Must be an ASCII '0', not EBCDIC '0', | ||
| 480 | see SSLv2 docu */ | ||
| 481 | #endif | ||
| 482 | EVP_MD_CTX_init(&ctx); | 478 | EVP_MD_CTX_init(&ctx); |
| 483 | km = s->s2->key_material; | 479 | km = s->s2->key_material; |
| 484 | 480 | ||
diff --git a/src/lib/libssl/src/ssl/s3_enc.c b/src/lib/libssl/src/ssl/s3_enc.c index 4536ca5995..9ed5850e73 100644 --- a/src/lib/libssl/src/ssl/s3_enc.c +++ b/src/lib/libssl/src/ssl/s3_enc.c | |||
| @@ -170,9 +170,6 @@ ssl3_generate_key_block(SSL *s, unsigned char *km, int num) | |||
| 170 | unsigned char c = 'A'; | 170 | unsigned char c = 'A'; |
| 171 | unsigned int i, j, k; | 171 | unsigned int i, j, k; |
| 172 | 172 | ||
| 173 | #ifdef CHARSET_EBCDIC | ||
| 174 | c = os_toascii[c]; /*'A' in ASCII */ | ||
| 175 | #endif | ||
| 176 | k = 0; | 173 | k = 0; |
| 177 | EVP_MD_CTX_init(&m5); | 174 | EVP_MD_CTX_init(&m5); |
| 178 | EVP_MD_CTX_set_flags(&m5, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); | 175 | EVP_MD_CTX_set_flags(&m5, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); |
| @@ -796,15 +793,9 @@ ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p, | |||
| 796 | int len) | 793 | int len) |
| 797 | { | 794 | { |
| 798 | static const unsigned char *salt[3] = { | 795 | static const unsigned char *salt[3] = { |
| 799 | #ifndef CHARSET_EBCDIC | ||
| 800 | (const unsigned char *)"A", | 796 | (const unsigned char *)"A", |
| 801 | (const unsigned char *)"BB", | 797 | (const unsigned char *)"BB", |
| 802 | (const unsigned char *)"CCC", | 798 | (const unsigned char *)"CCC", |
| 803 | #else | ||
| 804 | (const unsigned char *)"\x41", | ||
| 805 | (const unsigned char *)"\x42\x42", | ||
| 806 | (const unsigned char *)"\x43\x43\x43", | ||
| 807 | #endif | ||
| 808 | }; | 799 | }; |
| 809 | unsigned char buf[EVP_MAX_MD_SIZE]; | 800 | unsigned char buf[EVP_MAX_MD_SIZE]; |
| 810 | EVP_MD_CTX ctx; | 801 | EVP_MD_CTX ctx; |
diff --git a/src/lib/libssl/src/ssl/ssl_ciph.c b/src/lib/libssl/src/ssl/ssl_ciph.c index 0e24e0a5c6..ed2e78bdcc 100644 --- a/src/lib/libssl/src/ssl/ssl_ciph.c +++ b/src/lib/libssl/src/ssl/ssl_ciph.c | |||
| @@ -1130,14 +1130,10 @@ const SSL_CIPHER **ca_list) | |||
| 1130 | ch = *l; | 1130 | ch = *l; |
| 1131 | buf = l; | 1131 | buf = l; |
| 1132 | buflen = 0; | 1132 | buflen = 0; |
| 1133 | #ifndef CHARSET_EBCDIC | ||
| 1134 | while (((ch >= 'A') && (ch <= 'Z')) || | 1133 | while (((ch >= 'A') && (ch <= 'Z')) || |
| 1135 | ((ch >= '0') && (ch <= '9')) || | 1134 | ((ch >= '0') && (ch <= '9')) || |
| 1136 | ((ch >= 'a') && (ch <= 'z')) || | 1135 | ((ch >= 'a') && (ch <= 'z')) || |
| 1137 | (ch == '-') || (ch == '.')) | 1136 | (ch == '-') || (ch == '.')) |
| 1138 | #else | ||
| 1139 | while (isalnum(ch) || (ch == '-') || (ch == '.')) | ||
| 1140 | #endif | ||
| 1141 | { | 1137 | { |
| 1142 | ch = *(++l); | 1138 | ch = *(++l); |
| 1143 | buflen++; | 1139 | buflen++; |
diff --git a/src/lib/libssl/src/ssl/tls1.h b/src/lib/libssl/src/ssl/tls1.h index 95d6660ac3..43879f82af 100644 --- a/src/lib/libssl/src/ssl/tls1.h +++ b/src/lib/libssl/src/ssl/tls1.h | |||
| @@ -699,25 +699,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) | |||
| 699 | #define TLS_MD_MASTER_SECRET_CONST "master secret" | 699 | #define TLS_MD_MASTER_SECRET_CONST "master secret" |
| 700 | #define TLS_MD_MASTER_SECRET_CONST_SIZE 13 | 700 | #define TLS_MD_MASTER_SECRET_CONST_SIZE 13 |
| 701 | 701 | ||
| 702 | #ifdef CHARSET_EBCDIC | ||
| 703 | #undef TLS_MD_CLIENT_FINISH_CONST | ||
| 704 | #define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*client finished*/ | ||
| 705 | #undef TLS_MD_SERVER_FINISH_CONST | ||
| 706 | #define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*server finished*/ | ||
| 707 | #undef TLS_MD_SERVER_WRITE_KEY_CONST | ||
| 708 | #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ | ||
| 709 | #undef TLS_MD_KEY_EXPANSION_CONST | ||
| 710 | #define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" /*key expansion*/ | ||
| 711 | #undef TLS_MD_CLIENT_WRITE_KEY_CONST | ||
| 712 | #define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*client write key*/ | ||
| 713 | #undef TLS_MD_SERVER_WRITE_KEY_CONST | ||
| 714 | #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ | ||
| 715 | #undef TLS_MD_IV_BLOCK_CONST | ||
| 716 | #define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" /*IV block*/ | ||
| 717 | #undef TLS_MD_MASTER_SECRET_CONST | ||
| 718 | #define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" /*master secret*/ | ||
| 719 | #endif | ||
| 720 | |||
| 721 | /* TLS Session Ticket extension struct */ | 702 | /* TLS Session Ticket extension struct */ |
| 722 | struct tls_session_ticket_ext_st { | 703 | struct tls_session_ticket_ext_st { |
| 723 | unsigned short length; | 704 | unsigned short length; |
diff --git a/src/lib/libssl/ssl_ciph.c b/src/lib/libssl/ssl_ciph.c index 0e24e0a5c6..ed2e78bdcc 100644 --- a/src/lib/libssl/ssl_ciph.c +++ b/src/lib/libssl/ssl_ciph.c | |||
| @@ -1130,14 +1130,10 @@ const SSL_CIPHER **ca_list) | |||
| 1130 | ch = *l; | 1130 | ch = *l; |
| 1131 | buf = l; | 1131 | buf = l; |
| 1132 | buflen = 0; | 1132 | buflen = 0; |
| 1133 | #ifndef CHARSET_EBCDIC | ||
| 1134 | while (((ch >= 'A') && (ch <= 'Z')) || | 1133 | while (((ch >= 'A') && (ch <= 'Z')) || |
| 1135 | ((ch >= '0') && (ch <= '9')) || | 1134 | ((ch >= '0') && (ch <= '9')) || |
| 1136 | ((ch >= 'a') && (ch <= 'z')) || | 1135 | ((ch >= 'a') && (ch <= 'z')) || |
| 1137 | (ch == '-') || (ch == '.')) | 1136 | (ch == '-') || (ch == '.')) |
| 1138 | #else | ||
| 1139 | while (isalnum(ch) || (ch == '-') || (ch == '.')) | ||
| 1140 | #endif | ||
| 1141 | { | 1137 | { |
| 1142 | ch = *(++l); | 1138 | ch = *(++l); |
| 1143 | buflen++; | 1139 | buflen++; |
diff --git a/src/lib/libssl/tls1.h b/src/lib/libssl/tls1.h index 95d6660ac3..43879f82af 100644 --- a/src/lib/libssl/tls1.h +++ b/src/lib/libssl/tls1.h | |||
| @@ -699,25 +699,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) | |||
| 699 | #define TLS_MD_MASTER_SECRET_CONST "master secret" | 699 | #define TLS_MD_MASTER_SECRET_CONST "master secret" |
| 700 | #define TLS_MD_MASTER_SECRET_CONST_SIZE 13 | 700 | #define TLS_MD_MASTER_SECRET_CONST_SIZE 13 |
| 701 | 701 | ||
| 702 | #ifdef CHARSET_EBCDIC | ||
| 703 | #undef TLS_MD_CLIENT_FINISH_CONST | ||
| 704 | #define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*client finished*/ | ||
| 705 | #undef TLS_MD_SERVER_FINISH_CONST | ||
| 706 | #define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" /*server finished*/ | ||
| 707 | #undef TLS_MD_SERVER_WRITE_KEY_CONST | ||
| 708 | #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ | ||
| 709 | #undef TLS_MD_KEY_EXPANSION_CONST | ||
| 710 | #define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" /*key expansion*/ | ||
| 711 | #undef TLS_MD_CLIENT_WRITE_KEY_CONST | ||
| 712 | #define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*client write key*/ | ||
| 713 | #undef TLS_MD_SERVER_WRITE_KEY_CONST | ||
| 714 | #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" /*server write key*/ | ||
| 715 | #undef TLS_MD_IV_BLOCK_CONST | ||
| 716 | #define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" /*IV block*/ | ||
| 717 | #undef TLS_MD_MASTER_SECRET_CONST | ||
| 718 | #define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" /*master secret*/ | ||
| 719 | #endif | ||
| 720 | |||
| 721 | /* TLS Session Ticket extension struct */ | 702 | /* TLS Session Ticket extension struct */ |
| 722 | struct tls_session_ticket_ext_st { | 703 | struct tls_session_ticket_ext_st { |
| 723 | unsigned short length; | 704 | unsigned short length; |
