Mega Code Archive
Use the AsnEncodedDataCollection class
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Class MainClass
Shared Sub Main()
Dim store As New X509Store("MY", StoreLocation.CurrentUser)
store.Open((OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly))
Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
Dim scollection As X509Certificate2Collection = X509Certificate2UI.SelectFromCollection(fcollection, "Certificate Select", "Select certificates from the following list to get extension information on that certificate", X509SelectionFlag.MultiSelection)
Dim asncoll As New AsnEncodedDataCollection()
Dim i As Integer
For i = 0 To scollection.Count - 1
Console.WriteLine(scollection(i).GetName())
Dim extension As X509Extension
For Each extension In scollection(i).Extensions
Dim asndata As New AsnEncodedData(extension.Oid, extension.RawData)
Console.WriteLine("Extension type: " & extension.Oid.FriendlyName)
Console.WriteLine("Oid value: " & asndata.Oid.Value )
Console.WriteLine("Raw data length: " & asndata.RawData.Length)
Console.WriteLine(asndata.Format(True))
asncoll.Add(asndata)
Next extension
Next i
Console.WriteLine("Number of AsnEncodedData items in the collection: " & asncoll.Count)
store.Close()
End Sub
End Class