2013-03-29 6 views
1

В этом StackOverflow ответ вы можете увидеть код для печати всех доступных поставщиков и соответствующие алгоритмы: How to find out what algorithm [ encryption ] are supported by my JVM?Spongycastle отсутствует множество алгоритмов при загрузке на андроид

Я использую последнюю версию spongycastle и когда я прошу, чтобы получить алгоритмы of Spongycastle ("SC") на android Я получаю только горстку алгоритма. На самом деле я получаю эту очень ограниченный список:

provider: SC 
algorithm: PBEWITHMD5ANDDES 
algorithm: PBEWITHSHA256AND192BITAES-CBC-BC 
algorithm: OLDHMACSHA384 
algorithm: PBEWITHHMACSHA 
algorithm: PBEWITHMD5ANDDES 
algorithm: PKCS12PBE 
algorithm: PBEWITHSHAAND128BITAES-CBC-BC 
algorithm: IES 
algorithm: PKIX 
algorithm: RFC3280 
algorithm: ISO9797ALG3MAC 
algorithm: PBEWITHHMACSHA1 
algorithm: CERTIFICATE 
algorithm: PBEWITHSHAAND40BITRC2-CBC 
algorithm: PBEWITHSHA1ANDDES 
algorithm: PBEWITHMD5AND256BITA 

С другой стороны, когда я прошу, чтобы получить Algos секреторного на моей машине Linux я получаю намного больше алгоритмов. Я не пересчитал их, но это список в 10 раз дольше, чем тот, который вы видите выше.

Куда все остальные алгоритмы ушли?

Поскольку этот проект не является типичным проектом андроида-java, а проектом Android-Scala, я должен использовать Proguard при каждом исполнении. Это играет какую-либо роль в отсутствующих алгоритмах или это что-то еще?

Note1: Я использую SC для создания ключей, шифрования и дешифрования с OpenPGP

Примечание2: Исходный код проверяется на отлично работать на Linux машине с помощью OpenJDK-6, RSA алгоритм шифрования с открытым ключом и BLOWFISH алгоритм, как случайный симметричный ключ

+0

Ну, вы сравниваете 2 совершенно разные вещи. Я предполагаю, что DVM не реализует все алгоритмы, которые выполняет полная JVM. –

+0

Не должно быть, что эти алгоритмы приходят вместе с библиотекой? Потому что, если это единственные доступные библиотеки, я никогда не смогу использовать OpenPGP. Мне нужны RSA, BLOWFISH, CAST5 и другие алгоритмы. А также факт, что есть приложения, которые успешно использовали spongycastle для шифрования с помощью openpgp. –

ответ

3

вам может понадобиться включить SpongyCastle OpenPGP API jar, так что проверить вас вы в том числе:

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

Помимо этого проблема конфигурации ProGuard была бы очевидным соперником. Попробуйте указать что-то подобное в файле конфигурации proguard:

-keep class org.spongycastle.** 
+0

. В качестве сюрприза для меня список доступных алгоритмов по-прежнему короток, но после того, как в списке появится ваша конфигурация RSA, и я могу выполнить свою работу. Так что сейчас это работает, но мне нужно сделать немного больше тестирования. –

+0

К сожалению, я эффективно удвоил размер своего апка! Может быть, вы могли бы указать, какие части spongycastle я должен сохранить, потому что хранение всей библиотеки составляет ~ 2,5 МБ больше в apk! –

+0

@GeorgePligor, к сожалению, вы не предоставили нам достаточной информации для дублирования своей работы - только работая с полной копией вашего источника, мы можем гарантировать, что вам достаточно хватило с помощью proguard, чтобы ваше приложение работало. Предложение: распечатайте имена классов классов реализации, которые ваш каод возвращается из SC, и начните с их хранения. –