Я работаю с набором сборок с отложенной подписью, которые я могу установить и загрузить из GAC после пропуска проверки (sn -Vr * ...
Поскольку для Delaysigning как процесса требуется только файл открытого ключа
- sn -k keys.snk (как открытый, так и закрытый ключи)
- sn -p keys.snk pkey.snk (только открытый ключ)
- Добавьте pkey.snk в свойства проекта и установите флажок «Только задержка подписи».
- sn -v (отображает сборку с отложенной подписью)
- sn -e (извлечь pkey)
- fc (различий не найдено)
Я обнаружил, что первые 160 байт файла SNK - это PKey ... а остальные 436 байт представляют собой закрытый ключ.
Хотя для целей разработки должно быть достаточно sn-Vr или sn -R keys.snk (новая пара открытого / закрытого ключей для замены одной отложенной подписи), мне любопытно узнать, нужно ли извлекать открытый ключ из сборки и связывать его с вашим собственным закрытым ключом будет работать ...
Это может быть потенциальная лазейка в безопасности (поскольку сборки просматриваются с помощью токенов открытого ключа) ... Неудивительно, что в .Net framework / SDK нет встроенного инструмента, который позволяет это.
Есть ли место, где документируется вся файловая структура (формат файла) SNK? Может ли такой подход вообще работать? Что вы думаете?