示例#1
0
        internal static bool CheckEnvironment()
        {
            Task <bool> checking = CheckVersion();

            checking.Wait();
            if (!checking.Result)
            {
                MessageBox.Show(Encoding.UTF8.GetString(Convert.FromBase64String("VGhlIHZlcnNpb24gaXMgcmV2b2tlZA=="))
                                + "\n" + Encoding.UTF8.GetString(Convert.FromBase64String("UGxlYXNlIGRvd25sb2FkIHRoZSBuZXcgdmVyc2lvbiBmcm9tIHNreW1wLmlv")),
                                Encoding.UTF8.GetString(Convert.FromBase64String("SXMgbm90IGEgYnVn")), MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }

            UID = Hashing.GetMD5FromText(SystemFunctions.GetHWID());
            AesEncoder.Init();
#if (DEBUG)
#elif (BETA)
            if (!CheckInjection())
            {
                return(false);
            }
#else
            if (!CheckInjection())
            {
                return(false);
            }
#endif
            return(true);
        }
示例#2
0
        static IPreference <T> CreateCryptoPref <T>(string key, string password, string salt, IEncoder <T> encoder)
        {
            var aesEncoder       = new AesEncoder(password, salt);
            var combinedEncoder  = new CombinedEncoder <T>(encoder, aesEncoder);
            var encodeSerializer = new EncodeSerializer <T>(new BinaryPrefSerializer(), combinedEncoder);

            return(new KeyEncodePreference <T>(key, encodeSerializer, aesEncoder));
        }
示例#3
0
        internal static bool CheckEnvironment()
        {
            UID = Hashing.GetMD5FromText(SystemFunctions.GetHWID());
            AesEncoder.Init();
#if (DEBUG)
#elif (BETA)
            if (!CheckInjection())
            {
                return(false);
            }
#else
            if (!CheckInjection())
            {
                return(false);
            }
#endif
            return(true);
        }
示例#4
0
        public void SendPrivateMessage(string userId, string message)
        {
            using (UWCContext db = new UWCContext())
            {
                User senderUser = db
                                  .Users
                                  .Where(u => u.Name == HttpContext.Current.User.Identity.Name)
                                  .FirstOrDefault();

                User recieverUser = db
                                    .Users
                                    .Where(u => u.Id.ToString() == userId)
                                    .FirstOrDefault();

                PrivateRoom privateRoom = db
                                          .PrivateRooms
                                          .Where(pr => pr.UserIds.Contains(senderUser.Id) && pr.UserIds.Contains(Guid.Parse(userId)))
                                          .FirstOrDefault();

                if (privateRoom == null)
                {
                    privateRoom = ChatHub.CreatePrivateRoom(senderUser.Id, recieverUser.Id);
                    db.PrivateRooms.Add(privateRoom);
                }

                string encodedMessage = AesEncoder.EncryptToBytes(message, Encoding.Default.GetBytes(privateRoom.Key), Encoding.Default.GetBytes(privateRoom.IV)).ToString();
                privateRoom.MessagesListing.Add(new MessageInfo()
                {
                    Id           = Guid.NewGuid(),
                    FromUserId   = senderUser.Id,
                    FromUserName = senderUser.Name,
                    ToUserId     = recieverUser.Id,
                    ToUserName   = recieverUser.Name,
                    Message      = encodedMessage,
                    Time         = DateTime.UtcNow
                });
                db.Entry(privateRoom).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                Groups.Add(senderUser.Id.ToString(), privateRoom.Id.ToString());
                Groups.Add(recieverUser.Id.ToString(), privateRoom.Id.ToString());
                Clients.Group(privateRoom.Id.ToString(), senderUser.Id.ToString()).send(message);
            }
        }
示例#5
0
        public async Task <UserToken> AuthorizeUser(LoginUser loginUser)
        {
            UserToken token = null;
            var       user  = await _repository.GetUserByName(loginUser.Name);

            if (user != null)
            {
                string enteredPassword = AesEncoder.Encrypt(loginUser.Password);
                if (user.Password == enteredPassword)
                {
                    var validTo = DateTime.Now.AddMilliseconds(tokenValidTimeMs).ToUniversalTime();
                    token = new UserToken()
                    {
                        UserId  = user.UserId,
                        ValidTo = validTo,
                        Token   = ProductSecurity.GenerateToken(user.UserId, validTo)
                    };
                }
            }
            return(token);
        }