Hello,

I hope it is OK when I submit 3 small bug reports in 1 request.

I am using OpenSSL 0.9.8o 01 Jun 2010 (latest stable for Debian Squeeze)


#1 (a) - OpenSSL displays ("-noout -text") root-arcs wrong

OpenSSL displays the following OIDs as:

0.0 = itu-t
1.0 = iso
2.0 = joint-iso-itu-t

This is wrong, as this description is only counting for the ROOT-arc 
("0", "1", "2", which have no DER encoding) and not the root-arc, 
followed by the 2nd arc "0".

Correct would be:

0.0 = {itu-t(0) recommendation(0)}
1.0 = {iso(1) standard(0)}
2.0 = {joint-iso-itu-t(2) presentation(0)}


#1 (b) - Example OID

Maybe it would be good to give the OID 2.999 the name "example".

More information at http://www.oid-info.com/get/2.999/ .


#2 - OpenSSL crashes when ULONG_MAX limit of first subidentifier is reached

While OpenSSL can handle unlimited arc sizes for higher arcs (e.g. 
2.999.[value]), the size of the first two arcs is limited to the 
respective ULONG_MAX (2^32-1 resp. 2^64-1). E.g. for x86 builds the 
highest possible OID to encode is 2.2147483567 . If this value is 
increased, Linux shows an non-informative error message and Windows 
reports an AppCrash! I would recommend also to use the combination 
between ULONG and BigNum like it is done for the higher arcs. Then 
OpenSSL would also do not produce AppCrash's at Windows in that specific 
case.


#3 - OpenSSL allows illegal paddings for first subidentifier

The DER encoding "06 02 *80* xx" which includes an illegal 0x80 padding 
at the first subidentifier can be decoded by OpenSSL, but is illegal as 
defined by ITU-T Rec. X.690 8.19.2.

Note: For higher subidentifiers, e.g. the second, OpenSSL successfully 
marks the OIDs as invalid (e.g. "06 03 01 *80* xx")


Best regards
Daniel Marschall



Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to