예제 #1
0
파일: Softdog.cs 프로젝트: shansheng/QDJJ
        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);
        }
예제 #2
0
        /// <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();
            }
        }
예제 #3
0
        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();
            }
        }