Нет, с Base64InputStream
все в порядке.Если вы сомневаетесь, вы должны подозревать, что ваш собственный код неверен, а не все остальные.
Неправильно то, что вы предоставляете данные Base64InputStream, заканчивающиеся на "----- ENDСЕРТИФИКАТ ----- " после заполнителя.
Вы должны передавать только бит между " ----- НАЧАТЬ СЕРТИФИКАТ ---- "и" ----- КОНЕЦ СЕРТИФИКАТА ----- ".
Похоже, вы начали думать об этом уже здесь:
int startIndex = 0;
String cert = text.substring(startIndex,text.length());
...но этот код ничего не сделает - когда startIndex
равен 0, substring
собирается вернуть всю строку ...
Лично я бы подумал сначала о преобразовании Base64 с использованием класса Base64
для преобразования части base64 строки (вам все еще нужно получить подстроку) в byte[]
, а затем создайте вокруг нее ByteArrayInputStream
.