This is a valid certificate from the perspective of ParseCertificate().



-----BEGIN CERTIFICATE-----
MBAwBgUAMAIFADACBQADAgCs
-----END CERTIFICATE-----

$ openssl asn1parse -i < [CERTIFICATE]
    0:d=0  hl=2 l=  16 cons: SEQUENCE          
    2:d=1  hl=2 l=   6 cons:  SEQUENCE          
    4:d=2  hl=2 l=   0 prim:   NULL              
    6:d=2  hl=2 l=   2 cons:   SEQUENCE          
    8:d=3  hl=2 l=   0 prim:    NULL              
   10:d=1  hl=2 l=   2 cons:  SEQUENCE          
   12:d=2  hl=2 l=   0 prim:   NULL              
   14:d=1  hl=2 l=   2 prim:  BIT STRING        



-----BEGIN TBS CERTIFICATE-----
MAYFADACBQA=
-----END TBS CERTIFICATE-----

$ openssl asn1parse -i < [TBS CERTIFICATE]
    0:d=0  hl=2 l=   6 cons: SEQUENCE          
    2:d=1  hl=2 l=   0 prim:  NULL              
    4:d=1  hl=2 l=   2 cons:  SEQUENCE          
    6:d=2  hl=2 l=   0 prim:   NULL              



-----BEGIN SIGNATURE ALGORITHM-----
MAIFAA==
-----END SIGNATURE ALGORITHM-----

$ openssl asn1parse -i < [SIGNATURE ALGORITHM]
    0:d=0  hl=2 l=   2 cons: SEQUENCE          
    2:d=1  hl=2 l=   0 prim:  NULL              



-----BEGIN SIGNATURE-----
rA==
-----END SIGNATURE-----
