#ifndef __COMMON_H__ #define __COMMON_H__ #include #include void PrintHex(char *prompt,unsigned char * data,int len); void PrintHex_1(unsigned char *data,int len); void PrintAscii(unsigned char *data,int len); void trim(char *str); int my_getdate( char date[9] ); int my_getyear(); int my_getmonth(); int my_getwday(); int my_getday(); int my_gethour(); int my_getmin(); int my_getsec(); void my_swap4byte(char text[4]); unsigned int my_getrnd(int cnt); int CalcLenByDir(char *dir); void my_GenerateMK(unsigned char *rand,int len); int my_checkdate(char date[8]); int alltrim(char *s); void byte_not(unsigned char *desc,unsigned char *src,int len); void byte_xor(unsigned char *desc,unsigned char *src,int len); void byte_sub(unsigned char *desc,unsigned char *src,int len); void byte_add(unsigned char *desc,unsigned char *src,int len); void getcrc_one(unsigned char *crc,unsigned char *data,int len); void GetErrMsg(int ErrNo,char *msg); char * GetLogTime(void); int SystemCmd(char * cmd); FILE * PopenCmd(char * cmd,char * flag); int FindProcess(char * name); void signal_set(); //函数功能接口定义区 void read_ini_file(); //按密钥结构将密钥内容写文件 int WritekeyToFile(unsigned char *keyfile, unsigned char *key_organizationnum, unsigned char *key_type, unsigned char *key_serialnum, unsigned int key_len, unsigned char *key_cryptograph, unsigned char *key_mac, unsigned char *key_starttime, unsigned char *key_endtime, unsigned char * key_index, unsigned char * key_algid); //从某个密钥文件中按密钥结构取该密钥的内容 int ReadkeyFromFile(unsigned char *keyfile, unsigned char *key_organizationnum, unsigned char *key_type, unsigned char *key_serialnum, unsigned int *key_len, unsigned char *key_cryptograph, unsigned char *key_mac, unsigned char *key_starttime, unsigned char *key_endtime, unsigned char * key_index, unsigned char * key_algid); //从某个密钥文件中取该密钥所属的机构号 int GetKeyOrganizationnumFromFile(unsigned char *keyfile, unsigned char *key_organizationnum, unsigned char *Key_Value); //从某个密钥文件中取该密钥所属的类型 int GetKeyTypeFromFile(unsigned char *keyfile, unsigned char *key_type, unsigned char *Key_Value); //从某个密钥文件中取该密钥的编号 int GetKeySerialnumFromFile(unsigned char *keyfile, unsigned char *key_serialnum, unsigned char *Key_Value); //从某个密钥文件中取该密钥的长度 int GetKeylenFromFile(unsigned char *keyfile, unsigned char *key_len, unsigned char *Key_Value, int *keylen); //从某个密钥文件中取该密钥的密文值 int GetKeyCryptographFromFile(unsigned char *keyfile, unsigned char *key_cryptograph, unsigned char *Key_Value); //从某个密钥文件中取该密钥明文md5_MAC int GetKeyMacFromFile(unsigned char *keyfile, unsigned char *key_mac, unsigned char *Key_Value); //从某个密钥文件中取该密钥的起始生命周期 int GetKeyStarttimeFromFile(unsigned char *keyfile, unsigned char *key_starttime, unsigned char *Key_Value); //从某个密钥文件中取该密钥的截至生命周期 int GetKeyEndtimeFromFile(unsigned char *keyfile, unsigned char *key_endtime, unsigned char *Key_Value); //从某个密钥文件中取该密钥主密钥加密索引 int GetKeyIndexFromFile(unsigned char *keyfile, unsigned char *key_index, unsigned char *Key_Value); //从某个密钥文件中取该密钥的算法模式 int GetKeyAlgidFromFile(unsigned char *keyfile, unsigned char *key_algid, unsigned char *Key_Value); //执行某个linux指令的函数 int MSystemCmd(char * cmd); //创建密钥文件夹 int SetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type); //获取当前密钥类型目录字符串 以及 字符串的长度 int GetKeyDir(unsigned char *dir, unsigned char *key_organizationnum, unsigned char *key_type); //文件名约束函数 int select_dir(const struct dirent *dir); void get_system_time(); void set_system_time(char * time); unsigned char GetKey(void); unsigned char WaitKeyin(void); unsigned char WaitKeyin_Combine_key(); int GetKeyValueFile(char *filename, char* Key, char *KeyValue); int SetKeyValueFile(char *file_name, char *key_name, char *key_value); void append_key(char * file_name,char * key,char * value); #define E_SYS_USER 0x70 #define E_SYS_PWD_ERROR 0x71 int check_sys_pwd(const char *pwdtext); void modify_sys_pwd_behave(char * user_name ,char * pwd); void modify_sys_pwd(int old_pwd_len,char * old_pwd,int new_pwd_len,char * new_pwd); void system_login(unsigned char * pwd, int pwd_len); void sysUsecTime(long * sec, long *usec); int CheckHex(int length, unsigned char *hex); int CheckDec(int length, unsigned char *dec); int GetDecLen(int length, unsigned char *dec); int GetHexLen(int length, unsigned char *Hex); int CheckLen(int inlen, int length); int CheckDataLen(int inlen, int length); int check_K(int length, unsigned char *hex); void AddOddParity(int len, unsigned char *key); int VerifyOddParity(int len, unsigned char *key); char variant(unsigned char ch); int check_N(unsigned char len,unsigned char *data); void ScanDec(int len, unsigned char *inBuf, unsigned char *outBuf); void ScanDecForCSC(int len, unsigned char *inBuf, unsigned char *outBuf); void bcd_to_dsp(char * bcd, int len, char *dsp); void read_ini_file(); void reduced_bcd_to_dsp(char * bcd, int len, char *dsp); void vip_dsp_to_bcd(char * dsp, int len, char *bcd); #endif