Я полагаю, что теоретически любой код на любом языке может быть подписан, либо как источник, но чаще всего скомпилированный двоичный файл.
Основной случай использования, который приходит мне на ум, - это мобильные приложения (Android для этого экземпляра). Перед публикацией необходимо подписать код. Вы также должны хранить файл хранилища ключей, поэтому, если вы делаете какие-либо обновления для приложения и хотите его загрузить, вы подписываете его с тем же ключом. Это связано с тем, что Android проверяет некоторые вещи при обновлении приложения, главным из которых является то, что подписание кода одинаково для старого и нового, которое до тех пор, пока файл хранилища ключей и его пароль хранятся достаточно секретно, доказывает, что он пришел из тот же источник. Если кто-то каким-то образом модифицировал код, проверка подписи не удалась.
В двух словах код подписи позволяет конечному пользователю/машине узнать, откуда пришел код. А в случае модернизации сложно/невозможно изменить код, а другим загрузить его.
Яблоко сходит с кодом подписи для iOS, и я не полностью понимаю все подробности, но вам нужно получить сертификаты (да более 1) от Apple и подписать их. Если вы хотите разместить приложение на тестирующем устройстве, вам понадобится еще один сертификат для подписывания и установки его на устройстве, иначе вы должны получить его в App Store (при условии одобрения Apple), где они, вероятно, подписывают его с некоторыми закрытый ключ для устройств iOS, чтобы узнать, что Apple одобрила его.
Thanks @Russ (+1) - можете ли вы придумать какие-либо не мобильные (и реальные) приложения для подписи кода? Я чувствую, что подписание кодов предшествует современному увлечению мобильных приложений на милю. – IAmYourFaja