Merge of main trunk, no conflicts this time

This commit is contained in:
Richard Levitte 2000-09-11 10:18:56 +00:00
parent 166e1f304b
commit 0fc7c5010d
5 changed files with 30 additions and 1 deletions
CHANGES
apps
crypto
doc/crypto

@ -4,6 +4,10 @@
Changes between 0.9.5a and 0.9.6 [xx XXX 2000] Changes between 0.9.5a and 0.9.6 [xx XXX 2000]
*) Add a few more EBCDIC conditionals that make `req' and `x509'
work better on such systems.
[Martin Kraemer <Martin.Kraemer@MchP.Siemens.De>]
*) Add two demo programs for PKCS12_parse() and PKCS12_create(). *) Add two demo programs for PKCS12_parse() and PKCS12_create().
Update PKCS12_parse() so it copies the friendlyName and the Update PKCS12_parse() so it copies the friendlyName and the
keyid to the certificates aux info. keyid to the certificates aux info.

@ -1139,7 +1139,11 @@ static int auto_info(X509_REQ *req, STACK_OF(CONF_VALUE) *dn_sk,
* multiple instances * multiple instances
*/ */
for(p = v->name; *p ; p++) for(p = v->name; *p ; p++)
#ifndef CHARSET_EBCDIC
if ((*p == ':') || (*p == ',') || (*p == '.')) { if ((*p == ':') || (*p == ',') || (*p == '.')) {
#else
if ((*p == os_toascii[':']) || (*p == os_toascii[',']) || (*p == os_toascii['.'])) {
#endif
p++; p++;
if(*p) type = p; if(*p) type = p;
break; break;
@ -1255,6 +1259,9 @@ start:
return(0); return(0);
} }
buf[--i]='\0'; buf[--i]='\0';
#ifdef CHARSET_EBCDIC
ebcdic2ascii(buf, buf, i);
#endif
if(!req_check_len(i, min, max)) goto start; if(!req_check_len(i, min, max)) goto start;
if(!X509_REQ_add1_attr_by_NID(req, nid, MBSTRING_ASC, if(!X509_REQ_add1_attr_by_NID(req, nid, MBSTRING_ASC,

@ -385,9 +385,16 @@ static int is_printable(unsigned long value)
/* Note: we can't use 'isalnum' because certain accented /* Note: we can't use 'isalnum' because certain accented
* characters may count as alphanumeric in some environments. * characters may count as alphanumeric in some environments.
*/ */
#ifndef CHARSET_EBCDIC
if((ch >= 'a') && (ch <= 'z')) return 1; if((ch >= 'a') && (ch <= 'z')) return 1;
if((ch >= 'A') && (ch <= 'Z')) return 1; if((ch >= 'A') && (ch <= 'Z')) return 1;
if((ch >= '0') && (ch <= '9')) return 1; if((ch >= '0') && (ch <= '9')) return 1;
if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1; if ((ch == ' ') || strchr("'()+,-./:=?", ch)) return 1;
#else /*CHARSET_EBCDIC*/
if((ch >= os_toascii['a']) && (ch <= os_toascii['z'])) return 1;
if((ch >= os_toascii['A']) && (ch <= os_toascii['Z'])) return 1;
if((ch >= os_toascii['0']) && (ch <= os_toascii['9'])) return 1;
if ((ch == os_toascii[' ']) || strchr("'()+,-./:=?", os_toebcdic[ch])) return 1;
#endif /*CHARSET_EBCDIC*/
return 0; return 0;
} }

@ -331,6 +331,7 @@ static char *strip_spaces(char *name)
/* Given a buffer of length 'len' return a OPENSSL_malloc'ed string with its /* Given a buffer of length 'len' return a OPENSSL_malloc'ed string with its
* hex representation * hex representation
* @@@ (Contents of buffer are always kept in ASCII, also on EBCDIC machines)
*/ */
char *hex_to_string(unsigned char *buffer, long len) char *hex_to_string(unsigned char *buffer, long len)
@ -351,6 +352,10 @@ char *hex_to_string(unsigned char *buffer, long len)
*q++ = ':'; *q++ = ':';
} }
q[-1] = 0; q[-1] = 0;
#ifdef CHARSET_EBCDIC
ebcdic2ascii(tmp, tmp, q - tmp - 1);
#endif
return tmp; return tmp;
} }
@ -369,8 +374,14 @@ unsigned char *string_to_hex(char *str, long *len)
if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err; if(!(hexbuf = OPENSSL_malloc(strlen(str) >> 1))) goto err;
for(p = (unsigned char *)str, q = hexbuf; *p;) { for(p = (unsigned char *)str, q = hexbuf; *p;) {
ch = *p++; ch = *p++;
#ifdef CHARSET_EBCDIC
ch = os_toebcdic[ch];
#endif
if(ch == ':') continue; if(ch == ':') continue;
cl = *p++; cl = *p++;
#ifdef CHARSET_EBCDIC
cl = os_toebcdic[cl];
#endif
if(!cl) { if(!cl) {
X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS); X509V3err(X509V3_F_STRING_TO_HEX,X509V3_R_ODD_NUMBER_OF_DIGITS);
OPENSSL_free(hexbuf); OPENSSL_free(hexbuf);

@ -34,7 +34,7 @@ if it is being read from.
BIOs can be joined together to form a chain (a single BIO is a chain BIOs can be joined together to form a chain (a single BIO is a chain
with one component). A chain normally consist of one source/sink with one component). A chain normally consist of one source/sink
BIO and one or more filter BIOs. Data read from or written to the BIO and one or more filter BIOs. Data read from or written to the
end BIO then traverses the chain to the end (normally a source/sink first BIO then traverses the chain to the end (normally a source/sink
BIO). BIO).
=head1 SEE ALSO =head1 SEE ALSO