I need to read a x509 property not published via the X509Certificate2 class. Therefor I need to read it's OID and decoded the ASN.1 data myself.

Specifically, I need to read "Subject Directory Attributes" > "Country of Citizenship" OID 2.5.29.9 and 1.3.6.1.5.5.7.9.4 respectively. Keep in mind Subject Directory Attributes is a collection and I'm only truly after Citizenship.

Right now i can obtain the ASN.1 data and can run it through 
[this javascript decoder](http://lapo.it/asn1js/#3012301006082B06010505070904310413025553) and see OID (1.3.6.1.5.5.7.9.4) and the value I'm after (US) but I can't figure out how to decode the data in C# and further more target the Citizenship OID. Here is the following code I have so far:

```
var citizenship = (
    from X509Extension ext in x509.Extensions
    where ext.Oid.Value == "2.5.29.9"
    select new AsnEncodedData(ext.Oid, ext.RawData).Format(true)
);

```

And the RawData in hex is "30 12 30 10 06 08 2b 06 01 05 05 07 09 04 31 04 13 02 55 53"

[EDIT] I am looking to read this value within a webpage and serializing to disk doesn't really suite my needs here.