При строгом именовании сборки: какой ключ выбрать пару ключей или открытый ключ?

При строгом вводе сборки в .net я могу создать пару ключей (частную) следующим образом:

sn -k keypair.snk

И извлекаем из него публичный ключ вот так:

sn -p keypair.snk public.snk

Но как только я перейду в собственность проекта, на вкладке «Подписание» выберите ключ «Подписать»,

какой ключ мне выбрать? Пара ключей или открытый ключ?

При каких обстоятельствах в моей организации мне понадобится открытый ключ?

Огромное спасибо,


person Houman    schedule 04.08.2011    source источник


Ответы (2)


Но когда я нахожусь в собственности проекта, на вкладке «Подписывание» выбираю ключ «Подписать». Какой ключ мне выбрать?

Вам нужен исходный файл, содержащий как открытый, так и закрытый ключи (тот, который создается с помощью параметра -k).

При каких обстоятельствах в моей организации мне понадобится открытый ключ?

Цитата из документации:

Этот открытый ключ можно использовать для отсрочки подписания сборки с помощью параметров / delaysign + и / keyfile компоновщика сборок (Al.exe). Когда сборка подписана с задержкой, во время компиляции устанавливается только открытый ключ, а в файле зарезервировано место для подписи, которая будет добавлена ​​позже, когда станет известен закрытый ключ.

Вот еще одна статья в MSDN, объясняющая этот процесс.

person Darin Dimitrov    schedule 04.08.2011

Пара ключей - это то, что вам нужно, потому что пара ключей включает в себя закрытый ключ.

Закрытый ключ используется для генерации криптографического хэша вашей сборки. Затем, когда среда CLR загружает вашу сборку, она использует открытый ключ для проверки содержимого сборки, чтобы убедиться, что она не была изменена.

person agent-j    schedule 04.08.2011