简介
libsodium主要是易用,可移植的加解密库。
下载安装
直接在OpenHarmony-SIG仓中搜索libsodium并下载。
使用说明
以OpenHarmony 3.1Beta的rk3568版本为例
库代码存放路径:./third_party/libsodium 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build
{
"subsystem": "developtools",
"parts": {
"bytrace_standard": {
"module_list": [
"//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
"//developtools/bytrace_standard/bin:bytrace_target",
"//developtools/bytrace_standard/bin:bytrace.cfg",
"//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace",
"//third_party/libsodium:libsodium",
"//third_party/libsodium:libsodium_test"
],
"inner_kits": [
{
"type": "so",
"name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
"header": {
"header_files": [
"bytrace.h"
],
"header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"
}
}
],
"test_list": [
"//developtools/bytrace_standard/bin/test:unittest"
]
}
}
}
用命令 ./build.sh --product-name rk3568 --ccache 编译 生成库文件路径:out/rk3568/graphic/graphic_standard,该路径会生成库文件
接口说明
初始化库 sodium_init(void) 等式的恒定时间检验 sodium_memcmp(const void * const b1_, const void * const b2_, size_t len); 十六进制编码/解码 sodium_bin2hex(char * const hex, const size_t hex_maxlen, const unsigned char * const bin, const size_t bin_len); Base64编码/解码 sodium_bin2base64(char * const b64, const size_t b64_maxlen, const unsigned char * const bin, const size_t bin_len, const int variant) 调零记忆 sodium_memzero(void * const pnt, const size_t len) 锁定内存 int sodium_mlock(void * const addr, const size_t len) 密钥派生 crypto_pwhash(unsigned char * const out, unsigned long long outlen, const char * const passwd, unsigned long long passwdlen, const unsigned char * const salt, unsigned long long opslimit, size_t memlimit, int alg) 密码存储 crypto_pwhash_str(char out[crypto_pwhash_STRBYTES], const char * const passwd, unsigned long long passwdlen, unsigned long long opslimit, size_t memlimit) 创建一个新的密钥对 int sodium_mlock(void * const addr, const size_t len) 计算共享密钥 crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES], unsigned char tx[crypto_kx_SESSIONKEYBYTES], const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES], const unsigned char client_sk[crypto_kx_SECRETKEYBYTES], const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
兼容性
支持 OpenHarmony系统 3.0 及以上版本。
目录结构
|---- libsodium
| |---- src
| |---- crypto_aead #aead结构
| |---- crypto_auth #密钥消息验证
| |---- crypto_box #密封盒
| |---- crypto_core #有限域算术
| |---- crypto_generichash #散列
| |---- crypto_hash #哈希
| |---- crypto_kdf #密钥派生
| |---- crypto_kx #密钥交换
| |---- crypto_onetimeauth #一次性认证
| |---- crypto_pwhash #密码哈希
| |---- crypto_scalarmult #加密标量乘法
| |---- crypto_secretbox #认证加密
| |---- crypto_secretstream #加密流和文件加密
| |---- crypto_shorthash #端输入散列
| |---- crypto_sign #公钥签名
| |---- crypto_stream #流密码
| |---- crypto_verify #公钥签名
| |---- include #头文件
| |---- randombytes #生成随机数据
| |---- sodium #基础代码
| |---- tests #单元测试用例
| |---- README.md #安装使用方法
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
基本概念构建第一个ArkTS应用……
开发基础知识:https://qr21.cn/FV7h05
应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言……
基于ArkTS 开发:https://qr21.cn/FV7h05
Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题 2.性能优化方向 3.架构方向 4.鸿蒙开发系统底层方向 5.鸿蒙音视频开发方向 6.鸿蒙车载开发方向 7.鸿蒙南向开发方向
推荐链接
发表评论