Currently this version messes up ASN1 function names when printing errors.
This is because ASN1 functions cannot be added cleanly in a standalone program
at present. In practice this isn't too much of a problem because the file name
and line number allow the function to be worked out.
