Megosztás a következőn keresztül:


Sn.exe (Erős név eszköz)

Az Erős név eszköz (Sn.exe) segít erős névvel rendelkező szerelvények aláírásában. Sn.exe lehetőséget biztosít a kulcskezelésre, az aláírás-létrehozásra és az aláírás-ellenőrzésre.

Figyelmeztetés

Ne hagyatkozz erős nevekre a biztonság érdekében. Csak egyedi identitást biztosítanak.

Az erős elnevezéssel és az erősnevű szerelvényekkel kapcsolatos további információkért lásd: Strong-Named Assemblyies and How to: Sign an Assembly with a Strong Name (Erős névvel rendelkező szerelvény aláírása).

Az Erős név eszköz automatikusan telepítve van a Visual Studióval. Az eszköz elindításához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.

Megjegyzés

64 bites számítógépeken futtassa a Sn.exe 32 bites verzióját a Visual Studio fejlesztői parancssorával és a 64 bites verzióval a Visual Studio x64 Win64 parancssorával.

A parancssorba írja be a következőt:

Szintaxis

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

Paraméterek

Beállítás Leírás
-a identityKeyPairFile signaturePublicKeyFile AssemblySignatureKeyAttribute Adatokat hoz létre az identitáskulcs fájlból az aláírási kulcsba való migrálásához.
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile AssemblySignatureKeyAttribute Adatokat hoz létre az identitáskulcs kulcstárolóból az aláírási kulcsba való migrálásához.
-c [csp] Beállítja az alapértelmezett titkosítási szolgáltatót (CSP) az erős névaláíráshoz. Ez a beállítás a teljes számítógépre vonatkozik. Ha nem ad meg CSP-nevet, Sn.exe törli az aktuális beállítást.
-d container Törli a megadott kulcstárolót az erős CSP névből.
-D assembly1 assembly2 Ellenőrzi, hogy két szerelvény csak aláírással tér el egymástól. Ezt gyakran használják ellenőrzésként, miután egy szerelvényt egy másik kulcspárral újra aláírtak.
-e assembly outfile Kinyeri a nyilvános kulcsot a szerelvényből , és outfile-ban tárolja.
-h Megjeleníti az eszköz parancsszintaxisát és beállításait.
-i infile container Telepíti a kulcspárt az infile-ból a megadott kulcstárolóban. A kulcstároló az erős CSP névben található.
-k [keysize] outfile Létrehoz egy új RSACryptoServiceProvider kulcsot a megadott méretből, és beírja a megadott fájlba. A rendszer mind a nyilvános, mind a titkos kulcsot a fájlba írja.

Ha nem ad meg kulcsméretet, a rendszer alapértelmezés szerint 1024 bites kulcsot hoz létre, ha telepítve van a Microsoft továbbfejlesztett titkosítási szolgáltatója; ellenkező esetben 512 bites kulcs jön létre.

A kulcsméretezési paraméter 384 és 16 384 bit közötti kulcshosszt támogat 8 bites lépésekben, ha telepítve van a Microsoft továbbfejlesztett titkosítási szolgáltatója. 384 bittől 512 bitig tartó kulcshosszt támogat 8 bites lépésekben, ha telepítve van a Microsoft alapszintű titkosítási szolgáltatója.
-m [y or n] Meghatározza, hogy a kulcstárolók számítógép-specifikusak vagy felhasználóspecifikusak-e. Ha y értéket ad meg, a kulcstárolók számítógépspecifikusak. Ha n értéket ad meg, a kulcstárolók felhasználóspecifikusak.

Ha sem y, sem n nincs megadva, ez a beállítás megjeleníti az aktuális beállítást.
-o infile [outfile] Kinyeri a nyilvános kulcsot a fájlból , és egy .csv fájlban tárolja. A nyilvános kulcs minden bájtját vessző választja el egymástól. Ez a formátum a kulcsokra mutató hivatkozások forráskódban inicializált tömbökként való kemény kódolásához hasznos. Ha nem ad meg outfile-t, ez a beállítás a kimenetet a vágólapra helyezi. Megjegyzés: Ez a beállítás nem ellenőrzi, hogy a bemenet csak nyilvános kulcs-e. Ha a infile kulcs egy titkos kulccsal rendelkező kulcspárt tartalmaz, a titkos kulcs is ki lesz nyerve.
-p infile outfile [hashalg] Kinyeri a nyilvános kulcsot az infile kulcspárjából, és outfile-ban tárolja, opcionálisan a hashalg által megadott RSA-algoritmus használatával. Ezzel a nyilvános kulccsal késleltetheti a szerelvény aláírását a Assembly Linker (Al.exe)/delaysign+ és /keyfile beállításaival. Ha egy szerelvény késéssel van aláírva, a rendszer csak a nyilvános kulcsot állítja be a fordítási időpontban, és a titkos kulcs ismertségével a fájlban helyet foglal le az aláírás későbbi hozzáadásához.
-pc container outfile [hashalg] Kinyeri a nyilvános kulcsot a kulcspárból a tárolóban , és outfile-ban tárolja. Ha a hashalg lehetőséget használja, a nyilvános kulcs kinyeréséhez az RSA-algoritmust használja.
-Pb [y or n] Meghatározza, hogy az erős név megkerülésére vonatkozó szabályzat kényszerítve van-e. Ha y értéket ad meg, a teljes megbízhatóságú szerelvények erős nevei nem lesznek érvényesítve a teljes megbízhatósági AppDomainrendszerbe való betöltésekor. Ha n értéket ad meg, a rendszer ellenőrzi az erős neveket a helyesség szempontjából, egy adott erős név esetében azonban nem. A StrongNameIdentityPermission nincs hatással a teljes megbízhatósági szerelvényekre. Az erős névegyeztetés ellenőrzéséhez saját ellenőrzést kell végeznie.

Ha nincs y megadva sem, n ez a beállítás megjeleníti az aktuális beállítást. A mező alapértelmezett értéke: y. Megjegyzés: 64 bites számítógépeken ezt a paramétert a Sn.exe 32 bites és 64 bites példányaiban is meg kell adnia.
-q[uiet] Csendes üzemmódot ad meg; letiltja a sikeres üzenetek megjelenítését.
-R[a] assembly infile Írja alá újra a korábban aláírt vagy késleltetett szerelvényt az infile kulcspárjával.

A -Ra használata esetén a rendszer újrafordította a kivonatokat a szerelvényben lévő összes fájlhoz.
-Rc[a] assembly container Egy korábban aláírt vagy késleltetéssel aláírt szerelvény újbóli aláírása a tároló kulcspárjával.

Az -Rca használata esetén a rendszer újrafordította a kivonatokat a szerelvényben lévő összes fájlhoz.
-Rh assembly Újrakomponált kivonatok a szerelvény összes fájljára vonatkozóan.
-t[p] infile Megjeleníti az infile-ban tárolt nyilvános kulcs jogkivonatát. A fájl tartalmának a -p használatával korábban létrehozott nyilvános kulcsnak kell lennie egy kulcspárfájlból. Ne használja a -t[p] lehetőséget a jogkivonat közvetlen kinyeréséhez egy kulcspárfájlból.

Sn.exe a jogkivonatot a nyilvános kulcs kivonatfüggvényével számítja ki. A helytakarékosság érdekében a közös nyelvi futtatókörnyezet a nyilvános kulcstokeneket egy másik szerelvényre való hivatkozás részeként tárolja a jegyzékben, amikor egy erős nevű szerelvényhez való függőséget rögzít. A -tp beállítás a jogkivonat mellett a nyilvános kulcsot is megjeleníti. Ha az AssemblySignatureKeyAttribute attribútumot alkalmazták a szerelvényre, a token az identitáskulcshoz tartozik, és megjelenik a kivonatolási algoritmus és az identitáskulcs neve.

Vegye figyelembe, hogy ez a beállítás nem ellenőrzi a szerelvény aláírását, és nem használható megbízhatósági döntések meghozatalára. Ez a beállítás csak a nyers nyilvánoskulcs-jogkivonat-adatokat jeleníti meg.
-T[p] assembly Megjeleníti a szerelvényhez tartozó nyilvános kulcs jogkivonatát. A szerelvénynek egy szerelvényjegyzéket tartalmazó fájl nevének kell lennie.

Sn.exe a jogkivonatot a nyilvános kulcs kivonatfüggvényével számítja ki. A helytakarékosság érdekében a futtatókörnyezet egy másik szerelvényre való hivatkozás részeként tárolja a nyilvános kulcs jogkivonatait a jegyzékben, amikor egy erős nevű szerelvény függőségét rögzíti. A -Tp beállítás a jogkivonat mellett a nyilvános kulcsot is megjeleníti. Ha az AssemblySignatureKeyAttribute attribútumot alkalmazták a szerelvényre, a token az identitáskulcshoz tartozik, és megjelenik a kivonatolási algoritmus és az identitáskulcs neve.

Vegye figyelembe, hogy ez a beállítás nem ellenőrzi a szerelvény aláírását, és nem használható megbízhatósági döntések meghozatalára. Ez a beállítás csak a nyers nyilvánoskulcs-jogkivonat-adatokat jeleníti meg.
-TS assembly infile Tesztelje az aláírt vagy részben aláírt szerelvény aláírását a kulcspárnal az infile-ban.
-TSc assembly container Tesztelje az aláírt vagy részben aláírt szerelvényt a kulcspárral a kulcstároló tárolójában.
-v assembly Ellenőrzi az erős nevet a szerelvényben, ahol a szerelvény egy szerelvényjegyzéket tartalmazó fájl neve.
-vf assembly Ellenőrzi az erős nevet a szerelvényben. A -v beállítástól eltérően a -vf akkor is kényszeríti az ellenőrzést, ha le van tiltva a -Vr beállítással.
-Vk regfile.reg assembly [userlist] [infile] Létrehoz egy regisztrációs bejegyzéseket (.reg) tartalmazó fájlt, a használatával regisztrálhatja a megadott szerelvényt az ellenőrzés kihagyásához. A -Vr beállításra vonatkozó összeszerelési elnevezési szabályok a -Vk-ra is érvényesek. A felhasználói listáról és a fájlbeállításokról további információt a –Vr beállításban talál.
-Vl A számítógépen az erős név ellenőrzésének aktuális beállításait sorolja fel.
-Vr assembly [userlist] [infile] Regisztrálja a szerelvényt az ellenőrzés kihagyására. Igény szerint vesszővel tagolt listát is megadhat azon felhasználónevekről, amelyeket az ellenőrzés kihagyásának alkalmaznia kell. Ha az infile értéket adja meg, az ellenőrzés engedélyezve marad, de az infile nyilvános kulcsát használja az ellenőrzési műveletekhez. A szerelvényt *, strongname formátumban adhatja meg a megadott erős névvel rendelkező összes szerelvény regisztrálásához. A strongname mezőben adja meg a nyilvános kulcs tokenizált formáját képviselő hexadecimális számjegyek sztringét. A nyilvános kulcs jogkivonatának megjelenítéséhez tekintse meg a -t és a -T beállításokat. Figyelem: Ezt a lehetőséget csak fejlesztés közben használhatja. Ha hozzáad egy szerelvényt a kihagyott ellenőrző listához, biztonsági rés jön létre. A rosszindulatú szerelvény használhatja a szerelvény teljes szerelvénynevét (szerelvénynév, verzió, kultúra és nyilvános kulcs jogkivonata) a kihagyás-ellenőrzési listához hozzáadva, hogy meghamisíthassa az identitását. Ez lehetővé tenné, hogy a rosszindulatú szerelvény kihagyja az ellenőrzést is.
-Vu assembly Törölje a szerelvény regisztrációjának törlését az ellenőrzés kihagyására. A -Vr-ra vonatkozó szerelvényelnevezési szabályok a -Vu-ra is vonatkoznak.
-Vx Eltávolítja az összes ellenőrző-kihagyó bejegyzést.
-? Megjeleníti az eszköz parancsszintaxisát és beállításait.

Megjegyzés

Minden Sn.exe beállítás megkülönbözteti a kis- és nagybetűt, és pontosan úgy kell begépelni, ahogyan azt az eszköz felismerte.

Megjegyzések

Az -R és az –Rc beállítás a késleltetett aláírású szerelvényeknél hasznos. Ebben a forgatókönyvben csak a nyilvános kulcs lett beállítva a fordításkor, és az aláírás később történik, amikor a titkos kulcs ismert.

Megjegyzés

A védett erőforrásokba, például a beállításjegyzékbe írt paraméterekhez (például –Vr) futtassa a SN.exe rendszergazdaként.

Az Erős név eszköz feltételezi, hogy a nyilvános/titkos kulcspárok az AT_SIGNATURE algoritmusazonosítóval jönnek létre. Az algoritmussal AT_KEYEXCHANGE létrehozott nyilvános/titkos kulcspárok hibát okoznak.

Példák

A következő parancs létrehoz egy új, véletlenszerű kulcspárt, és tárolja a következőben keyPair.snk: .

sn -k keyPair.snk

Az alábbi parancs a kulcsot a tárolóban keyPair.snkMyContainer tárolja az erős CSP névben.

sn -i keyPair.snk MyContainer

A következő parancs kinyeri a nyilvános kulcsot a fájlból keyPair.snk , és a fájlban publicKey.snktárolja.

sn -p keyPair.snk publicKey.snk

A következő parancs megjeleníti a nyilvános kulcsot és a benne található nyilvános kulcs jogkivonatát publicKey.snk.

sn -tp publicKey.snk

A következő parancs ellenőrzi a szerelvényt MyAsm.dll.

sn -v MyAsm.dll

Az alábbi parancs törli MyContainer az alapértelmezett CSP-ből.

sn -d MyContainer

Lásd még