基于铜锁生成CSR、私钥

准备工作

1、Linux环境(本文为Centos)
2、下载铜锁:https://github.com/Tongsuo-Project/Tongsuo/archive/refs/tags/8.4.0.tar.gz
注意:本文以 国密SM2 算法为例

安装步骤

1、解压Tongsuo-8.4.0.tar.gz后,进入安装Tongsuo-8.4.0目录,按照下面指令安装铜锁

tar -xvf Tongsuo-8.4.0.tar.gz
cd Tongsuo-8.4.0

2、配置选项

./config --prefix=/opt/tongsuo

3、编译

make -j

4、安装

make install

5、编辑~/.bashrc,输入环境变量

vim ~/.bashrc
export PATH=/opt/tongsuo/bin:$PATH
export LD_LIBRARY_PATH=/opt/tongsuo/lib64:$LD_LIBRARY_PATH

7、刷新环境变量

source ~/.bashrc

8、检查是否安装成功

tongsuo version

显示如下信息即可:
在这里插入图片描述

生成步骤

1、创建自定义工作目录 workspace,切换到此目录,创建配置文件 sm2_tongsuo.cnf ,配置文件内容如下,生成的私钥和csr都在此目录,可自行修改。

[ req ]
default_bits        = 256
default_md          = sm3
default_keyfile     = sm2_private_key.key
distinguished_name  = req_distinguished_name
string_mask         = utf8only
req_extensions      = v3_req

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Beijing
localityName                = Locality Name (eg, city)
localityName_default        = Beijing
organizationName            = Organization Name (eg, company)
organizationName_default    = Example Org
organizationalUnitName      = Organizational Unit Name (eg, section)
organizationalUnitName_default = IT
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = www.test.com
commonName_max              = 64

[ v3_req ]
keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth在这里插入代码片

2、生成私钥(私钥名称后缀自定义)

tongsuo ecparam -genkey -name SM2 -outform PEM -out sm2_private_key.key -noout

3、按照提示步骤生成csr(csr名称后缀自定义)

tongsuo req -new -key sm2_private_key.key -out sm2_csr.csr -config sm2_tongsuo.cnf  -sm3

4、解析(验证)csr

tongsuo  req  -in  sm2_csr.csr  -noout  -text

结果如下:
在这里插入图片描述

用途:服务器证书申请

将生成的csr、私钥文件发送CA申请证书

<think>嗯,用户问的是如何在Ubuntu系统中安装和配置铜锁Tongsuo)。首先,我需要回忆一下铜锁的相关信息。铜锁是一个开源的密码库,之前可能叫做BabaSSL,后来改名了。记得在提供的引用里提到过安装命令,比如用ls查看/opt/tongsuo目录,还有版本更新的信息。 首先,安装步骤可能需要从源码编译,因为很多开源库都是这样安装的。用户可能已经安装了必要的依赖,比如gcc、make、openssl这些。不过可能需要先安装依赖项,比如build-essential、git、perl这些。然后,下载源码,可能通过git clone或者下载预发布版本。引用里提到8.4.0-pre2版本,所以用户可能需要从官方仓库获取代码。 接下来是配置和编译。通常的步骤是运行./config或者./Configure,然后make和make install。铜锁可能有一些特定的配置选项,比如启用特定的算法或者硬件加速。引用中提到了半同态算法、零知识证明和硬件加速,所以在配置时可能需要启用这些功能。 安装完成后,验证是否成功,可能需要检查/opt/tongsuo目录是否存在,或者运行版本命令。另外,配置动态链接库路径,让系统找到铜锁的库文件,可能需要编辑ld.so.conf或者设置LD_LIBRARY_PATH环境变量。用户可能需要这些步骤,否则运行时找不到库。 测试部分,可能需要写一个简单的C程序,链接铜锁的库,并运行。例如调用某个函数来确认安装正确。如果有问题,可能需要检查路径是否正确,权限是否足够,或者依赖是否满足。 用户的问题还可能涉及到配置,比如如何让应用程序使用铜锁而不是系统自带的OpenSSL。可能需要设置编译时的链接路径,或者在代码中包含铜锁的头文件。 另外,引用中提到铜锁删除了不常用的算法,用户需要注意是否他们的应用需要这些算法。还有漏洞修复,说明新版本可能更安全,但也要考虑兼容性。 可能用户会遇到的问题包括依赖项缺失、权限问题导致安装失败、动态链接库未正确配置等。需要提醒用户检查这些方面,或者提供常见问题解决方法。 最后,生成相关问题时要考虑用户可能进一步想知道的内容,比如验证安装、使用示例、切换版本、卸载方法,或者特定功能的启用,比如半同态算法或硬件加速的支持。</think>### 如何在 Ubuntu 系统中安装和配置铜锁 #### 1. 安装依赖 首先安装编译和运行所需的依赖库: ```bash sudo apt update sudo apt install -y build-essential git perl gcc make ``` #### 2. 下载铜锁源码 从官方仓库克隆代码(若需特定版本如8.4.0-pre2,可通过标签切换): ```bash git clone https://github.com/Tongsuo-Project/Tongsuo cd Tongsuo git checkout 8.4.0-pre2 # 切换到指定版本 ``` #### 3. 配置和编译 启用常用功能(如半同态算法、硬件加速)并指定安装路径: ```bash ./config --prefix=/opt/tongsuo enable-ntt enable-ec_elgamal enable-ippcp make -j$(nproc) sudo make install ``` #### 4. 验证安装 检查安装目录和版本: ```bash ls -l /opt/tongsuo # 查看安装文件[^1] /opt/tongsuo/bin/openssl version # 显示版本信息(如Tongsuo 8.4.0-pre2) ``` #### 5. 配置动态链接库 更新系统库路径: ```bash echo "/opt/tongsuo/lib" | sudo tee /etc/ld.so.conf.d/tongsuo.conf sudo ldconfig ``` #### 6. 环境变量设置(可选) 在`~/.bashrc`中添加路径: ```bash export PATH="/opt/tongsuo/bin:$PATH" export LD_LIBRARY_PATH="/opt/tongsuo/lib:$LD_LIBRARY_PATH" ``` #### 7. 测试示例 编写测试程序`test_ntt.c`: ```c #include <tongsuo/ntt.h> int main() { // 调用NTT相关函数 return 0; } ``` 编译并运行: ```bash gcc -I/opt/tongsuo/include -L/opt/tongsuo/lib -lntt -o test_ntt test_ntt.c ./test_ntt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌守

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值