Как включить JAR Spongy Castle в Android? - PullRequest
27 голосов
/ 01 августа 2011

Видимо Spongy Castle - это альтернатива Android использованию полной версии Bouncy Castle.

Однако при импорте jar я получаю всевозможные ошибки, которые «не могут быть решены», поскольку он зависит от пакетов, не включенных в Android, в первую очередь javax.mail, javax.activation и javax.awt.datatransfer.

Так, как лучше обойти это? Ответы на этот вопрос и этот указывают, что эти пакеты вообще не должны использоваться, а этот популярный вопрос даже не рассматривает возможность найти способ получить AWT назад. Так как же Spongy Castle полагается на них? Люди используют губчатый замок , верно?

Ответы [ 2 ]

39 голосов
/ 22 апреля 2015

Если вы используете gradle, то вы можете просто указать свои зависимости в build.gradle файле, например так:

dependencies {
     ....
    compile 'com.madgag.spongycastle:core:1.54.0.0'
    compile 'com.madgag.spongycastle:prov:1.54.0.0'
    compile 'com.madgag.spongycastle:pkix:1.54.0.0'
    compile 'com.madgag.spongycastle:pg:1.54.0.0'

    }

Вы можете узнать последнюю версию библиотеки здесь .

Не забудьте вставить его в качестве поставщика безопасности в ваше приложение.

    static {
    Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
}
32 голосов
/ 18 августа 2011

Это два очень простых примера того, как включить Spongy Castle в проект:

Начиная с версии 1.47, Spongy Castle был разбит на отдельные вспомогательные банки, которые точно отражают соответствующие артефакты Bouncy Castle (например, sc-light-jdk15on.jar, scpg-jdk15on.jar и т. Д.), И важно убедиться, что вы включили все банки Spongy Castle, необходимые для того, что вы делаете.

Полную информацию о зависимостях можно найти по адресу:

http://rtyley.github.com/spongycastle/#downloads

Как минимум вам понадобится sc-light-jdk15on.jar (базовая реализация облегченного API) и, вероятно, scprov-jdk15on.jar (оболочка JCE вокруг облегченного API). Если вы используете Maven, то все эти вещи по управлению зависимостями позаботятся о вас.

Проблемные зависимости, которые вы описываете для javax.mail, javax.activation и т. Д., Указывают на то, что вы, возможно, выбрали неправильный jar (например, компонент на каждую отдельную библиотеку, а не на «основной поставщик») - поскольку scprov-jdk15on jar определенно не не имеет каких-либо из этих странных зависимостей и успешно работает на Android.

(отказ от ответственности, я ведущий Spongy Castle, но у меня также было много отчетов об успехах от других пользователей!)

...