- Generated attributes are now explicitly tagged as UTF8String via
CertificateSigningRequestBuilder.add_attribute(_tag=_ASN1Type.UTF8String),
so values include proper DER TLV instead of raw bytes.
- The attribute decoder first attempts DER string parsing (UTF8String, PrintableString,
IA5String, BMPString, long-form lengths), falling back to legacy raw UTF-8 decode for
previously generated nonconformant CSRs.
- Regression tests verify DER encoding, Unicode round-tripping, supported string types,
long values (>127 bytes), and legacy raw UTF-8 attributes.
- Mypy passes cleanly (no issues in 42 source files).