SCT signature verification, encode/decode and accessor functions

I'm not convinced you want to assume here and below that a serialized SCT is available. Think of a log that is constructing the SCT.

I would say that returning 0 as the default is fine so long as this is documented. Otherwise we should store the version internally as an int or a short, with a -1 to indicate "not set". (But that has its own pitfalls.)