lcd/INCLUDE/common.h
2026-05-22 17:19:03 +08:00

158 lines
5.3 KiB
C

#ifndef __COMMON_H__
#define __COMMON_H__
#include <dirent.h>
#include <stdio.h>
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