コード例 #1
0
ファイル: Program.cs プロジェクト: Hrubon/pasch
        private static RsaCrpyter GetServerKey(Settings settings, RequestSender sender)
        {
            string storeFile = settings.FINGERPRINT_STORE_FILE;
            var    store     = new FingerprintStore(storeFile);

            var hello         = new HelloRequest();
            var helloResponse = sender.SendAndRecieve <HelloResponse>(hello);

            if (helloResponse == null)
            {
                MessageBox.Show("Server neodpověděl na požadavek pro zaslání veřejného klíče. Zkontrolujte síťové připojení.", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }

            var assymetricCrypter = new RsaCrpyter(helloResponse.CrypterConfig);

            if (!store.IsKnownFingerprint(assymetricCrypter.KeyFingerprint))
            {
                string msg = string.Format("Server se představil veřejným klíčem\r\n{0}\r\nkterý zatím není v seznamu známých hostitelů. Pokud tomuto serveru důvěřujete, přejete si klíč do seznamu přidat?", store.PrintFingerprint(assymetricCrypter.KeyFingerprint));

                var result = MessageBox.Show(msg, "Upozornění", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                if (result == DialogResult.Yes)
                {
                    store.AddFingerPrint(assymetricCrypter.KeyFingerprint);
                }
                else
                {
                    return(null);
                }
            }

            return(assymetricCrypter);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Hrubon/pasch
        private static RequestSender InitTcpSender(Settings settings)
        {
            string    ip = settings.SERVER_IP;
            TcpSender tcpClient;

            try
            {
                tcpClient = new TcpSender(ip, settings.CONTROL_TCP_PORT,
                                          settings.RESPOND_TIMEOUT);
            }
            catch
            {
                MessageBox.Show("Nepodařilo se zinicializovat síťovou komunikaci, program bude ukončen.", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }
            var sender = new RequestSender(tcpClient);

            sender.NetProblem           += ProgramError;
            sender.UnrecognizedResponse += ProgramError;
            sender.CryptoError          += ProgramError;
            sender.Unauthorized         += ProgramError;
            sender.AccessDenied         += ProgramError;
            sender.CannotExecute        += ProgramError;
            sender.InvalidResponse      += ProgramError;

            MasterContainer.AddService(sender);

            return(sender);
        }