Exemple #1
0
static DWORD WINAPI generate_rsa_key_thread(void *param)
{
    struct rsa_key_thread_params *params =
	(struct rsa_key_thread_params *) param;
    struct progress prog;
    prog.progbar = params->progressbar;

    progress_update(&prog, PROGFN_INITIALISE, 0, 0);

    if (params->is_dsa)
	dsa_generate(params->dsskey, params->keysize, progress_update, &prog);
    else
	rsa_generate(params->key, params->keysize, progress_update, &prog);

    PostMessage(params->dialog, WM_DONEKEY, 0, 0);

    sfree(params);
    return 0;
}
Exemple #2
0
  virtual void __fastcall Execute()
  {
    try
    {
      ProgressUpdate(PROGFN_INITIALISE, 0, 0);

      if (FGenerator->KeyType == ktDSA)
      {
        dsa_generate(FGenerator->FDSSKey, FGenerator->KeySize,
          KeyGenerationProgressUpdate, this);
      }
      else
      {
        rsa_generate(FGenerator->FRSAKey, FGenerator->KeySize,
          KeyGenerationProgressUpdate, this);
      }
      Progress.Complete = kgSuccess;
    }
    catch(...)
    {
      Progress.Complete = kgFailure;
    }
    Synchronize(DistributeProgressUpdate);
  }