как добавить алгоритм 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