private void FindOcsp(Asn1Sequence seq) {
basicResp = null;
bool ret = false;
while (true) {
if ((seq[0] is DerObjectIdentifier)
&& ((DerObjectIdentifier)seq[0]).Id.Equals(OcspObjectIdentifiers.PkixOcspBasic.Id)) {
break;
}
ret = true;
for (int k = 0; k < seq.Count; ++k) {
if (seq[k] is Asn1Sequence) {
seq = (Asn1Sequence)seq[0];
ret = false;
break;
}
if (seq[k] is Asn1TaggedObject) {
Asn1TaggedObject tag = (Asn1TaggedObject)seq[k];
if (tag.GetObject() is Asn1Sequence) {
seq = (Asn1Sequence)tag.GetObject();
ret = false;
break;
}
else
return;
}
}
if (ret)
return;
}
DerOctetString os = (DerOctetString)seq[1];
Asn1InputStream inp = new Asn1InputStream(os.GetOctets());
BasicOcspResponse resp = BasicOcspResponse.GetInstance(inp.ReadObject());
basicResp = new BasicOcspResp(resp);
}