📄 encrypt.c
字号:
// 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 + -