介绍

crypto4cj 是一个安全的密码库,包括密码算法、密钥生成和签名验证。 该库是对 openSSL 封装的仓颉加密算法

特性

  • 🚀 MD5、RC2、RC4、SHA(SHA1、SHA224、SHA256、SHA384、SHA512)、AES 算法
  • 🚀 BIGNUM 计算类、随机数类、位运算、上下文函数
  • 🚀 HMAC 摘要算法
  • 🚀 DSA 签名验证
  • 🚀 DH 通信双方进行密钥协商算法
  • 🚀 RSA 加解密和签名验证
  • 🚀 ECDSA 签名验证
  • 🚀 DES、SM4 对称加密算法

架构

[源码目录

.
├── doc
├── include
├── lib
├── openssl_c
├── src
│   ├── aescj
│   ├── bignumcj
│   ├── dhcj
│   ├── digestcj
│   ├── dsacj
│   ├── eccj
│   ├── evpcj
│   ├── hmaccj
│   ├── md5cj
│   ├── rc2cj
│   ├── rc4cj
│   ├── rsacj
│   ├── sha1cj
│   ├── sha224cj
│   ├── sha256cj
│   ├── sha384cj
│   ├── sha512cj
│   ├── symmetrycj
│   └── utils
└── test
│   ├── HLT
│   ├── LLT
│   └── UT
├── CHANGELOG.md
├── gitee_gate.cfg
├── LICENSE.txt
├── module.json
├── README.md
├── README.OpenSource
  • doc 存放库的设计文档、使用文档、LLT 用例覆盖报告
  • include 是编译 C 的时候需要头文件依赖
  • lib 存放 copenssl 的 crypto 源码动态库,和 openssl_c 编译出来的动态库(编译方式见 [编译]
  • openssl_c 是存放封装 openssl 部分算法的 c 代码
  • src 是库源码目录
  • test 存放 HLT 测试用例、LLT 自测用例和 UT 单元测试用例

接口说明

主要核心类和全局函数说明

使用说明

编译

前提:参考 [https://github.com/openssl/openssl] 官网安装 openssl,版本为 OpenSSL 1.1.1n 15 Mar 2022

openssl编译

进入openssl根目录,在Linux或mysys2中执行以下命令

sed -i 's/SHARED_NAME[([a-z].*)]=([a-z].*).*mingw64.*}/SHARED_NAME[\1]=\1/g' build.info
var=`awk '/"linux-generic32".*=>/{print NR}' Configurations/10-main.conf` && sed -i ''"$var"',/.so./{s/.so..*)/.so/}' Configurations/10-main.conf
  1. linux x86_64 编译

    进入openssl根目录,执行下面语句

    ./config -no-asm
    make
    
  2. Windows编译

    进入openssl根目录,执行下面语句

    ./config -no-asm
    make
    
  3. ohos编译

    进入openssl根目录,执行下面语句(其中/usr1/ohos/llvm/bin/是ohos编译器路径,/usr1/ohos/llvm/include/aarch64-linux-ohos是ohos的头文件,请自行设置)

    ./Configure -fPIC no-asm shared no-async linux-aarch64 --cross-compile-prefix="/usr1/ohos/llvm/bin/llvm-"
    make CFLAGS="-I/usr1/ohos/llvm/include/aarch64-linux-ohos --target=aarch64-linux-ohos" LDFLAGS="--target=aarch64-linux-ohos" CC="/usr1/ohos/llvm/bin/clang"
    

cryptocj编译

  1. linux x86_64 编译

    将上面生成文件 libcrypto.so,放入根目录的 lib 文件夹下,之后执行

    ./build_linux.sh
    
  2. windows x64 编译

    将上面生成文件 libcrypto.dll,放入根目录的 lib 文件夹下,修改build_windows.bat中msys2的路径,之后执行

    build_windows.bat
    
  3. ohos编译

    将上面生成ohos版本的文件 libcrypto.so,放入根目录的 lib 文件夹下,之后执行

    ./build_ohos.sh
    
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐