Aracılığıyla paylaş


Sn.exe (Tanımlayıcı Ad Aracı)

Tanımlayıcı Ad aracı (Sn.exe), derlemeleri tanımlayıcı adlarla imzalamaya yardımcı olur. Sn.exe anahtar yönetimi, imza oluşturma ve imza doğrulama seçenekleri sağlar.

Uyarı

Güvenlik için tanımlayıcı adlara güvenmeyin. Yalnızca benzersiz bir kimlik sağlar.

Güçlü adlandırma ve tanımlayıcı adlandırılmış derlemeler hakkında daha fazla bilgi için bkz. derlemeleriStrong-Named ve Nasıl yapılır: Derlemeyi Tanımlayıcı Adla İmzalayın.

Kesin Ad aracı Visual Studio ile otomatik olarak yüklenir. Aracı başlatmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın.

Uyarı

64 bit bilgisayarlarda Visual Studio için Geliştirici Komut İstemi'ni ve Visual Studio x64 Win64 Komut İstemi'ni kullanarak 64 bit sürümünü kullanarak Sn.exe 32 bit sürümünü çalıştırın.

Komut isteminde aşağıdakileri yazın:

Sözdizimi

sn [-quiet][option [parameter(s)]]

Parametreler

Seçenek Description
-a identityKeyPairFile signaturePublicKeyFile AssemblySignatureKeyAttribute Kimlik anahtarını bir dosyadan imza anahtarına geçirmek için veri oluşturur.
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile AssemblySignatureKeyAttribute Kimlik anahtarını bir anahtar kapsayıcısından imza anahtarına geçirmek için veri oluşturur.
-c [csp] Tanımlayıcı ad imzalama için kullanılacak varsayılan şifreleme hizmeti sağlayıcısını (CSP) ayarlar. Bu ayar tüm bilgisayar için geçerlidir. CSP adı belirtmezseniz Sn.exe geçerli ayarı temizler.
-d container Belirtilen anahtar kapsayıcısını csp tanımlayıcı adından siler.
-D assembly1 assembly2 İki derlemenin yalnızca imzaya göre farklılık gösterdiğini doğrular. Bu genellikle bir derleme farklı bir anahtar çifti ile yeniden imzalandıktan sonra denetim olarak kullanılır.
-e assembly outfile Ortak anahtarı derlemeden ayıklar ve outfile içinde depolar.
-h Araç için komut söz dizimini ve seçeneklerini görüntüler.
-i infile container Belirtilen anahtar kapsayıcısında infile dosyasından anahtar çiftini yükler. Anahtar kapsayıcısı CSP tanımlayıcı adında yer alır.
-k [keysize] outfile Belirtilen boyutta yeni RSACryptoServiceProvider bir anahtar oluşturur ve bunu belirtilen dosyaya yazar. Hem ortak hem de özel anahtar dosyaya yazılır.

Anahtar boyutu belirtmezseniz, Microsoft gelişmiş şifreleme sağlayıcısı yüklüyse varsayılan olarak 1.024 bit anahtar oluşturulur; aksi takdirde 512 bit anahtar oluşturulur.

Keysize parametresi, Microsoft gelişmiş şifreleme sağlayıcısı yüklüyse 8 bitlik artışlarla 384 bit ile 16.384 bit arasında anahtar uzunluklarını destekler. Microsoft temel şifreleme sağlayıcısı yüklüyse 384 bit ile 512 bit arasında anahtar uzunluklarını 8 bitlik artışlarla destekler.
-m [y or n] Anahtar kapsayıcılarının bilgisayara mı yoksa kullanıcıya mı özgü olduğunu belirtir. y belirtirseniz, anahtar kapsayıcıları bilgisayara özgü olur. n belirtirseniz anahtar kapsayıcıları kullanıcıya özgü olur.

y veya n belirtilmezse, bu seçenek geçerli ayarı görüntüler.
-o infile [outfile] Ortak anahtarı infile dosyasından ayıklar ve bir .csv dosyasında depolar. Virgül, ortak anahtarın her baytını ayırır. Bu biçim, anahtarlara başvuruları kaynak kodunda başlatılan diziler olarak sabit kodlamak için kullanışlıdır. Bir outfile belirtmezseniz, bu seçenek çıkışı Pano'ya yerleştirir. Not: Bu seçenek girişin yalnızca bir ortak anahtar olduğunu doğrulamaz. infile özel anahtar içeren bir anahtar çifti içeriyorsa, özel anahtar da ayıklanır.
-p infile outfile [hashalg] Ortak anahtarı infile içindeki anahtar çiftinden ayıklar ve isteğe bağlı olarak hashalg tarafından belirtilen RSA algoritmasını kullanarak outfile içinde depolar. Bu ortak anahtar, Derleme Bağlayıcısı'nın/delaysign+ ve /keyfile seçeneklerini kullanarak bir derlemeyi gecikmeli imzalamak için kullanılabilir (Al.exe). Derleme gecikmeli olarak imzalandığında derleme zamanında yalnızca ortak anahtar ayarlanır ve özel anahtar bilindiğinde imzanın daha sonra eklenmesi için dosyada alan ayrılır.
-pc container outfile [hashalg] Ortak anahtarı kapsayıcıdaki anahtar çiftinden ayıklar ve outfile içinde depolar. Hashalg seçeneğini kullanırsanız, ortak anahtarı ayıklamak için RSA algoritması kullanılır.
-Pb [y or n] Tanımlayıcı ad atlama ilkesinin zorlanıp zorlanmayacağını belirtir. y belirtirseniz, tam güven derlemeleri için kesin adlar tam güven AppDomainiçine yüklendiğinde doğrulanmaz. n belirtirseniz, kesin adlar doğruluk için doğrulanır, ancak belirli bir tanımlayıcı ad için doğrulanmaz. tam StrongNameIdentityPermission güven derlemeleri üzerinde hiçbir etkisi yoktur. Tanımlayıcı ad eşleşmesi için kendi denetiminizi gerçekleştirmeniz gerekir.

Belirtilmezse y veya n belirtilmezse, bu seçenek geçerli ayarı görüntüler. Varsayılan değer: y. Not: 64 bit bilgisayarlarda, bu parametreyi hem 32 bit hem de 64 bit Sn.exeörneklerinde ayarlamanız gerekir.
-q[uiet] Sessiz modu belirtir; başarı iletilerinin görüntülenmesini engeller.
-R[a] assembly infile Daha önce imzalanan veya gecikmeyle imzalanan derlemeyi , infile içindeki anahtar çiftiyle yeniden imzalar.

-Ra kullanılırsa, karmalar derlemedeki tüm dosyalar için yeniden derlenir.
-Rc[a] assembly container Önceden imzalanan veya gecikme imzalı derlemeyi kapsayıcıdaki anahtar çiftiyle yeniden imzalar.

-Rca kullanılırsa, karmalar derlemedeki tüm dosyalar için yeniden derlenir.
-Rh assembly Derlemedeki tüm dosyalar için karmaları yeniden derler.
-t[p] infile Infile içinde depolanan ortak anahtar için belirteci görüntüler. Infile içeriğinin daha önce -p kullanılarak bir anahtar çifti dosyasından oluşturulmuş bir ortak anahtar olması gerekir. Belirteci doğrudan bir anahtar çifti dosyasından ayıklamak için -t[p] seçeneğini kullanmayın.

Sn.exe, ortak anahtardan bir karma işlevi kullanarak belirteci hesaplar. Alandan tasarruf etmek için ortak dil çalışma zamanı, tanımlayıcı ada sahip bir derlemeye bağımlılık kaydettiğinde başka bir derlemeye yapılan başvurunun bir parçası olarak bildirimde ortak anahtar belirteçlerini depolar. -tp seçeneği, belirtecin yanı sıra ortak anahtarı da görüntüler. AssemblySignatureKeyAttribute Öznitelik derlemeye uygulanmışsa, belirteç kimlik anahtarı içindir ve karma algoritmanın adı ve kimlik anahtarı görüntülenir.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları almak için kullanılmaması gerektiğini unutmayın. Bu seçenek yalnızca ham ortak anahtar belirteci verilerini görüntüler.
-T[p] assembly Derleme için ortak anahtar belirtecini görüntüler .Derleme, derleme bildirimi içeren bir dosyanın adı olmalıdır.

Sn.exe, ortak anahtardan bir karma işlevi kullanarak belirteci hesaplar. Alandan tasarruf etmek için çalışma zamanı, tanımlayıcı ada sahip bir derlemeye bağımlılığı kaydettiğinde başka bir derlemeye yapılan başvurunun bir parçası olarak bildirimde ortak anahtar belirteçlerini depolar. -Tp seçeneği, belirtecin yanı sıra ortak anahtarı da görüntüler. AssemblySignatureKeyAttribute Öznitelik derlemeye uygulanmışsa, belirteç kimlik anahtarı içindir ve karma algoritmanın adı ve kimlik anahtarı görüntülenir.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları almak için kullanılmaması gerektiğini unutmayın. Bu seçenek yalnızca ham ortak anahtar belirteci verilerini görüntüler.
-TS assembly infile İmzalı veya kısmen imzalı derlemeyiinfile içinde anahtar çifti ile test imzalar.
-TSc assembly container İmzalı veya kısmen imzalı derlemeyi anahtar kapsayıcısı kapsayıcısında anahtar çifti ile test imzalar.
-v assembly Derlemedeki tanımlayıcı adı doğrular; burada derleme, derleme bildirimi içeren bir dosyanın adıdır.
-vf assembly Derlemedeki tanımlayıcı adı doğrular. -v seçeneğinin aksine-vf, -Vr seçeneği kullanılarak devre dışı bırakılıyor olsa bile doğrulamayı zorlar.
-Vk regfile.reg assembly [userlist] [infile] Doğrulama atlanması için belirtilen derlemeyi kaydetmek için kullanabileceğiniz bir kayıt girdileri (.reg) dosyası oluşturur. -Vr seçeneğine uygulanan derleme adlandırma kuralları -Vk için de geçerlidir. Kullanıcı listesi ve infile seçenekleri hakkında bilgi için -Vr seçeneğine bakın.
-Vl Bu bilgisayarda tanımlayıcı ad doğrulaması için geçerli ayarları listeler.
-Vr assembly [userlist] [infile] Doğrulama atlanması için derlemeyi kaydeder. İsteğe bağlı olarak, atlama doğrulamasının geçerli olması gereken kullanıcı adlarının virgülle ayrılmış bir listesini belirtebilirsiniz. Infile değerini belirtirseniz doğrulama etkin kalır, ancak infile içindeki ortak anahtar doğrulama işlemlerinde kullanılır. Belirtilen tanımlayıcı ada sahip tüm derlemeleri kaydetmek için *, strongname biçiminde derleme belirtebilirsiniz. strongname için, ortak anahtarın belirteçli biçimini temsil eden onaltılık basamak dizesini belirtin. Ortak anahtar belirtecini görüntülemek için -t ve -T seçeneklerine bakın. Dikkat: Bu seçeneği yalnızca geliştirme sırasında kullanın. Doğrulamayı atlama listesine bir derleme eklemek bir güvenlik açığı oluşturur. Kötü amaçlı bir derleme, kimliği sahtesini oluşturmak için atlama doğrulama listesine eklenen derlemenin tam olarak belirtilen derleme adını (derleme adı, sürüm, kültür ve ortak anahtar belirteci) kullanabilir. Bu, kötü amaçlı derlemenin doğrulamayı atlanmasına da olanak sağlar.
-Vu assembly Doğrulama atlanması için derlemenin kaydını kaldırıyor. -Vr için geçerli olan derleme adlandırma kuralları -Vu için de geçerlidir.
-Vx Tüm doğrulama atlama girdilerini kaldırır.
-? Araç için komut söz dizimini ve seçeneklerini görüntüler.

Uyarı

Tüm Sn.exe seçenekleri büyük/küçük harfe duyarlıdır ve araç tarafından tanınması için tam olarak gösterildiği gibi yazılmalıdır.

Açıklamalar

-R ve -Rc seçenekleri, gecikmeli olarak imzalanmış derlemelerde kullanışlıdır. Bu senaryoda, derleme zamanında yalnızca ortak anahtar ayarlanmıştır ve özel anahtar bilindiğinde imzalama daha sonra gerçekleştirilir.

Uyarı

Kayıt defteri gibi korumalı kaynaklara yazan parametreler (örneğin, -Vr) için SN.exe yönetici olarak çalıştırın.

Tanımlayıcı Ad aracı, genel/özel anahtar çiftlerinin algoritma tanımlayıcısı ile oluşturulduğunu AT_SIGNATURE varsayar. Algoritma ile AT_KEYEXCHANGE oluşturulan ortak/özel anahtar çiftleri bir hata oluşturur.

Örnekler

Aşağıdaki komut yeni, rastgele bir anahtar çifti oluşturur ve içinde keyPair.snkdepolar.

sn -k keyPair.snk

Aşağıdaki komut, anahtarı keyPair.snk kapsayıcıda MyContainer CSP tanımlayıcı adında depolar.

sn -i keyPair.snk MyContainer

Aşağıdaki komut ortak anahtarı dosyasından keyPair.snk ayıklar ve içinde publicKey.snkdepolar.

sn -p keyPair.snk publicKey.snk

Aşağıdaki komut, içinde yer alan publicKey.snkortak anahtar için ortak anahtarı ve belirteci görüntüler.

sn -tp publicKey.snk

Aşağıdaki komut derlemesini MyAsm.dlldoğrular.

sn -v MyAsm.dll

Aşağıdaki komut varsayılan CSP'den silinir MyContainer .

sn -d MyContainer

Ayrıca bakınız