Шрифт
Sn.exe (средство строгих имен)
Play

Sn.exe (средство строгих имен)

Программа строгих имен (Sn.exe) позволяет подписывать сборки строгими именами. Программа Sn.exe предусматривает параметры для управления ключами, создания подписи и ее проверки.

Строгие имена не являются средством обеспечения безопасности. Они служат только для однозначной идентификации.

Дополнительные сведения о строгом именовании и сборках со строгими именами см. в разделах Сборки со строгими именами и Практическое руководство. Подписание сборки строгим именем.

Программа строгих имен автоматически устанавливается вместе с Visual Studio. Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio.

На 64-разрядных компьютерах можно запустить 32-разрядную версию программы Sn.exe через командную строку разработчика для Visual Studio и 64-разрядную версию через командную строку Visual Studio x64 Win64.

В командной строке введите следующее.

Синтаксис

Параметры

Параметр Описание -a identityKeyPairFile signaturePublicKeyFile Создает данные AssemblySignatureKeyAttribute для переноса из файла ключа удостоверения в ключ подписи. -ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile Создает данные AssemblySignatureKeyAttribute для переноса из контейнера ключей ключа удостоверения в ключ подписи. -c [csp] Задается поставщик служб шифрования (CSP), используемый по умолчанию для подписывания строгим именем. Этот параметр применяется к компьютеру в целом. Если имя поставщика служб шифрования не задано, программа Sn.exe удалит текущее значение. -d container Удаляет указанный контейнер ключей из поставщика служб шифрования со строгими именами. -D assembly1 assembly2 Проверяет, что две сборки отличаются только подписью. Данный подход часто используется как средство проверки после того, как сборка была повторно подписана с помощью другой пары ключей. -e assembly outfile Извлекает открытый ключ из сборки assembly и записывает его в файл outfile. -h Отображает синтаксис команд и параметров программы. -i infile container Устанавливает в указанный контейнер ключей пару ключей из файла infile. Контейнер ключей располагается в поставщике служб шифрования со строгими именами. -k [keysize] outfile Создает новый ключ RSACryptoServiceProvider указанного размера и записывает его в указанный файл. В файл записываются и открытый, и закрытый ключи.

Если размер ключа не задан, по умолчанию создается 1024-разрядный ключ при условии, что установлен усовершенствованный поставщик служб шифрования (Microsoft); в противном случае создается 512-разрядный ключ.

Программа Sn.exe вычисляет токен с помощью функции хэширования открытого ключа. В целях экономии места среда CLR сохраняет токены открытого ключа в манифесте как часть ссылки на другую сборку при записи зависимости от сборки со строгим именем. При указании параметра -tp наряду с токеном отображается открытый ключ. Если атрибут AssemblySignatureKeyAttribute был применен к сборке, токен предназначается для ключа удостоверения, и отображаются имя алгоритма хэширования и ключ удостоверения.

Программа Sn.exe вычисляет токен с помощью функции хэширования открытого ключа. В целях экономии места среда выполнения сохраняет токены открытого ключа в манифесте как часть ссылки на другую сборку при записи зависимости от сборки со строгим именем. При указании параметра -Tp наряду с токеном отображается открытый ключ. Если атрибут AssemblySignatureKeyAttribute был применен к сборке, токен предназначается для ключа удостоверения, и отображаются имя алгоритма хэширования и ключ удостоверения.

Все параметры программы Sn.exe зависят от регистра и должны вводиться в точном соответствии с инструкциями выше, чтобы программа их правильно распознала.

Примечания

Параметры -R и –Rc можно использовать для сборок с отложенной подписью. При этом во время компиляции задается только открытый ключ, а подпись выполняется позднее, когда становится известен закрытый ключ.

Для параметров (например, -Vr) , которые осуществляют запись в защищенные ресурсы, такие как реестр, программу SN.exe следует запускать от имени администратора.

Средство строгих имен поддерживает пары открытого и закрытого ключей, созданные с помощью идентификатора алгоритма AT_SIGNATURE . При использовании пар открытого и закрытого ключей, созданных с помощью алгоритма AT_KEYEXCHANGE , возникает ошибка.

Примеры

Следующая команда создает новую пару случайных ключей, которая сохраняется в файле keyPair.snk .

Следующая команда сохраняет ключ из файла keyPair.snk в контейнере MyContainer поставщика служб шифрования со строгими именами.

Следующая команда извлекает открытый ключ из файла keyPair.snk и сохраняет его в файле publicKey.snk .

Следующая команда отображает открытый ключ и его токен, которые содержатся в файле publicKey.snk .

Следующая команда проверяет сборку MyAsm.dll .

Следующая команда удаляет MyContainer из поставщика служб шифрования со строгими именами, используемого по умолчанию.

📎📎📎📎📎📎📎📎📎📎