Convert minica and crlsetutil to Python 3

I originally did this as part of SpawnedTestServer but ultimately
removed all dependencies on it instead. But I've already done the work,
so here it is. Since the test server no longer uses it, I've also moved
the files to net/data/ssl/scripts.

The main detail of note is that used to use PrintableString for
Py2 str, which is the "default" string type, and UTFString for Py2
unicode. Py3 flips this to bytes/str. Using PrintableString for bytes
and UTF8String for str is odd because:

- Surely OCTET STRING is the right default for bytes.

- This changes the "default" string type from PrintableString to
  UTF8String. That's probably a good change overall, but I didn't want
  to change the output with a Py3 port.

I've instead made it raise an exception, so callers need to specify what
type they want.

crlsetutil also sees some changes. It had a bug when there were multiple
entries. We just didn't notice because we only use it with one entry.
Note also that, by switching to Python 3, we change order in the JSON.
In Python 3, unlike Python 2, the order is well-defined. So this one-time
output change fixes a repeatability failure in these scripts.

To keep me honest, I've also refreshed the test data for the bits of the
scripts that changed.

Change-Id: I7e1ff6d42901c7c03903fc97eea03f7870dbd7ca
Auto-Submit: David Benjamin <>
Reviewed-by: Ryan Sleevi <>
Commit-Queue: David Benjamin <>
Cr-Commit-Position: refs/heads/main@{#922214}
GitOrigin-RevId: f6e74fe849de2f0ded88e911632fb079436bd301
3 files changed