📄 crypto.h
字号:
/*#ifndef __JTCRYPTO_H__#define __JTCRYPTO_H__*//************************************************* Description: Handel for des3 when encrypt: InitDes3; Des3Encrypt; . . . Des3Encrypt; CloseDes3; when Dncrypt: InitDes3; Des3Decrypt; . . . Des3Decrypt; CloseDes3; note: don't forget the pass word used input Des3DeviceKey*********************************************/#define DES3KEYLIEGTN 24typedef void* HDES3;/************************************************* Description: Handel for sha1 usage: Sha1init; Sha1Updata; . . . Sha1Updata; Sha1Final; Sha1Close;*********************************************/typedef void* HSHA1;typedef void* HRSAPUBLICKEY;typedef void* HRSAPRIVEKEY;typedef unsigned char Byte;/************************************************* Description: init a des3 device parameter: key: nEncrypt: 1,encrypt 0,decrypt return: *********************************************/extern HDES3 InitDes3(Byte key[DES3KEYLIEGTN],int nEncrypt);/************************************************* Description: Generate a des3 key parameter: return: *********************************************/extern void CreateDes3Key(unsigned char *);/********************************************************************** Description: Encrypt data use des3 parameter: hDes3: a handle return by InitDes3(); input: someting you want to encrypt output: the result nLength: input data length,must be 8*x******************************************************************/extern void Des3Encrypt(HDES3 hDes3,const Byte* input,Byte* output,int nLength);/********************************************************************** Description: Decrypt data use des3 parameter: hDes3: a handle return by InitDes3(); input: someting you want to decrypt output: the result nLength: input data length,must be 8*x******************************************************************/extern void Des3Decrypt(HDES3 hDes3,const Byte* input,Byte* output,int nLength);/********************************************************************** Description: release des3 handle parameter: hDes3: a handle return by InitDes3();******************************************************************/extern void CloseDes3(HDES3 hDes3);/************************************************* Description: inti a Sha1 context parameter: return: new sha1 context*********************************************/extern HSHA1 Sha1Init();/********************************************************************** Description: updata a Sha1 context parameter: hSha1: handle return by Sha1Init pData: input data pointer nDataLength: input data length return:******************************************************************/extern void Sha1Update(HSHA1 hSha1,const Byte* pData,int nDatalength);/********************************************************************** Description: get Sha1 digist parameter: hSha1: handle return by Sha1Init pDigist: the digist buffer, for sha1 it must be 20 byte long return: ******************************************************************/extern void Sha1Final(Byte* pDigist,HSHA1 hSha1);/************************************************* Description: release a Sha1 context parameter: hSha1: handle return by Sha1Init return: *********************************************/extern void CloseSha1(HSHA1 hSha1);/************************************************* Description: create a rsa Publickey parameter: return: *********************************************/extern HRSAPUBLICKEY RsaCreatePublicKey();/************************************************* Description: release a Sha1 context parameter: hPublicKey: handle return by RsaCreatePublicKey return: *********************************************/extern void RsaRelesaePublicKey(HRSAPUBLICKEY hPublicKey);/************************************************* Description: create a rsa context parameter: return: *********************************************/extern HRSAPRIVEKEY RsaCreatePriveKey();/************************************************* Description: release a Sha1 context parameter: hPriveKey: handle return by RsaCreatePriveKey return: *********************************************/extern void RsaRelesaePriveKey(HRSAPRIVEKEY hPriveKey);/********************************************************************** Description: Device a pair of Key for rsa parameter: szSeed: random seed, can not be NULL pPulicKey: Rsa public key result pPriveKey: Rsa private key result nKeybits: key's length input bit return: new sha1 context******************************************************************/extern void RsaGenerateKeys(HRSAPUBLICKEY hPublicKey,HRSAPRIVEKEY hPriveKey,int nKeybits);/********************************************************************** Description: encrypt data use Rsa parameter: pPulicKey: Rsa public key szSeed: random seed, can not be NULL input: something you want to encrypt inputLength: encrypt data length output: encrypt result pLength[input/output]:the output buffer length, when function return it is the length of the result length return: 0,successs Note: Do not let inputLength > (Key Bits Length + 7) / 8 -11 always let *pLength >= (Key Bits Length + 7) / 8******************************************************************/extern int RsaEncrypt(HRSAPUBLICKEY hPublicKey,const Byte* input,int inputLength,Byte* output,int* pLength);/********************************************************************* Description: decrypt data use Rsa parameter: szSeed: random seed, can not be NULL pPriveKey: Rsa private key input: something you want to decrypt inputLength: decrypt data length output: decrypt result pLength[input/output]:the output buffer length, when function return it is the length of the result length return: 0,successs Note: Do not let inputLength > (Key Bits Length + 7) / 8 always let *pLength >= (Key Bits Length + 7) / 8******************************************************************/extern int RsaDecrypt(HRSAPRIVEKEY hPriveKey,const Byte* input,int inputLength, Byte* output,int* pLength);/*#endif */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -