public static GetInstance ( Asn1TaggedObject obj, bool explicitly ) : |
||
obj | Asn1TaggedObject | |
explicitly | bool | |
return |
internal TbsCertificateStructure( Asn1Sequence seq) { int seqStart = 0; this.seq = seq; // // some certficates don't include a version number - we assume v1 // if (seq[0] is DerTaggedObject) { version = DerInteger.GetInstance((Asn1TaggedObject)seq[0], true); } else { seqStart = -1; // field 0 is missing! version = new DerInteger(0); } serialNumber = DerInteger.GetInstance(seq[seqStart + 1]); signature = AlgorithmIdentifier.GetInstance(seq[seqStart + 2]); issuer = X509Name.GetInstance(seq[seqStart + 3]); // // before and after dates // Asn1Sequence dates = (Asn1Sequence)seq[seqStart + 4]; startDate = Time.GetInstance(dates[0]); endDate = Time.GetInstance(dates[1]); subject = X509Name.GetInstance(seq[seqStart + 5]); // // public key info. // subjectPublicKeyInfo = SubjectPublicKeyInfo.GetInstance(seq[seqStart + 6]); for (int extras = seq.Count - (seqStart + 6) - 1; extras > 0; extras--) { DerTaggedObject extra = (DerTaggedObject)seq[seqStart + 6 + extras]; switch (extra.TagNo) { case 1: issuerUniqueID = DerBitString.GetInstance(extra, false); break; case 2: subjectUniqueID = DerBitString.GetInstance(extra, false); break; case 3: extensions = X509Extensions.GetInstance(extra); break; } } }
private AttributeCertificateInfo( Asn1Sequence seq) { if (seq.Count < 7 || seq.Count > 9) { throw new ArgumentException("Bad sequence size: " + seq.Count); } this.version = DerInteger.GetInstance(seq[0]); this.holder = Holder.GetInstance(seq[1]); this.issuer = AttCertIssuer.GetInstance(seq[2]); this.signature = AlgorithmIdentifier.GetInstance(seq[3]); this.serialNumber = DerInteger.GetInstance(seq[4]); this.attrCertValidityPeriod = AttCertValidityPeriod.GetInstance(seq[5]); this.attributes = Asn1Sequence.GetInstance(seq[6]); for (int i = 7; i < seq.Count; i++) { Asn1Encodable obj = (Asn1Encodable)seq[i]; if (obj is DerBitString) { this.issuerUniqueID = DerBitString.GetInstance(seq[i]); } else if (obj is Asn1Sequence || obj is X509Extensions) { this.extensions = X509Extensions.GetInstance(seq[i]); } } }
internal TbsCertificateList(Asn1Sequence seq) { if ((seq.Count < 3) || (seq.Count > 7)) { throw new ArgumentException("Bad sequence size: " + seq.Count); } int num = 0; this.seq = seq; if (seq[num] is DerInteger) { this.version = DerInteger.GetInstance(seq[num++]); } else { this.version = new DerInteger(0); } this.signature = AlgorithmIdentifier.GetInstance(seq[num++]); this.issuer = X509Name.GetInstance(seq[num++]); this.thisUpdate = Time.GetInstance(seq[num++]); if ((num < seq.Count) && (((seq[num] is DerUtcTime) || (seq[num] is DerGeneralizedTime)) || (seq[num] is Time))) { this.nextUpdate = Time.GetInstance(seq[num++]); } if ((num < seq.Count) && !(seq[num] is DerTaggedObject)) { this.revokedCertificates = Asn1Sequence.GetInstance(seq[num++]); } if ((num < seq.Count) && (seq[num] is DerTaggedObject)) { this.crlExtensions = X509Extensions.GetInstance(seq[num]); } }
private AttributeCertificateInfo(Asn1Sequence seq) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) if (seq.Count < 7 || seq.Count > 9) { throw new ArgumentException(string.Concat((object)"Bad sequence size: ", (object)seq.Count)); } version = DerInteger.GetInstance(seq[0]); holder = Holder.GetInstance(seq[1]); issuer = AttCertIssuer.GetInstance(seq[2]); signature = AlgorithmIdentifier.GetInstance(seq[3]); serialNumber = DerInteger.GetInstance(seq[4]); attrCertValidityPeriod = AttCertValidityPeriod.GetInstance(seq[5]); attributes = Asn1Sequence.GetInstance(seq[6]); for (int i = 7; i < seq.Count; i++) { Asn1Encodable asn1Encodable = seq[i]; if (asn1Encodable is DerBitString) { issuerUniqueID = DerBitString.GetInstance(seq[i]); } else if (asn1Encodable is Asn1Sequence || asn1Encodable is X509Extensions) { extensions = X509Extensions.GetInstance(seq[i]); } } }
internal TbsCertificateList(Asn1Sequence seq) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) if (seq.Count < 3 || seq.Count > 7) { throw new ArgumentException(string.Concat((object)"Bad sequence size: ", (object)seq.Count)); } int num = 0; this.seq = seq; if (seq[num] is DerInteger) { version = DerInteger.GetInstance(seq[num++]); } else { version = new DerInteger(0); } signature = AlgorithmIdentifier.GetInstance(seq[num++]); issuer = X509Name.GetInstance(seq[num++]); thisUpdate = Time.GetInstance(seq[num++]); if (num < seq.Count && (seq[num] is DerUtcTime || seq[num] is DerGeneralizedTime || seq[num] is Time)) { nextUpdate = Time.GetInstance(seq[num++]); } if (num < seq.Count && !(seq[num] is DerTaggedObject)) { revokedCertificates = Asn1Sequence.GetInstance(seq[num++]); } if (num < seq.Count && seq[num] is DerTaggedObject) { crlExtensions = X509Extensions.GetInstance(seq[num]); } }
internal TbsCertificateList( Asn1Sequence seq) { if (seq.Count < 3 || seq.Count > 7) { throw new ArgumentException("Bad sequence size: " + seq.Count); } int seqPos = 0; this.seq = seq; if (seq[seqPos] is DerInteger) { version = DerInteger.GetInstance(seq[seqPos++]); } else { version = new DerInteger(0); } signature = AlgorithmIdentifier.GetInstance(seq[seqPos++]); issuer = X509Name.GetInstance(seq[seqPos++]); thisUpdate = Time.GetInstance(seq[seqPos++]); if (seqPos < seq.Count && (seq[seqPos] is DerUtcTime || seq[seqPos] is DerGeneralizedTime || seq[seqPos] is Time)) { nextUpdate = Time.GetInstance(seq[seqPos++]); } if (seqPos < seq.Count && !(seq[seqPos] is DerTaggedObject)) { Asn1Sequence certs = Asn1Sequence.GetInstance(seq[seqPos++]); revokedCertificates = new CrlEntry[certs.Count]; for (int i = 0; i < revokedCertificates.Length; i++) { revokedCertificates[i] = new CrlEntry(Asn1Sequence.GetInstance(certs[i])); } } if (seqPos < seq.Count && seq[seqPos] is DerTaggedObject) { crlExtensions = X509Extensions.GetInstance(seq[seqPos++]); } }
public static X509Extensions GetInstance(object obj) { if (obj == null || obj is X509Extensions) { return((X509Extensions)obj); } if (obj is Asn1Sequence) { return(new X509Extensions((Asn1Sequence)obj)); } if (obj is Asn1TaggedObject) { return(X509Extensions.GetInstance(((Asn1TaggedObject)obj).GetObject())); } throw new ArgumentException("unknown object in factory: " + obj.GetType().Name, "obj"); }
public CrlEntry( Asn1Sequence seq) { if (seq.Count < 2 || seq.Count > 3) { throw new ArgumentException("Bad sequence size: " + seq.Count); } this.seq = seq; userCertificate = DerInteger.GetInstance(seq[0]); revocationDate = Time.GetInstance(seq[1]); if (seq.Count == 3) { crlEntryExtensions = X509Extensions.GetInstance(seq[2]); } }
internal TbsCertificateStructure(Asn1Sequence seq) { int num = 0; this.seq = seq; if (seq[0] is DerTaggedObject) { this.version = DerInteger.GetInstance((Asn1TaggedObject)seq[0], true); } else { num = -1; this.version = new DerInteger(0); } this.serialNumber = DerInteger.GetInstance(seq[num + 1]); this.signature = AlgorithmIdentifier.GetInstance(seq[num + 2]); this.issuer = X509Name.GetInstance(seq[num + 3]); Asn1Sequence asn1Sequence = (Asn1Sequence)seq[num + 4]; this.startDate = Time.GetInstance(asn1Sequence[0]); this.endDate = Time.GetInstance(asn1Sequence[1]); this.subject = X509Name.GetInstance(seq[num + 5]); this.subjectPublicKeyInfo = SubjectPublicKeyInfo.GetInstance(seq[num + 6]); for (int i = seq.Count - (num + 6) - 1; i > 0; i--) { DerTaggedObject derTaggedObject = (DerTaggedObject)seq[num + 6 + i]; switch (derTaggedObject.TagNo) { case 1: this.issuerUniqueID = DerBitString.GetInstance(derTaggedObject, false); break; case 2: this.subjectUniqueID = DerBitString.GetInstance(derTaggedObject, false); break; case 3: this.extensions = X509Extensions.GetInstance(derTaggedObject); break; } } }
private AttributeCertificateInfo( Asn1Sequence seq) { if (seq.Count < 6 || seq.Count > 9) { throw new ArgumentException("Bad sequence size: " + seq.Count); } int start; if (seq[0] is DerInteger) // in version 1 certs version is DEFAULT v1(0) { this.version = DerInteger.GetInstance(seq[0]); start = 1; } else { this.version = new DerInteger(0); start = 0; } this.holder = Holder.GetInstance(seq[start]); this.issuer = AttCertIssuer.GetInstance(seq[start + 1]); this.signature = AlgorithmIdentifier.GetInstance(seq[start + 2]); this.serialNumber = DerInteger.GetInstance(seq[start + 3]); this.attrCertValidityPeriod = AttCertValidityPeriod.GetInstance(seq[start + 4]); this.attributes = Asn1Sequence.GetInstance(seq[start + 5]); for (int i = start + 6; i < seq.Count; i++) { Asn1Encodable obj = (Asn1Encodable)seq[i]; if (obj is DerBitString) { this.issuerUniqueID = DerBitString.GetInstance(seq[i]); } else if (obj is Asn1Sequence || obj is X509Extensions) { this.extensions = X509Extensions.GetInstance(seq[i]); } } }
internal TbsCertificateStructure( Asn1Sequence seq) { int seqStart = 0; this.seq = seq; // // some certficates don't include a version number - we assume v1 // if (seq[0] is DerTaggedObject) { version = DerInteger.GetInstance((Asn1TaggedObject)seq[0], true); } else { seqStart = -1; // field 0 is missing! version = new DerInteger(0); } bool isV1 = false; bool isV2 = false; if (version.Value.Equals(BigInteger.Zero)) { isV1 = true; } else if (version.Value.Equals(BigInteger.One)) { isV2 = true; } else if (!version.Value.Equals(BigInteger.Two)) { throw new ArgumentException("version number not recognised"); } serialNumber = DerInteger.GetInstance(seq[seqStart + 1]); signature = AlgorithmIdentifier.GetInstance(seq[seqStart + 2]); issuer = X509Name.GetInstance(seq[seqStart + 3]); // // before and after dates // Asn1Sequence dates = (Asn1Sequence)seq[seqStart + 4]; startDate = Time.GetInstance(dates[0]); endDate = Time.GetInstance(dates[1]); subject = X509Name.GetInstance(seq[seqStart + 5]); // // public key info. // subjectPublicKeyInfo = SubjectPublicKeyInfo.GetInstance(seq[seqStart + 6]); int extras = seq.Count - (seqStart + 6) - 1; if (extras != 0 && isV1) { throw new ArgumentException("version 1 certificate contains extra data"); } while (extras > 0) { DerTaggedObject extra = (DerTaggedObject)seq[seqStart + 6 + extras]; switch (extra.TagNo) { case 1: { issuerUniqueID = DerBitString.GetInstance(extra, false); break; } case 2: { subjectUniqueID = DerBitString.GetInstance(extra, false); break; } case 3: { if (isV2) { throw new ArgumentException("version 2 certificate cannot contain extensions"); } extensions = X509Extensions.GetInstance(extra); break; } } extras--; } }
public static X509Extensions GetInstance(Asn1TaggedObject obj, bool explicitly) { return(X509Extensions.GetInstance(Asn1Sequence.GetInstance(obj, explicitly))); }