как добавить алгоритм bouncycastle в android

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

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

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

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

4 ответов


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

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

в Eclipse выберите проект- > Свойства, Затем выберите путь сборки Java. Затем нажмите кнопку Добавить внешний Банки, перейдите туда ,куда вы положили.jar-файл, выберите его и нажмите кнопку Открыть.

теперь введите или вставьте код, который пытается использовать классы в jar. Если Вам ПОВЕЗЕТ, значок лампочки появится в левом поле. При нажатии на это будет предложено добавить правильный оператор импорта в верхней части вашего .Java-файл.

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

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


или еще лучше использовать SpongyCastle С БК поставляется с Android как калеки и старые.


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

вот что я делаю, чтобы получить BouncyCastle AES cipher,

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

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


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