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 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 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)); }
/** * 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 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 CertificateList( ASN1Sequence seq) { tbsCertList = TBSCertList.getInstance(seq.getObjectAt(0)); sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); sig = (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 CertificationRequest( ASN1Sequence seq) { reqInfo = CertificationRequestInfo.getInstance(seq.getObjectAt(0)); sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); sigBits = (DERBitString)seq.getObjectAt(2); }
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 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 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 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 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); } }
public SMIMECapability( ASN1Sequence seq) { capabilityID = (DERObjectIdentifier)seq.getObjectAt(0); if (seq.size() > 1) { parameters = (ASN1Object)seq.getObjectAt(1); } }
public PolicyInformation( ASN1Sequence seq) { policyIdentifier = (DERObjectIdentifier)seq.getObjectAt(0); if (seq.size() > 1) { policyQualifiers = (ASN1Sequence)seq.getObjectAt(1); } }
public RevokedInfo( ASN1Sequence seq) { this.revocationTime = (DERGeneralizedTime)seq.getObjectAt(0); if (seq.size() > 1) { this.revocationReason = new CRLReason(DEREnumerated.getInstance( (ASN1TaggedObject)seq.getObjectAt(1), true)); } }
public IssuerSerial( ASN1Sequence seq) { issuer = GeneralNames.getInstance(seq.getObjectAt(0)); serial = (DERInteger)seq.getObjectAt(1); if (seq.size() == 3) { issuerUID = (DERBitString)seq.getObjectAt(2); } }
public OCSPRequest( ASN1Sequence seq) { tbsRequest = TBSRequest.getInstance(seq.getObjectAt(0)); if (seq.size() == 2) { optionalSignature = Signature.getInstance( (ASN1TaggedObject)seq.getObjectAt(1), true); } }
public Request( ASN1Sequence seq) { reqCert = CertID.getInstance(seq.getObjectAt(0)); if (seq.size() == 2) { singleRequestExtensions = X509Extensions.getInstance( (ASN1TaggedObject)seq.getObjectAt(1), true); } }
public EncryptedData( ASN1Sequence seq) { int version = ((DERInteger)seq.getObjectAt(0)).getValue().intValue(); if (version != 0) { throw new ArgumentException("sequence not version 0"); } this.data = (ASN1Sequence)seq.getObjectAt(1); }
public EncryptedContentInfo( ASN1Sequence seq) { contentType = (DERObjectIdentifier)seq.getObjectAt(0); contentEncryptionAlgorithm = AlgorithmIdentifier.getInstance( seq.getObjectAt(1)); if (seq.size() > 2) { encryptedContent = ASN1OctetString.getInstance( (ASN1TaggedObject)seq.getObjectAt(2), false); } }
public Signature( ASN1Sequence seq) { signatureAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(0)); signature = (DERBitString)seq.getObjectAt(1); if (seq.size() == 3) { certs = ASN1Sequence.getInstance( (ASN1TaggedObject)seq.getObjectAt(2), true); } }
public CRLEntry( ASN1Sequence seq) { this.seq = seq; userCertificate = (DERInteger)seq.getObjectAt(0); revocationDate = Time.getInstance(seq.getObjectAt(1)); if (seq.size() == 3) { crlEntryExtensions = X509Extensions.getInstance(seq.getObjectAt(2)); } }
public BasicOCSPResponse( ASN1Sequence seq) { this.tbsResponseData = ResponseData.getInstance(seq.getObjectAt(0)); this.signatureAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.signature = (DERBitString)seq.getObjectAt(2); if (seq.size() > 3) { this.certs = ASN1Sequence.getInstance((ASN1TaggedObject)seq.getObjectAt(3), true); } }
internal PKCS10CertificationRequest(ASN1Sequence seq) { try { this.reqInfo = CertificationRequestInfo.getInstance(seq.getObjectAt(0)); this.sigAlgId = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.sigBits = (DERBitString)seq.getObjectAt(2); } catch (Exception ex) { throw new ArgumentException("Create From ASN1Sequence: " + ex.Message); } }
private BigInteger[] derDecode(byte[] encoding) { MemoryStream bIn = new MemoryStream(encoding); ASN1InputStream dIn = new ASN1InputStream(bIn); ASN1Sequence s = (ASN1Sequence)dIn.readObject(); BigInteger[] sig = new BigInteger[2]; sig[0] = ((DERInteger)s.getObjectAt(0)).getValue(); sig[1] = ((DERInteger)s.getObjectAt(1)).getValue(); return(sig); }
public AlgorithmIdentifier( ASN1Sequence seq) { objectId = (DERObjectIdentifier)seq.getObjectAt(0); if (seq.size() == 2) { parameters = seq.getObjectAt(1); } else { parameters = null; } }
public RC2CBCParameter( ASN1Sequence seq) { if (seq.size() == 1) { version = null; iv = (ASN1OctetString)seq.getObjectAt(0); } else { version = (DERInteger)seq.getObjectAt(0); iv = (ASN1OctetString)seq.getObjectAt(1); } }
private X509Certificate readPKCS7Certificate() { ASN1InputStream dIn = new ASN1InputStream(inStr); ASN1Sequence seq = (ASN1Sequence)dIn.readObject(); if (seq.size() > 1 && seq.getObjectAt(0) is DERObjectIdentifier) { if (seq.getObjectAt(0).Equals(PKCSObjectIdentifiers.signedData)) { sData = new SignedData(ASN1Sequence.getInstance((ASN1TaggedObject)seq.getObjectAt(1), true)); return(new X509Certificate(ASN1Sequence.getInstance(sData.getCertificates().getObjectAt(sDataObjectCount++)))); } } return(new X509Certificate(ASN1Sequence.getInstance(seq))); }