public AuthorityKeyIdentifier( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); while (e.MoveNext()) { DERTaggedObject o = (DERTaggedObject)e.Current; switch ((int)o.getTagNo()) { case 0: this.keyidentifier = ASN1OctetString.getInstance(o, false); break; case 1: this.certissuer = GeneralNames.getInstance(o, false); break; case 2: this.certserno = DERInteger.getInstance(o, false); break; default: throw new ArgumentException("illegal tag"); } } }
public PrivateKeyInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); BigInteger version = ((DERInteger)e.Current).getValue(); if (version.intValue() != 0) { throw new ArgumentException("wrong version for private key info"); } e.MoveNext(); algId = new AlgorithmIdentifier((ASN1Sequence)e.Current); try { e.MoveNext(); MemoryStream bIn = new MemoryStream(((ASN1OctetString)e.Current).getOctets()); ASN1InputStream aIn = new ASN1InputStream(bIn); privKey = aIn.readObject(); } catch (IOException) { throw new ArgumentException("Error recoverying private key from sequence"); } }
public SingleResponse( ASN1Sequence seq) { this.certID = CertID.getInstance(seq.getObjectAt(0)); this.certStatus = CertStatus.getInstance(seq.getObjectAt(1)); this.thisUpdate = (DERGeneralizedTime)seq.getObjectAt(2); if (seq.size() > 4) { this.nextUpdate = DERGeneralizedTime.getInstance( (ASN1TaggedObject)seq.getObjectAt(3), true); this.singleExtensions = X509Extensions.getInstance( (ASN1TaggedObject)seq.getObjectAt(4), true); } else if (seq.size() > 3) { ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(3); if (o.getTagNo() == 0) { this.nextUpdate = DERGeneralizedTime.getInstance(o, true); } else { this.singleExtensions = X509Extensions.getInstance(o, true); } } }
public TBSCertificateStructure( ASN1Sequence seq) { int seqStart = 0; this.seq = seq; // // some certficates don't include a version number - we assume v1 // if (seq.getObjectAt(0) is DERTaggedObject) { version = DERInteger.getInstance(seq.getObjectAt(0)); } else { seqStart = -1; // field 0 is missing! version = new DERInteger(0); } serialNumber = DERInteger.getInstance(seq.getObjectAt(seqStart + 1)); signature = AlgorithmIdentifier.getInstance(seq.getObjectAt(seqStart + 2)); issuer = X509Name.getInstance(seq.getObjectAt(seqStart + 3)); // // before and after dates // ASN1Sequence dates = (ASN1Sequence)seq.getObjectAt(seqStart + 4); startDate = Time.getInstance(dates.getObjectAt(0)); endDate = Time.getInstance(dates.getObjectAt(1)); subject = X509Name.getInstance(seq.getObjectAt(seqStart + 5)); // // public key info. // subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(seq.getObjectAt(seqStart + 6)); for (int extras = seq.size() - (seqStart + 6) - 1; extras > 0; extras--) { DERTaggedObject extra = (DERTaggedObject)seq.getObjectAt(seqStart + 6 + extras); switch ((int)extra.getTagNo()) { case 1: issuerUniqueId = DERBitString.getInstance(extra, false); break; case 2: subjectUniqueId = DERBitString.getInstance(extra, false); break; case 3: extensions = X509Extensions.getInstance(extra); break; } } }
public CertificationRequest( ASN1Sequence seq) { reqInfo = CertificationRequestInfo.getInstance(seq.getObjectAt(0)); sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); sigBits = (DERBitString)seq.getObjectAt(2); }
public CertBag( ASN1Sequence seq) { this.seq = seq; this.certId = (DERObjectIdentifier)seq.getObjectAt(0); this.certValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject(); }
public PolicyInformation( DERObjectIdentifier policyIdentifier, ASN1Sequence policyQualifiers) { this.policyIdentifier = policyIdentifier; this.policyQualifiers = policyQualifiers; }
public Holder( ASN1Sequence seq) { for (int i = 0; i != seq.size(); i++) { ASN1TaggedObject tObj = (ASN1TaggedObject)seq.getObjectAt(i); switch (tObj.getTagNo()) { case 0: baseCertificateID = IssuerSerial.getInstance(tObj, false); break; case 1: entityName = GeneralNames.getInstance(tObj, false); break; case 2: objectDigestInfo = ObjectDigestInfo.getInstance(tObj, false); break; default: throw new ArgumentException("unknown tag in Holder"); } } }
public AttributeCertificate( ASN1Sequence seq) { this.acinfo = AttributeCertificateInfo.getInstance(seq.getObjectAt(0)); this.signatureAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.signatureValue = DERBitString.getInstance(seq.getObjectAt(2)); }
public OriginatorInfo( ASN1Sequence seq) { switch (seq.size()) { case 0: // empty break; case 1: ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(0); switch ((int)o.getTagNo()) { case 0: certs = ASN1Set.getInstance(o, false); break; case 1: crls = ASN1Set.getInstance(o, false); break; default: throw new ArgumentException("Bad tag in OriginatorInfo: " + o.getTagNo()); } break; case 2: certs = ASN1Set.getInstance((ASN1TaggedObject)seq.getObjectAt(0), false); crls = ASN1Set.getInstance((ASN1TaggedObject)seq.getObjectAt(1), false); break; default: throw new ArgumentException("OriginatorInfo too big"); } }
/** * Creates a new <code>NoticeReference</code> instance. * * @param displayTextType an <code>int</code> value * @param orgName a <code>String</code> value * @param numbers an <code>ASN1EncodableVector</code> value */ public NoticeReference(int displayTextType, string orgName, ASN1Sequence numbers) { organization = new DisplayText(displayTextType, orgName); noticeNumbers = numbers; }
public CertificateList( ASN1Sequence seq) { tbsCertList = TBSCertList.getInstance(seq.getObjectAt(0)); sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); sig = (DERBitString)seq.getObjectAt(2); }
public ResponseData( ASN1Sequence seq) { int index = 0; if (seq.getObjectAt(0) is ASN1TaggedObject) { ASN1TaggedObject o = (ASN1TaggedObject)seq.getObjectAt(0); if (o.getTagNo() == 0) { this.version = DERInteger.getInstance( (ASN1TaggedObject)seq.getObjectAt(0), true); index++; } else { this.version = null; } } else { this.version = null; } this.responderID = ResponderID.getInstance(seq.getObjectAt(index++)); this.producedAt = (DERGeneralizedTime)seq.getObjectAt(index++); this.responses = (ASN1Sequence)seq.getObjectAt(index++); if (seq.size() > index) { this.responseExtensions = X509Extensions.getInstance( (ASN1TaggedObject)seq.getObjectAt(index), true); } }
public RSAPrivateKeyStructure( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); BigInteger version = ((DERInteger)e.Current).getValue(); if (version.intValue() != 0) { throw new ArgumentException("wrong version for RSA private key"); } e.MoveNext(); modulus = ((DERInteger)e.Current).getValue(); e.MoveNext(); publicExponent = ((DERInteger)e.Current).getValue(); e.MoveNext(); privateExponent = ((DERInteger)e.Current).getValue(); e.MoveNext(); prime1 = ((DERInteger)e.Current).getValue(); e.MoveNext(); prime2 = ((DERInteger)e.Current).getValue(); e.MoveNext(); exponent1 = ((DERInteger)e.Current).getValue(); e.MoveNext(); exponent2 = ((DERInteger)e.Current).getValue(); e.MoveNext(); coefficient = ((DERInteger)e.Current).getValue(); }
public CompressedData( ASN1Sequence seq) { this.version = (DERInteger)seq.getObjectAt(0); this.compressionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.encapContentInfo = ContentInfo.getInstance(seq.getObjectAt(2)); }
public KEKIdentifier( ASN1Sequence seq) { keyIdentifier = (ASN1OctetString)seq.getObjectAt(0); switch (seq.size()) { case 1: break; case 2: if (seq.getObjectAt(1) is DERGeneralizedTime) { date = (DERGeneralizedTime)seq.getObjectAt(1); } else { other = OtherKeyAttribute.getInstance(seq.getObjectAt(2)); } break; case 3: date = (DERGeneralizedTime)seq.getObjectAt(1); other = OtherKeyAttribute.getInstance(seq.getObjectAt(2)); break; default: throw new ArgumentException("Invalid KEKIdentifier"); } }
public CrlID( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); while (e.MoveNext()) { ASN1TaggedObject o = (ASN1TaggedObject)e.Current; switch ((int)o.getTagNo()) { case 0: crlUrl = DERIA5String.getInstance(o, true); break; case 1: crlNum = DERInteger.getInstance(o, true); break; case 2: crlTime = DERGeneralizedTime.getInstance(o, true); break; default: throw new ArgumentException( "unknown tag number: " + o.getTagNo()); } } }
/** * Constructs an X509 name * @param seq an ASN1 Sequence */ public X509Name(ASN1Sequence seq) { IEnumerator e = seq.getObjects(); while (e.MoveNext()) { ASN1Set sett = (ASN1Set)e.Current; for (int i = 0; i < sett.size(); i++) { ASN1Sequence s = (ASN1Sequence)sett.getObjectAt(i); String id = (String)DefaultSymbols[s.getObjectAt(0)]; if (id == null) { continue; } ArrayList vs = (ArrayList)values[id]; if (vs == null) { vs = new ArrayList(); values[id] = vs; } vs.Add(((DERString)s.getObjectAt(1)).getString()); } } }
public AttributeCertificateInfo( ASN1Sequence seq) { this.version = DERInteger.getInstance(seq.getObjectAt(0)); this.holder = Holder.getInstance(seq.getObjectAt(1)); this.issuer = AttCertIssuer.getInstance(seq.getObjectAt(2)); this.signature = AlgorithmIdentifier.getInstance(seq.getObjectAt(3)); this.serialNumber = DERInteger.getInstance(seq.getObjectAt(4)); this.attrCertValidityPeriod = AttCertValidityPeriod.getInstance(seq.getObjectAt(5)); this.attributes = ASN1Sequence.getInstance(seq.getObjectAt(6)); for (int i = 7; i < seq.size(); i++) { ASN1Encodable obj = (ASN1Encodable)seq.getObjectAt(i); if (obj is DERBitString) { this.issuerUniqueID = DERBitString.getInstance(seq.getObjectAt(i)); } else if (obj is ASN1Sequence || obj is X509Extensions) { this.extensions = X509Extensions.getInstance(seq.getObjectAt(i)); } } }
/** * Get the "subject" from the TBSCertificate bytes that are passed in * @param enc A TBSCertificate in a byte array * @return a DERObject */ private static ASN1Object GetSubject(byte[] enc) { ASN1InputStream inp = new ASN1InputStream(new MemoryStream(enc)); ASN1Sequence seq = (ASN1Sequence)inp.readObject(); return((ASN1Object)seq.getObjectAt(seq.getObjectAt(0) is DERTaggedObject ? 5 : 4)); }
/// <summary> /// Return a the certificates associated with this request. /// </summary> /// <returns>An array of certs or null is none were present in this request.</returns> public X509Certificate[] getCerts() { if (!this.isSigned()) { return(null); } if (chain == null) { ASN1Sequence s = req.getOptionalSignature().getCerts(); if (s != null) { ArrayList lst = new ArrayList(); IEnumerator e = s.getObjects(); while (e.MoveNext()) { lst.Add(new X509CertificateStructure((ASN1Sequence)e.Current)); } chain = (X509Certificate[])lst.ToArray(Type.GetType("org.bouncycastle.x509.X509Certificate")); } return(chain); } return(null); }
public CertID( ASN1Sequence seq) { hashAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(0)); issuerNameHash = (ASN1OctetString)seq.getObjectAt(1); issuerKeyHash = (ASN1OctetString)seq.getObjectAt(2); serialNumber = (DERInteger)seq.getObjectAt(3); }
public KEKRecipientInfo( ASN1Sequence seq) { version = (DERInteger)seq.getObjectAt(0); kekid = KEKIdentifier.getInstance(seq.getObjectAt(1)); keyEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(2)); encryptedKey = (ASN1OctetString)seq.getObjectAt(3); }
public Signature( AlgorithmIdentifier signatureAlgorithm, DERBitString signature, ASN1Sequence certs) { this.signatureAlgorithm = signatureAlgorithm; this.signature = signature; this.certs = certs; }
public PBEParameter(ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); octStr = (ASN1OctetString)e.Current; e.MoveNext(); iterationCount = (DERInteger)e.Current; }
/** * */ public IetfAttrSyntax(ASN1Sequence seq) { int i = 0; if (seq.getObjectAt(0) is ASN1TaggedObject) { policyAuthority = GeneralNames.getInstance(((ASN1TaggedObject)seq.getObjectAt(0)), false); i++; } else if (seq.size() == 2) { // VOMS fix policyAuthority = GeneralNames.getInstance(seq.getObjectAt(0)); i++; } if (!(seq.getObjectAt(i) is ASN1Sequence)) { throw new ArgumentException("Non-IetfAttrSyntax encoding"); } seq = (ASN1Sequence)seq.getObjectAt(i); for (IEnumerator e = seq.getObjects(); e.MoveNext();) { ASN1Object obj = (ASN1Object)e.Current; int type; if (obj is DERObjectIdentifier) { type = VALUE_OID; } else if (obj is DERUTF8String) { type = VALUE_UTF8; } else if (obj is DEROctetString) { type = VALUE_OCTETS; } else { throw new ArgumentException("Bad value type encoding IetfAttrSyntax"); } if (valueChoice < 0) { valueChoice = type; } if (type != valueChoice) { throw new ArgumentException("Mix of value types in IetfAttrSyntax"); } values.Add(obj); } }
public void addCRLEntry( ASN1Sequence crlEntry) { if (crlentries == null) { crlentries = new ArrayList(); } crlentries.Add(crlEntry); }
public static PolicyInformation getInstance( object obj) { if (obj == null || obj is PolicyInformation) { return((PolicyInformation)obj); } return(new PolicyInformation(ASN1Sequence.getInstance(obj))); }
public PolicyInformation( ASN1Sequence seq) { policyIdentifier = (DERObjectIdentifier)seq.getObjectAt(0); if (seq.size() > 1) { policyQualifiers = (ASN1Sequence)seq.getObjectAt(1); } }
public SafeBag( ASN1Sequence seq) { this.bagId = (DERObjectIdentifier)seq.getObjectAt(0); this.bagValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject(); if (seq.size() == 3) { this.bagAttributes = (ASN1Set)seq.getObjectAt(2); } }
/// <summary> /// This is advanced interface - this is what I would like... /// </summary> /// <param name="asnseq"></param> /// <param name="num"></param> /// <param name="tip"></param> public static void Make(ASN1Sequence asnseq, int num, ASN1Type tip) { asnseq.ComponentTypes[num] = ASN1ComponentTypeInfo.Make(tip); }