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); }
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 ); }
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; }
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; } }