Использование libsodium на разных платформах

Я использую libsodium на встроенном устройстве. Я хотел бы взаимодействовать с мобильными устройствами для генерации ключей/шифрования/дешифрования.

Нужно ли использовать libsodium на всех устройствах, участвующих в зашифрованном обмене данными?

Другими словами: libsodium обертывает NaCl, поэтому можно ли использовать собственные функции шифрования, обернутые libsodium или включенные в NaCl на удаленной платформе (Android или iOS) без фактического включения библиотек libsodium, или это просто запрос беда?

У меня также есть mbed TLS, доступный на встроенном устройстве. Существует ли базовый общий метод шифрования, который можно было бы рекомендовать для зашифрованной связи между device <--> Android и device <--> iOS?

Спасибо!


person user8786545    schedule 16.10.2017    source источник


Ответы (2)


Libsodium — отдельная библиотека. Он не упаковывает никакие другие библиотеки.

Это кросс-платформенный, так что вы можете его использовать для связи между вашим встроенным устройством и iOS/Android. Все, что он поддерживает в одной системе, будет работать так же и в другой системе.

Если вы ищете что-то с меньшим объемом памяти, вы можете вместо этого использовать libhydrogen.

person Frank Denis    schedule 06.11.2017

Lib-sodium — хорошая библиотека для шифрования связи. В конце концов вы вызываете метод NaCl.

Если вам удобно использовать собственные вызовы, такие как c или c++, вы можете использовать.

Я использовал библиотеку lib натрия в приложении для Android для связи между сервером и устройством.

#Update Ссылка git на библиотеку Android Libsodium Android

Плагин Gradle implementation 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:1.0.8'

person Jarvis    schedule 16.10.2017
comment
Где вы получили библиотеку lib-sodium для Android? Например, download.libsodium.org/libsodium/releases не имеет Android библиотеки. - person LarsH; 07.06.2018
comment
Отредактировал мой ответ, проверьте сейчас - person Jarvis; 08.06.2018
comment
Спасибо, это сработало для меня! Я использовал implementation 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:2.0.0' в build.gradle. (Мне также пришлось удалить android:allowBackup="true" из автоматически сгенерированного AndroidManifest.xml.) - person LarsH; 12.06.2018