예제 #1
0
 public static void RaiseAppEvent(Common.AppEventTypeEnum eventType, Object[] parms)
 {
     AppEventOccured(eventType, parms);
 }
예제 #2
0
        private void Common_AppEventOccured(Common.AppEventTypeEnum eventType, Object[] parms)
        {
            switch (eventType)
            {
            case Common.AppEventTypeEnum.AppStarted:
                DeleteTemporaryFiles();
                ButtonLoadDataEnabled(false);
                ButtonOpenLoadedFileFolderEnabled(false);
                ButtonEncryptEnabled(false);
                ButtonDecryptEnabled(false);
                LabelKeySizeUpdate();
                break;

            case Common.AppEventTypeEnum.AlgoPrepared:
                this.PanelButtonsEnabled(true);
                ButtonLoadDataEnabled(true);
                ButtonOpenLoadedFileFolderEnabled(false);
                ButtonEncryptEnabled(false);
                ButtonDecryptEnabled(false);
                this.PrintRSAParameters(false);
                break;

            case Common.AppEventTypeEnum.FileLoaded:
                ButtonEncryptEnabled(true);
                ButtonOpenLoadedFileFolderEnabled(true);
                ButtonDecryptEnabled(false);
                this.fileLoaded = true;
                RichTextBoxConsoleAddText("File to encrypt loaded!");
                break;

            case Common.AppEventTypeEnum.EncryptionDone:
                RichTextBoxConsoleAddText(String.Format("Generating final output! : {0}", DateTime.Now));
                PostProcessEncryptedFiles();
                RichTextBoxConsoleAddText(String.Format("Encryption done! Verify encrypted.enc file! : {0}", DateTime.Now));
                this.PanelButtonsEnabled(true);
                ButtonDecryptEnabled(true);
                UpdateCurrOperationStatus("");
                break;

            case Common.AppEventTypeEnum.AlgoPreparationStarted:
                this.PanelButtonsEnabled(false);
                LabelKeySizeUpdate();
                break;

            case Common.AppEventTypeEnum.AlgoPreparationRestarted:
                this.ParamsToDefault();
                this.DeleteTemporaryFiles();
                ButtonLoadDataEnabled(false);
                ButtonOpenLoadedFileFolderEnabled(false);
                ButtonEncryptEnabled(false);
                ButtonDecryptEnabled(false);
                RichTextBoxConsoleClear();
                break;

            case Common.AppEventTypeEnum.EncryptionStarted:
                UpdateCurrOperationStatus("Encryption in progress...");
                this.PanelButtonsEnabled(false);
                workersFinishedJob = 0;
                break;

            case Common.AppEventTypeEnum.DecryptionStarted:
                UpdateCurrOperationStatus("Decryption in progress...");
                this.PanelButtonsEnabled(false);
                workersFinishedJob = 0;
                pBSteps            = new System.Collections.ArrayList();
                break;

            case Common.AppEventTypeEnum.DecryptionDone:
                RichTextBoxConsoleAddText(String.Format("Generating final output! : {0}", DateTime.Now));
                PostProcessDecryptedFiles();
                this.PanelButtonsEnabled(true);
                RichTextBoxConsoleAddText(String.Format("Decryption done! Verify decrypted.dec file! : {0}", DateTime.Now));
                UpdateCurrOperationStatus("");
                break;

            case Common.AppEventTypeEnum.SettingsSaved:
                if (parms == null)
                {
                    break;
                }
                if ((UInt32)parms[0] != Properties.AppSettings.Default.keySize)
                {
                    Common_AppEventOccured(Common.AppEventTypeEnum.AlgoPreparationRestarted, null);
                    RichTextBoxConsoleAddText(String.Format("Key size modified. Key size: {0} bits", Properties.AppSettings.Default.keySize));
                }
                if ((Int32)parms[1] != Properties.AppSettings.Default.showKeyInBase &&
                    (lastOperation == Common.AppEventTypeEnum.AlgoPrepared || lastOperation == Common.AppEventTypeEnum.SettingsSaved))
                {
                    RichTextBoxConsoleClear();
                    PrintRSAParameters(false);
                }
                LabelKeySizeUpdate();
                break;

            case Common.AppEventTypeEnum.NrThreadsBiggerThanNrCores:
                RichTextBoxConsoleAddText("Warning! Running more threads than cores on the machine!");
                break;

            case Common.AppEventTypeEnum.WorkerFinishedJob:
                if (parms != null && parms[0] != null && parms[1] != null)
                {
                    if ((Common.AppEventTypeEnum)parms[1] != Common.AppEventTypeEnum.EncryptionDone && parms[2] != null)
                    {
                        pBSteps.Add(parms[2]);
                    }
                    workersFinishedJob++;
                    if (workersFinishedJob == Properties.AppSettings.Default.threadsRSA)
                    {
                        Common.RaiseAppEvent((Common.AppEventTypeEnum)parms[1], null);
                    }
                }
                break;

            case Common.AppEventTypeEnum.OperationAborted:
                PanelButtonsEnabled(true);
                // This will ensure that the timer and progressBar are updated and stopped
                SetProgressBarToMax();
                UpdateCurrOperationStatus("");
                RichTextBoxConsoleAddText("Operation aborted!");
                break;

            case Common.AppEventTypeEnum.RSADataExported:

                String messageToShow = String.Empty;

                switch (Properties.AppSettings.Default.impExpKeySetting)
                {
                case (Int32)Common.ImpExpKeyDataTypeEnum.BothKeys:
                    messageToShow = String.Format("RSA data exported to: {0}", Properties.AppSettings.Default.encryptionKeysExportFileName);;
                    break;

                case (Int32)Common.ImpExpKeyDataTypeEnum.PrivateKey:
                    messageToShow = String.Format("Private key exported to: {0}", Properties.AppSettings.Default.privateKeyExportFileName);
                    break;

                case (Int32)Common.ImpExpKeyDataTypeEnum.PublicKey:
                    messageToShow = String.Format("Public key exported to: {0}", Properties.AppSettings.Default.publicKeyExportFileName);
                    break;

                default:
                    break;
                }

                MessageWindow.ShowInfo(messageToShow);
                break;

            case Common.AppEventTypeEnum.RSADataImported:
                switch (rSACE.ActionsAvailable)
                {
                case RSACustomEncryption.ActionsAvailableEnum.Encrypt | RSACustomEncryption.ActionsAvailableEnum.Decrypt:
                case RSACustomEncryption.ActionsAvailableEnum.Encrypt:
                    this.PanelButtonsEnabled(true);
                    ButtonLoadDataEnabled(true);
                    ButtonOpenLoadedFileFolderEnabled(false);
                    ButtonEncryptEnabled(false);
                    ButtonDecryptEnabled(true);
                    this.PrintRSAParameters(true);
                    break;

                case RSACustomEncryption.ActionsAvailableEnum.Decrypt:
                    PanelButtonsEnabled(true);
                    ButtonLoadDataEnabled(false);
                    ButtonOpenLoadedFileFolderEnabled(false);
                    ButtonEncryptEnabled(false);
                    ButtonDecryptEnabled(true);
                    break;
                }
                break;

            case Common.AppEventTypeEnum.DecryptionImpossible:
                if (parms != null)
                {
                    workersFinishedJob++;
                    if (workersFinishedJob == Properties.AppSettings.Default.threadsRSA)
                    {
                        MessageWindow.ShowError("Cannot decrypt data with the provided key!");
                        SetProgressBarToMax();
                        UpdateCurrOperationStatus("");
                        this.PanelButtonsEnabled(true);
                    }
                }
                break;

            default: break;
            }

            lastOperation = eventType;
        }