public async void SubmitK()
        {
            Ka createdKa = await KaP.PostKaAsync(this.KaP);

            //TODO: Error handling
            Messenger.Raise(new WindowActionMessage(WindowAction.Close, "ShowSubmitCommandK"));
        }
Пример #2
0
        public async Task <Ka> PutKaAsync(Ka ka)
        {
            var jObject = JsonConvert.SerializeObject(ka);

            //Make Json object into content type
            var content = new StringContent(jObject);

            //Adding header of the contenttype
            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            Ka responseUser = null;

            try
            {
                var response = await Client.PutAsync(this.BaseUrl + "/api/Ka/" + ka.Id, content);

                if (response.IsSuccessStatusCode)
                {
                    var responseContent = await response.Content.ReadAsStringAsync();

                    responseUser = JsonConvert.DeserializeObject <Ka>(responseContent);
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in RestService.PutKaAsync: " + e);
            }
            return(responseUser);
        }
Пример #3
0
        public async Task <IActionResult> PutKa(int id, Ka ka)
        {
            if (id != ka.Id)
            {
                return(BadRequest());
            }

            _context.Entry(ka).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!KaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #4
0
    void LoadGlobalUniforms(OpenGL gl, uint shaderProgram)
    {
        int KaUniformLocation = gl.GetUniformLocation(shaderProgram, "Ka");
        int KdUniformLocation = gl.GetUniformLocation(shaderProgram, "Kd");
        int KsUniformLocation = gl.GetUniformLocation(shaderProgram, "Ks");
        int IaUniformLocation = gl.GetUniformLocation(shaderProgram, "Ia");
        int IlUniformLocation = gl.GetUniformLocation(shaderProgram, "Il");
        int IpUniformLocation = gl.GetUniformLocation(shaderProgram, "Ip");
        int KUniformLocation  = gl.GetUniformLocation(shaderProgram, "K");

        gl.Uniform3(KaUniformLocation, 1, Ka.ToFloatArray());
        gl.Uniform3(KdUniformLocation, 1, Kd.ToFloatArray());
        gl.Uniform3(KsUniformLocation, 1, Ks.ToFloatArray());
        gl.Uniform3(IaUniformLocation, 1, Ia.ToFloatArray());
        gl.Uniform3(IlUniformLocation, 1, Il.ToFloatArray());
        gl.Uniform1(IpUniformLocation, (float)Ip);
        gl.Uniform1(KUniformLocation, (float)K);

        int CameraPositionUniformLocation = gl.GetUniformLocation(shaderProgram, "CameraPosition");
        int LightPositionUniformLocation  = gl.GetUniformLocation(shaderProgram, "LightPosition");

        gl.Uniform1(CameraPositionUniformLocation, (float)CameraPosition);
        gl.Uniform3(LightPositionUniformLocation, 1, LightPosition.ToFloatArray());

        int objectColorUniformLocation = gl.GetUniformLocation(shaderProgram, "objectColor");

        gl.Uniform3(objectColorUniformLocation, 1, ObjectColor.ToFloatArray());
    }
Пример #5
0
        public async void Initialize()
        {
            Ka ka = new Ka();

            this.Ka = await ka.GetKaAsync();

            this.Employee = new Employee();
        }
Пример #6
0
 private void DisplayCharacter(CharacterBoardEntity character, Ka ka)
 {
     characterView.DisplayCharacter(character);
     if (ka != null)
     {
         characterView.DisplayKa(ScenePropertyManager.Instance.TypeToBE[ka.CharacterType]);
     }
 }
Пример #7
0
        public async Task <ActionResult <Ka> > PostKa(Ka ka)
        {
            // Parent Department には既に存在している部署が入るため、更新の対象から外す。


            _context.Kas.Add(ka);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetKa", new { id = ka.Id }, ka));
        }
Пример #8
0
        //private string bannarCharacterSelectMessage = "Equip Support Character, or Add to Party";
        //private string bannarKaSelectMessage = "Select skill to inherit";
        //private string bannarAddedToPartyMessage = "Choose another character";

        //private string


        public void LockIn()
        {
            Ka ka = kaSkillSelect2.Ka;
            //kaSkillView.InitKa(ka);
            List <Tuple <CharacterBoardEntity, Ka> > party = new List <Tuple <CharacterBoardEntity, Ka> >(ScenePropertyManager.Instance.GetCharacterParty());

            // filter out
            for (int a = 0; a < party.Count; a++)
            {
                Tuple <CharacterBoardEntity, Ka> tuple = party[a];
                if (tuple.first.CharcaterType == selectedCharacter.CharcaterType)
                {
                    party.RemoveAt(a);
                    a--;
                    continue;
                }
                if (tuple.second != null && tuple.second.CharacterType == selectedCharacter.CharcaterType)
                {
                    tuple.second = null;
                    //a--;
                }
                if (selectedKaCharacter != null)
                {
                    if (tuple.first.CharcaterType == selectedKaCharacter.CharcaterType)
                    {
                        party.RemoveAt(a);
                        a--;
                    }
                    if (tuple.second != null && tuple.second.CharacterType == selectedKaCharacter.CharcaterType)
                    {
                        tuple.second = null;
                        //a--;
                    }
                }
            }

            party.Add(new Tuple <CharacterBoardEntity, Ka>(selectedCharacter, ka));
            if (party.Count > 4)
            {
                addToPartyText.text = "Can only add 4 to party";
            }
            else
            {
                Clear();
                ScenePropertyManager.Instance.SetCharacterParty(party);
                if (party.Count == 4)
                {
                    addToPartyText.text = "Ready to go";
                }
                else
                {
                    addToPartyText.text = "Need " + (4 - party.Count) + " more for a full party";
                }
            }
        }
Пример #9
0
        public void MergeFrom(Event other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Created != 0L)
            {
                Created = other.Created;
            }
            if (other.Source.Length != 0)
            {
                Source = other.Source;
            }
            if (other.Instance.Length != 0)
            {
                Instance = other.Instance;
            }
            switch (other.MsgCase)
            {
            case MsgOneofCase.Ka:
                if (Ka == null)
                {
                    Ka = new global::Monik.Common.KeepAlive();
                }
                Ka.MergeFrom(other.Ka);
                break;

            case MsgOneofCase.Lg:
                if (Lg == null)
                {
                    Lg = new global::Monik.Common.Log();
                }
                Lg.MergeFrom(other.Lg);
                break;

            case MsgOneofCase.Pc:
                if (Pc == null)
                {
                    Pc = new global::Monik.Common.PerfCounter();
                }
                Pc.MergeFrom(other.Pc);
                break;

            case MsgOneofCase.Mc:
                if (Mc == null)
                {
                    Mc = new global::Monik.Common.Metric();
                }
                Mc.MergeFrom(other.Mc);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
Пример #10
0
 public void DisplayKa(CharacterBoardEntity character)
 {
     if (character != null)
     {
         Ka ka = new Ka(character.GetComponent <CharContainer>());
         DisplayKaHelper(ka);
     }
     else
     {
         DisplayKaHelper(null);
     }
 }
        public async void Initialize()
        {
            Busyo busyo = new Busyo();

            this.Busyo = await busyo.GetBusyoAsync();

            Ka ka = new Ka();

            this.Ka = await ka.GetKaAsync();

            this.BusyoP = new Busyo();
            this.KaP    = new Ka();
        }
        public override void Init(Position startingPosition, TurnManager turnManager, TileManager tileManager,
                                  BoardEntitySelector boardEntitySelector, BattleCalculator battleCalculator, Ka ka = null)
        {
            base.Init(startingPosition, turnManager, tileManager, boardEntitySelector, battleCalculator);

            if (charactersprite != null)
            {
                charactersprite.transform.SetParent(FindObjectOfType <CharacterManagerMarker>().transform);
            }

            allCharacterBoardEntities.Add(this);
            if (enemyAIBasic1 != null)
            {
                enemyAIBasic1.Init(tileManager, this);
            }

            basicAttack = new BasicAttack();
            AddSkill(basicAttack);
            if (charContainer != null)
            {
                charContainer.Init(this);
            }
            floatingTextGenerator = GetComponent <FloatingTextGenerator>();
            this.ka = ka;
            if (ka != null)
            {
                ka.Init(this);
                if (charKaAura != null)
                {
                    //charKaAura.SetActive(true);
                    //Color newColor = new Color(ka.KaColor.r, ka.KaColor.g, ka.KaColor.b, charKaAura.GetComponent<Image>().color.a);
                    //charKaAura.GetComponent<Image>().color = newColor;
                }
            }
            initalized = true;
            foreach (Skill skill in skills)
            {
                InitSkill(skill);
            }
            foreach (Passive passive in passives)
            {
                InitPassive(passive);
            }
            foreach (Passive p in Passives)
            {
                p.StartBattle();
            }
        }
Пример #13
0
        public async void Initialize()
        {
            Employee employee = new Employee();

            this.Employee = await employee.GetEmployeeAsync();

            this.CEmployee = new Employee();

            Ka ka = new Ka();

            this.Ka = await ka.GetKaAsync();

            Busyo busyo = new Busyo();

            this.Busyo = await busyo.GetBusyoAsync();
        }
Пример #14
0
    void LoadGlobalUniforms(OpenGL gl, uint shaderProgram)
    {
        int KaUniformLocation = gl.GetUniformLocation(shaderProgram, "Ka");
        int KdUniformLocation = gl.GetUniformLocation(shaderProgram, "Kd");
        int KsUniformLocation = gl.GetUniformLocation(shaderProgram, "Ks");
        int IaUniformLocation = gl.GetUniformLocation(shaderProgram, "Ia");
        int IlUniformLocation = gl.GetUniformLocation(shaderProgram, "Il");
        int IpUniformLocation = gl.GetUniformLocation(shaderProgram, "Ip");
        int KUniformLocation  = gl.GetUniformLocation(shaderProgram, "K");

        gl.Uniform3(KaUniformLocation, 1, Ka.ToFloatArray());
        gl.Uniform3(KdUniformLocation, 1, Kd.ToFloatArray());
        gl.Uniform3(KsUniformLocation, 1, Ks.ToFloatArray());
        gl.Uniform3(IaUniformLocation, 1, Ia.ToFloatArray());
        gl.Uniform3(IlUniformLocation, 1, Il.ToFloatArray());
        gl.Uniform1(IpUniformLocation, (float)Ip);
        gl.Uniform1(KUniformLocation, (float)K);


        int MagicCoefUniformLocation  = gl.GetUniformLocation(shaderProgram, "magicCoef");
        int DistToFragUniformLocation = gl.GetUniformLocation(shaderProgram, "distToFrag");

        gl.Uniform1(MagicCoefUniformLocation, MagicCoef);

        if (EffectMode == Mode.FRAG)
        {
            gl.Uniform1(DistToFragUniformLocation, 1);
        }
        else
        {
            gl.Uniform1(DistToFragUniformLocation, 0);
        }

        int CameraPositionUniformLocation     = gl.GetUniformLocation(shaderProgram, "CameraPosition");
        int LightPositionUniformLocation      = gl.GetUniformLocation(shaderProgram, "LightPosition");
        int magicPointPositionUniformLocation = gl.GetUniformLocation(shaderProgram, "magicPointPosition");

        gl.Uniform1(CameraPositionUniformLocation, (float)CameraPosition);
        gl.Uniform3(LightPositionUniformLocation, 1, LightPosition.ToFloatArray());
        gl.Uniform3(magicPointPositionUniformLocation, 1, magicPointPosition.ToFloatArray());


        int objectColorUniformLocation = gl.GetUniformLocation(shaderProgram, "objectColor");

        gl.Uniform3(objectColorUniformLocation, 1, ObjectColor.ToFloatArray());
    }
Пример #15
0
        public void PresetTwo()
        {
            Ka DadiKa = new Ka(ScenePropertyManager.Instance.typeToContainer[CharacterType.PlayerDadi]);

            DadiKa.AddPassive(ScenePropertyManager.Instance.typeToContainer[CharacterType.PlayerDadi].Passive);
            Ka BonganiKa = new Ka(ScenePropertyManager.Instance.typeToContainer[CharacterType.PlayerBongani]);

            BonganiKa.AddPassive(ScenePropertyManager.Instance.typeToContainer[CharacterType.PlayerBongani].Passive);

            ScenePropertyManager.Instance.SetCharacterParty(new List <Tuple <CharacterBoardEntity, Ka> >()
            {
                new Tuple <CharacterBoardEntity, Ka>(ScenePropertyManager.Instance.typeToBE[CharacterType.PlayerLesidi], null),
                new Tuple <CharacterBoardEntity, Ka>(ScenePropertyManager.Instance.typeToBE[CharacterType.PlayerJaz], DadiKa),
                new Tuple <CharacterBoardEntity, Ka>(ScenePropertyManager.Instance.typeToBE[CharacterType.PlayerTisha], BonganiKa),
                new Tuple <CharacterBoardEntity, Ka>(ScenePropertyManager.Instance.typeToBE[CharacterType.PlayerAmare], null),
            });

            characterView2.Clear();
        }
Пример #16
0
    public void Init(CharacterBoardEntity character, Action selected)
    {
        this.dropDown.value = 0;
        this.selected       = selected;
        ClearDisplay();
        if (character != null)
        {
            parent.GetComponent <Image>().color = Color.white;
            gameObject.SetActive(true);

            ka = new Ka(character.GetComponent <CharContainer>());
            GenerateOptions(character);
        }
        else
        {
            parent.GetComponent <Image>().color = greyOut;
            gameObject.SetActive(false);
            ka = null;
        }
    }
Пример #17
0
        private void DisplayKaHelper(Ka ka)
        {
            if (ka != null)
            {
                selectedKaCharacter = ScenePropertyManager.Instance.BoardEntityCharacters[ka.CharacterType].GetComponent <CharacterBoardEntity>();
                characterSelection2.SetSelectedKa(selectedKaCharacter);
                if (selectedKaCharacter == selectedCharacter)
                {
                    selectedKaCharacter = null;
                }
                foreach (Profile2 profile in profiles)
                {
                    profile.gameObject.SetActive(true);
                    profile.SetProfilePic(selectedCharacter, selectedKaCharacter);
                }
                DisplayHelper();
                kaSkillSelect.Init(selectedKaCharacter, EnableAddToParty);
                profileDisplay.SetActive(true);
                helpButton.SetActive(true);
                profileHidden.SetActive(false);
                if (selectedKaCharacter != null)
                {
                    addToParty.interactable = false;
                    addToPartyText.text     = "Select a support skill";
                }
                else
                {
                    EnableAddToParty();
                }
            }
            else
            {
                selectedKaCharacter = null;
                foreach (Profile2 profile in profiles)
                {
                    profile.gameObject.SetActive(false);
                }
            }

            //characterSelection2.SetSelectedKa(selectedKaCharacter);
        }
Пример #18
0
        public async Task <Ka> DeleteKaAsync(int Id)
        {
            Ka responseKa = null;

            try
            {
                var response = await Client.DeleteAsync(this.BaseUrl + "/api/Ka/" + Id);

                if (response.IsSuccessStatusCode)
                {
                    var responseContent = await response.Content.ReadAsStringAsync();

                    responseKa = JsonConvert.DeserializeObject <Ka>(responseContent);
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in RestService.DeleteKaAsync: " + e);
            }
            return(responseKa);
        }
Пример #19
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Created != 0L)
            {
                hash ^= Created.GetHashCode();
            }
            if (Source.Length != 0)
            {
                hash ^= Source.GetHashCode();
            }
            if (Instance.Length != 0)
            {
                hash ^= Instance.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.Ka)
            {
                hash ^= Ka.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.Lg)
            {
                hash ^= Lg.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.Pc)
            {
                hash ^= Pc.GetHashCode();
            }
            if (msgCase_ == MsgOneofCase.Mc)
            {
                hash ^= Mc.GetHashCode();
            }
            hash ^= (int)msgCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Пример #20
0
    private void DropDownSelect()
    {
        TMP_Dropdown.OptionData option = dropDown.options[dropDown.value];
        if (option != selectOption)
        {
            selected();
            if (dropDown.options.Contains(selectOption))
            {
                dropDown.options.Remove(selectOption);
            }

            ka = new Ka(charContainer);
            if (optionToPassive.ContainsKey(option))
            {
                ka.AddPassive(optionToPassive[option]);
                DisplayObjectHelper(optionToPassive[option].GetTitleHelper(), optionToPassive[option].GetDescriptionHelper(), skillContainer);
            }
            if (optionToSkill.ContainsKey(option))
            {
                ka.AddSkill(optionToSkill[option]);
                DisplayObjectHelper(optionToSkill[option].GetTitle(), optionToSkill[option].GetDescriptionHelper(), skillContainer);
            }
        }
    }
 private void DieHelper()
 {
     if (ka == null)
     {
         turnManager.RemoveBoardEntity(this);
         GetTile().SetBoardEntity(null);
         if (TurnManager.CurrentBoardEntity == this)
         {
             EndMyTurn();
         }
         Destroy(gameObject);
     }
     else
     {
         stats.SetMutableStat(StatType.Health, 1);
         SetAnimation(AnimatorUtils.animationType.idle);
         ka = null;
         charKaAura.SetActive(false);
         FloatingTextGenerator.AddTextDisplay(new TextDisplay()
         {
             text = "Lost Support Character"
         });
     }
 }
Пример #22
0
        public virtual void Init(Position startingPosition, TurnManager turnManager, TileManager tileManager, BoardEntitySelector boardEntitySelector,
                                 BattleCalculator battleCalculator, Ka ka = null)
        {
            healthBarInstance = Instantiate(healthBar);
            healthBarInstance.transform.SetParent(FindObjectOfType <HealthBarContainer>().gameObject.transform);
            healthBarInstance.GetComponent <UIFollow>().target = gameObject;
            healthBarInstance.transform.SetAsFirstSibling();
            healthBarInstance.transform.position = new Vector3(100000, 100000);

            this.turnManager         = turnManager;
            this.tileManager         = tileManager;
            this.boardEntitySelector = boardEntitySelector;
            this.battleCalculator    = battleCalculator;

            isInit = true;
            tileManager.AddBoardEntity(startingPosition, gameObject);
            position = startingPosition;

            stats.updateStatHandler += UpdateUi;
            stats.Start(this);

            turnManager.AddBoardEntity((CharacterBoardEntity)this);
            UpdateUi();
        }
Пример #23
0
 public void SetDisplayKa(Ka ka)
 {
     DisplayKaHelper(ka);
 }
Пример #24
0
        private GameObject MakeCharacter(CharacterBoardEntity character, Position position, Ka ka = null)
        {
            GameObject characterObj = character.gameObject;

            GameObject BE = Instantiate(characterObj);

            BE.GetComponent <CharacterBoardEntity>().Init(position, turnManager, tileManager, boardEntitySelector, battleCalulator, ka);
            return(BE);
        }
Пример #25
0
 public override void Init(Position startingPosition, TurnManager turnManager, TileManager tileManager, BoardEntitySelector boardEntitySelector, BattleCalculator battleCalculator, Ka ka = null)
 {
     base.Init(startingPosition, turnManager, tileManager, boardEntitySelector, battleCalculator);
 }
Пример #26
0
        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            richTextBox2.Clear();
            byte[]     gByte = Encoding.Default.GetBytes(textBox1.Text);
            byte[]     aByte, bByte;
            BigInteger g = new BigInteger(gByte);
            BigInteger p = new BigInteger(Convert.ToInt64(textBox2.Text));

            Random rnd = new Random();
            string aStr = "", bStr = "";

            for (int i = 0; i < 3; i++)
            {
                aStr += rnd.Next().ToString();
                bStr += rnd.Next().ToString();
            }

            aByte = Encoding.Default.GetBytes(aStr);
            bByte = Encoding.Default.GetBytes(bStr);
            BigInteger a = new BigInteger(aByte);
            BigInteger b = new BigInteger(bByte);

            textBox3.Text = a.ToString();
            textBox4.Text = b.ToString();

            BigInteger PKa, PKb;

            PKa = BigInteger.ModPow(g, a, p);
            PKb = BigInteger.ModPow(g, b, p);

            textBox6.Text = PKa.ToString();
            textBox7.Text = PKb.ToString();

            int x, y;

            x = rnd.Next(2, Convert.ToInt32(textBox2.Text) - 1);
            y = rnd.Next(2, Convert.ToInt32(textBox2.Text) - 1);

            BigInteger AlisMes, BobMes;

            AlisMes = BigInteger.ModPow(g, x, p);
            BobMes  = BigInteger.ModPow(g, y, p);
            richTextBox1.AppendText("1) Сгенерированное X=" + x.ToString() + "\nСообщение для Боба(g^xmodp):" + AlisMes.ToString() + "\n");
            richTextBox2.AppendText("2) Получено от Алисы:" + AlisMes.ToString() + "\nСгенерированное Y=" + y.ToString() + "\nСообщение для Алисы(g^xmodp):" + BobMes.ToString() + "\n");

            richTextBox1.AppendText("3) Получено от Боба:" + BobMes.ToString() + "\n");

            BigInteger Ka, Kb;

            Ka = BigInteger.ModPow(g, BigInteger.Add(BigInteger.Multiply(b, x), BigInteger.Multiply(y, a)), p);
            richTextBox1.AppendText("4) Создание сеансового ключа Ka=(g^b)^x*(g^y)^amodp=" + Ka.ToString() + "\n");

            Kb = BigInteger.ModPow(g, BigInteger.Add(BigInteger.Multiply(x, b), BigInteger.Multiply(a, y)), p);
            richTextBox2.AppendText("5) Создание сеансового ключа Kb=(g^x)^b*(g^a)^bmodp=" + Kb.ToString());

            if (Ka == Kb)
            {
                textBox5.Text = "Ключи совпали";
            }
            else
            {
                textBox5.Text = "Ключи не совпали";
            }
        }
        public async void KaDelete(Ka Ka)
        {
            Ka deletedKa = await Ka.DeleteKaAsync(Ka.Id);

            Messenger.Raise(new WindowActionMessage(WindowAction.Close, "ShowKaDeleteCommand"));
        }
Пример #28
0
        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            richTextBox2.Clear();

            byte[]     gByte = Encoding.Default.GetBytes(textBox1.Text);
            BigInteger g     = new BigInteger(gByte);
            BigInteger p     = new BigInteger(Convert.ToInt64(textBox2.Text));

            cript  server = new cript();
            Random rnd    = new Random();

            RSAParameters BobPublicRsaPara = server.GetPublicRsaPara(cript.ClientName.Bob);
            BigInteger    BobModulus       = new BigInteger(BobPublicRsaPara.Modulus);
            BigInteger    BobExponent      = new BigInteger(BobPublicRsaPara.Exponent);
            string        sBobPublicPara   = BobExponent.ToString() + ", " + BobModulus.ToString();

            textBox3.Text = sBobPublicPara;

            RSAParameters AlicePublicRsaPara = server.GetPublicRsaPara(cript.ClientName.Alice);
            BigInteger    AliceModulus       = new BigInteger(AlicePublicRsaPara.Modulus);
            BigInteger    AliceExponent      = new BigInteger(AlicePublicRsaPara.Exponent);
            string        sAlicePublicPara   = AliceExponent.ToString() + ", " + AliceModulus.ToString();

            textBox4.Text = sAlicePublicPara;

            int x, y;

            x = rnd.Next(2, Convert.ToInt32(textBox2.Text));
            y = rnd.Next(2, Convert.ToInt32(textBox2.Text));

            BigInteger ma, mb, Ka, Kb;

            ma = BigInteger.ModPow(g, x, p);
            mb = BigInteger.ModPow(g, y, p);

            richTextBox1.AppendText("1) Сгенерированное X=" + x.ToString() + "\nОтправлено Бобу(g^xmodp):" + ma.ToString() + "\n");

            richTextBox2.AppendText("2) Получено от Алисы:" + ma.ToString() + "\n");
            richTextBox2.AppendText("3) Сгенерированное Y=" + y.ToString() + "\n");

            Ka = BigInteger.ModPow(mb, x, p);
            Kb = BigInteger.ModPow(ma, y, p);

            richTextBox2.AppendText("Созданный сеансовый ключ K=" + Kb.ToString() + "\n");

            String AIv = "", BIv = "";

            try
            {
                server.InitAesProvider(cript.ClientName.Alice, Ka.ToString(), AIv);
                server.InitAesProvider(cript.ClientName.Bob, Kb.ToString(), BIv);
            }
            catch (Exception ex)
            {
                richTextBox1.AppendText(ex.Message);
                return;
            }

            string MesForAlis = ma.ToString() + "," + mb.ToString();

            byte[] BobSign = server.RsaSign(cript.ClientName.Bob, Encoding.Default.GetBytes(MesForAlis));
            byte[] Ekb     = server.Encrypt(cript.ClientName.Bob, Encoding.Default.GetString(BobSign));
            richTextBox2.AppendText("Отправлено Алисе(mb+Ek(Signb(ma,mb):\n" + mb.ToString() + "," + Encoding.Default.GetString(Ekb) + "\n");

            richTextBox1.AppendText("4) Получено от Боба:\n" + mb.ToString() + "," + Encoding.Default.GetString(Ekb));
            richTextBox1.AppendText("\nСозданный сеансовый ключ K=" + Ka.ToString() + "\n\n");

            string recMessageAlice = server.Decrypt(cript.ClientName.Bob, Ekb);

            richTextBox1.AppendText("Расшифрованное сообщение:\n" + recMessageAlice + "\n");

            using (SHA256CryptoServiceProvider sha256 = new SHA256CryptoServiceProvider())
            {
                byte[] hash = sha256.ComputeHash(Encoding.Default.GetBytes(MesForAlis));
                if (server.RsaVerify(cript.ClientName.Bob, hash, BobSign))
                {
                    richTextBox1.AppendText("\nПодпись валидна\n");
                }
                else
                {
                    richTextBox1.AppendText("\nПодпись не валидна\n");
                }
            }

            string MesForBob = ma.ToString() + "," + mb.ToString();

            byte[] AlisSign = server.RsaSign(cript.ClientName.Alice, Encoding.Default.GetBytes(MesForBob));
            byte[] Eka      = server.Encrypt(cript.ClientName.Alice, Encoding.Default.GetString(AlisSign));
            richTextBox1.AppendText("5) Сообщение для Боба(Ek(Signa(ma,mb))):\n" + Encoding.Default.GetString(Eka));

            richTextBox2.AppendText("\n6) Получено от Алисы:\n" + Encoding.Default.GetString(Eka));

            string recMessageBob = server.Decrypt(cript.ClientName.Alice, Eka);

            richTextBox2.AppendText("\n\nРасшифрованное сообщение:\n" + recMessageBob + "\n");

            using (SHA256CryptoServiceProvider sha256 = new SHA256CryptoServiceProvider())
            {
                byte[] hash = sha256.ComputeHash(Encoding.Default.GetBytes(MesForBob));
                if (server.RsaVerify(cript.ClientName.Alice, hash, AlisSign))
                {
                    richTextBox2.AppendText("\nПодпись валидна\n");
                }
                else
                {
                    richTextBox2.AppendText("\nПодпись не валидна\n");
                }
            }
        }