亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? comm.c

?? 一個C語言編寫的串口程序
?? C
字號:
/*****************************
comm.c:對密碼器,下載機操作函數
編制人:李健
編制日期:2001/8/31
修改日期:
動態連接:libzfmm.so
*****************************/

#define	 Debug			0

#include <stdio.h>
#include "comm.h"

#define  MACH_ID_LEN		10	/*	機具編號	*/
#define  CHIP_SN_LEN		8	/*	芯片序列號	*/
#define  ACCU_LEN		32	/*	帳號		*/
#define  CHIP_ID_LEN		32	/*	芯片ID		*/
#define  VK_LEN			160	/*	VK		*/
#define  KEY_NUM_LEN		2	/*	密鑰號		*/
#define  AK_LEN			32	/*	AK支		*/
#define  SIG_LEN		16	/*	SIG		*/
#define  UNLOCK_CODE_LEN	16	/*	解鎖密碼	*/
#define  PADDING_LEN		30	/*	填充位 0	*/
#define  SERVICE_LEN		2	/*	業務種類	*/
#define  DATE_LEN		8	/*	日期		*/
#define  TICKET_NUM_LEN		8	/*	憑證號碼	*/
#define  BANLANCE_LEN		16	/*	金額		*/
#define  PAY_CODE_LEN		20	/*	聯機支付密碼長度*/
#define  ICZFMM_LEN		500	/*	對照表長度	*/


/*	讀機具號和芯片SN ,出口參數MACH_ID,CHIP_SN	*/ 
int 	Read_Sn(char *MACH_ID,char *CHIP_SN)
{
	int ret;
	char rece_buffer[PACKLEN];

	memset(rece_buffer,0,PACKLEN);

	ret=PORT_RW(READ_SN,"",rece_buffer);
	#if Debug>0
	fprintf(stderr,"\nRead_Sn ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	#if Debug>0
	fprintf(stderr,"rece_buffer=%s\n",rece_buffer);
	#endif

	strncpy(MACH_ID,rece_buffer,MACH_ID_LEN);
	strncpy(CHIP_SN,&rece_buffer[MACH_ID_LEN],CHIP_SN_LEN);
	
	return True;

 }

/*	生成密鑰對,入口參數:ACCU,出口參數:CHIP_ID,VK	*/
int 	Gen_Keypair(char *ACCU,char *CHIP_ID,char *VK)
{
	int ret;
	char rece_buffer[PACKLEN];
	char send_buffer[PACKLEN];
	char accu[ACCU_LEN];

	memset(rece_buffer,0,PACKLEN);
	memset(send_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,accu);

	ret=PORT_RW(GEN_KEYPAIR,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n生成密鑰對ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	#if Debug>0
	fprintf(stderr,"rece_buffer=%s\n",rece_buffer);
	#endif

	strncpy(CHIP_ID,rece_buffer,CHIP_ID_LEN);
	strncpy(VK,&rece_buffer[CHIP_ID_LEN],VK_LEN);

	return True;
}

/*	下載AK支,入口參數:ACCU,KEY_NUM,AK支		*/
int 	Load_Ak(char *ACCU,char *KEY_NUM,char *AK)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char accu[ACCU_LEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,accu);
	strcat(send_buffer,KEY_NUM);
	strcat(send_buffer,AK);

	ret=PORT_RW(LOAD_AK,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n下載AKret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	#if Debug>0
	fprintf(stderr,"rece_buffer=%s\n",rece_buffer);
	#endif

	return True;
}

/*	刪除帳號,入口參數:ACCU				*/
int 	Del_Accu(char *ACCU)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char accu[ACCU_LEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,accu);

	ret=PORT_RW(DEL_ACCU,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n刪除帳號ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	return True;
}

/*	增發簽名,入口參數:ACCU,CHIP_ID,VK,出口參數:SIG	*/
int 	Add_Sig(char *ACCU,char *CHIP_ID,char *VK,char *SIG)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char accu[ACCU_LEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,accu);
	strcat(send_buffer,CHIP_ID);
	strcat(send_buffer,VK);

	ret=PORT_RW(ADD_SIG,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n增發ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	strncpy(SIG,rece_buffer,SIG_LEN);

	return True;
}

/*	解鎖,入口參數:UNLOCK_CODE			*/
int 	Unlock_Mach(char *UNLOCK_CODE)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	strcat(send_buffer,UNLOCK_CODE);

	ret=PORT_RW(UNLOCK,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n解鎖ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	return True;
}

/*	發行機具,入口參數:UNLOCK_CODE			*/
int 	Dist_Mach(char *UNLOCK_CODE)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	strcat(send_buffer,UNLOCK_CODE);

	ret=PORT_RW(DIST_MACH,send_buffer,rece_buffer);
	#if Debug>0
	fprintf(stderr,"\n發行機具ret=%d\n",ret);
	#endif
	if (ret!=True)	
		return ret;

	#if Debug>0
	fprintf(stderr,"發行機具rece_buffer=%s\n",rece_buffer);
	#endif

	return True;
}

/*	聯機計算支付密碼,入口參數:PLAIN_TXT:(ACCU,SERVICE,DATE,TICKET_NUM,
						BANLANCE)	
	 		 出口參數:PAY_CODE		*/
int 	Conn_Calu(char *PLAIN_TXT,char *PAY_CODE)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char PADDING[PADDING_LEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);


	/*	填充0		*/
	memset(PADDING,'0',PADDING_LEN);

	strncpy(send_buffer,PADDING,PADDING_LEN);
	strncpy(&send_buffer[30],PLAIN_TXT,strlen(PLAIN_TXT));

	ret=PORT_RW(CONN_CALU,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	#if Debug>0
	fprintf(stderr,"rece_buffer=%s\n",rece_buffer);
	#endif

	strncpy(PAY_CODE,rece_buffer,PAY_CODE_LEN);

	return True;
}


/******************************************************************************/
/*	初始化IC卡,入口參數:ICMM					      */
/******************************************************************************/
int 	Init_Ic(char *ICMM)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	strcat(send_buffer,ICMM);

	ret=PORT_RW(INIT_IC,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	return True;
}

/******************************************************************************/
/*	驗證密碼,入口參數:ICMM					      */
/******************************************************************************/
int 	Ver_Icmm(char *ICMM)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	strcat(send_buffer,ICMM);

	ret=PORT_RW(VER_ICMM,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	return True;
}

/******************************************************************************/
/*	修改密碼,入口參數:ICMM					      */
/******************************************************************************/
int 	Chg_Icmm(char *ICMM)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	strcat(send_buffer,ICMM);

	ret=PORT_RW(CHG_ICMM,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	return True;
}

/******************************************************************************/
/*	比較算法芯片號							      */
/******************************************************************************/
int 	Comp_Chipno()
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);

	ret=PORT_RW(COMP_CHIPNO,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	return True;
}

/******************************************************************************/
/*	產生支付密碼對照表,入口參數:ICMM
				    ACCU,SERVICE,DATE,TICKET_NUM_B,TICKET_NUM_E	
	 		   出口參數:PAY_CODE				      */
/******************************************************************************/
int 	Iczfmm(char *ICMM,char *ACCU,char *SERVICE,char *DATE,
	       char *TICKET_NUM_B,char *TICKET_NUM_E,char *PAY_CODE)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char accu[ACCU_LEN];
	char PADDING[PADDING_LEN];
	
	ret=Comp_Chipno();
	if (ret!=True)	
		return 99;

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	填充0		*/
	memset(PADDING,'0',PADDING_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,PADDING);
	strcat(send_buffer,ICMM);
	strcat(send_buffer,accu);
	strcat(send_buffer,SERVICE);
	strcat(send_buffer,DATE);
	strcat(send_buffer,TICKET_NUM_B);
	strcat(send_buffer,TICKET_NUM_E);

	ret=PORT_RW(ICZFMM,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	strncpy(PAY_CODE,rece_buffer,ICZFMM_LEN);

	return True;
}

/******************************************************************************/
/*	ACE平臺產生支付密碼對照表,入口參數:ICMM,ACCU,PLAIN_TXT
	PLAIN_TXT包括 SERVICE,DATE,TICKET_NUM_B,TICKET_NUM_E	
	 		          出口參數:PAY_CODE			      */
/******************************************************************************/
int 	ACE_Iczfmm(char *ICMM, char *ACCU,char *PLAIN_TXT,char *PAY_CODE)
{
	int ret;
	char send_buffer[PACKLEN];
	char rece_buffer[PACKLEN];
	char accu[ACCU_LEN];
	char PADDING[PADDING_LEN];
	
	ret=Comp_Chipno();
	if (ret!=True)	
		return 99;

	memset(send_buffer,0,PACKLEN);
	memset(rece_buffer,0,PACKLEN);
	memset(accu,0,ACCU_LEN);

	/*	填充0		*/
	memset(PADDING,'0',PADDING_LEN);

	/*	過濾帳號	*/
	ACCU_accu(ACCU,accu);

	strcat(send_buffer,PADDING);
	strcat(send_buffer,ICMM);
	strcat(send_buffer,accu);
	strcat(send_buffer,PLAIN_TXT);

	ret=PORT_RW(ICZFMM,send_buffer,rece_buffer);
	if (ret!=True)	
		return ret;

	strncpy(PAY_CODE,rece_buffer,ICZFMM_LEN);

	return True;
}
/*	過濾帳號				*/
ACCU_accu(char *inbuf,char outbuf[32])
{
	int i,j;
	
	j=0;
	memset(outbuf,'0',32);

	for(i=strlen(inbuf)-1;i>=0;i--)
	  if (inbuf[i]>='0'&&inbuf[i]<='9')
	  {
		outbuf[31-j]=inbuf[i];
		j++;
	  }
	
	return;
}

/*				*/
fillamt(char *inbuf,char outbuf[16])
{
	int i,j;
	
	j=0;
	memset(outbuf,'0',16);
	for(i=strlen(inbuf)-1;i>=0;i--)
	  if (inbuf[i]>='0'&&inbuf[i]<='9')
	  {
		outbuf[15-j]=inbuf[i];
		j++;
	  }
	
	return;
}

/*				*/
fillzfmm(char *inbuf,char outbuf[20])
{
	int i,j;
	
	j=0;
	memset(outbuf,'0',20);

	for(i=strlen(inbuf)-1;i>=0;i--)
	  if (inbuf[i]>='0'&&inbuf[i]<='9')
	  {
		outbuf[19-j]=inbuf[i];
		j++;
	  }
	
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香婷婷综合色啪| 亚洲精品成a人| 黄页视频在线91| 欧美大片一区二区三区| 久久精品国产99久久6| 91精品国产色综合久久ai换脸| 亚洲成人免费电影| 91精品国产一区二区三区蜜臀| 五月婷婷激情综合网| 欧美一区二区三区免费视频| 麻豆国产一区二区| 国产清纯白嫩初高生在线观看91 | 一区二区三区中文字幕| 在线观看日韩电影| 日韩高清电影一区| 国产香蕉久久精品综合网| 成人免费视频视频| 亚洲一区在线电影| 日韩欧美亚洲一区二区| 福利一区在线观看| 亚洲视频小说图片| 91精品国产91久久综合桃花| 国产精品一区二区在线看| 日韩毛片在线免费观看| 中文字幕制服丝袜成人av | 成人一区二区三区在线观看| 最新日韩av在线| 亚洲激情第一区| 91精品国产欧美一区二区| 久久se这里有精品| 亚洲日本韩国一区| 91精品国产综合久久久久久久 | 久久99精品久久久久婷婷| 国产精品视频九色porn| 337p亚洲精品色噜噜噜| 成人免费毛片片v| 日韩激情av在线| 国产精品毛片久久久久久久| 欧美日韩久久久一区| 国产.欧美.日韩| 日韩激情一区二区| 亚洲视频中文字幕| 久久综合国产精品| 91.成人天堂一区| 91亚洲精品久久久蜜桃| 成人午夜在线免费| 91麻豆免费在线观看| 日韩精彩视频在线观看| 精品一区二区久久| 亚洲男帅同性gay1069| 日韩视频免费观看高清完整版在线观看| 成人黄色在线网站| 久久99精品久久久久久动态图 | a亚洲天堂av| 久久99热99| 午夜精品一区二区三区免费视频 | 蜜臀av一区二区在线免费观看 | 国产高清久久久| 男男gaygay亚洲| 亚洲成人777| 亚洲精品福利视频网站| 国产精品国产三级国产aⅴ中文| 日韩三级在线观看| 欧美一区二区视频免费观看| 91久久国产综合久久| 成人午夜在线免费| 国产91清纯白嫩初高中在线观看| 成人欧美一区二区三区| 久久精品视频一区| 久久婷婷一区二区三区| 欧美一区二区三区婷婷月色 | 亚洲精品一区二区三区精华液| 欧美日韩一区二区三区视频 | 成人av资源站| 粉嫩在线一区二区三区视频| 卡一卡二国产精品| 精品一区二区久久久| 精品一区二区影视| 国内精品国产成人| 韩国精品久久久| 国产一区二区三区精品欧美日韩一区二区三区 | a美女胸又www黄视频久久| 国产福利91精品一区| 国产精品羞羞答答xxdd| 国产在线看一区| 国产精品99久久久| 国产成人免费在线| 成人高清视频免费观看| aaa国产一区| 在线观看视频一区二区欧美日韩| 色综合久久久网| 91电影在线观看| 欧美日韩一级二级| 日韩欧美在线1卡| 久久久91精品国产一区二区三区| 久久精品一区二区| ...中文天堂在线一区| 夜夜揉揉日日人人青青一国产精品| 亚洲夂夂婷婷色拍ww47| 亚洲精品老司机| 99国产精品视频免费观看| av影院午夜一区| 色激情天天射综合网| 欧美日韩国产精选| 欧美大尺度电影在线| 久久精品视频在线免费观看| 国产精品久久久久久久第一福利| 亚洲精品亚洲人成人网| 日韩不卡手机在线v区| 国产一区二区网址| 91首页免费视频| 欧美挠脚心视频网站| 久久日韩粉嫩一区二区三区| 国产精品一区二区久久不卡| av亚洲产国偷v产偷v自拍| 欧美疯狂做受xxxx富婆| 久久久精品人体av艺术| 一区二区不卡在线播放| 麻豆国产欧美日韩综合精品二区| 成人午夜视频在线| 日韩一区和二区| 中文字幕一区二区三| 免费一区二区视频| 99久久伊人精品| 欧美成人video| 亚洲激情av在线| 国产精品一品视频| 欧美日韩精品一区二区三区四区| 久久久久久一级片| 亚洲一区二区在线免费看| 国产东北露脸精品视频| 欧美精品久久99久久在免费线| 久久久久国产精品免费免费搜索| 亚洲成人一二三| 99国产精品久久久久久久久久| 欧美mv和日韩mv的网站| 夜夜嗨av一区二区三区网页| 国产成人av电影| 日韩欧美一区电影| 亚洲国产乱码最新视频| 国产精品456| 日韩欧美一二三四区| 亚洲一区二区成人在线观看| 成人丝袜高跟foot| 精品电影一区二区| 免费在线观看视频一区| 欧美三级日本三级少妇99| 国产精品美女久久久久aⅴ国产馆| 久久99精品一区二区三区三区| 欧美人xxxx| 亚洲成av人片一区二区| 色综合久久久久| 亚洲欧洲精品一区二区三区| 国产成人av影院| 久久久一区二区三区| 久久激情五月婷婷| 欧美一级在线观看| 免费在线观看日韩欧美| 4hu四虎永久在线影院成人| 亚洲综合久久av| 欧美在线观看一区| 亚洲午夜激情网页| 在线观看国产日韩| 亚洲一区二区三区激情| 欧洲视频一区二区| 亚洲一二三专区| 欧美亚一区二区| 午夜亚洲福利老司机| 91黄色免费版| 亚洲国产综合色| 欧美午夜寂寞影院| 亚洲成人三级小说| 欧美精品黑人性xxxx| 欧美aaaaa成人免费观看视频| 欧美一级二级在线观看| 日本成人在线不卡视频| 日韩欧美成人一区| 激情欧美一区二区三区在线观看| 久久久久久久久久久久久久久99| 国产曰批免费观看久久久| 久久久精品欧美丰满| 不卡欧美aaaaa| 一片黄亚洲嫩模| 在线不卡的av| 激情久久五月天| 国产精品乱码人人做人人爱| 一本到不卡免费一区二区| 亚洲va欧美va人人爽午夜| 91精品综合久久久久久| 激情小说亚洲一区| 国产精品高潮呻吟久久| 在线观看日韩高清av| 蜜臀av性久久久久av蜜臀妖精| 精品久久一区二区| 粉嫩高潮美女一区二区三区| 一区二区三区自拍| 精品久久久久久无| 成人a级免费电影| 五月天激情综合网| 国产拍欧美日韩视频二区|