public static SoftdogProtocol ValidateLocal() { var message = "验证不通过"; var result = new SoftdogProtocol(); var pwd = "JJSoft0912"; var driver = new LivingDog(); var hardware = default(LivingDog.LIV_hardware_info); var status = 0; try { status = driver.Grand_OpenDog(DogCode, 0); hardware = driver.Grand_GetHardware_info(); switch (hardware.RetCode) { case 0: if (driver.Grand_Passwd(1, pwd) == LivingDog.LIV_SUCCESS) { byte[] outByte = new byte[50]; if (driver.Grand_Read(1, outByte) == LivingDog.LIV_SUCCESS) { string strs = System.Text.ASCIIEncoding.Default.GetString(outByte); //3.领先版 4是专业版 5是旗舰版 6是网络版 if (strs[3] == '1' || strs[4] == '1' || strs[5] == '1' || strs[6] == '1') //加密狗有效性验证 { goto success; } } } break; default: break; } } catch (Exception e) { message = e.Message; } finally { driver.Grand_CloseDog(); } result.Error = true; result.Message = message; return(result); success: result.Success = true; result.SerialNumber = Encoding.Default.GetString(hardware.serialNumber); result.Error = false; return(result); }
/// <summary> /// 申请一次加密狗验证(仅验证是否是已经初始化的加密狗) /// 附带功能验证 /// </summary> public int Completed() { LivingDog m_LivingDog = new LivingDog(); try { int result = m_LivingDog.Grand_OpenDog(LIV_APP_CODE, 0); this.CurrLivInfo = m_LivingDog.Grand_GetHardware_info(); //密码验证 switch (this.CurrLivInfo.RetCode) { case 0: //成功继续做 //判断加密狗的合法性 (密码验证+数据验证) if (!ispass) { ispass = IsPassValie(m_LivingDog); } if (ispass) { this.Parent.ClientResult.IsOwenr = true; this.Parent.ClientResult.IsPassValie = true; OnHardWareSucc(this, _GlodSoftDiscern.TRY_SUCCESS); //功能合法验证 this.ReadHandle(m_LivingDog); return(_GlodSoftDiscern.TRY_SUCCESS); } else { this.Parent.ClientResult.IsOwenr = false; this.Parent.ClientResult.IsReadHeandle = false; OnHardWareSucc(this, _GlodSoftDiscern.TRY_SUCCESS); return(_GlodSoftDiscern.TRY_ERROR_NOFUNCTION); } default: //其他错误关闭系统 this.Parent.ClientResult.IsPassValie = false; this.Parent.ClientResult.IsOwenr = false; this.Parent.ClientResult.IsReadHeandle = false; OnHardWareSucc(this, _GlodSoftDiscern.TRY_ERROR); return(_GlodSoftDiscern.TRY_ERROR); } } catch { this.Parent.ClientResult.IsOwenr = false; return(_GlodSoftDiscern.TRY_ERROR); } finally { m_LivingDog.Grand_CloseDog(); } }
public int getDogInfo() { LivingDog m_LivingDog = new LivingDog(); try { m_LivingDog.Grand_OpenDog(LIV_APP_CODE, 0); CurrLivInfo = m_LivingDog.Grand_GetHardware_info(); //密码验证 if (CurrLivInfo.RetCode == 0) { //判断加密狗的合法性 (密码验证+数据验证) if (!ispass) { ispass = CanPassValie(m_LivingDog); } if (ispass) { IsOwenr = true; IsPassValie = true; this.ReadHandle(m_LivingDog); return(0); } else { IsOwenr = false; IsReadHeandle = false; return(3);//功能不存在 } } else { this.IsPassValie = false; this.IsOwenr = false; this.IsReadHeandle = false; return(-1); } } catch { IsOwenr = false; return(-1); } finally { m_LivingDog.Grand_CloseDog(); } }