See parse_sig_created:
sig->sig_class = strtol (args, &tail, 0);
But:
<class> are 2 hex digits with the OpenPGP signature class.
Note that strtol is using a heuristic to detect the base (base is 0, see strtol(3)). For example, any signature class < 16 (e.g. 00) will have a leading zero, and will hence be interpreted as octal by strtol, so class 8 results in an parse error, and there are various values that now map to other values.