熱度 9
1、測試目標
使用已經(jīng)預置DES密鑰的LKT4201N系列加密芯片完成運算
2、測試環(huán)境
本示例運行環(huán)境為windows系統(tǒng)、測試軟件LCS KIT、LKT-K100開發(fā)板。
3、測試步驟
注意:“->”表示使用LCS KIT軟件操作LKT-K100向加密芯片發(fā)送數(shù)據(jù);
“<-”表示使用LCS KIT軟件操作LKT-K100讀回加密芯片輸出的數(shù)據(jù)。
4、測試指令
使用LKT4201N內部已存放的01號30密鑰和01號31密鑰進行加密操作測試
( 注: 如何創(chuàng)建KEY文件和寫入密鑰不再贅述)
(1) 加密指令
-> 0088 0001 08 1122334455667788
<- 61 08
-> 00C0 0000 08
<- 密文數(shù)據(jù)+9000
注:加密數(shù)據(jù)應為8字節(jié)的整數(shù)倍,不夠的后面先補80,如果還是不夠8字節(jié)的倍數(shù)再補00到8字節(jié)的整數(shù)倍。
(2) 解密指令
-> 0088 0101 08 +密文數(shù)據(jù)
<- 61 08
-> 00C0 0000 08
<- 1122334455667788 +9000
5、OpenSSL DES接口實現(xiàn)3DES 和DES加解密
(1)下載OpenSSL源碼,生成libeay32.dll 和libeay32.lib文件
(2)將libeay32.dll 、libeay32.lib以及OpenSSL頭文件移植到VC工程中,工程中增加
#pragma comment(lib, "libeay32.lib")用于調用靜態(tài)庫,另外設置好頭文件路徑,在工程中增 加#include <openssl/des.h>,
(3)DES_set_key_unchecked( (DES_cblock*)key1 , &schedule1 );調用此函數(shù)可以實現(xiàn)密鑰設置
DES_ecb_encrypt((const_DES_cblock*)(inbuff+i*8),(DES_cblock*)(outbuff+i*8),&schede1,DES_ENCRYPT);此函數(shù)用于實現(xiàn)DES ECB模式加密。
(4)根據(jù)DES函數(shù)接口編寫加解密函數(shù)
解密函數(shù)同理
(5)加解密函數(shù)接口測試
(6)測試結果
以上完成了openssl des接口實現(xiàn)DES和3DES加密和解密功能。