?? esam_function.h
字號(hào):
/****************************************************************/
/* 文件名: Esam_Function.h */
/* 功能: 申明ESAM卡的操作函數(shù) */
/****************************************************************/
#ifndef Esam_Function_h
#define Esam_Function_h
#define DES8 0
#define DES16 1
#define DATALENGTH 20 // 定義存儲(chǔ)接收應(yīng)答信號(hào)緩沖區(qū)的長度
extern Uint16 CommandLength; // 定義命令報(bào)文的實(shí)際長度變量
extern Uint16 Command[20]; // 定義存放命令報(bào)文的緩沖區(qū)
extern Uint16 ReplyData[DATALENGTH]; // 定義存儲(chǔ)接收應(yīng)答信號(hào)的緩沖區(qū)
/****************************************************************/
/* 函數(shù)名: Reset_Esam() */
/* 功能: 對ESAM卡復(fù)位,并取得返回的復(fù)位應(yīng)答信息 */
/* 參數(shù): */
/* DataPtr----指向存放序列號(hào)的數(shù)組的指針 */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Reset_Esam(Uint16 *DataPtr);
/****************************************************************/
/* 函數(shù)名: Get_Response() */
/* 功能: 取回ESAM反饋的數(shù)據(jù)和MAC碼 */
/* 參數(shù): */
/* DataPtr-----指向存放返回?cái)?shù)據(jù)指針數(shù)組的指針 */
/* DataLen-----欲取回的數(shù)據(jù)和MAC碼總長度(以16進(jìn)制 */
/* 表示,單字節(jié)長度) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Get_Response(Uint16* DataPtr, Uint16 DataLen);
/****************************************************************/
/* 函數(shù)名: Get_Random() */
/* 功能: 向ESAM發(fā)取隨機(jī)數(shù)命令,并取得8字節(jié)或4字節(jié)隨機(jī)數(shù) */
/* 參數(shù): */
/* OutputPtr--指向存放返回隨機(jī)數(shù)的數(shù)組的指針 */
/* Length-----隨機(jī)數(shù)長度,16進(jìn)制表示(0x08,或0x04) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Get_Random(Uint16 *OutputPtr, Uint16 Length);
/****************************************************************/
/* 函數(shù)名: Extern_Authen() */
/* 功能: 發(fā)送外部認(rèn)證命令,進(jìn)行外部認(rèn)證 */
/* 參數(shù): */
/* Input----指向存放隨機(jī)數(shù)數(shù)組的指針 */
/* KeyID----外部認(rèn)證密鑰標(biāo)識(shí)號(hào) */
/* Key------指向存放外部認(rèn)證密鑰數(shù)組的指針 */
/* Mode-------加解密方式(如果是8字節(jié)密鑰選DES8=0; */
/* 否則為16字節(jié)密鑰選DES16=1) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Extern_Authen(Uint16 *Input, Uint16 KeyID, Uint16 *Key, Uint16 Mode);
/****************************************************************/
/* 函數(shù)名: Set_Protocol() */
/* 功能: 更改ESAM和DSP的通信協(xié)議,注意一般情況下只支持協(xié)議*/
/* 從T=1改為T=0 */
/* 參數(shù): */
/* Mode-----協(xié)議方式(0x01:T=0-->T=1;0x10:T=1-->T=0)*/
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Set_Protocol(Uint16 Mode);
/****************************************************************/
/* 函數(shù)名: Del_Direct() */
/* 功能: 刪除以前建立的目錄文件(不包括MF文件) */
/* 參數(shù): */
/* 無 */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Del_Direct(void);
/****************************************************************/
/* 函數(shù)名: Create_Keyfile() */
/* 功能: 建立密鑰文件 */
/* 參數(shù): */
/* FileID-----2字節(jié)長度的文件標(biāo)識(shí)符 */
/* FileLen----2字節(jié)長度的文件空間大小 */
/* IncRight---增加密鑰權(quán)限 */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Create_Keyfile(Uint16 FileID, Uint16 FileLen, Uint16 IncRight);
/****************************************************************/
/* 函數(shù)名: Increase_Key() */
/* 功能: 建立(39-外部認(rèn)證/主控或36-線路保護(hù))密鑰 */
/* 參數(shù): */
/* KeyID----- 密鑰標(biāo)識(shí)符 */
/* KeyType----密鑰類型(0x39或0x36) */
/* UseRight---密鑰使用權(quán) */
/* AltRight---密鑰更改權(quán)限 */
/* NextState--后續(xù)狀態(tài)(如果密鑰類型0x36保留為0xFF) */
/* ErrCount---錯(cuò)誤計(jì)數(shù)器 */
/* Keys-------指向存放欲建立密鑰的數(shù)組的指針 */
/* Mode-------加解密密鑰方式(如果是8字節(jié)密鑰選 */
/* DES8=0;否則為16字節(jié)密鑰選DES16=1) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Increase_Key(Uint16 KeyID, Uint16 KeyType, Uint16 UseRight, Uint16 AltRight, Uint16 NextState, Uint16 ErrCount, Uint16 *Keys,Uint16 Mode);
/****************************************************************/
/* 函數(shù)名: Create_Binaryfile() */
/* 功能: 建立帶線路加密和MAC保護(hù)的二進(jìn)制文件 */
/* 參數(shù): */
/* FileID-----2字節(jié)長度的文件標(biāo)識(shí)符 */
/* FileLen----2字節(jié)長度的文件空間大小 */
/* RrRight----讀權(quán)限 */
/* WrRight----寫權(quán)限 */
/* SafeKeyID--線路保護(hù)密鑰標(biāo)識(shí)(0x00,0x01,0x02,0x03)*/
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Create_Binaryfile(Uint16 FileID, Uint16 FileLen, Uint16 RrRight, Uint16 WrRight, Uint16 SafeKeyID);
/****************************************************************/
/* 函數(shù)名: Selete_File() */
/* 功能: 選擇文件 */
/* 參數(shù): */
/* FileID-----2字節(jié)長度的文件標(biāo)識(shí)符 */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Select_File(Uint16 FileID);
/****************************************************************/
/* 函數(shù)名: Write_Binaryfile() */
/* 功能: 將數(shù)據(jù)加密并寫入帶線路加密和MAC保護(hù)的二進(jìn)制文件 */
/* 參數(shù): */
/* InputPtr---指向存放欲寫入數(shù)據(jù)數(shù)組的指針(注意:該 */
/* 數(shù)組的第一個(gè)字節(jié)存放寫入的數(shù)據(jù)長度, */
/* 每次寫入7個(gè)字節(jié),加上長度字節(jié)共8字節(jié)) */
/* DataLen----欲寫入數(shù)據(jù)的實(shí)際長度(不大于MAXDATA) */
/* Offset-----寫入數(shù)據(jù)相對文件的2字節(jié)偏移量 */
/* Keys-------指向存放線路保護(hù)密鑰數(shù)組的指針 */
/* Mode-------加解密方式(如果是8字節(jié)密鑰選DES8=0; */
/* 否則為16字節(jié)密鑰選DES16=1) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Write_Binaryfile(Uint16 *InputPtr,Uint16 DataLen, Uint16 Offset, Uint16 *Keys, Uint16 Mode);
/****************************************************************/
/* 函數(shù)名: Read_Binaryfile() */
/* 功能: 從帶線路加密和MAC保護(hù)的二進(jìn)制文件讀出密文數(shù)據(jù) */
/* 參數(shù): */
/* Offset-----讀出數(shù)據(jù)相對文件的2字節(jié)偏移量 */
/* DataLen----欲讀出的數(shù)據(jù)長度(16進(jìn)制表示) */
/* Keys-------指向存放線路保護(hù)密鑰數(shù)組的指針 */
/* OutputPtr--指向存放解密后數(shù)據(jù)數(shù)組的指針 */
/* Mode-------加解密方式(如果是8字節(jié)密鑰選DES8=0; */
/* 否則為16字節(jié)密鑰選DES16=1) */
/* 返回值: */
/* 返回unsigned short int型的16bits整數(shù) */
/* 如果正確,返回值等于9000 */
/****************************************************************/
Uint16 Read_Binaryfile(Uint16 Offset, Uint16 DataLen, Uint16 *Keys, Uint16 *OutputPtr, Uint16 Mode);
#endif
/******************************************************************************/
/* No more */
/******************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -