private void AcceptFriendAsync() { string invitingPublicDHKey = lastRecivedInvitation.publicKeySender; string p = lastRecivedInvitation.p; string g = lastRecivedInvitation.g; string invitationID = lastRecivedInvitation.invitationId.ToString(); model.ReceivedInvitations.RemoveAt(model.ReceivedInvitations.Count - 1); lastRecivedInvitation = null; OnPropertyChanged(nameof(InvitationsBoxVisibility)); OnPropertyChanged(nameof(LastInvitationUsername)); (string publicDHKey, byte[] privateDHKey) = model.GenerateDHKeys(p, g); byte[] conversationKey = model.GenerateConversationKey(invitingPublicDHKey, p, g, privateDHKey); (string conversationID, byte[] conversationIV) = model.AcceptFriendInvitation(invitationID, publicDHKey); byte[] encryptedConversationKey = Security.AESEncrypt(conversationKey, model.UserKey, conversationIV); //Using userKey to encrypt conversationKey model.SendEncryptedConversationKey(conversationID, encryptedConversationKey); if (model.ReceivedInvitations.Count > 0) { lastRecivedInvitation = model.ReceivedInvitations[^ 1];