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"); } }
public DistributionPointName( ASN1TaggedObject obj) { this.type = obj.getTagNo(); if (type == FULL_NAME) { this.name = GeneralNames.getInstance(obj, false); } else { this.name = ASN1Set.getInstance(obj, false); } }
public SignedData( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); version = (DERInteger)e.Current; e.MoveNext(); digestAlgorithms = ((ASN1Set)e.Current); e.MoveNext(); contentInfo = ContentInfo.getInstance(e.Current); while (e.MoveNext()) { ASN1Object o = (ASN1Object)e.Current; // // an interesting feature of SignedData is that there appear // to be varying implementations... // for the moment we ignore anything which doesn't fit. // if (o is ASN1TaggedObject) { ASN1TaggedObject tagged = (ASN1TaggedObject)o; switch ((int)tagged.getTagNo()) { case 0: certBer = tagged is BERTaggedObject; certificates = ASN1Set.getInstance(tagged, false); break; case 1: crlsBer = tagged is BERTaggedObject; crls = ASN1Set.getInstance(tagged, false); break; default: throw new ArgumentException("unknown tag value " + tagged.getTagNo()); } } else { signerInfos = (ASN1Set)o; } } }
public SignerInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); version = (DERInteger)e.Current; e.MoveNext(); issuerAndSerialNumber = IssuerAndSerialNumber.getInstance(e.Current); e.MoveNext(); digAlgorithm = AlgorithmIdentifier.getInstance(e.Current); e.MoveNext(); object obj = e.Current; if (obj is ASN1TaggedObject) { authenticatedAttributes = ASN1Set.getInstance((ASN1TaggedObject)obj, false); e.MoveNext(); digEncryptionAlgorithm = AlgorithmIdentifier.getInstance(e.Current); } else { authenticatedAttributes = null; digEncryptionAlgorithm = AlgorithmIdentifier.getInstance(obj); } e.MoveNext(); encryptedDigest = DEROctetString.getInstance(e.Current); if (e.MoveNext()) { unauthenticatedAttributes = ASN1Set.getInstance((ASN1TaggedObject)e.Current, false); } else { unauthenticatedAttributes = null; } }
public CertificationRequestInfo( ASN1Sequence seq) { version = (DERInteger)seq.getObjectAt(0); subject = X509Name.getInstance(seq.getObjectAt(1)); subjectPKInfo = SubjectPublicKeyInfo.getInstance(seq.getObjectAt(2)); // // some CertificationRequestInfo objects seem to treat this field // as optional. // if (seq.size() > 3) { DERTaggedObject tagobj = (DERTaggedObject)seq.getObjectAt(3); attributes = ASN1Set.getInstance(tagobj, false); } if ((subject == null) || (version == null) || (subjectPKInfo == null)) { throw new ArgumentException("Not all mandatory fields set in CertificationRequestInfo generator."); } }
public EnvelopedData( ASN1Sequence seq) { int index = 0; version = (DERInteger)seq.getObjectAt(index++); Object tmp = seq.getObjectAt(index++); if (tmp is ASN1TaggedObject) { originatorInfo = OriginatorInfo.getInstance((ASN1TaggedObject)tmp, false); tmp = seq.getObjectAt(index++); } recipientInfos = ASN1Set.getInstance(tmp); encryptedContentInfo = EncryptedContentInfo.getInstance(seq.getObjectAt(index++)); if (seq.size() > index) { unprotectedAttrs = ASN1Set.getInstance((ASN1TaggedObject)seq.getObjectAt(index), false); } }