ohos/nacl
简介
ohos/nacl是适用于OpenHarmony系统的NaCl加密库,提供了基于现代加密算法的高级API接口,包括哈希计算、数字签名、公钥加密、私钥加密等功能。
ohos/nacl库基于js-nacl开发,针对OpenHarmony系统进行了适配,提供了以下功能:
- 哈希计算(SHA-512、SHA-256)
- 数字签名(crypto_sign)
下载安装
ohpm install @ohos/nacl
OpenHarmony ohpm环境配置等更多内容,请参考 如何安装OpenHarmony ohpm包 。
使用说明
- 引入文件及代码依赖
import nacl_factory from '@ohos/nacl'
nacl_factory.instantiate(function (nacl) {
// 使用nacl API
console.log(nacl.to_hex(nacl.random_bytes(16)));
});
或者使用Promise方式:
import nacl_factory from '@ohos/nacl'
nacl_factory.instantiate().then(function (nacl) {
// 使用nacl API
console.log(nacl.to_hex(nacl.random_bytes(16)));
});
接口说明
初始化NaCl加密库
- instantiate - 异步加载和初始化NaCl加密库
字符串与二进制数据转换
- to_hex - 将二进制数据转换为小写十六进制字符串
- from_hex - 将十六进制字符串转换为二进制数据
- encode_utf8 - 使用UTF-8编码将字符串转换为二进制数据
- encode_latin1 - 使用Latin1编码将字符串转换为二进制数据
- decode_utf8 - 使用UTF-8解码将二进制数据转换为字符串
- decode_latin1 - 使用Latin1解码将二进制数据转换为字符串
哈希函数
- crypto_hash - 计算SHA-512哈希值
- crypto_hash_sha256 - 计算SHA-256哈希值
公钥加密认证 (crypto_box)
- crypto_box_keypair - 生成随机密钥对
- crypto_box_random_nonce - 生成随机nonce
- crypto_box_seed_keypair - 从种子生成确定性密钥对
- crypto_box_keypair_from_raw_sk - 从原始私钥生成密钥对
私钥加密认证 (crypto_secretbox)
- crypto_secretbox_random_nonce - 生成随机nonce
数字签名 (crypto_sign)
- crypto_sign_keypair - 生成签名密钥对
- crypto_sign - 对消息进行签名
- crypto_sign_open - 验证签名并提取消息
- crypto_sign_detached - 生成分离式签名
- crypto_sign_verify_detached - 验证分离式签名
- crypto_sign_seed_keypair - 从种子生成确定性签名密钥对
其他工具函数
- random_bytes - 生成随机字节
约束与限制
在下述版本验证通过:
- DevEco Studio: 5.1.1.850, SDK: API12 (5.0.0)
- DevEco Studio: 6.0.1.249, SDK: API21 (6.0.1)
目录结构
ohos-nacl
├── AppScope/ # 应用全局资源
├── entry/ # 主模块
│ ├── src/
│ │ ├── main/ # 主代码目录
│ │ ├── ohosTest/ # OpenHarmony测试目录
│ │ └── test/ # 单元测试目录
│ ├── oh-package.json5 # 模块包配置
│ └── ... # 其他配置文件
├── library/ # 公共库模块
│ ├── src/
│ │ └── main/
│ │ └── lib/
│ │ ├── naclType.ts # 类型定义文件
│ │ ├── nacl_factory.ets # 核心功能
│ │ └── utils.ts # 核心功能实现
│ ├── oh-package.json5 # 包的元数据和依赖信息
│ ├── index.ets # 库的入口文件
│ ├── index.d.ts # 库的类型定义文件
│ └── ... # 其他文件
├── README_zh.md # 项目中文文档和说明
├── oh-package.json5 # 项目配置文件
└── ... # 其他配置文件
- 代码混淆,请查看代码混淆简介
- 如果希望postcss库在代码混淆过程中不会被混淆,需要在混淆规则配置文件obfuscation-rules.txt中添加相应的排除规则:
-keep
./oh_modules/@ohos/nacl
贡献代码
使用过程中发现任何问题都可以提 Issue 给组件,当然,也非常欢迎发 PR共建。
开源协议
本项目基于 MIT 协议,请自由地享受和参与开源。