Fun fact; what these things implement is more general than DER; a sub&#x2F;superset of BER.<p>BER does have &quot;constructed values&quot; which are most &#x27;obviously&#x27; parsed recursively. OpenSSL handles this via C macros that unroll the parsing 7 levels deep, but no more.<p>(What does it do when given nested constructed values? Well-- when its expecting an integer it goes and traverses into the constructed values in a particular order, pulls out the primitive types at the bottom, concatenates their bytes, and treats the result as an unsigned integer. ... Why? Because this is precisely the kind of madness that happens when you deploy a &#x27;too powerful&#x27; language!  :)  )