X509KeyUsageExtension クラス

定義

X.509 証明書に含まれるキーの使用法を定義します。 このクラスは継承できません。

public ref class X509KeyUsageExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509KeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509KeyUsageExtension = class
    inherit X509Extension
Public NotInheritable Class X509KeyUsageExtension
Inherits X509Extension
継承
X509KeyUsageExtension

次のコード例は、ユーザーの個人証明書ストアを開き、ストア内の各証明書に関する情報を表示する方法を示しています。 この例では、 X509KeyUsageExtension クラスを使用して情報を表示します。

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

public class CertSelect
{
    public static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            for (int i = 0; i < collection.Count; i++)
            {
                foreach (X509Extension extension in collection[i].Extensions)
                {
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")");

                    if (extension.Oid.FriendlyName == "Key Usage")
                    {
                        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
                        Console.WriteLine(ext.KeyUsages);
                    }

                    if (extension.Oid.FriendlyName == "Basic Constraints")
                    {
                        X509BasicConstraintsExtension ext = (X509BasicConstraintsExtension)extension;
                        Console.WriteLine(ext.CertificateAuthority);
                        Console.WriteLine(ext.HasPathLengthConstraint);
                        Console.WriteLine(ext.PathLengthConstraint);
                    }

                    if (extension.Oid.FriendlyName == "Subject Key Identifier")
                    {
                        X509SubjectKeyIdentifierExtension ext = (X509SubjectKeyIdentifierExtension)extension;
                        Console.WriteLine(ext.SubjectKeyIdentifier);
                    }

                    if (extension.Oid.FriendlyName == "Enhanced Key Usage")
                    {
                        X509EnhancedKeyUsageExtension ext = (X509EnhancedKeyUsageExtension)extension;
                        OidCollection oids = ext.EnhancedKeyUsages;
                        foreach (Oid oid in oids)
                        {
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")");
                        }
                    }
                }
            }
            store.Close();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates



Module CertSelect

    Sub Main()
        Try
            Dim store As New X509Store("MY", StoreLocation.CurrentUser)
            store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

            Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
            For i As Integer = 0 To collection.Count - 1
                Dim extension As X509Extension
                For Each extension In collection(i).Extensions
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")")


                    If extension.Oid.FriendlyName = "Key Usage" Then
                        Dim ext As X509KeyUsageExtension = CType(extension, X509KeyUsageExtension)
                        Console.WriteLine(ext.KeyUsages)
                    End If

                    If extension.Oid.FriendlyName = "Basic Constraints" Then
                        Dim ext As X509BasicConstraintsExtension = CType(extension, X509BasicConstraintsExtension)
                        Console.WriteLine(ext.CertificateAuthority)
                        Console.WriteLine(ext.HasPathLengthConstraint)
                        Console.WriteLine(ext.PathLengthConstraint)
                    End If

                    If extension.Oid.FriendlyName = "Subject Key Identifier" Then
                        Dim ext As X509SubjectKeyIdentifierExtension = CType(extension, X509SubjectKeyIdentifierExtension)
                        Console.WriteLine(ext.SubjectKeyIdentifier)
                    End If

                    If extension.Oid.FriendlyName = "Enhanced Key Usage" Then
                        Dim ext As X509EnhancedKeyUsageExtension = CType(extension, X509EnhancedKeyUsageExtension)
                        Dim oids As OidCollection = ext.EnhancedKeyUsages
                        Dim oid As Oid
                        For Each oid In oids
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")")
                        Next oid
                    End If
                Next extension
            Next i
            store.Close()
        Catch
            Console.WriteLine("Information could not be written out for this certificate.")
        End Try

    End Sub
End Module

注釈

X509KeyUsageExtension クラスは、X509KeyUsageFlags列挙型のフラグを使用して、キーの使用法を定義または決定します。

コンストラクター

名前 説明
X509KeyUsageExtension()

X509KeyUsageExtension クラスの新しいインスタンスを初期化します。

X509KeyUsageExtension(AsnEncodedData, Boolean)

X509KeyUsageExtension オブジェクトと拡張機能が重要かどうかを識別する値を使用して、AsnEncodedData クラスの新しいインスタンスを初期化します。

X509KeyUsageExtension(X509KeyUsageFlags, Boolean)

指定したX509KeyUsageExtension値と拡張機能が重要かどうかを識別する値を使用して、X509KeyUsageFlags クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Critical

拡張機能が重要かどうかを示すブール値を取得します。

(継承元 X509Extension)
KeyUsages

証明書に関連付けられているキー使用法フラグを取得します。

Oid

Oid オブジェクトのAsnEncodedData値を取得または設定します。

(継承元 AsnEncodedData)
RawData

バイト配列で表される抽象構文表記 1 (ASN.1) でエンコードされたデータを取得または設定します。

(継承元 AsnEncodedData)

メソッド

名前 説明
CopyFrom(AsnEncodedData)

X509KeyUsageExtension オブジェクトを使用して、AsnEncodedData クラスの新しいインスタンスを初期化します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Format(Boolean)

抽象構文表記 1 (ASN.1) でエンコードされたデータの書式設定されたバージョンを文字列として返します。

(継承元 AsnEncodedData)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象