Автор: Евгений Афанасьев 
С какой целью требуется цепочка?
цепочка требуется с целью проверки - т.е. вызова verify(chain)
по самой цепочке вопрос - в методе verify(chain) chain это именно вся цепочка - корневой, промежуточный, подписанта?
или только подписанта?
(мне в чате pro.jvm сказали, что корневой, промежуточный просто должны лежать в trusted и всё - сами подхватиться должны)
пользователь подгружает в приложение подписанный файл - нужно проверить валидность ЭЦП (в том числе на предмет аккредитованного УЦ, списка отозванных сертификатов)
сейчас я реализовал с помощью установки опций
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
System.setProperty("com.sun.security.enableAIAcaIssuers", "true");
и вызова
CAdESSignature cadesToVerify = new CAdESSignature(signatureContent, fileContent, null);
cadesToVerify.verify(null);
проверяет, но для ЭЦП подписанных ФНС - это очень долгая операция (более 50 секунд), поэтому я решил задействовать метод с цепочкой и списком отозванных сертификатов
cadesToVerify.verify(chain, crlList);
собственно вопросы:
1. как из файла с подписью (прикрепленная или открепленная) получить необходимую для verify() цепочку?
2. как получить список отозванных
и главный момент - на сколько я понимаю проверка будет работать, только если корневой и промежуточные сертификаты загружены в cacests (trusted хранилища)
т.е. ещё вопрос
3. как загрузить в хранилище все аккредитованные УЦ