From ITU-T Rec. X.680 (02/21):
C.5.7
IA5String
[is] mapped intoUniversalString
by mapping each character into theUniversalString
character that has the identical (32-bit) value in the BER encoding ofUniversalString
as the (8-bit) value of the BER encoding ofIA5String
[.]
41.6
The characters which can appear in the
UniversalString
type are any of the characters allowed by ISO/IEC 10646 [aka Unicode].
43.8
For
IA5String
, [the] entire character set contains precisely 128 characters[.]
So it would seem that IA5String
really is identical to ASCII, considering that all 128 ASCII characters, including non-printable ones, are identical to the Unicode characters of the same index. (This can be tested via Python by assert all(struct.pack('!B', i).decode('ascii') == chr(i) for i in range(128))
)