Есть ли преимущества использования SpongyCastle по сравнению с BouncyCastle, если вы нацелены на Android 3.0 и новее?
Если я правильно понимаю ситуацию, SpongyCastle - это переименование BouncyCastle, и оно было создано, чтобы дать людям возможность включать новую версию BouncyCastle на Android, поскольку простое включение последней банки BouncyCastle может вызвать конфликты со старой и урезанной версией BouncyCastle, который поставляется с Android.
Однако, по-видимому, начиная с версии 3.0 (в 2011 году - 6 лет назад!) Пакет Android BouncyCastle был переименован в com.android.org.bouncycastle
, так что теперь, если вы включили регулярный org.bouncycastle
это больше не будет конфликтовать с предварительно упакованным урезанным BouncyCastle, и вы можете использовать новейшую версию таким образом.
Что меня смущает, так это то, что кажется, что проект SpongyCastle все еще довольно активен, и всякий раз, когда я ищу "BouncyCastle на Android" или что-нибудь связанное, я получаю много результатов за последние пару лет, которые рекомендуют использовать SpongyCastle, ссылаясь на конфликт классов проблемы как обоснование, даже если они (по-видимому) были решены еще в 2011 году. Еще один аргумент, который я видел и который имеет для меня больше смысла, заключается в том, что SpongyCastle более обратно совместим, так как проблем не возникнет. устройства под управлением более ранних версий Android, чем 3.0.
Поэтому мой вопрос: есть ли еще преимущества использования SpongyCastle по сравнению с BouncyCastle, если вы не ориентируетесь на более ранние версии Android, чем 3.0?
1 ответ
Вот что автор Spongy Castle написал по этому поводу:
Почему Spongy Castle не может быть устаревшим?
- устройства до Android 3.0 все еще активно используются. В более бедных странах область применения более высока, и эти люди все еще нуждаются в надежной криптографии. Сигнал (не пользователь SC, насколько я знаю) в настоящее время все еще поддерживает Android 2.3 и выше.
- даже на устройствах после Android 3.0 производители устройств не обходятся без небрежного объединения библиотек, возможно, что Bouncy Castle все еще может быть связан на некоторых малоизвестных устройствах.
- Хотя версия Bouncy Castle, поставляемая в комплекте с Android, имеет измененное имя пакета, в качестве имени провайдера по-прежнему используется "BC", что оставляет некоторую двусмысленность в отношении выбора реализации при добавлении своей собственной копии Bouncy Castle в приложение и выборе "BC". "как ваш провайдер.
Но затем он отметил, что выпуски Spongy Castle часто отстают от выпусков Bouncy Castle... по вполне понятным причинам.
Короче говоря, для устройства Android единственными возможными преимуществами использования Spongy Castle могут быть случаи, когда вашему приложению требуется недавняя функциональность Bouncy Castle, но производители устройств поставили старую версию.