Esempio n. 1
0
void check_decs(List_t decs)
{
  while (decs){
    Dec_t d = (Dec_t)decs->data;
    check_dec(d);
    decs = decs->next;
  }
  return;
}
Esempio n. 2
0
int delete_data(char *argv, char* str)
{
	char str_to_write[1024];
	int i0 = 0;
	int  fd_read;
	int  fd;
	int  ret;

	char sn_header[16];
	char serial_name[SN_MAX_LEN];
	char serial_number[SN_MAX_LEN];
	char *str_sn;
	char str_slip[] = "-";
	char arg_val[8][64];
	CARD_INFO *card;
	CARD_INFO *card_tmp;
	char *str_read;

	int fd0;
	char buf[sizeof(char)+1];
	char str_store[2048];
	int read_flag = 0;

	char cmd_buf[256];
	char data_buf[256];

	char *str_search; //[2048];
	char str_tmp[2048];
	char arg_full[256];
	char arg_full_non[256];
	int st_len;
	int sr_len;

	memset(str_to_write  , 0x0 , sizeof(str_to_write));
	memset(sn_header     , 0x0 , sizeof(sn_header));
	memset(serial_name   , 0x0 , sizeof(serial_name));
	memset(serial_number , 0x0 , sizeof(serial_number));
	memset(cmd_buf       , 0x0 , sizeof(cmd_buf));
	memset(data_buf      , 0x0 , sizeof(data_buf));
	memset(str_tmp       , 0x0 , sizeof(str_tmp));
	memset(arg_full      , 0x0 , sizeof(arg_full));
	memset(arg_full_non  , 0x0 , sizeof(arg_full_non));

	card = (CARD_INFO*) malloc(sizeof(CARD_INFO));
	card_tmp = (CARD_INFO*) malloc(sizeof(CARD_INFO));


	fd = open(DATA_PATH ,O_RDWR | O_CREAT,0666);
	if(fd < 0)
	{
		JCG("Error in open files!");
		return -1;
	}


	/* get args */
	while( i0 < (sizeof(arg_val)/sizeof(arg_val[0])))
	{
		memset(arg_val[i0], 0, sizeof(arg_val[0]));
		i0++;
	}

	/* get arguments */
	i0 = 0;
	sprintf(data_buf,"%s",argv);
	str_sn = strtok(data_buf,str_slip);
	while(str_sn != NULL)
	{
		if(i0 != 0)
			str_sn = strtok(NULL,str_slip);
		if(str_sn == NULL)
			break;
		sprintf(arg_val[i0], "%s", str_sn);

		JCG("arg_val[%d]:%s.\n",i0,arg_val[i0]);
		i0++;
		if(i0 > (sizeof(arg_val)/sizeof(arg_val[0])))
			break;
	}


	i0 = 0;
	while( i0 < (sizeof(arg_val)/sizeof(arg_val[0])) )
	{
		if((strncasecmp(arg_val[i0],"DEL", 3) == 0 ) \
				&& i0 < (sizeof(arg_val)/sizeof(arg_val[0]) - 2) )
		{
			JCG("arg_val[%d]:%s,arg[%d]:%s,arg[%d]:%s",i0,arg_val[i0], i0+1 ,arg_val[i0+1],i0+2,arg_val[i0+2]);
			//get sn by argument
			strcpy(serial_name   , arg_val[i0+1]);
			strcpy(serial_number , arg_val[i0+2]);

			sprintf(arg_full,"%s-%s\n",arg_val[i0+1],arg_val[i0+2]);
			sprintf(arg_full_non,"%s-%s",arg_val[i0+1],arg_val[i0+2]);

			/* Setup serial number */
			if(strlen(serial_number) != 0)
			{
				JCG("serial number is: %s",serial_number);
				ret = strip_sn_str(serial_number);
				if(ret < 0)
				{
					ret = -1;
					goto MAC_ERROR;
				}
				ret = check_dec(serial_number);
				if(ret < 0)
				{
					ret = -1;
					goto MAC_ERROR;
				}
			}
			else
			{
				JCG("serial number is wrong! shoule be ./mac_writer del-YHK-012345");
				ret = -1;
				goto MAC_ERROR;
			}
		}
		i0++;
	}

	JCG("serial number is:%s",serial_number);

	read_data(card, str_store);
	JCG("get read data:\n%s\n",str_store);

	memset(str_to_write,0x0,sizeof(str_to_write));

#ifdef ENABLE_STRUCT
	i0 = 0;
	while(card->next != NULL)
	{
		JCG("get read struct data:%s --> %s. serial_number is--> %s\n",card->name,card->number,serial_number);
		if(strcmp(card->number, serial_number) == 0 && strcmp(card->name, serial_name) == 0)
		{
		}
		else
		{
			sprintf(str_to_write,"%s%s-%s\n",str_to_write,card->name,card->number);
		}

		card_tmp = card;
		//memcpy(card_tmp , card, sizeof(CARD_INFO));
		if(card_tmp->next != NULL)
		{
			JCG("address -->0x%08x 0x%08x",card,card_tmp->next);
			card = (CARD_INFO*)card_tmp->next;

			JCG("address -->0x%08x 0x%08x",card,card_tmp->next);
			if(card->name == NULL || card->number == NULL)
			{
				break;
			}
			else if((strncasecmp(card->name, "YCT", 3) != 0) && strncasecmp(card->name,"YHK",3) !=0 )//|| card->next == NULL)
			{
				card  = NULL;
				break;
			}
			else
			{
				JCG("get read struct data:%s --> %s. serial_number is--> %s\n",card->name,card->number,serial_number);
			}
		}
		else
		{
			break;
		}
	}
	if(card != NULL)
	{
		JCG("get read struct data:\n%s --> %s\n",card->name,card->number);
		if(strcmp(card->number, serial_number) != 0)
			sprintf(str_to_write,"%s%s-%s\n",str_to_write,card->name,card->number);
	}
	JCG("data:%s",str_to_write);

#else		//not ENABLE_STRUCT
	JCG("str_store -->\n%s",str_store);
	JCG("arg_full -->%s",arg_full);
	JCG("arg_full_non -->%s",arg_full_non);
	str_search = strcasestr(str_store,arg_full);
	if(str_search == NULL)			//if use \n fail then with no \n
	{
		JCG();
		str_search = strcasestr(str_store,arg_full);
		if(str_search == NULL)
			return -1;
	}

	JCG("str_search --> %s",str_search);
	sr_len = strlen(str_store);
	st_len = strlen(str_search);
	strncpy(str_tmp,str_store,sr_len - st_len);
	JCG("str_tmp --> %s",str_tmp);
	sprintf(str_to_write,"%s%s",str_tmp,str_search + strlen(arg_full));

	JCG("delete-->%s",arg_full);
	JCG("str_tmp-->%s",str_tmp);
	JCG("str to write --> %s, strlen is --> %d",str_to_write, strlen(str_to_write));

#endif
	if(strlen(str_to_write) != 0)
	{
#ifdef USE_OPENSSL_RSA_ENCRYPT
	encrypt_write_data(str_to_write,0);
#else
	write(fd,str_to_write,strlen(str_to_write));
#endif
	}
	else
	{
		memset(str_to_write,0x0,sizeof(str_to_write));
		write(fd,str_to_write,sizeof(str_to_write));
	}

	close(fd);
	/*JCG("strlen of str to write is :%d",strlen(str_to_write));*/

#if 0
	/* write to flash */
	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"dd if=%s of=%s %s",DATA_PATH,SOURCE_DATA_PATH,CMD_ARGS_WRITE);
	system(cmd_buf);		/*system("dd if=/sdcard/sn.dat of=/dev/block/mmcblk1 seek=5200 bs=512");*/
	JCG("cmd-->%s",cmd_buf);
	sync();
#endif


	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"%s %s",CMD_PREFIX, "echo SUCESS!");
	system(cmd_buf);		/*system("/system/xbin/busybox echo SUCESS!");*/

	free(card_tmp);
	free(card);
	sync();
	return 0;
MAC_ERROR:
	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"%s %s",CMD_PREFIX, "echo ERROR!");
	system(cmd_buf);		/*system("echo ERROR!");*/
	free(card_tmp);
	free(card);
	LOGE("str format error!");
	return -1;
}
Esempio n. 3
0
int write_data(char *argv, char* str)
{
	char str_to_write[2048];
	int i0 = 0;
	int  fd_read;
	int  fd;
	int  ret;

	char empty_str[11] = "-";
	char sn_header[16];
	char serial_number[SN_MAX_LEN];
	char *str_sn;
	char str_slip[] = "-";
	char arg_val[8][64];
	char *str_read;

	int fd0;
	char buf[sizeof(char)+1];
	char str_store[2048];
	int read_flag = 0;

	char cmd_buf[256];
	char data_buf[256];

	memset(str_to_write  , 0x0 , sizeof(str_to_write));
	memset(sn_header     , 0x0 , sizeof(sn_header));
	memset(serial_number , 0x0 , sizeof(serial_number));
	memset(cmd_buf       , 0x0 , sizeof(cmd_buf));
	memset(data_buf      , 0x0 , sizeof(data_buf));

	/* read data from flash*/
	read_data(NULL, str_store);
	JCG("get read data:%s\n",str_store);

	/* get args */
	while( i0 < (sizeof(arg_val)/sizeof(arg_val[0])))
	{
		memset(arg_val[i0], 0, sizeof(arg_val[0]));
		i0++;
	}

	JCG();
	/* get arguments */
	i0 = 0;
	sprintf(data_buf,"%s",argv);
	str_sn = strtok(data_buf,str_slip);
	while(str_sn != NULL)
	{
		if(i0 != 0)
			str_sn = strtok(NULL,str_slip);
		if(str_sn == NULL)
			break;
		sprintf(arg_val[i0], "%s", str_sn);

		JCG("arg_val[%d]:%s.\n",i0,arg_val[i0]);
		i0++;
		if(i0 > (sizeof(arg_val)/sizeof(arg_val[0])))
			break;
	}


	i0 = 0;
	while( i0 < (sizeof(arg_val)/sizeof(arg_val[0])) )
	{
		if((strncasecmp(arg_val[i0],"YCT", 3) == 0 || strncasecmp(arg_val[i0],"YHK", 3) == 0 ) \
				&& i0 < (sizeof(arg_val)/sizeof(arg_val[0]) -1) )
		{
			JCG("arg_val[%d]:%s,arg[%d]:%s",i0,arg_val[i0], i0,arg_val[i0+1]);
			//get sn by argument
			strcpy(serial_number, arg_val[i0+1]);

			/* Setup serial number */
			if(strlen(serial_number) != 0)
			{
				sprintf(sn_header,"%s",arg_val[i0]);
				JCG("serial number is: %s",serial_number);
				ret = strip_sn_str(serial_number);
				if(ret < 0)
				{
					ret = -1;
					goto MAC_ERROR;
				}
				ret = check_dec(serial_number);
				if(ret < 0)
				{
					ret = -1;
					goto MAC_ERROR;
				}
			}
			else
			{
				JCG("serial number is wrong!");
				ret = -1;
				goto MAC_ERROR;
			}

			sprintf(str_to_write, "%s%s%s%s\n", str_to_write , \
				sn_header,empty_str,serial_number);
		}
		i0++;
	}

#if 0
	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"%s %s %s",CMD_PREFIX, "rm -rf ", DATA_PATH);
	system(cmd_buf);		/*system("rm -f dsn.dat ");*/
#endif

	fd = open(DATA_PATH ,O_RDWR | O_CREAT | O_APPEND ,0666);

	if(fd < 0)
	{
		JCG("Error in open files!");
		return -1;
	}

	JCG("read data : \n%s\n", str_store );
	JCG("str_to_write: \n%s\n", str_to_write );
	sprintf(str_store,"%s%s",str_store, str_to_write);
#ifdef USE_OPENSSL_RSA_ENCRYPT
	close(fd);
	//encrypt_write_data(str_store,0);
	encrypt_write_data(str_to_write,1);
#else
	write(fd,str_store,strlen(str_store));
	close(fd);
#endif
	/*JCG("strlen of str to write is :%d",strlen(str_to_write));*/

#if 0
	/* write to flash */
	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"dd if=%s of=%s %s",DATA_PATH,SOURCE_DATA_PATH,CMD_ARGS_WRITE);
	system(cmd_buf);		/*system("dd if=/sdcard/sn.dat of=/dev/block/mmcblk1 seek=5200 bs=512");*/
	JCG("cmd-->%s",cmd_buf);
	sync();
#endif

	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"%s %s",CMD_PREFIX, "echo SUCESS!");
	system(cmd_buf);		/*system("/system/xbin/busybox echo SUCESS!");*/

	sync();
	return 0;
MAC_ERROR:
	memset(cmd_buf, 0x0 , sizeof(cmd_buf));
	sprintf(cmd_buf,"%s %s",CMD_PREFIX, "echo ERROR!");
	system(cmd_buf);		/*system("echo ERROR!");*/
	LOGE("str format error!");
	return -1;
}