2014-08-04 3 views
0

В моем проекте у меня были некоторые проблемы с криптографией, которые я исправил using "JCE Unlimited Strength Jurisdiction Policy Files". На локальной машине я просто заменил некоторые JAR в каталоге jre/lib/security. Тем не менее, мне также нужен мой проект для сборки (а точнее, для запуска тестов) на сервере сборки непрерывной интеграции (Teamcity в моем случае, но я думаю, это не очень важно), что означает исправление банок в каталоге JRE каждой сборки агент, который не является хорошим вариантом.Предоставление политики JCE без исправления JRE

Есть ли способ указать эти политики JCE без патча JRE?

+0

Добавление неограниченного файла политики в каждый агент сборки прекрасно. Я бы даже предложил иметь по крайней мере два отдельных JRE/JDK для каждого агента, один в нетронутом состоянии и один с неограниченным криптографическим кодом, и выполнить тесты на обоих - ваше приложение/библиотека должно работать в обоих случаях и должно проверять оба случая. –

ответ

1

Согласно Java Cryptography Architecture (JCA) Reference Guide под How to Make Applications "Exempt" from Cryptographic Restrictions, вы можете связать файл политики с указанием исключений с JAR вашего приложения, но JAR должен затем быть подписан, и даже не в том, что провайдеры крипто по умолчанию Oracle поддерживают это:

(. Примечание: поставщик SunJCE не обеспечивает реализацию класса ExemptionMechanismSpi)

Само собой разумеется, я не проверял этот путь ...;) Это выглядит гораздо сложнее, чем заменить два файла. Я всегда устанавливал файлы политики юрисдикции на всех моих JVM, но я использую Debian Alternatives System, чтобы эти файлы автоматически заменяли файлы, предоставленные JDK. Это делает модернизации намного менее болезненными.

+0

Чтобы использовать механизм освобождения, вам нужно будет сделать «Шаг 3a: подать заявку на одобрение правительства из правительственных ограничений на ограничение». Удачи вам в этом, особенно если вы просто хотите использовать неограниченное крипто в «неограниченной» стране. –

+0

@OlegEstekhin - это приложение на самом деле приложение для Android и отлично работает на реальных устройствах (я думаю, что Dalvik VM имеет другую политику безопасности, а не уверен, почему). Проблема возникла только на JVM на рабочем столе, когда я попытался издеваться над некоторыми частями приложения, чтобы их проверить, используя Robolectic, поэтому я не уверен, что должен получить одобрение правительства, если я только запускаю тестовый код на моем сервере. – karlicoss

Смежные вопросы