Пример #1
0
        public ResultArgs CreateAppAuthenDongle(String userId, DongleUserInfo keyInfo)
        {
            ResultArgs ret = new ResultArgs(false);

            if (!IsActive())
            {
                ret.Msg = "Create authen key failed -- no dongle opened!";
                logger.Debug(ret.Msg);
                return(ret);
            }

            byte[] newAdminPin;
            byte[] appId;

            if (!Initialize(this.hDongle, userId, out newAdminPin, out appId))
            {
                ret.Msg = "initialize dongle failed ";
                return(ret);
            }

            if (!CreateUserInfo(this.hDongle, keyInfo) ||
                !CreateAuthenKeyFile(this.hDongle))
            {
                ret.Msg = "Create Key info file failed !";
                return(ret);
            }

            return(CreateAuthenKey(userId, appId, newAdminPin));
        }
Пример #2
0
        private void BtnCreateUserRootKey_Click(object sender, EventArgs e)
        {
            int selected = this.Dongles.SelectedIndex;

            byte[] userRootKey = HexString.FromHexString(this.UserRootKey.Text.Trim(), "-");
            String userId      = this.UserID.Text.Trim();

            DongleUserInfo keyInfo = DongleUserInfo.CreateTestDongleKeyInfo(DongleType.USER_ROOT, userId);

            ResultArgs arg = this.dongle.CreateUserRootDongle(userId, userRootKey, keyInfo);

            if (arg.Succ)
            {
                this.TraceMsg.Trace(String.Format("Create user root key ok! "), true);
                UserRootDongleResult res = (UserRootDongleResult)arg.Result;

                this.TraceMsg.Trace(res.ToString());
                logger.Debug(res.ToString());
            }
            else
            {
                this.TraceMsg.Trace(String.Format("Create user root key Error! err msg = {0}", this.dongle.LastErrorMessage), true);
            }

            // refresh dongle
            RefreshDongle(false);
        }
Пример #3
0
        private void BtnConvert2Json_Click(object sender, EventArgs e)
        {
            DongleUserInfo keyInfo = DongleUserInfo.CreateTestDongleKeyInfo(DongleType.USER_ROOT, "01234567");

            String jsonData = JsonConvert.SerializeObject(keyInfo);

            this.Trace.Trace(jsonData, true);
        }
        public IHttpActionResult Create(dynamic request)
        {
            String         userId     = Convert.ToString(request.userId);
            String         jsonString = Convert.ToString(request.keyInfo);
            DongleUserInfo keyInfo    = JsonConvert.DeserializeObject <DongleUserInfo>(jsonString);
            ResultArgs     ret        = DongleUtil.dongle.CreateAppAuthenDongle(userId, keyInfo);

            return(Json <ResultArgs>(ret));
        }
Пример #5
0
        private DongleUserInfoStru CreateUserInfoStru(DongleUserInfo keyInfo)
        {
            DongleUserInfoStru stru = new DongleUserInfoStru();

            stru.DongleType = (byte)keyInfo.DongleType;
            stru.UserId     = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.UserId), 6);
            stru.UserName   = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.UserName), 64);
            stru.CreateDate = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.CreateDate), 14);
            stru.Operator   = ArrayUtil.CopyFrom(this.encoder.GetBytes(keyInfo.Operator), 3);
            return(stru);
        }
        private DongleUserInfo ParseDongleKeyInfo(byte[] buffer)
        {
            DongleUserInfoStru keyInfoStru = ByteUtil.CopyToStru <DongleUserInfoStru>(buffer);
            DongleUserInfo     keyInfo     = new DongleUserInfo();

            keyInfo.DongleType = (DongleType)keyInfoStru.DongleType;
            keyInfo.UserId     = encoder.GetString(keyInfoStru.UserId);
            keyInfo.UserName   = encoder.GetString(keyInfoStru.UserName).TrimEnd('\0');
            keyInfo.Operator   = encoder.GetString(keyInfoStru.Operator);
            keyInfo.CreateDate = encoder.GetString(keyInfoStru.CreateDate);

            return(keyInfo);
        }
        public IHttpActionResult Create(dynamic request)
        {
            String userId  = Convert.ToString(request.userId);
            String rootKey = Convert.ToString(request.rootKey);

            byte[] rootKeyBytes = HexString.FromHexString(rootKey);

            String jsonString = Convert.ToString(request.keyInfo);

            DongleUserInfo keyInfo = JsonConvert.DeserializeObject <DongleUserInfo>(jsonString);

            ResultArgs ret = DongleUtil.dongle.CreateUserRootDongle(userId, rootKeyBytes, keyInfo);

            return(Json <ResultArgs>(ret));
        }
Пример #8
0
        /// <summary>
        /// Create user root dongle
        /// userRootKey can't less 16 bytes
        /// </summary>
        public ResultArgs CreateUserRootDongle(String userId, byte[] userRootKey, DongleUserInfo keyInfo)
        {
            ResultArgs ret = new ResultArgs(false);

            if (!IsActive())
            {
                ret.Msg = "Create user root key failed -- no dongle opened!";
                logger.Debug(ret.Msg);
                return(ret);
            }

            byte[] newAdminPin;
            byte[] appId;

            if (!Initialize(this.hDongle, userId, out newAdminPin, out appId))
            {
                ret.Msg = "initialize dongle failed ";
                return(ret);
            }

            if (!CreateUserInfo(this.hDongle, keyInfo) ||
                !CreateUserRootKeyFile(this.hDongle, DongleConst.USER_ROOT_KEY_DESCRIPTOR, userRootKey))
            {
                ret.Msg = "Create User root Key failed !";
                return(ret);
            }

            // renew appid
            this.dongleInfo[this.selectedIndex].AppId = this.Encoder.GetString(appId);

            // reset authen status as anonymous
            Reset();

            ret.Succ   = true;
            ret.Result = new UserRootDongleResult
            {
                KeyPwd     = this.Encoder.GetString(newAdminPin),
                AppId      = this.dongleInfo[this.selectedIndex].AppId,
                KeyId      = this.dongleInfo[this.selectedIndex].KeyId,
                Version    = this.dongleInfo[this.selectedIndex].Version,
                UserId     = userId,
                TestCipher = CreateTestCipher(userId)
            };
            return(ret);
        }
Пример #9
0
        public bool CreateUserInfo(DONGLE_HANDLER hDongle, DongleUserInfo userInfo)
        {
            if (!CreateUserInfoFile(hDongle))
            {
                return(false);
            }

            DongleUserInfoStru stru = CreateUserInfoStru(userInfo);

            IntPtr ptr = IntPtrUtil.CreateByStru(stru);

            byte[] dest = new byte[IntPtrUtil.SizeOf(stru.GetType())];

            Marshal.Copy(ptr, dest, 0, dest.Length);
            this.lastErrorCode = Dongle_WriteFile(
                hDongle,
                RockeyArmFileType.FILE_DATA,
                DongleConst.USER_INFO_DESCRIPTOR,
                0,
                dest,
                dest.Length);
            IntPtrUtil.Free(ref ptr);
            return(IsSucc);
        }
Пример #10
0
        private void BtnCreateAuthenKey_Click(object sender, EventArgs e)
        {
            int    selected = this.Dongles.SelectedIndex;
            String userId   = this.UserID.Text.Trim();

            DongleUserInfo keyInfo = DongleUserInfo.CreateTestDongleKeyInfo(DongleType.AUTHEN, userId);
            ResultArgs     arg     = this.dongle.CreateAppAuthenDongle(userId, keyInfo);

            if (arg.Succ)
            {
                this.TraceMsg.Trace(String.Format("Create Authen key ok! "), true);
                AppAuthenDongleResult res = (AppAuthenDongleResult)arg.Result;

                this.TraceMsg.Trace(res.ToString());
                logger.Debug(res.ToString());
            }
            else
            {
                this.TraceMsg.Trace(String.Format("Create Authen key Error! err msg = {0}", this.dongle.LastErrorMessage), true);
            }

            // refresh dongle
            RefreshDongle(false);
        }