Как добавить алгоритм Bouncycastle для Android - PullRequest
6 голосов
/ 06 апреля 2010

Я пытаюсь написать небольшое приложение, используя алгоритм bouncycastle, из BouncyCastleProvider.java , в котором говорится, что мы должны импортировать и добавить провайдера во время выполнения, используя следующий код

import org.bouncycastle.jce.provider.BouncyCastleProvider; Security.addProvider(new BouncyCastleProvider());

ошибка - импорт org.bouncycastle не может быть разрешен;во время ошибки импорта - BouncyCastleProvider не может быть преобразован в тип;при вызове addProvider

Я, хотя bouncycastle не поставляется с Android 1.6 SDK, поэтому подумал об установке отдельно.как мне это сделать?Если Bouncycastle поставляется вместе с SDK, что я должен сделать, чтобы избежать этих ошибок?Я использую Android 1.6, eclipse-V3.4.0 на winXP.Заранее спасибо

Ответы [ 4 ]

8 голосов
/ 04 мая 2012

Или еще лучше использовать SpongyCastle , поскольку BC, поставляемый с Android, является поврежденным и старым.

5 голосов
/ 06 апреля 2010

Вам не нужно явно добавлять BouncyCastle в качестве провайдера.Как вы говорите, он уже включен в Android.

Вот что я делаю, чтобы получить шифр AES BouncyCastle,

SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithSHA256And256BitAES-CBC-BC");

Если вы посмотрите в BouncyCastleProvider.java васВы увидите ссылку на PBEWithSHA256And256BitAES-CBC-BC вместе с несколькими другими шифрами, предоставленными BouncyCastle.

2 голосов
/ 06 апреля 2010

Я не знаком с этой конкретной библиотекой. Однако, вот общие инструкции о том, как включить библиотеку, поставляемую в виде файла 'jar', в проект Android.

Загрузите файл jar и поместите его где-нибудь на рабочей станции. Возможно, вы захотите поместить в корневой каталог проекта, в котором вы его устанавливаете, или, может быть, в каталог 'lib' в корневом каталоге.

В Eclipse выберите Project-> Properties, затем выберите Java Build Path. Затем нажмите «Добавить внешние файлы JAR», перейдите к месту, куда вы положили файл .jar, выберите его и нажмите «Открыть».

Теперь введите или вставьте некоторый код, который пытается использовать классы в банке. Если вам повезет, в левом поле появится значок лампочки. Нажав на это, вы предложите добавить правильный оператор импорта в начало вашего файла .java.

Есть еще вещи, которые могут пойти не так в данный момент. Библиотека может использовать контент java. * Или javax. *, Не поставляемый Android (она имеет только подмножество этих библиотек). Также он может иметь дополнительные библиотечные зависимости. Существуют и другие причины, по которым .jar может быть несовместим с платформой Android.

Обратите внимание, что он увеличит размер вашего .apk для размещения нового контента.

1 голос
/ 09 декабря 2010

Вам нужно будет скомпилировать библиотеку BC под другим именем, так как она будет конфликтовать со встроенной BC уже в Android - перекомпилировать и ссылаться как BC2 или org.BouncyCastle2.x

...