Android надувной замок: IOException - PullRequest
8 голосов
/ 03 марта 2011

Я использую keytool от Sun для создания хранилища ключей Bouncy castle и импорта в него сертификата.Keytool создает хранилище ключей в формате Bouncy castle.

Затем я пытаюсь импортировать хранилище ключей Bouncy castle в программу Android.Я могу получить экземпляр хранилища ключей "BKS", но при вызове load на хранилище ключей выбрасывается

"java.io.IOException: Wrong version of key store".

Это код

KeyStore keyStore = KeyStore.getInstance("BKS");
InputStream is = new FileInputStream("/mnt/sdcard/ArcGIS/mystore.bks");
keyStore.load(is, "abcdef".toCharArray());

Я пробовал разные версии Bouncy castleJAR, скачанный с http://www.bouncycastle.org/latest_releases.html

Что я делаю не так?

Спасибо, Ранджит

Ответы [ 3 ]

22 голосов
/ 30 мая 2012

Кажется, что версия BouncyCastle, поставляемая с Android 4.0.3 (версия API 15), завершается неудачно при попытке открыть хранилища ключей, созданные с использованием самой последней библиотеки BouncyCastle.Когда я создал хранилище ключей с помощью bcprov-jdk15on-147.jar, мое примерное приложение для Android завершилось с ошибкой java.io.IOException: Wrong version of key store.

Однако, если хранилище ключей было создано с помощью библиотеки bcprov-jdk16-146.jar, оно могло быть загружено приложением,Мое решение состояло в том, чтобы создать хранилище ключей с этой более старой библиотекой.

Предположительно, это также будет иметь место для более старых версий API;попробуйте старые версии BouncyCastle при создании хранилища ключей.

4 голосов
/ 04 марта 2011

Решено.В команде keytool отсутствовал аргумент «-storetype BKS», поэтому, хотя файл хранилища ключей BKS был сгенерирован, он, вероятно, недействителен.

1 голос
/ 21 сентября 2012

Эта проблема связана с длиной пароля вашего BKS-сертификата, она должна быть не более 7 символов. Это вопрос политики США и экспортного контроля США (не по техническим причинам).

Повторно экспортируйте свой сертификат, используя длину из 7 символов, и он будет работать.

Надеюсь, это поможет

...