* X509Extension.cs: Extension data may be encapsulated (i.e. ASN.1
data inside the octet string) if it comes from the X509Certificate
parser.
svn path=/trunk/mcs/; revision=55105
+2006-01-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * X509Extension.cs: Extension data may be encapsulated (i.e. ASN.1
+ data inside the octet string) if it comes from the X509Certificate
+ parser.
+
2006-01-04 Sebastien Pouliot <sebastien@ximian.com>
* X509Extension.cs: Added setter for Critical property (fix #77154).
extnOid = ASN1Convert.ToOid (asn1[0]);
extnCritical = ((asn1[1].Tag == 0x01) && (asn1[1].Value[0] == 0xFF));
- extnValue = asn1 [asn1.Count - 1]; // last element
+ // last element is an octet string which may need to be decoded
+ extnValue = asn1 [asn1.Count - 1];
+ if ((extnValue.Tag == 0x04) && (extnValue.Length > 0) && (extnValue.Count == 0)) {
+ try {
+ ASN1 encapsulated = new ASN1 (extnValue.Value);
+ extnValue.Value = null;
+ extnValue.Add (encapsulated);
+ }
+ catch {
+ // data isn't ASN.1
+ }
+ }
Decode ();
}