Centos7上编译GmSSL,并使用其Java接口

11 篇文章 0 订阅

1.编译GmSSL

在这里插入图片描述
将下载的包解压后,在GmSSL-master根目录执行:

./config
make
sudo make install

如果未执行完成上述步骤,可以参考我另一篇博客中的排错方法
https://blog.csdn.net/EEEEEEcho/article/details/113199686
执行完之后运行gmssl,报错.。
在这里插入图片描述
然后将/usr/local/lib64中的几个文件复制到/usr/lib64下
在这里插入图片描述
再次运行成功。

2. 编译java运行时需要的库

进入到GmSSL的安装位置的java文件夹下
在这里插入图片描述
打开build.sh
在这里插入图片描述
参考build.sh按下面的命令进行编译,build.sh中-L /path/to/gmssl/lib 其实就是gmssl根目录,加了lib有点误导人。

gcc -shared -fPIC -Wall -I./jni -I /software/GmSSL-master/include -L /software/GmSSL-master GmSSL.c -lcrypto -o libgmssljni.so

编译成功,得到libgmssljni.so
在这里插入图片描述
把上步编译出的libcrypto.so,libcrypto.so.1.1(就是GmSSL根目录中所编译出来的)
在这里插入图片描述
拷到当前java目录,java目录一共要有3个东西。
在这里插入图片描述
最后,编译GmSSL.java 并运行。
在当前的java目录执行

mkdir -p org/gmssl
cp GmSSL.java org/gmssl
javac org/gmssl/GmSSL.java
java -Djava.library.path=/software/GmSSL-master/java -classpath /software/GmSSL-master/java org.gmssl.GmSSL

在这里插入图片描述

3.配置到IDEA中

一定要在IDEA中创建一个org.gmssl的包,然后把当前java文件加下的GmSSL.java复制到该包下
因为,这个是在JNI中写死的。也是困惑了我一整天的一个地方。
然后使用修改代码使用绝对路径来加载.So文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值