예제 #1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Controller.
            Controller controller = new Controller();

            // GUI.
            EnterForm enterForm  = new EnterForm();
            ChatForm  chatWindow = new ChatForm();
            ErrorForm errorForm  = new ErrorForm();

            controller.EnterForm          = enterForm;
            controller.UserList           = chatWindow;
            controller.TextMessageInput   = chatWindow;
            controller.TextMessageOutput  = chatWindow;
            controller.UserJoinHandler    = chatWindow;
            controller.UserLeaveHandler   = chatWindow;
            controller.ErrorMessageOutput = errorForm;

            enterForm.ConnectionController   = controller;
            chatWindow.TextMessageController = controller;
            chatWindow.ConnectionController  = controller;
            chatWindow.SoundInputController  = controller;
            chatWindow.SoundOutputController = controller;

            // Sound.
            AudioOutput <string> audioOutput     = new AudioOutput <string>();
            MicrophoneInput      microphoneInput = new MicrophoneInput();

            controller.SoundOutput = audioOutput;
            controller.SoundInput  = microphoneInput;

            // Networking.
            ServiceConnector serviceConnector = new ServiceConnector();

            controller.TextSender        = serviceConnector;
            controller.SoundSender       = serviceConnector;
            controller.ConnectionHandler = serviceConnector;

            serviceConnector.UserController        = controller;
            serviceConnector.SoundController       = controller;
            serviceConnector.TextMessageController = controller;
            serviceConnector.DisconnectController  = controller;

            // Text processing.
            MessageTransformer  messageTransformer  = new MessageTransformer();
            NicknameTransformer nicknameTransformer = new NicknameTransformer();
            MessageVerifier     messageVerifier     = new MessageVerifier(possibleLength: PossibleLength);
            NicknameVerifier    nicknameVerifier    = new NicknameVerifier();

            controller.MessageTransformer  = messageTransformer;
            controller.NicknameTransformer = nicknameTransformer;
            controller.MessageVerifier     = messageVerifier;
            controller.NicknameVerifier    = nicknameVerifier;

            Application.Run(new MessengerAppContext(enterForm, chatWindow, errorForm));
        }
        public void TestSignature()
        {
            var provider  = new RSACryptoServiceProvider();
            var provider2 = new RSACryptoServiceProvider();


            var parameters  = provider.ExportParameters(true);
            var paramaters2 = provider2.ExportParameters(true);

            byte[] HashValue = { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };

            byte[] signedHash = MessageVerifier.CreateSignature(HashValue, parameters);


            Assert.IsTrue(MessageVerifier.CheckSignature(HashValue, signedHash, parameters));
            Assert.IsFalse(MessageVerifier.CheckSignature(HashValue, signedHash, paramaters2));
        }