public X509TbsCertificate(Asn1Sequence node) { var i = 0; var subnode = node.Nodes[i++]; if (subnode.Is(Asn1TagClass.ContextDefined, 0x00)) { Version = new X509Version(subnode); subnode = node.Nodes[i++]; } SerialNumber = (Asn1Integer)subnode; subnode = node.Nodes[i++]; SignatureAlgorithm = new X509AlgorithmIdentifier((Asn1Sequence)subnode); subnode = node.Nodes[i++]; Issuer = new X509Name((Asn1Sequence)subnode); subnode = node.Nodes[i++]; Validity = new X509Validity((Asn1Sequence)subnode); subnode = node.Nodes[i++]; Subject = new X509Name((Asn1Sequence)subnode); subnode = node.Nodes[i++]; SubjectPublicKeyInfo = SubjectPublicKeyInfo.From((Asn1Sequence)subnode); subnode = node.Nodes[i++]; if (subnode.Is(Asn1TagClass.ContextDefined, 0x01)) { //issuerUniqueId throw new NotImplementedException(); } if (subnode.Is(Asn1TagClass.ContextDefined, 0x02)) { //subjectUniqueId throw new NotImplementedException(); } if (subnode.Is(Asn1TagClass.ContextDefined, 0x03)) { var extSeq = subnode.Nodes[0]; foreach (var extNode in extSeq.Nodes) { Extensions.Add(new X509Extension((Asn1Sequence)extNode)); } } }
public X509TbsCertificate() { Version = new X509Version(3); Extensions = new X509ExtensionsList(); }