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; temel yönetim, imza oluşturma ve imza doğrulaması için seçenekler sağlar.

Uyarı

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

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

Tanımlayıcı Ad aracı Visual Studio ile birlikte 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.

Not

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 satırına şunu yazın:

Sözdizimi

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

Parametreler

Seçenek Açıklama
-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 imzası için kullanılacak varsayılan şifreleme hizmeti sağlayıcısı (CSP) ayarlar. Bu ayar tüm bilgisayara uygulanır. Bir CSP adı belirtmezseniz, Sn.exe geçerli ayarı temizler.
-d container Belirtilen anahtar kapsayıcısını tanımlayıcı ad CSP'sinden siler.
-D assembly1 assembly2 İki derlemenin yalnızca imza farkı olduğunu doğrular. Bu çoğunlukla, 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özdizimini ve seçenekleri görüntüler.
-i infile container Belirtilen anahtar kapsayıcısında dosyasından anahtar çiftini yükler. Anahtar kapsayıcısı, tanımlayıcı ad CSP'sinde bulunur.
-k [keysize] outfile Belirtilen boyutta yeni RSACryptoServiceProvider bir anahtar oluşturur ve belirtilen dosyaya yazar. Hem ortak hem de özel anahtar dosyaya yazılır.

Bir anahtar boyutu belirtmezseniz, makinenizde Microsoft gelişmiş şifreleme sağlayıcısı yüklü ise varsayılan olarak 1,024-bit bir anahtar oluşturulur, yüklü değilse 512-bit anahtar oluşturulur.

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

y ne n öğelerinden hiçbirini belirtmezseniz, bu seçenek geçerli ayarı görüntüler.
-o infile [outfile] Ortak anahtarı dosyasından ayıklar ve .csv bir dosyada depolar. Ortak anahtarın her baytı virgülle ayrılır. Bu biçim, kaynak kodunda başlatılmış diziler olarak anahtarlara ilişkin sabit kodlama başvuruları için yararlıdır. Bir outfile belirtmezseniz, bu seçenek çıkışı Pano'ya yerleştirir. Not: Bu seçenek girişin yalnızca 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ı, anahtar çiftinden infile içinde 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 (Al.exe) kullanarak derlemeyi geciktirmek için kullanılabilir. Derleme gecikmeli imzalanmış olduğunda, yalnızca ortak anahtar derleme zamanında ayarlanır ve özel anahtarı bulunduğunda, daha sonra eklenecek bir imza 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 uygulatılıp uygulatılmayacağı belirtir. y belirtirseniz, tam güven derlemeleri için tanımlayıcı 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. Bir tanımlayıcı ad eşleştirmesi için kendi denetiminizi gerçekleştirmeniz gerekir.

Belirtilmezse y ve 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 mod kullanılacağını belirtir; başarı iletilerinin görüntülenmesini engeller.
-R[a] assembly infile Daha önce imzalanan veya gecikmeli imzalanan derlemeyi , infile içindeki anahtar çiftiyle yeniden imzalar.

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

-Rca kullanılırsa, karmalar derlemedeki tüm dosyalar için yeniden hesaplanır.
-Rh assembly Derlemedeki tüm dosyaların karma değerlerini yeniden hesaplar.
-t[p] infile Infile içinde depolanan ortak anahtarın belirtecini görüntüler. Infile içeriğinin daha önce -p kullanılarak 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şlevini kullanarak belirteci hesaplar. Alandan kazanmak için, ortak dil çalışma zamanı, tanımlayıcı bir ada sahip derlemeye bağımlılık kaydederken ortak anahtar belirteçlerini başka bir derlemenin başvurusunun parçası olarak bildirimde depolar. -tp seçeneği, belirtecin yanı sıra ortak anahtarı da görüntüler. AssemblySignatureKeyAttribute Öznitelik derlemeye uygulandıysa, belirteç kimlik anahtarı içindir ve karma algoritmasının adı ile kimlik anahtarı görüntülenir.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları vermek 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şlevini kullanarak belirteci hesaplar. Alandan kazanmak için, çalışma zamanı, tanımlayıcı bir ada sahip derlemeye bağımlılık kaydederken ortak anahtar belirteçlerini başka bir derlemenin başvurusunun parçası olarak bildirimde depolar. -Tp seçeneği, belirtecin yanı sıra ortak anahtarı da görüntüler. AssemblySignatureKeyAttribute Öznitelik derlemeye uygulandıysa, belirteç kimlik anahtarı içindir ve karma algoritmasının adı ile kimlik anahtarı görüntülenir.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları vermek 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çindeki anahtar çiftiyle 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ğrulamayı atlama için belirtilen derlemeyi kaydetmek üzere kullanabileceğiniz bir kayıt girdileri (.reg) dosyası oluşturur. -Vr seçeneği için geçerli olan derleme adlandırma kuralları –Vk için de geçerlidir. Kullanıcı listesi ve dosya seçenekleri hakkında bilgi için –Vr seçeneğine bakın.
-Vl Bu bilgisayardaki tanımlayıcı ad doğrulamasının geçerli ayarlarını listeler.
-Vr assembly [userlist] [infile] Doğrulama atlama için derlemeyi kaydeder. İsteğe bağlı olarak, doğrulama atlamanın geçerli olacağı kullanıcı adlarının virgülle ayrılmış listesini belirtebilirsiniz. Dosya belirtirseniz doğrulama etkin kalır, ancak doğrulama işlemlerinde infile içindeki ortak anahtar 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ğrulama atlama listesine bir derleme eklemek güvenlik açığı oluşturur. Kötü amaçlı bir derleme, kimliğini gizlemek için doğrulama atlama listesine eklenmiş derlemenin tam olarak belirtilmiş derleme adını (derleme adı, sürüm, kültür ve ortak anahtar belirteci) kullanabilir. Bu, kötü amaçlı derlemenin de doğrulamayı atlamasına izin verir.
-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 Doğrulama atlama girişlerinin tümünü kaldırır.
-? Araç için komut sözdizimini ve seçenekleri görüntüler.

Not

Tüm Sn.exe seçenekler 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 imzalanmış derlemelerde kullanışlıdır. Bu senaryoda, derleme zamanında yalnızca ortak anahtar ayarlanmıştır, imzalama ise daha sonra, özel anahtar tanındığında yapılır.

Not

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ıyla oluşturulduğunu AT_SIGNATURE varsayar. Algoritma ile AT_KEYEXCHANGE oluşturulan ortak/özel anahtar çiftleri 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, içindeki anahtarını keyPair.snk kapsayıcıda MyContainer CSP tanımlayıcı adıyla 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 bkz.