Цифровая подпись модификации

Перевод Цифровая подпись модификации

Версия(и) Minecraft
1.10+
Источник
http://mcforge.readthedocs.io/en/latest/concepts/jarsigning/
Ознакомление
Java позволяет разработчикам подписывать свои jar файлы цифровой подписью. Важно отметить, что такая цифровая подпись не является мерой безопасности, а скорее как ваша подпись в документах.
Создание ключа
Как мы помним, для создания модификации нужен пакет для Java разработчиков, или же просто JDK. В составе этого пакета есть утилита для создания уникальный ключей для подписывания, Keystore. Чтобы создать свой уникальный ключ нужно перейти в папку *jdk*/bin, где *jdk* это путь установки JDK. Потом зажав Shift нажимаем вне файлов папки ПКМ и выбираем "Открыть окно команд", далее вводим следующую команду: keytool -genkey -alias signFiles -keystore examplestore.jks и следуем указаниям. Нужно будет указать свою фамилию и имя, название компании (название модификации сгодится), своё проживание, а также указать пароль для доступа к ключам.
Подписание
После этого ключ будет сгенерирован и его нужно почитать, для этого в том же окне командной строки введите команду: keytool -list -alias signFiles -keystore examplestore.jks . Вы увидите ключ, теперь где нибуть скопируйте его и замените все буквы в нижний регистр и удалите двоеточия. Теперь в главном классе модификации в поле после аннотации @mod добавьте такое значение: certificateFingerprint = "ваш ключ в нижнем регистре без двоеточий". Теперь ваша модификация может работать с подписью, но модификация подписывается в Jar файле, а для его подписания нужно добавить задачу Gradle. Откройте build.gradle и в методе buildscript добавьте следующий код:
Gradle (Groovy):
task signJar(type: SignJar, dependsOn: reobfJar) {

        inputFile = jar.archivePath
        outputFile = jar.archivePath
        
    }

    build.dependsOn signJar
Теперь при сборке вашей модификации будет автоматически добавлена цифровая подпись. Но чтобы Gradle мог сравнивать подписи нужно добавить в файл gradle.properties такие значения:
  • keyStore - Это значение сообщает Gradle, где искать сгенерированное хранилище ключей.
  • alias - Псевдоним, который был определен выше, требуется для того, чтобы Грейдл подписал банку.
  • storePass - Пароль, который был определен путем создания хранилища ключей, необходим, чтобы Gradle мог получить доступ к файлу.
  • keyPass- Пароль ключа, который был определен путем создания хранилища ключей, необходим для того, чтобы Gradle получил доступ к нему. Этот пароль может быть таким же, как storePass, но может быть другим.
Использование
Для использования в классе мода используйте событие FMLFingerprintViolationEvent для действий с ключами:
  • event.isDirectory() - Возвращает true, когда мода работает в среде разработки.
  • event.getSource() - Возвращает файл с некорректным ключём.
  • event.getExpectedFingerprint() - Возвращает открытый ключ.
  • event.getFingerprints() - Возвращает все открытые ключи.
Автор
LeyxorCheysen
Просмотры
1,653
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя LeyxorCheysen

Сверху