Проверьте и подпишите банку программно
Я новичок в этой теме, поэтому я надеюсь, что я использую правильный словарный запас. Возможно ли получить возможность использования Jarsigner в Java?
Мне нужна возможность делать следующие вещи программно:
проверить, подписан ли jar с определенным закрытым ключом из хранилища ключейесли баночка подтверждена: отписать банкуподписать банку с другим закрытым ключом из официального центра сертификации, который находится в том же или в другом хранилище ключейВ псевдокоде я представляю что-то вроде этого:
JarVerifier verifier = new JarVerifier(/*all needed parameters like the location of the keystore*/);
verifier.verify(jarFile); //returns a value which indicates the result (an Enum or an integer value)
Подписание банки должно работать аналогично:
JarSigner signer = new JarSigner(/*all needed parameters like the location of the keystore, passwords, alias*/);
signer.sign(jarFile);
Я знаю, что это дубликат многих других вопросов, но я не доволен их ответами. Решением этих ответов в большинстве случаев является самописанный класс, модификация класса, найденная в OpenJDK, или намек на то, что код еще нужно написать, и как это можно сделать. Это неприемлемо для меня, потому что они не поддерживаются (или я должен сам писать и поддерживать классы), я ничего не знаю об их корректности (особенно если мне нужно написать код сам) и проблемах с лицензией.
Чего я не понимаю, так это того, что Oracle, похоже, не предлагает простого решения, тем более что это такая критическая тема, где ошибка может привести к небезопасной системе.