【无标题】

《密码系统设计》实验
实验项目
实验序号 实验名称 实验学时数 实验目的 实验内容 实验类型 学生学习预期成果
实验三 密码模块实现 6 基于商⽤密码标准的密码模块的实现 验证性 1.理解密码系统固件、接⼝等的设计和开发流程;2.参考《GMT 0018-2023密码设备应⽤接⼝规范》等商⽤密码标准设计实现密码算法进⾏加密/解密、签名/验签、密钥⽣成/导出等的接⼝;3.与其他商⽤密码模块进⾏兼容性测试。
裸卡 ukey
运行配置脚本

$ sudo ./config.sh
[sudo] password for zhanhe:
Service udev restarted!
run finished!
编译、运行

$ gcc -o test test.c -I./ /home/zhanhe/rodec/roceduhs0018sdfbak/HS_besti_linux_SDK_20200924/so/x86_64/libhs_guomi_vpn.so -lpthread
$ sudo ./test
open device success!
open session success!
pOutRand:
ad61a59b 10314f21 e1c4a0e9 7cf91a6d
SDF_GenerateRandom success!
SDF_ImportRootKeyAndDeviceSN fail, RootKey can only import once
SN:hs_00000000000014209
CosVer: 4.2.09
ImportKeyPair success
EccBackUpKeyPair success
ExportKeyPair success
SGD_SM3Hash success
SM2EncDec success
SM2SignVer success
SGD_SM1_ECB Encrypt datasize: 4000000 Bytes used time: 2365972 us
SGD_SM1_ECB Encrypt average speed: 13525096 bps
SGD_SM1_ECB Decrypt datasize: 4000000 Bytes used time: 2499315 us
SGD_SM1_ECB Decrypt average speed: 12803508 bps
SM1_ENC_DEC_ECB success.
SGD_SM1_CBC Encrypt datasize: 4000000 Bytes used time: 2453356 us
SGD_SM1_CBC Encrypt average speed: 13043357 bps
SGD_SM1_CBC Decrypt datasize: 4000000 Bytes used time: 2491306 us
SGD_SM1_CBC Decrypt average speed: 12844668 bps
SM1_ENC_DEC_CBC success.
SGD_SM1_OFB Encrypt datasize: 4000000 Bytes used time: 2173841 us
SGD_SM1_OFB Encrypt average speed: 14720487 bps
SGD_SM1_OFB Decrypt datasize: 4000000 Bytes used time: 2337224 us
SGD_SM1_OFB Decrypt average speed: 13691456 bps
SM1_ENC_DEC_OFB success.
SGD_SM4_ECB Encrypt datasize: 4000000 Bytes used time: 2800909 us
SGD_SM4_ECB Encrypt average speed: 11424862 bps
SGD_SM4_ECB Decrypt datasize: 4000000 Bytes used time: 2670783 us
SGD_SM4_ECB Decrypt average speed: 11981505 bps
SM4_ENC_DEC_ECB success.
SGD_SM4_CBC Encrypt datasize: 4000000 Bytes used time: 2620242 us
SGD_SM4_CBC Encrypt average speed: 12212612 bps
SGD_SM4_CBC Decrypt datasize: 4000000 Bytes used time: 2707366 us
SGD_SM4_CBC Decrypt average speed: 11819606 bps
SM4_ENC_DEC_CBC success.
SGD_SM4_OFB Encrypt datasize: 4000000 Bytes used time: 2433580 us
SGD_SM4_OFB Encrypt average speed: 13149351 bps
SGD_SM4_OFB Decrypt datasize: 4000000 Bytes used time: 2163395 us
SGD_SM4_OFB Decrypt average speed: 14791566 bps
SM4_ENC_DEC_OFB success.
SGD_IPSEC_SM1 Encrypt datasize: 4024000 Bytes used time: 3063057 us
SGD_IPSEC_SM1 Encrypt average speed: 10509761 bps
SGD_IPSEC_SM1 Decrypt datasize: 4024000 Bytes used time: 2953186 us
SGD_IPSEC_SM1 Decrypt average speed: 10900769 bps
SM1_ENC_DEC_IPSEC success.
SGD_IPSEC_SM4 Encrypt datasize: 4024 Bytes used time: 3417 us
SGD_IPSEC_SM4 Encrypt average speed: 9421129 bps
SGD_IPSEC_SM4 Decrypt datasize: 4024 Bytes used time: 3193 us
SGD_IPSEC_SM4 Decrypt average speed: 10082054 bps
SM4_ENC_DEC_IPSEC success.
龙脉Ukey
为了方便修改Makefile,我将so文件所在目录复制到了示例代码文件夹中。(注意执行cp命令时的路径)

pwd

/root/bestidiocs2024/ch06/longmaiskf0016-stu

cp -r skf/linux/x64 samples/skf/linux_mac/

cd samples/skf/linux_mac/

ls

encrypt enumdevinfo FingerMgrDemo include interruptTest monitordev readme.txt signature x64 x86
修改Makefile时,将LINKFLAGS修改为对于so文件所在路径

LINKFLAGS = …/x64/libgm3000.1.0.so
enumdevinfo

make

rm -f enumdevice
g++ -o enumdevice main.o …/x64/libgm3000.1.0.so

sudo ./enumdevice

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

Manufacturer: Longmai

AlgSymCap :1799

AlgAsymCap :198400,

AlgHashCap :7,

evAuthAlgId :1025,
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072
monitordev

make

g++ -c -o main.o main.cpp
rm -f monitordev
g++ -o monitordev main.o …/x64/libgm3000.1.0.so -lpthread
encrypt

make

g++ -c -o main.o main.cpp
main.cpp: 在函数‘int main()’中:
main.cpp:24:19: 警告:ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
24 | char pUserPin = “123456”;
| ^~~~~~~~
main.cpp:30:19: 警告:ISO C++ forbids converting a string constant to ‘char
’ [-Wwrite-strings]
30 | char *pData = “1234567812345678”;
| ^~~~~~~~~~~~~~~~~~
rm -f encryptTest
g++ -o encryptTest main.o …/x64/libgm3000.1.0.so

ls

encryptTest main.cpp main.o makefile makefile_mac

sudo ./encryptTest

encrypt data ok!
interruptTest64

make

rm -f interruptTest64
g++ -o interruptTest64 main.o …/x64/libgm3000.1.0.so

sudo ./interruptTest64

0 F1F9B462A08B786529407B5A05A1560
1 F1F9B462A08B786529407B5A05A1560
2 F1F9B462A08B786529407B5A05A1560
3 F1F9B462A08B786529407B5A05A1560
4 F1F9B462A08B786529407B5A05A1560
5 F1F9B462A08B786529407B5A05A1560
6 F1F9B462A08B786529407B5A05A1560
7 F1F9B462A08B786529407B5A05A1560
8 F1F9B462A08B786529407B5A05A1560
9 F1F9B462A08B786529407B5A05A1560
10 F1F9B462A08B786529407B5A05A1560
11 F1F9B462A08B786529407B5A05A1560
12 F1F9B462A08B786529407B5A05A1560
13 F1F9B462A08B786529407B5A05A1560
14 F1F9B462A08B786529407B5A05A1560
15 F1F9B462A08B786529407B5A05A1560
16 F1F9B462A08B786529407B5A05A1560
17 F1F9B462A08B786529407B5A05A1560

signature

make

g++ -c -o main.o main.cpp
main.cpp: 在函数‘int main()’中:
main.cpp:24:19: 警告:ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
24 | char pUserPin = “123456”;
| ^~~~~~~~
main.cpp:36:16: 警告:ISO C++ forbids converting a string constant to ‘char
’ [-Wwrite-strings]
36 | char pubid = “1234567812345678”;
| ^~~~~~~~~~~~~~~~~~
main.cpp:38:19: 警告:ISO C++ forbids converting a string constant to ‘char
’ [-Wwrite-strings]
38 | char *psrcdata = “1234567812345678”;
| ^~~~~~~~~~~~~~~~~~
rm -f signatureTest
g++ -o signatureTest main.o …/x64/libgm3000.1.0.so

sudo ./signatureTest

Signature successful.
Verify signature successful.
fingerMgr

sudo ./fingerMgrDemo


              Finger  示例                                     

  1. PIN码登录[SKF_VerifyPIN]
  2. 指纹录入[SKF_EnrollFingerInit,SKF_EnrollFinger]
  3. 指纹验证[SKF_VerifyFinger带UI]
  4. 删除指纹[SKF_DeleteFinger]
  5. 指纹测试[SKF_TestFinger]
  6. 解锁指纹[SKF_UnblockFinger]
  7. 获取指纹信息[SKF_GetFingerInfo]
  8. 指纹验证[SKF_VerifyPIN,UserPIN=]
  9. 获取设备类型[SKF_GetDevInfo]
  10. 获指纹取录入个数[SKF_HasFinger,SKF_GetFingerCount]
  11. EXIT

Select -->

Select -->9
SKF_GetDevInfo Successfully.
This is a common device.

Select -->1
Failed to Verify PIN .

Select -->2
Failed to Get Finger Info .

Select -->3
Failed to Verify Finger ,Error code = 00006d00 .

Select -->4
Failed to get finger info.

Select -->5
Prepare for fingerprint learning .

Failed to Verify Finger Init .

Select -->6
Failed to Unblock Finger.

Select -->7
Failed to get finger info.

Select -->8
Failed to Verify PIN .
monitordev

make

rm -f monitordev
g++ -o monitordev main.o …/x64/libgm3000.1.0.so -lpthread

sudo ./monitordev

SKF_WaitForDevEvent
Device moved.
F1F9B462A08B786529407B5A05A1560 SKF_WaitForDevEvent
Manufacturer: Longmai
Issuer : Longmai
Label : GM3000
SerialNumber : F1F9B462A08B786529407B5A05A1560
Total space:131072

实验记录中提交 gitee 课程项⽬链接,提交本次实验相关 git log运⾏结果
commit bc187b4b619cab2415a1afa9de3a9bc1658503d6
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:29:01 2024 +0800

monitordev

commit 36406007882a7b7bb9e7b3257ada81625f5473ca
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:25:47 2024 +0800

fingerMgr

commit 39a450c9a8a0a437e6013b701ee17c0beb8f2297
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:23:33 2024 +0800
signature

commit d5f378e36526c47b6da8021f047cbdeea03ae52f
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:21:23 2024 +0800
interrupt

commit a87fb49deec6e27c26d261ce30266488a3852e2f
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:19:12 2024 +0800
encrypt

commit 8489476fbd7e099df5715e4d2c9bec36573de17a
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:18:33 2024 +0800
monitordev

commit 01b95f3a1d56743cd874113468bd1fd1622ee8f2
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:15:24 2024 +0800
enumdevinfo

commit 0b0768bdf4514f3154aeed3d45929e886dd97dfe
Author: LZJ lzj@outlook.com
Date: Sun Nov 17 22:06:08 2024 +0800
ukey_make
提交要求:
提交实践过程Markdown和转化的PDF文件
代码,文档托管到gitee或github等,推荐 gitclone
记录实验过程中遇到的问题,解决过程,反思等内容,完成实验报告相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值