Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средство строгого имени (Sn.exe) помогает подписывать сборки строгими именами. Sn.exe предоставляет параметры управления ключами, создания подписей и проверки подписи.
Предупреждение
Не полагаться на надежные имена для безопасности. Они предоставляют только уникальное удостоверение.
Дополнительные сведения о строгом именовании и сборках с строгими именами см. в разделеStrong-Named Сборки и практическое руководство. Подписывание сборки с помощью строгого имени.
Средство строгого имени автоматически устанавливается в Visual Studio. Чтобы запустить средство, используйте командную строку разработчика Visual Studio или Visual Studio Developer PowerShell.
Замечание
На 64-разрядных компьютерах запустите 32-разрядную версию Sn.exe с помощью командной строки разработчика для Visual Studio и 64-разрядной версии с помощью командной строки Visual Studio x64 Win64.
В командной строке введите следующее:
Синтаксис
sn [-quiet][option [parameter(s)]]
Параметры
| Вариант | Description |
|---|---|
-a identityKeyPairFile signaturePublicKeyFile |
AssemblySignatureKeyAttribute Создает данные для переноса ключа удостоверения в ключ подписи из файла. |
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile |
AssemblySignatureKeyAttribute Создает данные для переноса ключа удостоверения в ключ подписи из контейнера ключей. |
-c [csp] |
Задает поставщик служб шифрования по умолчанию (CSP) для подписывания строгого имени. Этот параметр применяется ко всему компьютеру. Если имя CSP не указано, Sn.exe очищает текущий параметр. |
-d container |
Удаляет указанный контейнер ключей из CSP строгого имени. |
-D assembly1 assembly2 |
Проверяет, что две сборки отличаются только по сигнатуре. Это часто используется в качестве проверки после повторной подписи сборки с другой парой ключей. |
-e assembly outfile |
Извлекает открытый ключ из сборки и сохраняет его в outfile. |
-h |
Отображает синтаксис команды и параметры средства. |
-i infile container |
Устанавливает пару ключей из infile в указанном контейнере ключей. Контейнер ключей находится в строгом имени CSP. |
-k [keysize] outfile |
Создает новый RSACryptoServiceProvider ключ указанного размера и записывает его в указанный файл. Открытый и закрытый ключ записываются в файл. Если размер ключа не указан, по умолчанию создается 1024-разрядный ключ, если у вас установлен расширенный поставщик шифрования Майкрософт; в противном случае создается 512-разрядный ключ. Параметр keyize поддерживает длину ключей от 384 до 16 384 бит приращения 8 бит, если у вас установлен расширенный поставщик шифрования Майкрософт. Он поддерживает длину ключей от 384 до 512 бит приращения 8 бит, если у вас установлен базовый поставщик шифрования Майкрософт. |
-m [y or n] |
Указывает, являются ли контейнеры ключей определенным компьютером или пользователем. Если указать y, контейнеры ключей зависят от компьютера. Если указать n, контейнеры ключей зависят от пользователя. Если ни y, ни n не заданы, этот параметр отображает текущий параметр. |
-o infile [outfile] |
Извлекает открытый ключ из файла infile и сохраняет его в файле .csv. Запятая разделяет каждый байт открытого ключа. Этот формат полезен для жесткого написания ссылок на ключи в качестве инициализированных массивов в исходном коде. Если не указать файл outfile, этот параметр помещает выходные данные в буфер обмена.
Заметка: Этот параметр не проверяет, является ли вход только открытым ключом.
infile Если пара ключей содержит закрытый ключ, закрытый ключ также извлекается. |
-p infile outfile [hashalg] |
Извлекает открытый ключ из пары ключей в файле и сохраняет его в outfile, при необходимости с помощью алгоритма RSA, указанного хэшалогом. Этот открытый ключ можно использовать для отложенной подписи сборки с помощью параметров /delaysign+ и /keyfileкомпоновщика сборок (Al.exe). Когда сборка подписывается с задержкой, в файле будет добавлено только открытый ключ во время компиляции, а пространство зарезервировано в файле для добавления подписи позже, когда известны закрытый ключ. |
-pc container outfile [hashalg] |
Извлекает открытый ключ из пары ключей в контейнере и сохраняет его в outfile. При использовании параметра hashalg алгоритм RSA используется для извлечения открытого ключа. |
-Pb [y or n] |
Указывает, применяется ли политика обхода строгого имени. Если указать y, строгие имена для сборок с полным доверием не проверяются при загрузке в полное доверие AppDomain. Если указать n, строгие имена проверяются для правильности, но не для определенного строгого имени. Это StrongNameIdentityPermission не влияет на сборки полного доверия. Необходимо выполнить собственную проверку соответствия строгого имени. Если этот параметр не y указан, n этот параметр отображает текущий параметр. Значение по умолчанию — y.
Заметка: На 64-разрядных компьютерах этот параметр необходимо задать как в 32-разрядных, так и в 64-разрядных экземплярах Sn.exe. |
-q[uiet] |
Задает тихий режим; подавляет отображение сообщений об успешном выполнении. |
-R[a] assembly infile |
Повторно подписывает ранее подписанную или отложенную сборку с помощью пары ключей в infile. Если используется функция -Ra , хэши повторно компилируются для всех файлов в сборке. |
-Rc[a] assembly container |
Повторно подписывает ранее подписанную или отложенную сборку с помощью пары ключей в контейнере. Если используется функция -Rca , хэши перекомпилируются для всех файлов в сборке. |
-Rh assembly |
Перекомпьютерирует хэши для всех файлов в сборке. |
-t[p] infile |
Отображает маркер для открытого ключа, хранящегося в файле. Содержимое infile должно быть открытым ключом, созданным ранее из файла пары ключей с помощью -p. Не используйте параметр -t[p] для извлечения маркера непосредственно из файла пары ключей. Sn.exe вычисляет маркер с помощью хэш-функции из открытого ключа. Чтобы сэкономить место, среда CLR сохраняет маркеры открытого ключа в манифесте как часть ссылки на другую сборку при записи зависимости к сборке с строгим именем. Параметр -tp отображает открытый ключ в дополнение к маркеру. AssemblySignatureKeyAttribute Если атрибут был применен к сборке, маркер предназначен для ключа удостоверения, а имя хэш-алгоритма и ключ удостоверения отображается. Обратите внимание, что этот параметр не проверяет подпись сборки и не должен использоваться для принятия решений о доверии. Этот параметр отображает только необработанные данные маркера открытого ключа. |
-T[p] assembly |
Отображает маркер открытого ключа для сборки.Сборка должна быть именем файла, содержащего манифест сборки. Sn.exe вычисляет маркер с помощью хэш-функции из открытого ключа. Чтобы сэкономить место, среда выполнения сохраняет маркеры открытого ключа в манифесте как часть ссылки на другую сборку при записи зависимости к сборке с строгим именем. Параметр -Tp отображает открытый ключ в дополнение к токену. AssemblySignatureKeyAttribute Если атрибут был применен к сборке, маркер предназначен для ключа удостоверения, а имя хэш-алгоритма и ключ удостоверения отображается. Обратите внимание, что этот параметр не проверяет подпись сборки и не должен использоваться для принятия решений о доверии. Этот параметр отображает только необработанные данные маркера открытого ключа. |
-TS assembly infile |
Тестирование подписывает подписанную или частично подписанную сборку с помощью пары ключей в infile. |
-TSc assembly container |
Тестирует подписанную или частично подписанную сборку с помощью пары ключей в контейнере контейнера ключей. |
-v assembly |
Проверяет строгое имя в сборке, где сборка — это имя файла, содержащего манифест сборки. |
-vf assembly |
Проверяет строгое имя в сборке. В отличие от параметра -v , функция -vf выполняет проверку, даже если она отключена с помощью параметра -Vr . |
-Vk regfile.reg assembly [userlist] [infile] |
Создает файл записей регистрации (.reg), который можно использовать для регистрации указанной сборки для пропуска проверки. Правила именования сборок, которые применяются к параметру -Vr , применяются к -Vk . Сведения о параметрах списка пользователей и infile см. в параметре -Vr . |
-Vl |
Перечисляет текущие параметры проверки строгого имени на этом компьютере. |
-Vr assembly [userlist] [infile] |
Регистрирует сборку для пропуска проверки. При необходимости можно указать разделенный запятыми список имен пользователей, к к нему следует применить проверку пропуска. Если указать infile, проверка остается включенной, но открытый ключ в файле используется в операциях проверки. Вы можете указать сборку в форме *, строгое имя, чтобы зарегистрировать все сборки с указанным строгим именем. Для строгого имени укажите строку шестнадцатеричных цифр, представляющую маркеризованную форму открытого ключа. См. параметры -t и -T для отображения маркера открытого ключа. Осторожность: Используйте этот параметр только во время разработки. Добавление сборки в список пропустить проверку подлинности создает уязвимость безопасности. Вредоносная сборка может использовать полное имя сборки (имя сборки, версия, язык и региональные параметры и открытый ключ) сборки, добавленной в список пропустить проверку подлинности, чтобы подделать его удостоверение. Это позволит вредоносной сборке также пропустить проверку подлинности. |
-Vu assembly |
Отменяет регистрацию сборки для пропуска проверки. Те же правила именования сборок, которые применяются к -Vr , применяются к -Vu. |
-Vx |
Удаляет все записи, пропущенные с проверкой. |
-? |
Отображает синтаксис команды и параметры средства. |
Замечание
Все параметры Sn.exe чувствительны к регистру и должны вводиться точно так же, как показано для распознавания средством.
Замечания
Параметры -R и -Rc полезны для сборок, подписанных с задержкой. В этом сценарии только открытый ключ был задан во время компиляции и подписывание выполняется позже, когда известны закрытый ключ.
Замечание
Для параметров (например, -Vr), которые записываются в защищенные ресурсы, такие как реестр, запустите SN.exe от имени администратора.
Средство строгого имени предполагает, что пары открытых и закрытых ключей создаются с идентификатором алгоритма AT_SIGNATURE . Пары открытых и закрытых ключей, созданные с помощью алгоритма AT_KEYEXCHANGE , создают ошибку.
Примеры
Следующая команда создает новую, случайную пару ключей и сохраняет ее в keyPair.snk.
sn -k keyPair.snk
Следующая команда сохраняет ключ в keyPair.snk контейнере MyContainer в строгом имени CSP.
sn -i keyPair.snk MyContainer
Следующая команда извлекает открытый ключ из keyPair.snk и сохраняет его в publicKey.snk.
sn -p keyPair.snk publicKey.snk
Следующая команда отображает открытый ключ и маркер для открытого ключа, содержащегося в publicKey.snk.
sn -tp publicKey.snk
Следующая команда проверяет сборку MyAsm.dll.
sn -v MyAsm.dll
Следующая команда удаляется MyContainer из CSP по умолчанию.
sn -d MyContainer