Пример #1
0
char *elapsed_remaining (ELAPSED *e, unsigned long current, unsigned long maxval, const char *suffix)
{
double percent = (double)current * 100.0 / (double)maxval;
double rem;
char bb[64];

unsigned long dval;
double dd;

  elapsed_stop (e);
  dval = current - e->prevVal;

  rem = diff_us (&e->EndPoint, &e->StartPoint);
  dd  = diff_us (&e->EndPoint, &e->prevPoint);

  dd = (double)dval*1.0e6 / dd;

  rem = rem * (100.0 - percent) / percent;
  rem /= 1.0e6;

  remaining_out (e, percent, (unsigned long)rem);
  if (dd > 1000)  sprintf (bb, "  %s %s ", print_big_number((unsigned long)dd), suffix ? suffix : "op/s");
  else            sprintf (bb, " %.0f %s ", dd, suffix ? suffix : "op/s");
  strcat (e->buf, bb);

  e->prevVal = current;
  memcpy (&e->prevPoint, &e->EndPoint, sizeof(struct timeval));

  return e->buf;
}
Пример #2
0
char *elapsed_remaining (ELAPSED *e, unsigned long current, unsigned long maxval, const char *suffix)
{
double percent = (double)current * 100.0 / (double)maxval;
double rem;
char bb[64];

unsigned long dval;
double dd;

  elapsed_stop (e);
  dval = current - e->prevVal;

  if (e->TmrOK)  {
    e->diff = e->Counter2.QuadPart - e->Counter1.QuadPart;
    dd = (double)(e->Counter2.QuadPart - e->prevCounter2.QuadPart);
    dd = 1.0e6*dd / (double) e->TmrFrequency.QuadPart;
    dd = (double)dval*1.0e6 / dd;

    rem = (double)e->diff;
    rem = 1.0e6*rem / (double) e->TmrFrequency.QuadPart;
    rem = rem * (100.0 - percent) / percent;
    rem /= 1.0e6;
  }
  else  {
    rem = (double)(e->EndPoint - e->StartPoint);
    dd = (double)(e->EndPoint - e->prevPoint);
    dd = (double)dval*1.0e3 / dd;
    rem = rem * (100.0 - percent) / percent;
    e->PointDiff = (DWORD)rem;
    rem /= 1000.0;
  }
  remaining_out (e, percent, (unsigned long)rem);
  if (dd > 1000)  sprintf (bb, "  %s %s ", print_big_number((unsigned long)dd), suffix ? suffix : "op/s");
  else            sprintf (bb, " %.0f %s ", dd, suffix ? suffix : "op/s");

  strcat (e->buf, bb);

  e->prevVal = current;
  e->prevPoint = e->EndPoint;
  e->prevCounter2.QuadPart = e->Counter2.QuadPart;

  return e->buf;
}
Пример #3
0
int freq_display(void)
{

    extern float freq;
    extern int trxmode;

    int x_position = 40;
    int y_position = 17;
    int location = 0;
    char fbuffer[8];

    print_space(y_position, x_position);
    print_space(y_position + 1, x_position);
    print_space(y_position + 2, x_position);
    print_space(y_position + 3, x_position);
    print_space(y_position + 4, x_position);
    nicebox(16, 39, 5, 35, "TRX");
    print_dot(y_position + 4, 28 + x_position + 1);

    sprintf(fbuffer, "%7.1f", freq);

    location = 32;

    if (fbuffer[0] != ' ')
	print_big_number(fbuffer[0] - 48, y_position, x_position, 4);
    if (fbuffer[1] != ' ')
	print_big_number(fbuffer[1] - 48, y_position, x_position, 9);
    if (fbuffer[2] != ' ')
	print_big_number(fbuffer[2] - 48, y_position, x_position, 14);
    if (fbuffer[3] != ' ')
	print_big_number(fbuffer[3] - 48, y_position, x_position, 19);
    if (fbuffer[4] != ' ')
	print_big_number(fbuffer[4] - 48, y_position, x_position, 24);
    if (fbuffer[6] != ' ')
	print_big_number(fbuffer[6] - 48, y_position, x_position, 31);

    attron(COLOR_PAIR(C_HEADER) | A_STANDOUT);

    if (trxmode == CWMODE)
	mvprintw(18, 41, "CW");
    else if (trxmode == SSBMODE)
	mvprintw(19, 41, "SSB");
    else
	mvprintw(19, 41, "DIG");

    refreshp();

    return (0);
}
Пример #4
0
void xr_dsa::generate_params()
{
	int counter;
	unsigned long	long_ret;
	string256		random_string;
	xr_sprintf					(random_string, "%I64d_%s", CPU::QPC(), rnd_seed);
	//sprintf_s					(random_string, "%s", rnd_seed);
	unsigned char*	rnd_seed	= static_cast<unsigned char*>((void*)random_string);
	unsigned int	rnd_ssize	= xr_strlen(random_string);
	DSA* tmp_dsa_params	= DSA_generate_parameters(
		key_bit_length,
		rnd_seed,
		rnd_ssize,
		&counter,
		&long_ret,
		dsa_genparams_cb,
		NULL
	);
	DSA_generate_key	(tmp_dsa_params);

	VERIFY				(tmp_dsa_params->p->top * sizeof(u32)		== public_key_length);
	VERIFY				(tmp_dsa_params->q->top * sizeof(u32)		== private_key_length);
	VERIFY				(tmp_dsa_params->g->top * sizeof(u32)		== public_key_length);
	VERIFY				(tmp_dsa_params->pub_key->top * sizeof(u32) == public_key_length);
	VERIFY				(tmp_dsa_params->priv_key->top * sizeof(u32)== private_key_length);
	
	Msg("// DSA params ");
	
	Msg("u8 const p_number[crypto::xr_dsa::public_key_length] = {");
	print_big_number	(tmp_dsa_params->p);
	Msg("};//p_number");

	
	Msg("u8 const q_number[crypto::xr_dsa::private_key_length] = {");
	print_big_number	(tmp_dsa_params->q);
	Msg("};//q_number");
	
	
	Msg("u8 const g_number[crypto::xr_dsa::public_key_length] = {");
	print_big_number	(tmp_dsa_params->g);
	Msg("};//g_number");

	Msg("u8 const public_key[crypto::xr_dsa::public_key_length] = {");
	print_big_number	(tmp_dsa_params->pub_key);
	Msg("};//public_key");

	
	u8	priv_bin[private_key_length];
	BN_bn2bin			(tmp_dsa_params->priv_key, priv_bin);
	Msg("// Private key:");
	for (int i = 0; i < private_key_length; ++i)
	{
		Msg("	m_private_key.m_value[%d]	= 0x%02x;", i, priv_bin[i]);
	}

	u8	debug_digest[]		= "this is a test";
	u8	debug_bad_digest[]	= "this as a test";

	u32		siglen			= DSA_size(tmp_dsa_params);
	u8*		sig				= static_cast<u8*>(_alloca(siglen));

	BIGNUM	bn_sign;
	BN_init					(&bn_sign);
	
	VERIFY	(DSA_sign(0, debug_digest, sizeof(debug_digest), sig, &siglen, tmp_dsa_params) == 1);

	BN_bin2bn				(sig, siglen, &bn_sign);
	shared_str sig_str		= BN_bn2hex(&bn_sign);
	
	BIGNUM*	bn_rsing		= NULL;
	ZeroMemory				(sig, siglen);
	BN_hex2bn				(&bn_rsing, sig_str.c_str());
	BN_bn2bin				(bn_rsing, sig);
	BN_free					(bn_rsing);

	VERIFY	(DSA_verify(0, debug_digest, sizeof(debug_digest), sig, siglen, tmp_dsa_params) == 1);

	VERIFY	(DSA_verify(0, debug_bad_digest, sizeof(debug_bad_digest), sig, siglen, tmp_dsa_params) == 0);

	DSA_free(tmp_dsa_params);
}