mirror of
https://github.com/openssl/openssl.git
synced 2024-12-26 18:33:39 +08:00
Updates for NumericString support
Ensure that EBCDIC support works and update a comment. Reviewed-by: Tim Hudson <tjh@openssl.org>
This commit is contained in:
parent
68572c8af3
commit
0e2d091103
@ -78,8 +78,8 @@ static int is_printable(unsigned long value);
|
||||
/*
|
||||
* These functions take a string in UTF8, ASCII or multibyte form and a mask
|
||||
* of permissible ASN1 string types. It then works out the minimal type
|
||||
* (using the order Printable < IA5 < T61 < BMP < Universal < UTF8) and
|
||||
* creates a string of the correct type with the supplied data. Yes this is
|
||||
* (using the order Numeric < Printable < IA5 < T61 < BMP < Universal < UTF8)
|
||||
* and creates a string of the correct type with the supplied data. Yes this is
|
||||
* horrible: it has to be :-( The 'ncopy' form checks minimum and maximum
|
||||
* size limits too.
|
||||
*/
|
||||
@ -425,11 +425,21 @@ static int is_printable(unsigned long value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return 1 if the character is a digit or space */
|
||||
static int is_numeric(unsigned long value)
|
||||
{
|
||||
if (value > '9')
|
||||
int ch;
|
||||
if (value > 0x7f)
|
||||
return 0;
|
||||
if (value < '0' && value != 32)
|
||||
ch = (int)value;
|
||||
#ifndef CHARSET_EBCDIC
|
||||
if (!isdigit(ch) && ch != ' ')
|
||||
return 0;
|
||||
#else
|
||||
if (ch > os_toascii['9'])
|
||||
return 0;
|
||||
if (ch < os_toascii['0'] && ch != os_toascii[' '])
|
||||
return 0;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user