2016-07-26 4 views
0

Я строю AOSP, поэтому скажу, что у меня есть root для всего модуля на Android. Конечно, есть библиотека OpenSSL, которая создается и повторно используется в других модулях.OpenSSL существующая библиотека в Android

И у нас есть базовое приложение (системное, внешнее, любое), которое также связывается с собственным кодом. И мой вопрос: как включить в локальный проект, существующую библиотеку Android OpenSSL, работать с ним?

Другое говорит, что я могу получить активный экземпляр OpenSSL/BoringSSL в собственном коде. А также, как получить экземпляр Android Keystore engine и работать с ним?

Спасибо!

ответ

1

От release notes of Android 6.0:

Если вы используете Android NDK в вашем приложении, не связывают с криптографическими библиотеками, которые не являются частью API НДК, таких как libcrypto.so и libssl.so. Эти библиотеки не являются общедоступными API-интерфейсами и могут меняться или прерываться без уведомления между выпусками и устройствами. Кроме того, вы можете подвергать себя уязвимостям безопасности. Вместо этого измените свой собственный код, чтобы вызывать API криптографии Java через JNI или статически ссылаться на криптографическую библиотеку по вашему выбору.

В вашем родном коде, кроме C/native API, вы также имеете доступ к API Java. Поэтому вы можете написать код C, который вызывает обычный Java API для доступа к AndroidKeyStore. Вам просто нужно перевести код Java в код C. Доступ к Java API таким образом немного сложный, однако это самый безопасный способ (относительно совместимости).

Смотрите также

+0

Эй! Спасибо за ответ, это ответ на мой первый вопрос. Также, возможно, вы знаете об Android Keystore engine (ссылка выше). Могу ли я использовать этот родной класс? – GensaGames

+0

Проблема в том, что я хочу использовать PrivateKey из AndroidKeystore, которую я могу загрузить без прохода, и использовать для шифрования, расшифровки на Java. Но! Я хочу использовать этот PrivateKey в собственном коде, но я не могу передать их ключ (ключи не являются экспонентами) в собственном коде, это проблема! – GensaGames

+0

Как я писал, используйте код Java для доступа к AndroidKeystore и переведите его в собственный код. Получающийся в результате код будет немного сложным, однако он рекомендуется Google. – Robert