Cara: Membuat pasangan kunci publik-privat

Untuk menandatangani rakitan dengan nama yang kuat, Anda harus memiliki pasangan kunci publik/privat. Pasangan kunci kriptografi publik dan privat ini digunakan selama kompilasi untuk membuat rakitan bernama kuat. Anda dapat membuat pasangan kunci menggunakan alat Nama Kuat (Sn.exe). File pasangan kunci biasanya memiliki ekstensi .snk .

Nota

Pada .NET (.NET Core dan .NET 5 dan yang lebih baru), nama yang kuat tidak memiliki validasi runtime. Penandatanganan nama kuat terutama relevan untuk .NET Framework dan .NET Standard 2.0 dengan skenario interoperabilitas .NET Framework. Jika Anda tidak menargetkan .NET Framework, Anda biasanya tidak perlu memberi nama yang kuat pada assembly Anda kecuali organisasi atau konsumen Anda memerlukannya.

Nota

Di Visual Studio, halaman properti proyek C# dan Visual Basic menyertakan tab Signing yang memungkinkan Anda memilih file kunci yang ada atau menghasilkan file kunci baru tanpa menggunakan Sn.exe. Di Visual C++, Anda dapat menentukan lokasi file kunci yang ada di halaman properti Tingkat Lanjut di bagian Linker di bagian Properti Konfigurasi dari jendela Halaman Properti . Penggunaan atribut AssemblyKeyFileAttribute untuk mengidentifikasi pasangan file kunci dibuat usang dimulai dengan Visual Studio 2005.

Membuat pasangan kunci

Nota

Sn.exe tidak disertakan dalam SDK .NET pada sistem operasi apa pun. Ini hanya tersedia di Windows, di mana Anda mendapatkannya dengan menginstal Visual Studio atau SDK Windows.

Untuk membuat pasangan kunci, pada prompt perintah, ketik perintah berikut:

sn –k<nama file>

Dalam perintah ini, nama file adalah nama file output yang berisi pasangan kunci.

Contoh berikut membuat pasangan kunci yang disebut sgKey.snk.

sn -k sgKey.snk

Jika Anda berniat untuk menunda menandatangani sebuah rakitan dan Anda mengontrol seluruh pasangan kunci (yang tidak mungkin berada di luar skenario pengujian), Anda dapat menggunakan perintah berikut untuk menghasilkan sebuah pasangan kunci dan kemudian mengambil kunci publiknya ke dalam file terpisah. Pertama, buat pasangan kunci:

sn -k keypair.snk

Selanjutnya, ekstrak kunci publik dari pasangan kunci dan salin ke file terpisah:

sn -p keypair.snk public.snk

Setelah membuat pasangan kunci, Anda harus meletakkan file di mana alat penandatanganan nama yang kuat dapat menemukannya.

Saat menandatangani rakitan dengan nama yang kuat, Assembly Linker (Al.exe) mencari file kunci relatif terhadap direktori saat ini dan ke direktori output. Saat menggunakan kompilator baris perintah, Anda cukup menyalin kunci ke direktori saat ini yang berisi modul kode Anda.

Jika Anda menggunakan versi Visual Studio sebelumnya yang tidak memiliki Signing di properti proyek, lokasi file kunci yang direkomendasikan adalah direktori proyek dengan atribut file yang ditentukan sebagai berikut:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Baca juga