Export (0) Print
Expand All

AsnEncodedData.Oid Property

Gets or sets the Oid value for an AsnEncodedData object.

Namespace:  System.Security.Cryptography
Assembly:  System (in System.dll)

public Oid Oid { get; set; }

Property Value

Type: System.Security.Cryptography.Oid
An Oid object.

This property can be used to provide information about the Abstract Syntax Notation One (ASN.1)-encoded data, such as the algorithm used to encrypt the data.

The following code example shows how to use the AsnEncodedData class.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

class AsnEncodedDataSample
	static void Main()
		//The following example demonstrates the usage the AsnEncodedData classes. 
		// Asn encoded data is read from the extensions of an X509 certificate. 
			// Open the certificate store.
			X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
			store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
			X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
			X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
			// Select one or more certificates to display extensions information.
			X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Certificate Select", "Select certificates from the following list to get extension information on that certificate", X509SelectionFlag.MultiSelection);

			// Create a new AsnEncodedDataCollection object.
			AsnEncodedDataCollection asncoll = new AsnEncodedDataCollection();
			for (int i = 0; i < scollection.Count; i++)
				// Display certificate information.
				Console.ForegroundColor = ConsoleColor.Red;
				Console.WriteLine("Certificate name: {0}", scollection[i].GetName());
				// Display extensions information. 
				foreach (X509Extension extension in scollection[i].Extensions)
					// Create an AsnEncodedData object using the extensions information.
					AsnEncodedData asndata = new AsnEncodedData(extension.Oid, extension.RawData);
					Console.ForegroundColor = ConsoleColor.Green;
					Console.WriteLine("Extension type: {0}", extension.Oid.FriendlyName);
					Console.WriteLine("Oid value: {0}",asndata.Oid.Value);
					Console.WriteLine("Raw data length: {0} {1}", asndata.RawData.Length, Environment.NewLine);
					// Add the AsnEncodedData object to the AsnEncodedDataCollection object.
			Console.ForegroundColor = ConsoleColor.Red;
			Console.WriteLine("Number of AsnEncodedData items in the collection: {0} {1}", asncoll.Count, Environment.NewLine);

			//Create an enumerator for moving through the collection.
			AsnEncodedDataEnumerator asne = asncoll.GetEnumerator();
			//You must execute a MoveNext() to get to the first item in the collection.
			// Write out AsnEncodedData in the collection.
			Console.ForegroundColor = ConsoleColor.Blue;
			Console.WriteLine("First AsnEncodedData in the collection: {0}", asne.Current.Format(true));

			Console.ForegroundColor = ConsoleColor.DarkBlue;
			Console.WriteLine("Second AsnEncodedData in the collection: {0}", asne.Current.Format(true));
			//Return index in the collection to the beginning.
		catch (CryptographicException)
			Console.WriteLine("Information could not be written out for this certificate.");

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
© 2015 Microsoft