⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encrypt.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:

//	2004.6.1 WYJ add for encrypt  _ENCRYPT


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


#if defined (NEW_FRAME)

	#include "typedefs.h"
	#include "vsi.h"
	#include "pei.h"
	#include "custom.h"
	#include "gsm.h"

#else  /* NEW_FRAME */

	#include "stddefs.h"
	#include "custom.h"
	#include "gsm.h"
	#include "vsi.h"

#endif /* NEW_FRAME */

#include "Mfw_sys.h"

#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_phb.h"
#include "mfw_sms.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "Mfw_cm.h"
#include "dspl.h"
#include "MmiMmi.h"
#include "MmiMain.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiCall.h"
#include "MmiMenu.h"
#include "MmiSoftKeys.h"
#include "MmiResources.h"
#include "MmiBlkLangDB.h"
#include "MmiBookUtils.h"
#include "MmiEditor.h"
#include "MmiEditor_i.h"
#include "MmiBookshared.h"
#include "mmiSmsMenu.h"
#include "Mmismssend.h"
#include "mmiutilapi.h"

#include "mmidialogs.h"
#include "mmitextinput.h"


#include "encrypt.h"


/* 主窗口事件 */
#define	ENCRYPT_INIT			1			// 新建窗口
#define	ENCRYPT_DESTROY		2			// 窗口销毁


// 窗口数据
typedef struct
{
	T_MMI_CONTROL   mmi_control;
	T_MFW_HND       	parent_win;
	T_MFW_HND       	win;
	T_MFW_HND       	kbd;
	T_MFW_HND       	edit_win;				
    	T_EDITOR_DATA   edit_data;				// 编辑框 
    	char				name[11];
} T_ENCRYPT_DATA;//wyj


extern T_idle idle_data;                       


static  	T_MFW_HND 	Encrypt_Create (T_MFW_HND parent_win);
static 	void 		Encrypt_DialogCB (T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static 	int 			Encrypt_win_cb(T_MFW_EVENT event, T_MFW_WIN * win);
static 	int 			Encrypt_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
static 	int 			Encrypt_Destroy (T_MFW_HND win);


static	void 		Set_New_Editor(T_MFW_HND win);
static 	void			New_EditorCB( T_MFW_HND win,USHORT Identifier,UBYTE reason);


T_ENCRYPT	Encrypt_ffs;		//ffs里 
char key_input[10];
char key_flash[10];
char imei_temp[15];
char imei_front[8];
char imei_back[9];
char encrypt_result[20];
char encrypt[20];

long int key_input_long;
long int key_flash_long;
long int imei_front_long;
long int imei_back_long;

/* 2004/06/08, zhq, add for production test purpose. */
extern unsigned short gl_mainboardtype;


/* 2004/06/08, zhq, add for production test purpose. */
unsigned short Set_Encrypt_Key_MMI(unsigned short encrypt_key)
{
	
	T_FFS_STAT 	s;	
	int			status;	
	/* 读数据到Encrypt_ffs */
	status = ffs_stat("/mmi/mi", &s);
	if(status != EFFS_NOTFOUND)			// 读数据
	{
	status = ffs_fread("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	Encrypt_ffs.a = encrypt_key;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	}
	else								// 创建一个初始化文件
	{
	memset(&Encrypt_ffs, 0, sizeof(T_ENCRYPT));
	Encrypt_ffs.a = encrypt_key;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	}
	return status;
}

unsigned short Get_Encrypt_Key_MMI(unsigned short* encrypt_key)
{
	
	T_FFS_STAT 	s;	
	int			status;	
	/* 读数据到Encrypt_ffs */
	status = ffs_stat("/mmi/mi", &s);
	if(status != EFFS_NOTFOUND)			// 读数据
	{
	status = ffs_fread("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	*encrypt_key = (unsigned short)Encrypt_ffs.a;	/* zhq, max 65536. */
	}
	else								// 创建一个初始化文件
	{
	memset(&Encrypt_ffs, 0, sizeof(T_ENCRYPT));
	*encrypt_key = (unsigned short)Encrypt_ffs.a ;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	}
	return status;
}

/* 2004/06/08, zhq, add for production test purpose. */
unsigned short Set_MainboardType_MMI(unsigned short MainboardType)
{
	
	T_FFS_STAT 	s;	
	int			status;	
	/* 读数据到gl_mainboardtype */
	status = ffs_stat("/mmi/MainboardType", &s);
	if(status != EFFS_NOTFOUND)			// 读数据
	{
	status = ffs_fread("/mmi/MainboardType", &gl_mainboardtype, sizeof(gl_mainboardtype));
	gl_mainboardtype = MainboardType;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/MainboardType", &gl_mainboardtype, sizeof(gl_mainboardtype));
	}
	else								// 创建一个初始化文件
	{
	gl_mainboardtype = MainboardType;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/MainboardType", &gl_mainboardtype, sizeof(gl_mainboardtype));
	}
	return status;
}

/* 2004/06/08, zhq, add for production test purpose. */
unsigned short Get_MainboardType_MMI(unsigned short* MainboardType)
{
	
	T_FFS_STAT 	s;	
	int			status;	
	/* 读数据到gl_mainboardtype */
	status = ffs_stat("/mmi/MainboardType", &s);
	if(status != EFFS_NOTFOUND)			// 读数据
	{
	status = ffs_fread("/mmi/MainboardType", &gl_mainboardtype, sizeof(gl_mainboardtype));
	*MainboardType = gl_mainboardtype;	/* zhq, max 65536. */
	}
	else								// 创建一个初始化文件
	{
	gl_mainboardtype = 0;  //MAINBOARD_188	/* zhq, default to M188. */
	*MainboardType = gl_mainboardtype;	/* zhq, max 65536. */
	status = ffs_fwrite("/mmi/MainboardType", &gl_mainboardtype, sizeof(gl_mainboardtype));
	}
	return status;
}

int Encrypt_Main()
{
T_MFW_HND 	parent 	= mfwParent( mfw_header());
T_MFW_HND 	win 	= Encrypt_Create(parent);
T_FFS_STAT 	s;	
int			status;		


	/* 读数据到Encrypt_ffs */
	status = ffs_stat("/mmi/mi", &s);
	if(status != EFFS_NOTFOUND)			// 读数据
	{
		status = ffs_fread("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	}
	else								// 创建一个初始化文件
	{
		memset(&Encrypt_ffs, 0, sizeof(T_ENCRYPT));
		status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
	}

   	if(win NEQ NULL)
   	{
   	  	SEND_EVENT(win, ENCRYPT_INIT, 0, 0);
   	}
   	return 1;
}


T_MFW_HND 		Encrypt_Create (T_MFW_HND parent_win)
{
T_MFW_WIN	*win;
T_ENCRYPT_DATA	*data = (T_ENCRYPT_DATA *)ALLOC_MEMORY (sizeof (T_ENCRYPT_DATA));

	data->win = win_create(parent_win, 0, MfwWinVisible, (T_MFW_CB)Encrypt_win_cb);
	
	if (data->win EQ 0)
		return 0;

	data->kbd = kbd_create (data->win, KEY_ALL, (T_MFW_CB)Encrypt_kbd_cb);
	data->edit_win = NULL;
	
	/* Create window handler */
	data->mmi_control.dialog    = (T_DIALOG_FUNC)Encrypt_DialogCB;/* dialog main function    */
	data->mmi_control.data      = data;
	data->parent_win 			= parent_win;
	win                         = ((T_MFW_HDR *)data->win)->data;
	win->user                   = (void *) data;
	
	/* return window handle	*/
	return data->win;
}


/* 捕获主窗口事件处理函数 */
static void Encrypt_DialogCB (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN       *win_data       = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA      *data           = (T_ENCRYPT_DATA *)win_data->user;


	switch(event)
	{
	case  	ENCRYPT_INIT:
		/* 启动编辑窗口命名 */
		Set_New_Editor(win);
        	data->edit_data.Callback          = (T_EDIT_CB)New_EditorCB;

        	if( data->edit_data.mode == TEXTINPUT_MODE )
            		data->edit_win = text_input(win, &(data->edit_data));
        	else
            		data->edit_win = editor_start(win, &(data->edit_data));

		break;	

	case	ENCRYPT_DESTROY:
		// 预览结束
		Encrypt_Destroy(win);
		break;
	}
}


/* 捕获主窗口显示回调函数 */
static int Encrypt_win_cb(T_MFW_EVENT event, T_MFW_WIN * win)
{
T_ENCRYPT_DATA	   *data = (T_ENCRYPT_DATA *)win->user;  

	switch(event)
	{
	case  MfwWinVisible:
		dspl_ClearAll();
		dspl_TextOut(0, 0, 0, (char *)encrypt);
		return MFW_EVENT_REJECTED;

	default:
		return MFW_EVENT_REJECTED;
	}

	return MFW_EVENT_CONSUMED;
}


/* 捕获主窗口按键回调函数 */
static int Encrypt_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard)
{
T_MFW_HND		win			= mfw_parent(mfw_header());
T_MFW_WIN		*win_data	= ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA		*data		= (T_ENCRYPT_DATA*)win_data->user; 

	switch (keyboard->code)
	{
	default:
		Encrypt_Destroy(win);
		break;
	}

	return MFW_EVENT_CONSUMED;
}

static int Encrypt_Destroy (T_MFW_HND win)
{
T_MFW_WIN        *win_data   = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA       *data       = (T_ENCRYPT_DATA *)win_data->user;			

	kbd_delete(data->kbd);				// Delete keyboard handlers
	win_delete(win);					// Delete window

	FREE_MEMORY((UBYTE *)data, sizeof(T_ENCRYPT_DATA));		// Destroy data structure

	return 1;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -