根据要求修改pin口令。

参数
[in] hcontexthandle
一个已经成功打开的设备的句柄。
[in] poldpin
根据参数指明含义。
[in] pnewpin
根据参数指明含义。
[in] ulflag
参数,定义如下
esf_change_so_pin:修改so_pin,此时oldpin、newpin分别为旧的so_pin密钥和新的so_pin密钥。
esf_change_user_pin:修改user_pin,此时oldpin、newpin分别为旧的user_pin密钥和新的user_pin密钥。
besf_unblock_user_pin:解锁user_pin,使其重试次数重为原值,此时oldpin为so_pin密钥,newpin中指定要重设的新user pin的重试次数。
esf_reload_user_pin:重新设定user_pin,此时oldpin为so_pin密钥,newpin为新的user_pin密钥及重试次数。
esf_reset_so_retry:重新设定so_pin的重试次数,此时oldpin为so_pin密钥,newpin为新的so_pin的重试次数。
要求
esfp_opendev
返回值
esf_success:成功
esf_rv_parameter_error:参数错误,函数调用的参数可能不符合要求
esf_rv_pin_lock:认证方法(个人密码)锁定
esf_rv_pin_error:pin口令错误
其它:见“api返回码说明”。
示例代码
esf_handle hcontexthandle = null;
esf_rv irv;
esf_pin oldpin;
esf_pin newpin;
char so_password[] = "123456";
char so_errorpassword[] = "abcje";
oldpin.m_ulpinlen = strlen(so_password);
memcpy(oldpin.m_uchpin, so_password,strlen(so_password) + 1);
newpin.m_ulpinlen = strlen(so_errorpassword);
memcpy(newpin.m_uchpin, so_errorpassword,strlen(so_errorpassword) + 1);
irv = esfp_changepin(hcontexthandle, &oldpin, &newpin, esf_change_so_pin);
return irv;
当user_pin未锁定时,不能重置其重试次数。
参见
esfp_verifypin