JarSigner сделано в Java? - PullRequest
       61

JarSigner сделано в Java?

2 голосов
/ 19 августа 2011

Можно ли использовать класс JarSigner для подписания файла JAR в Java?В настоящее время я использую:

String args[] = {"-keystore", keystore, "-storepass", password, jar, keyname};
JarSigner js = new JarSigner();
js.run(args);

, но в случае сбоя js.run void вызовет System.exit (-1), что приведет к сбою всего приложения.Я думал о запуске этого внутри потока, присоединении к нему до его завершения и проверке кода возврата.Просто посмотреть, есть ли более формальный способ сделать это ... Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2013

Если вы подписываете только с помощью алгоритма SHA1 с помощью RSA, существует проект под названием zip-signer .Основной целью этого проекта является Android, но основная библиотека этого проекта, "zipsigner-lib", не зависит от системы Android, поэтому она работает и на ПК.Вы можете взглянуть на пример кода для ПК с именем zipsigner-cmdline .

Если вам нужны алгоритмы, отличные от SHA1withRSA, вам, вероятно, придется адаптировать исходные коды из GNU ClassPathпроект, который не простая задача.

0 голосов
/ 05 марта 2012

Полагаю, вы используете Sun / Oracle JarSigner, включенные в инструменты JDK. У вас есть два варианта:

  • Повторное использование путем копирования / вставки большинства методов run, чтобы пропустить предложение System.exit in catch из OpenJDK-источника , например

  • Используйте JarSigner из проекта GNU ClassPath , который start метод не вызывает System.exit, но выдает исключения.

...