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

Tanımlayıcı ad Aracı (Sn.exe), derlemelerin güçlü adlarlaimzalanmanıza 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.

Tanımlayıcı adlandırma ve tanımlayıcı adlı derlemeler hakkında daha fazla bilgi için bkz. Strong -adlandırılmış derlemeler ve nasıl yapılır: bir derlemeyi güçlü bir adla imzalama.

Tanımlayıcı Ad aracı Visual Studio ile birlikte otomatik olarak yüklenir. aracı başlatmak için Visual Studio Geliştirici Komut İstemi veya Visual Studio geliştirici PowerShell'i kullanın.

Not

64 bit bilgisayarlarda, Visual Studio x64 Win64 komut istemi ' ni kullanarak Visual Studio için Geliştirici Komut İstemi ve 64 bit sürümü 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 Kimlik anahtarını bir dosyadan imza anahtarına geçirmek için veri üretir AssemblySignatureKeyAttribute .
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile Kimlik anahtarını bir anahtar kapsayıcısından imza anahtarına geçirmek için veri üretir AssemblySignatureKeyAttribute .
-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 Derlemeden ortak anahtarı ayıklar ve çıkışdosyası 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ındaki INFILE 'dan anahtar çiftini yükleme. 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.

Microsoft Gelişmiş şifreleme sağlayıcısı yüklüyse, KeySize parametresi, 384 bitten 16.384 bite kadar, 8 bitten oluşan 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|n] Anahtar kapsayıcılarının bilgisayara özgü mi yoksa kullanıcıya özgü mü olduğunu belirtir. Ybelirtirseniz, anahtar kapsayıcıları bilgisayara özgüdür. Nbelirtirseniz, anahtar kapsayıcıları kullanıcıya özeldir.

y ne n öğelerinden hiçbirini belirtmezseniz, bu seçenek geçerli ayarı görüntüler.
-o infile [outfile] Indosyadan ortak anahtarı ayıklar ve bir .csv dosyasında 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 çıkışdosyasıbelirtmezseniz, bu seçenek çıktıyı panoya yerleştirir. Note: Bu seçenek, girişin yalnızca bir ortak anahtar olduğunu doğrulamaz. infileÖzel anahtarı olan bir anahtar çifti içeriyorsa, özel anahtar de ayıklanır.
-p infile outfile [hashalg] Ortak anahtarı InFile içindeki anahtar çiftinden ayıklar ve isteğe bağlı olarak HashAlgtarafından belirtilen RSA algoritmasını kullanarak bu dosyayı çıkışdosyasıiçinde depolar. Bu ortak anahtar, derleme bağlayıcının /delaysign + ve /keyfile seçeneklerini kullanarak bir derlemeyi gecikmeli imzalamak için kullanılabilir (Al.exe). 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] Kapsayıcıda anahtar çiftinden ortak anahtarı ayıklar ve çıkışdosyasıiçinde depolar. HashAlg seçeneğini KULLANıRSANıZ, RSA algoritması ortak anahtarı ayıklamak için kullanılır.
-Pb [y|n] Tanımlayıcı ad atlama ilkesinin uygulatılıp uygulatılmayacağı belirtir. Ybelirtirseniz, tam güven derlemeleri için tanımlayıcı adlar tam güvene yüklendiğinde doğrulanmaz. Nbelirtirseniz, tanımlayıcı adlar doğruluk için onaylanır, ancak belirli bir tanımlayıcı ad için desteklenmez. StrongNameIdentityPermissionTam güvenle derlemeler üzerinde hiçbir etkiye sahip değildir. Bir tanımlayıcı ad eşleştirmesi için kendi denetiminizi gerçekleştirmeniz gerekir.

yNe de n belirtilmemişse, bu seçenek geçerli ayarı görüntüler. Varsayılan değer: y. Note: 64 bit bilgisayarlarda, bu parametreyi hem 32 bit hem de Sn.exe 64-bit örneklerinde ayarlamanız gerekir.
-q[uiet] Sessiz mod kullanılacağını belirtir; başarı iletilerinin görüntülenmesini engeller.
-R[a] assembly infile Önceden imzalanmış veya gecikmeli imzalanmış bir derlemeyi InFileiçindeki anahtar çifti ile yeniden imzalar.

-Ra kullanılıyorsa, karmalar derlemedeki tüm dosyalar için yeniden hesaplanır.
-Rc[a] assembly container Önceden imzalanmış veya gecikmeli imzalanmış bir derlemeyi kapsayıcıdaanahtar çifti ile yeniden imzalar.

-RCA kullanılıyorsa, 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 InFileiçinde depolanan ortak anahtar belirtecini görüntüler. InFile içeriğinin, daha önce -pkullanan 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ş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, belirtece ek olarak ortak anahtarı görüntüler. AssemblySignatureKeyAttributeÖzniteliği derlemeye uygulanmışsa, belirteç kimlik anahtarına, karma algoritmanın adına ve kimlik anahtarına göre gösterilir.

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, belirtece ek olarak ortak anahtarı görüntüler. AssemblySignatureKeyAttributeÖzniteliği derlemeye uygulanmışsa, belirteç kimlik anahtarına, karma algoritmanın adına ve kimlik anahtarına göre gösterilir.

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ı derlemeyiInFileiçindeki anahtar çiftiyle test edin.
-TSc assembly container Test-imzalanmış veya kısmen imzalı derlemeyi anahtar kapsayıcısı kapsayıcısındaanahtar çiftiyle imzalar.
-v assembly Derlemede tanımlayıcı adı doğrular; buradaderleme , derleme bildirimi içeren bir dosyanın adıdır.
-vf assembly Derlemede tanımlayıcı adı doğrular . - V seçeneğinin aksine- VF , -VR seçeneği kullanılarak devre dışı bırakılmış 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ğine uygulanan derleme adlandırmayla ilgili kurallar, – VK için de geçerlidir. UserList ve InFile seçenekleri hakkında daha fazla 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 bütünleştirilmiş kodu kaydeder. İsteğe bağlı olarak, doğrulama atlamanın geçerli olacağı kullanıcı adlarının virgülle ayrılmış listesini belirtebilirsiniz. InFilebelirtirseniz, doğrulama etkin kalır ancak doğrulama işlemlerinde InFile içindeki ortak anahtar kullanılır. Derlemeyi , belirtilen tanımlayıcı ada sahip tüm derlemeleri kaydetmek için *, StrongName biçiminde belirtebilirsiniz. StrongNameiçin, ortak anahtarın simgeleştirilmiş biçimini temsil eden onaltılık basamakların 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 atlama için kayıtsız derleme. -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 imzalı 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 korunan kaynaklara yazma parametreleri (örneğin, –Vr) için SN.exe olarak çalıştırın.

Tanımlayıcı Ad aracı, algoritma tanımlayıcısıyla ortak/özel anahtar çiftlerinin oluşturulanı varsayıyor AT_SIGNATURE . Algoritmayla oluşturulan ortak/özel anahtar çiftleri AT_KEYEXCHANGE hata üretir.

Örnekler

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

sn -k keyPair.snk  

Aşağıdaki komut, anahtarı kapsayıcıda keyPair.snk csP MyContainer adıyla depolar.

sn -i keyPair.snk MyContainer  

Aşağıdaki komut, ortak anahtarı 'den ayıklar keyPair.snk ve içinde depolar publicKey.snk.

sn -p keyPair.snk publicKey.snk  

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

sn -tp publicKey.snk  

Aşağıdaki komut derlemeyi doğrular MyAsm.dll.

sn -v MyAsm.dll  

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

sn -d MyContainer  

Ayrıca bkz.