パスワードキーボード
4095 ワード
キーの初期化と使用手順:
1.PINpadパラメータPinpad_を設定するSetPPType()
2.Pinpadが正常Pinpadに接続されているかどうかを検査する接続()またはPinpad_connect2()
3.index 0,Pinpad_へのマスターキーのダウンロードLoadMasterKey()
4.0番のプライマリ・キーが存在するかどうかを検出し、Pinpad_Checkkey(0);
5.0番マスターキーを選択し、ユーザーパスワードPinpad_を入力GetPin();
QMFプロジェクトでは、EvedIFunc_OnCallFunc()の中のVMAC_InitDevices();奥のDevice_Init_Pinpad()関数は,暗号キーボードを初期化した.
Mobileの中に
EvdIFunc_OnActive()関数内のVMAC_InitDevices(0);関数の
open_pinpad(flag);関数はパスワードキーボードを初期化しました
サインした時
パスワードキーボードが再オープンし、プライマリ・キーが存在するかどうかを検出します.
そして
消費する時
プライマリ・キーが存在するかどうかを検出し、Pinpad_を介してGetPinはパスワードを取得し、
返品時にマスターパスワードを取得し、マスターキー検出を行わなかった
if(MmiUtil_InputPWD(LINE2, (char*)Disp, (char*)tmp, passwd_min_len, passwd_len, RIGHT_JST)<0)入力パスワード取得
1.PINpadパラメータPinpad_を設定するSetPPType()
2.Pinpadが正常Pinpadに接続されているかどうかを検査する接続()またはPinpad_connect2()
3.index 0,Pinpad_へのマスターキーのダウンロードLoadMasterKey()
4.0番のプライマリ・キーが存在するかどうかを検出し、Pinpad_Checkkey(0);
5.0番マスターキーを選択し、ユーザーパスワードPinpad_を入力GetPin();
QMFプロジェクトでは、EvedIFunc_OnCallFunc()の中のVMAC_InitDevices();奥のDevice_Init_Pinpad()関数は,暗号キーボードを初期化した.
void Device_Init_Pinpad(Term_Config *T_Config)
{
/* - */
switch(T_Config->mfixPrm.PP_In_Ext)
{
case INTERNAL_PINPAD:
Pinpad_SetPPType(INTERNAL_PINPAD, T_Config->mfixPrm .PP_DesType, CLEAR_FORMAT);
break;
case EXTERNAL_PINPAD:
Pinpad_SetPPType(EXTERNAL_PINPAD, T_Config->mfixPrm .PP_DesType, CLEAR_FORMAT);
break;
default:
return;
}
//if (T_Config->mfixPrm.PP_In_Ext == EXTERNAL_PINPAD) // Pinpad_Connect()
{
/* PINpad
MmiUtil_DispChinese(" ",1,3);*/
Pinpad_Close();
if(Pinpad_Connect() != VS_SUCCESS)
{
MmiUtil_DispChinese(" ", 1, 3);
SVC_WAIT(2000);
}
else
{
MmiUtil_DispChinese(" ", 1, 3);
}
}
MmiUtil_Reset();
return;
}
Mobileの中に
EvdIFunc_OnActive()関数内のVMAC_InitDevices(0);関数の
open_pinpad(flag);関数はパスワードキーボードを初期化しました
/***************************************************************************
** pinpad_open() -- open the pin pad communications port.
***************************************************************************/
void open_pinpad(int flag)
{
// flag == 0
char buf[20];
int type ;
NF_Get_Env("#ENCYPT", buf, 1); //
if(buf[0] == '1')
pos_cfg.tdes = 1; //3//3DES
else
pos_cfg.tdes = 0; //DES
type = MmiUtil_GetTerminalType(); //
if(type == _VX610 || type == _VX670 || type == _VX680 || type == _VX680C || type == _VX810 || type == _VX820)
{
NF_Put_Env("#PINPAD", "0", 1); //
}
NF_Get_Env("#PINPAD", buf, 1);
pos_cfg.pinpad_type = (buf[0] == '1');
/* , */
if(pos_cfg.tdes) // 3DES
{
/* PINpad */
if(pos_cfg.pinpad_type == 1)
Pinpad_SetPPType(EXTERNAL_PINPAD, PP222_3DES_MODE, CLEAR_FORMAT);
else//
Pinpad_SetPPType(INTERNAL_PINPAD, PP222_3DES_MODE, CLEAR_FORMAT);
}
else // DES
{
/* PINpad */
if(pos_cfg.pinpad_type == 1)
Pinpad_SetPPType(EXTERNAL_PINPAD, PP222_DES_MODE, CLEAR_FORMAT);
else
Pinpad_SetPPType(INTERNAL_PINPAD, PP222_DES_MODE, CLEAR_FORMAT);
}
/* PINpad */
if(flag) //flag == 0
{
if(pos_cfg.pinpad_type == 1)
disp_msg3(" ");
else
disp_msg3(" ");
}
if(pos_cfg.pinpad_type == 1) //
{
MmiUtil_UserClr(LINE2);
MmiUtil_DisplayLine((char*)" 2", LINE2);
wait_key(60);
buf[NF_Get_Env("#PINPORT", buf, sizeof(buf))] = 0; // /0
if(strlen(buf) <= 0) // com1 com2
strcpy(buf, "/dev/com2");
if(Pinpad_Connect2(buf) != VS_SUCCESS) //Iinpad_Connect2
{
if(flag)
{
disp_msg3(" ");
SVC_WAIT(2000);
}
}
else if(flag)
disp_msg3(" OK");
} // end if(pos_cfg)
else
{
MmiUtil_UserClr(LINE2);
MmiUtil_DisplayLine((char*)" 1", LINE2);
wait_key(60);
if(Pinpad_Connect() != VS_SUCCESS)
{
if(flag)
{
disp_msg3(" ");
SVC_WAIT(2000);
}
}
else if(flag)
disp_msg3(" OK");
}
}
サインした時
パスワードキーボードが再オープンし、プライマリ・キーが存在するかどうかを検出します.
そして
消費する時
プライマリ・キーが存在するかどうかを検出し、Pinpad_を介してGetPinはパスワードを取得し、
返品時にマスターパスワードを取得し、マスターキー検出を行わなかった
if(MmiUtil_InputPWD(LINE2, (char*)Disp, (char*)tmp, passwd_min_len, passwd_len, RIGHT_JST)<0)入力パスワード取得