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