GmSSL 国密MS2/SM3/SM4/SM9/ZUC/SSL密码工具箱

GmSSL 国密MS2/SM3/SM4/SM9/ZUC/SSL密码工具箱

GmSSL 国密MS2/SM3/SM4/SM9/ZUC/SSL密码工具箱

快速上手

OpenSSL 1.1.1 新特性: 全面支持国密SM2/SM3/SM4加密算法

编译与安装

http://gmssl.org/docs/install.html

cd ~
git clone [email protected]:guanzhi/GmSSL.git
cd GmSSL
# 建议指定编译目录
./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl/ssl
make
sudo make install
sudo ln -s /usr/local/gmssl/bin/gmssl /usr/local/bin/

# 检查是否安装成功
/usr/local/gmssl/bin/gmssl version
GmSSL 2.5.4 - OpenSSL 1.1.0d  19 Jun 2019

使用GmSSL命令

# 方式一
# 测试 使用 SM3 计算字符串 'abc' 的哈希值
# -n 表示不输入回车符,这样才能得到正确的结果
echo -n abc | openssl sm3
(stdin)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

# 方式二> gmssl
GmSSL> sm3  # 选择加密方式,输出要加密的字符串. 不要输入回车,然后按3次ctrl+d。
abc(stdin)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0  # 密文

编译PHP扩展

GmSSL的PHP语言绑定

# 检查php是否已经安装openssl扩展,如果PHP已经安装启用了 openssl 扩展,就不要使用此方法了.
php --ri openssl

cd ~/GmSSL/php/ext/openssl/
mv config0.m4 config.m4
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install

问题处理

gmssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

sudo cp ~/GmSSL/libssl.so.1.1 /usr/lib64/

gmssl: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

sudo cp ~/GmSSL/libcrypto.so.1.1 /usr/lib64/

https://github.com/guanzhi/GmSSL/issues/782

/root/GmSSL-master/php/ext/openssl/xp_ssl.c: 在函数‘php_openssl_tcp_sockop_accept’中:
/root/GmSSL-master/php/ext/openssl/xp_ssl.c:2342:29: 错误:自增操作数必须是左值
GC_REFCOUNT(stream->ctx)++;  

# 解决方法
vim /root/GmSSL-master/php/ext/openssl/xp_ssl.c
:2342
# 替换 GC_REFCOUNT(stream->ctx)++; 为 GC_REFCOUNT(stream->ctx);
:wq

你可能感兴趣的:(php,ssl,php,网络协议)