简介
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"
]
}
}
}
3.用命令 ./build.sh --product-name rk3568 --ccache 编译
4.生成库文件路径:out/rk3568/graphic/graphic_standard,该路径会生成库文件
DD一下:鸿蒙开发各类文档,可关注公Z号<程序猿百晓生>霍取。
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案)
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......
接口说明
-
初始化库
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 #安装使用方法