X509SubjectKeyIdentifierExtension Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sertifikanın konu anahtarı tanımlayıcısını (SKI) tanımlayan bir dize tanımlar. Bu sınıf devralınamaz.
public ref class X509SubjectKeyIdentifierExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509SubjectKeyIdentifierExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509SubjectKeyIdentifierExtension = class
inherit X509Extension
Public NotInheritable Class X509SubjectKeyIdentifierExtension
Inherits X509Extension
- Devralma
Örnekler
Aşağıdaki kod örneğinde kullanıcının kişisel sertifika deposunun nasıl açılıp depodaki her sertifikayla ilgili bilgilerin nasıl görüntüleneceği gösterilmektedir. Bu örnek, X509SubjectKeyIdentifierExtension bilgileri görüntülemek için sınıfını kullanır.
#using <System.dll>
#using <system.security.dll>
using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
try
{
X509Store^ store = gcnew X509Store( L"MY",StoreLocation::CurrentUser );
store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
X509Certificate2Collection^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
for ( int i = 0; i < collection->Count; i++ )
{
System::Collections::IEnumerator^ myEnum = collection[ i ]->Extensions->GetEnumerator();
while ( myEnum->MoveNext() )
{
X509Extension^ extension = safe_cast<X509Extension^>(myEnum->Current);
Console::WriteLine( L"{0}({1})", extension->Oid->FriendlyName, extension->Oid->Value );
if ( extension->Oid->FriendlyName == L"Key Usage" )
{
X509KeyUsageExtension^ ext = dynamic_cast<X509KeyUsageExtension^>(extension);
Console::WriteLine( ext->KeyUsages );
}
if ( extension->Oid->FriendlyName == L"Basic Constraints" )
{
X509BasicConstraintsExtension^ ext = dynamic_cast<X509BasicConstraintsExtension^>(extension);
Console::WriteLine( ext->CertificateAuthority );
Console::WriteLine( ext->HasPathLengthConstraint );
Console::WriteLine( ext->PathLengthConstraint );
}
if ( extension->Oid->FriendlyName == L"Subject Key Identifier" )
{
X509SubjectKeyIdentifierExtension^ ext = dynamic_cast<X509SubjectKeyIdentifierExtension^>(extension);
Console::WriteLine( ext->SubjectKeyIdentifier );
}
if ( extension->Oid->FriendlyName == L"Enhanced Key Usage" )
{
X509EnhancedKeyUsageExtension^ ext = dynamic_cast<X509EnhancedKeyUsageExtension^>(extension);
OidCollection^ oids = ext->EnhancedKeyUsages;
System::Collections::IEnumerator^ myEnum1 = oids->GetEnumerator();
while ( myEnum1->MoveNext() )
{
Oid^ oid = safe_cast<Oid^>(myEnum1->Current);
Console::WriteLine( L"{0}({1})", oid->FriendlyName, oid->Value );
}
}
}
}
store->Close();
}
catch ( CryptographicException^ )
{
Console::WriteLine( L"Information could not be written out for this certificate." );
}
}
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
Açıklamalar
Sertifikayı tanımlamanın çeşitli yolları vardır: sertifika karması, veren ve seri numarası ve konu anahtarı tanımlayıcısı (SKI). SKI sertifikanın konusu için benzersiz bir tanımlama sağlar ve genellikle XML dijital imzalama ile çalışırken kullanılır.
Oluşturucular
X509SubjectKeyIdentifierExtension() |
X509SubjectKeyIdentifierExtension sınıfının yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(AsnEncodedData, Boolean) |
Kodlanmış verileri ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını tanımlayan bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(Byte[], Boolean) |
Bir bayt dizisi ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını tanımlayan bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(PublicKey, Boolean) |
Bir ortak anahtar ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını belirten bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(PublicKey, X509SubjectKeyIdentifierHashAlgorithm, Boolean) |
Bir ortak anahtar, karma algoritma tanımlayıcısı ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını belirten bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(ReadOnlySpan<Byte>, Boolean) |
Salt okunur bayt aralığı ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını tanımlayan bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
X509SubjectKeyIdentifierExtension(String, Boolean) |
Bir dize ve uzantının X509SubjectKeyIdentifierExtension kritik olup olmadığını tanımlayan bir değer kullanarak sınıfın yeni bir örneğini başlatır. |
Özellikler
Critical |
Uzantının kritik olup olmadığını belirten bir Boole değeri alır. (Devralındığı yer: X509Extension) |
Oid |
Bir AsnEncodedData nesnenin Oid değerini alır veya ayarlar. (Devralındığı yer: AsnEncodedData) |
RawData |
Bir bayt dizisinde temsil edilen Soyut Söz Dizimi Gösterimi Bir (ASN.1) kodlamalı verileri alır veya ayarlar. (Devralındığı yer: AsnEncodedData) |
SubjectKeyIdentifier |
Sertifikanın konu anahtarı tanımlayıcısını (SKI) temsil eden bir dize alır. |
SubjectKeyIdentifierBytes |
İçeriği sertifikanın konu anahtarı tanımlayıcısını (SKI) temsil eden bir değer alır. |
Yöntemler
CopyFrom(AsnEncodedData) |
Kodlanmış verilerden bilgileri kopyalayarak sınıfının yeni bir örneğini X509SubjectKeyIdentifierExtension oluşturur. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Format(Boolean) |
Soyut Söz Dizimi Gösterimi Bir (ASN.1) ile kodlanmış verilerin biçimlendirilmiş bir sürümünü dize olarak döndürür. (Devralındığı yer: AsnEncodedData) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |