Fungsi Ekstensi

Format sertifikat X.509 versi 3 mengidentifikasi beberapa ekstensi yang dapat ditambahkan ke sertifikat untuk memberikan informasi yang ditingkatkan tentang penggunaan kunci, kebijakan dan batasan sertifikat, formulir nama alternatif, dan banyak lagi.

CertEnroll.dll mengimplementasikan antarmuka berikut untuk mengelola ekstensi sertifikat:

Masing-masing bagian berikut membahas fungsi yang diekspor oleh Xenroll.dll untuk mengelola ekstensi sertifikat. Setiap bagian juga membahas cara menggunakan CertEnroll.dll untuk mengganti fungsi atau menunjukkan bahwa tidak ada pemetaan antara dua pustaka:

AddCertTypeToRequestWStr

Fungsi AddCertTypeToRequestWStr di Xenroll.dll menambahkan templat sertifikat, berdasarkan nama, ke permintaan.

Menggunakan CertEnroll.dll, metode yang disukai untuk memasukkan templat ke dalam permintaan sertifikat adalah menggunakan metode InitializeFromTemplateName pada objek permintaan PKCS#10 atau [*PKCS) atau metode InitializeFromInnerRequestTemplateName pada permintaan CMC.

Jika templat tertentu tidak tersedia pada klien tetapi diharapkan dipahami oleh otoritas sertifikasi (CA), Anda dapat menggunakan antarmuka IX509ExtensionTemplateName untuk menambahkan templat versi 1 atau Anda dapat menggunakan antarmuka IX509ExtensionTemplate untuk menambahkan templat versi 2 ke permintaan sertifikat. Misalnya, untuk menambahkan templat versi 1, lakukan tindakan berikut:

  1. Buat objek IX509Extensions .
  2. Buat objek IX509ExtensionTemplateName dan panggil metode InitializeEncode , yang menentukan nama templat.
  3. Tambahkan ekstensi yang dibuat ke koleksi IX509Extensions dengan memanggil metode Tambahkan .
  4. Buat objek IX509AttributeExtensions dan panggil metode InitializeEncode , yang menentukan koleksi IX509Extensions pada input.
  5. Ambil objek pengumpulan ICryptAttributes dengan memanggil properti CryptAttributes pada objek permintaan IX509CertificateRequestPkcs10 atau IX509CertificateRequestCmc yang ada.

AddCertTypeToRequestWStrEx

Fungsi AddCertTypeToRequestWStrEx di Xenroll.dll menambahkan templat sertifikat ke permintaan berdasarkan nama, pengidentifikasi objek, dan versi.

Untuk informasi tentang cara menggunakan CertEnroll.dll untuk menggabungkan informasi templat dalam permintaan, lihat AddCertTypeToRequestWStr.

AddExtensionsToRequest

Fungsi AddExtensionsToRequest di Xenroll.dll menambahkan kumpulan ekstensi ke permintaan.

Dalam CertEnroll.dll, ekstensi ditambahkan ke koleksi atribut CMC atau permintaan PKCS #10. Untuk menambahkan ekstensi, lakukan tindakan berikut:

  1. Buat objek IX509Extensions .
  2. Buat objek IX509Extension dan panggil metode Inisialisasi untuk membuat ekstensi dari pengidentifikasi objek dan nilai ekstensi atau gunakan salah satu antarmuka yang tercantum sebelumnya untuk menentukan salah satu ekstensi yang lebih umum.
  3. Tambahkan setiap ekstensi baru yang dibuat pada langkah sebelumnya ke koleksi IX509Extensions dengan memanggil metode Tambahkan .

addExtensionToRequestWStr

Fungsi addExtensionToRequestWStr di Xenroll.dll menambahkan ekstensi tertentu ke permintaan.

Dalam CertEnroll.dll, ekstensi tertentu harus ditentukan dan ditambahkan ke koleksi ekstensi sebelum koleksi ekstensi ditambahkan ke koleksi atribut CMC atau permintaan PKCS #10. Untuk informasi selengkapnya, lihat diskusi AddExtensionsToRequest di atas.

EnableSMIMECapabilities

Fungsi EnableSMIMECapabilities dalam Xenroll.dll menentukan atau mengambil nilai Boolean yang menunjukkan apakah akan menambahkan ekstensi SMIMECapabilities ke permintaan.

Anda dapat memanggil properti SmimeCapabilities pada objek IX509CertificateRequestPkcs10 untuk secara otomatis menambahkan objek IX509ExtensionSmimeCapabilities ke permintaan sebelum pengodean.

IncludeSubjectKeyID

Fungsi IncludeSubjectKeyID dalam Xenroll.dll menentukan atau mengambil nilai Boolean yang menunjukkan apakah akan menambahkan ekstensi SubjectKeyIdentifier ke permintaan.

Secara default, ekstensi SubjectKeyIdentifier dibuat saat objek permintaan IX509CertificateRequestPkcs10 diinisialisasi. Anda dapat mengambil alih perilaku ini dengan memanggil properti SuppressOids .

Jika Anda memiliki pasangan kunci publik/privat, Anda juga dapat menggunakan antarmuka IX509ExtensionSubjectKeyIdentifier di CertEnroll.dll untuk menambahkan ekstensi SubjectKeyIdentifier ke permintaan sertifikat dengan melakukan tindakan berikut:

  1. Buat objek IX509Extensions .
  2. Buat objek IX509ExtensionSubjectKeyIdentifier dan panggil metode InitializeEncode , menentukan string yang berisi pengidentifikasi. Biasanya, ini adalah hash SHA-1 20 byte dari kunci publik yang terkandung dalam sertifikat penandatanganan CA.
  3. Tambahkan ekstensi yang dibuat ke koleksi IX509Extensions dengan memanggil metode Tambahkan .
  4. Buat objek IX509AttributeExtensions dan panggil metode InitializeEncode , yang menentukan koleksi IX509Extensions pada input.
  5. Ambil objek pengumpulan ICryptAttributes dengan memanggil properti CryptAttributes pada objek permintaan IX509CertificateRequestPkcs10 atau IX509CertificateRequestCmc yang ada.

resetEkstensi

Fungsi resetExtensions di Xenroll.dll menghapus koleksi ekstensi dari permintaan.

Untuk menghapus ekstensi dari permintaan berdasarkan nomor indeks menggunakan CertEnroll.dll, panggil metode Hapus pada koleksi IX509Extensions . Untuk menghapus semua atribut dari permintaan, panggil metode Clear .

Memetakan Xenroll.dll ke CertEnroll.dll

ICryptAttributes

IX509Extension

IX509Ekstensi