Пример #1
0
        internal RSACryptoSystem(BackgroundWorker UseWorker, RSACryptoWorkerInfo UseWInfo)
        {
            Worker     = UseWorker;
            WorkerInfo = UseWInfo;
            StartTime  = new ECTime();
            StartTime.SetToNow();
            RngCsp  = new RNGCryptoServiceProvider();
            IntMath = new IntegerMath(null);

            IntMathForP = new IntegerMath(null);
            IntMathForQ = new IntegerMath(null);
            // Worker.ReportProgress( 0, IntMath.GetStatusString() );

            Quotient               = new Integer();
            Remainder              = new Integer();
            PrimeP                 = new Integer();
            PrimeQ                 = new Integer();
            PrimePMinus1           = new Integer();
            PrimeQMinus1           = new Integer();
            PubKeyN                = new Integer();
            PubKeyExponent         = new Integer();
            PrivKInverseExponent   = new Integer();
            PrivKInverseExponentDP = new Integer();
            PrivKInverseExponentDQ = new Integer();
            QInv           = new Integer();
            PhiN           = new Integer();
            TestForDecrypt = new Integer();
            M1ForInverse   = new Integer();
            M2ForInverse   = new Integer();
            HForQInv       = new Integer();
            M1MinusM2      = new Integer();
            M1M2SizeDiff   = new Integer();

            PubKeyExponent.SetFromULong(PubKeyExponentUint);
        }
Пример #2
0
 private void makeKeysToolStripMenuItem_Click(object sender, EventArgs e)
   {
   Cancelled = false;
   RSACryptoWorkerInfo WInfo = new RSACryptoWorkerInfo();
   WInfo.ProcessName = "RSA Make Keys";
   RSACryptoBack = new RSACryptoBackground( this, WInfo );
   RSACryptoBack.RunWorkerAsync( WInfo );
   }
Пример #3
0
 internal RSACryptoBackground(MainForm UseForm, RSACryptoWorkerInfo WInfo)
 {
     MForm                      = UseForm;
     DoWork                    += new DoWorkEventHandler(RSACryptoBackground_DoWork);
     ProgressChanged           += new ProgressChangedEventHandler(RSACryptoBackground_ProgressChanged);
     RunWorkerCompleted        += new RunWorkerCompletedEventHandler(RSACryptoBackground_RunWorkerCompleted);
     WorkerReportsProgress      = true;
     WorkerSupportsCancellation = true;
     ProcessName                = WInfo.ProcessName;
 }
Пример #4
0
        private void RSACryptoBackground_DoWork(object sender, DoWorkEventArgs e)
        {
            if (CancellationPending)
            {
                return;
            }

            if (MForm.GetIsClosing())
            {
                return;
            }

            BackgroundWorker    Worker = (BackgroundWorker)sender;
            RSACryptoWorkerInfo WInfo  = (RSACryptoWorkerInfo)(e.Argument);

            try // catch
            {
                if (Worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }

                RSACryptoSystem RSACrypto = new RSACryptoSystem(Worker, WInfo);
                RSACrypto.MakeRSAKeys();
                RSACrypto.FreeEverything();
                if (Worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
            }
            catch (Exception Except)
            {
                Worker.ReportProgress(0, "Error in RSACryptoBackground DoWork process:");
                Worker.ReportProgress(0, Except.Message);
                e.Cancel = true;
            }
        }