Esempio n. 1
0
            private void Process()
            {
                string id = PopUserID();

                while (id != string.Empty)
                {
                    if (Crypto != null)
                    {
                        PeerAddUserRequest request = new PeerAddUserRequest();

                        request.UserID    = id;
                        request.TokenSalt = DB.GetTokenSaltFromUID(id);
                        request.PassHash  = DB.GetPassHashFromID(id);
                        request.Email     = DB.GetEmailFromID(id);

                        request.Name = Name;

                        MemoryStream ms = new MemoryStream();
                        StreamWriter sw = new StreamWriter(new CryptoStream(ms, Encrypter, CryptoStreamMode.Write));
                        sw.Write(request.UserID);
                        sw.Close();
                        ms.Close();

                        request.Key = Convert.ToBase64String(ms.GetBuffer());

                        Connection.SendMessage(request, null, null);
                    }
                    id = PopUserID();
                }
            }
Esempio n. 2
0
        protected PeerResponce PeerAddUser(PeerAddUserRequest request)
        {
            PeerResponce responce = new PeerResponce();

            responce.OK = false;

            if (request != null)
            {
                AuthConfig.APIPeer inPeer = Config.InboundUpdatePeers.Find(x => x.Name == request.Name);

                if (inPeer != null)
                {
                    RijndaelManaged crypto = Encryption.BuildCrypto(inPeer.APIKey);

                    MemoryStream ms        = new MemoryStream(Convert.FromBase64String(request.Key));
                    StreamReader sr        = new StreamReader(new CryptoStream(ms, crypto.CreateDecryptor(), CryptoStreamMode.Read));
                    string       decodeKey = sr.ReadToEnd();
                    sr.Close();
                    ms.Close();

                    if (decodeKey == request.UserID)    // they know the secret!
                    {
                        DB.UpdateUserInfo(request.UserID, request.Email, request.PassHash, request.TokenSalt);
                        responce.OK = true;
                    }
                }
            }

            return(responce);
        }