课设第一周进展(gmlib)

安装gmlib

gmlib简介

该密码库为支持国密 SM4/AES-ECB/CBC/GCM,SM3,SM2签名/加密,ZUC算法 的密码库,开发这个库的时候参考了很多密码库,例如 Crypto++,openssl,GmSSL,Oryx Embedded 以及 JAVA JDK,所以很多地方都能看到这些库的影子

流程图

gmlib的安装

  • 拷贝 gmlib 项目至本机(也可以通过下载zip包的方式拷贝)

git clone https://github.com/oldprincess/gmlib.git

  • 进入gmlib文件夹

cd gmlib

  • 创建 build 目录,避免污染源代码
mkdir build
cd build
  • 执行cmake,以Release模式编译
# linux
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

编译成功之后就会在build文件夹中产生bin和lib文件夹

并且会在bin目录下生成一个测试文件:gmlib-test

随后若看见test finish!则表示成功

gmlib使用

使用此库事先需学习部分Cmake知识,现附链接如下

Cmake学习入

gmlib实现sm2算法

sm2加解密

  • 修改CMakeLists.txt文件

修改gmlib文件夹下的CMakeLists.txt文件内容如下

在文件末尾修改代码如下:

add_executable(gmlib-sm2_crypt
    demo/demo_sm2_crypt.c
)

target_link_libraries(gmlib-sm2_crypt gmlib)
  • 编译程序

创建文件夹sm2_crypt防止文件混乱

在sm2_crypt文件夹中执行以下指令

cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .

随后使用make指令进行编译程序

运行bin文件夹下的gmlib-sm2_crypt文件:

sm2签名验签

  • 修改CMakeLists.txt文件

和加解密修改方式一样在CMakeLists.txt文件末尾修改代码内容如下

add_executable(gmlib-sm2_sign
    demo/demo_sm2_sign.c
)

target_link_libraries(gmlib-sm2_sign gmlib)
  • 编译

编译过程和sm2加解密一样在此不过多赘述,只是在最开始创建文件命名为sm2_sign即可

运行结果:

gmlib实现sm3算法

  • 修改CMakeLists.txt文件

和加解密修改方式一样在CMakeLists.txt文件末尾修改代码内容如下

add_executable(gmlib-sm3
        demo/demo_sm3.c
)

target_link_libraries(gmlib-sm3 gmlib)
  • 编译

编译过程和sm2加解密一样在此不过多赘述,只是在最开始创建文件命名为sm3即可

运行结果:

sm4算法实现

  • 修改CMakeLists.txt文件

和加解密修改方式一样在CMakeLists.txt文件末尾修改代码内容如下

add_executable(gmlib-sm4
        demo/demo_sm4.c
)

target_link_libraries(gmlib-sm4 gmlib)
  • 编译

编译过程和sm2加解密一样在此不过多赘述,只是在最开始创建文件命名为sm4即可

运行结果:

ZUC算法实现

  • 此算法编译运行步骤和前面SM2/3/4一模一样,在此不做赘述了,直接看运行结果吧

gmlib代码库链接:gmlib库

posted @ 2022-11-18 21:27  20201325my  阅读(68)  评论(0编辑  收藏  举报