public CommunicationProtocol(ICoderWithSettings coder, IHash coderHash, ICoderWithSettings decoder, IHash decoderHash) { _coder = coder; _decoder = decoder; _coderHash = coderHash; _decoderHash = decoderHash; ValidationKey = new ValidationKey(); CipherSettings = new CipherSettingsViewModel(); _coder.CurrentSatate = CipherSettings.InitBytesRegister; var sboxesArray = CipherSettings.SboxesArray; _coder.Sboxes = sboxesArray; _decoder.Sboxes = sboxesArray; getSboxesBytes(sboxesArray); CipherSettings.PropertyChanged += cipherSettingsViewModelOnPropertyChanged; }