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"); } } }
/** * returns a vector with 0 or more objects of all the capabilities * matching the passed in capability OID. If the OID passed is null the * entire set is returned. */ public ArrayList getCapabilities( DERObjectIdentifier capability) { IEnumerator e = capabilities.getObjects(); ArrayList list = new ArrayList(); if (capability == null) { while (e.MoveNext()) { SMIMECapability cap = SMIMECapability.getInstance(e.Current); list.Add(cap); } } else { while (e.MoveNext()) { SMIMECapability cap = SMIMECapability.getInstance(e.Current); if (capability.Equals(cap.getCapabilityID())) { list.Add(cap); } } } return(list); }
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 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(); }
/// <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 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 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 ElGamalParameter( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); p = (DERInteger)e.Current; e.MoveNext(); g = (DERInteger)e.Current; }
public RSAPublicKeyStructure( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); modulus = ((DERInteger)e.Current).getPositiveValue(); e.MoveNext(); publicExponent = ((DERInteger)e.Current).getPositiveValue(); }
public DigestInfo( ASN1Sequence obj) { IEnumerator e = obj.getObjects(); e.MoveNext(); algId = AlgorithmIdentifier.getInstance(e.Current); e.MoveNext(); digest = ((ASN1OctetString)e.Current).getOctets(); }
public SubjectPublicKeyInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); this.algId = AlgorithmIdentifier.getInstance(e.Current); e.MoveNext(); this.keyData = (DERBitString)e.Current; }
public EncryptedPrivateKeyInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); algId = new AlgorithmIdentifier((ASN1Sequence)e.Current); e.MoveNext(); data = (ASN1OctetString)e.Current; }
public KeySpecificInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); algorithm = (DERObjectIdentifier)e.Current; e.MoveNext(); counter = (ASN1OctetString)e.Current; }
public override int GetHashCode() { ASN1Sequence seq = (ASN1Sequence)this.toASN1Object(); IEnumerator e = seq.getObjects(); int hashCode = 0; while (e.MoveNext()) { hashCode ^= e.Current.GetHashCode(); } return(hashCode); }
public ContentInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); contentType = (DERObjectIdentifier)e.Current; if (e.MoveNext()) { content = ((DERTaggedObject)e.Current).getObject(); } }
public ExtendedKeyUsage( ASN1Sequence seq) { this.seq = seq; IEnumerator e = seq.getObjects(); while (e.MoveNext()) { object o = e.Current; this.usageTable.Add(o, o); } }
public AuthorityInformationAccess( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); if (e.MoveNext()) { DERSequence vec = (DERSequence)e.Current; if (vec.size() != 2) { throw new ArgumentException("wrong number of elements in inner sequence"); } accessMethod = (DERObjectIdentifier)vec.getObjectAt(0); accessLocation = (GeneralName)vec.getObjectAt(1); } }
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; } } }
/// <summary> /// Return a list of certificates. /// </summary> /// <returns>X509Certificate array or null if no certificates found.</returns> public X509Certificate[] getCerts() { ArrayList list = new ArrayList(); ASN1Sequence s = resp.getCerts(); if (s != null) { IEnumerator e = s.getObjects(); while (e.MoveNext()) { list.Add(e.Current); } return((X509Certificate[])list.ToArray(Type.GetType("org.bouncycastle.x509.X509Certificate"))); } return(null); }
public PBKDF2Params(ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); octStr = (ASN1OctetString)e.Current; e.MoveNext(); iterationCount = (DERInteger)e.Current; if (e.MoveNext()) { keyLength = (DERInteger)e.Current; } else { keyLength = null; } }
public DHParameter( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); p = (DERInteger)e.Current; e.MoveNext(); g = (DERInteger)e.Current; if (e.MoveNext()) { l = (DERInteger)e.Current; } else { l = null; } }
public NameConstraints( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); while (e.MoveNext()) { ASN1TaggedObject o = (ASN1TaggedObject)e.Current; switch ((int)o.getTagNo()) { case 0: permitted = ASN1Sequence.getInstance(o, false); break; case 1: excluded = ASN1Sequence.getInstance(o, false); break; } } }
public PBES2Parameters( ASN1Sequence obj) { IEnumerator e = obj.getObjects(); e.MoveNext(); ASN1Sequence funcSeq = (ASN1Sequence)e.Current; if (funcSeq.getObjectAt(0).Equals(PKCSObjectIdentifiers.id_PBKDF2)) { func = new KeyDerivationFunc(PKCSObjectIdentifiers.id_PBKDF2, funcSeq.getObjectAt(1)); } else { func = new KeyDerivationFunc(funcSeq); } e.MoveNext(); scheme = new EncryptionScheme((ASN1Sequence)e.Current); }
/** * Constructor from ASN1Sequence * * the principal will be a list of constructed sets, each containing an (OID, String) pair. */ public X509Name( ASN1Sequence seq) { this.seq = seq; IEnumerator e = seq.getObjects(); while (e.MoveNext()) { ASN1Set set = (ASN1Set)e.Current; for (int i = 0; i < set.size(); i++) { ASN1Sequence s = (ASN1Sequence)set.getObjectAt(i); ordering.Add(s.getObjectAt(0)); values.Add(((DERString)s.getObjectAt(1)).getString()); added.Add(i != 0); } } }
/** * Constructor from ASN1Sequence. * * the extensions are a list of constructed sequences, either with (OID, OctetString) or (OID, Boolean, OctetString) */ public X509Extensions( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); while (e.MoveNext()) { ASN1Sequence s = (ASN1Sequence)e.Current; if (s.size() == 3) { extensions.Add(s.getObjectAt(0), new X509Extension((DERBoolean)s.getObjectAt(1), (ASN1OctetString)s.getObjectAt(2))); } else { extensions.Add(s.getObjectAt(0), new X509Extension(false, (ASN1OctetString)s.getObjectAt(1))); } ordering.Add(s.getObjectAt(0)); } }
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 OtherInfo( ASN1Sequence seq) { IEnumerator e = seq.getObjects(); e.MoveNext(); keyInfo = new KeySpecificInfo((ASN1Sequence)e.Current); while (e.MoveNext()) { DERTaggedObject o = (DERTaggedObject)e.Current; if (o.getTagNo() == 0) { partyAInfo = (ASN1OctetString)o.getObject(); } else if ((int)o.getTagNo() == 2) { suppPubInfo = (ASN1OctetString)o.getObject(); } } }