int main(void)
{
  unsigned int i;
  unsigned long long t[NRUNS];

  pk = calloc(crypto_dh_PUBLICKEYBYTES,1);
  if(!pk) fail("allocation of pk failed");
  sk = calloc(crypto_dh_SECRETKEYBYTES,1);
  if(!sk) fail("allocation of sk failed");
  s = calloc(crypto_dh_BYTES,1);
  if(!s) fail("allocation of s failed");

  for(i=0;i<NRUNS;i++)
  {
    t[i] = cpucycles();
    crypto_dh_keypair(pk,sk);
  }
  print_speed(XSTR(crypto_dh_keypair),-1,t,NRUNS);

  for(i=0;i<NRUNS;i++)
  {
    t[i] = cpucycles();
    crypto_dh(s,pk,sk);
  }
  print_speed(XSTR(crypto_dh),-1,t,NRUNS);

  free(pk);
  free(sk);
  free(s);

  avr_end();
  return 0;
}
Exemple #2
0
int main()
{
  print("mul_asm: ");
  stack_mul(mul_asm);

  avr_end();
  return 0;
}
int main(void)
{
  volatile unsigned char a; /* Mark the beginning of the stack */

  for(i=0;i<5;i++)
  {
    canary = random();
    WRITE_CANARY(&a);
    crypto_verify(x,y);
    newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
    ctr = (newctr>ctr)?newctr:ctr;
  }
  print_stack(XSTR(crypto_verify),0,ctr);

  avr_end();
  return 0;
}
int main(void)
{
  volatile unsigned char a; /* Mark the beginning of the stack */

  for(i=0;i<5;i++)
  {
    canary = random();
    WRITE_CANARY(&a);
    crypto_sign_keypair(pk,sk);
    newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
    ctr = (newctr>ctr)?newctr:ctr;
  }
  print_stack(XSTR(crypto_sign_keypair),-1,ctr);

  for(i=0;i<5;i++)
  {
    canary = random();
    WRITE_CANARY(&a);
    crypto_sign(sm,&smlen,sm,0,sk);
    newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
    ctr = (newctr>ctr)?newctr:ctr;
  }
  print_stack(XSTR(crypto_sign),0,ctr);

  for(i=0;i<5;i++)
  {
    canary = random();
    WRITE_CANARY(&a);
    crypto_sign_open(sm,&mlen,sm,smlen,pk);
    newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
    ctr = (newctr>ctr)?newctr:ctr;
  }
  print_stack(XSTR(crypto_sign_open),smlen,ctr);

  for(j=1;j<=MAXTEST_BYTES;j<<=1)
  {
    mlen = j;

    for(i=0;i<5;i++)
    {
      canary = random();
      WRITE_CANARY(&a);
      crypto_sign(sm,&smlen,sm,mlen,sk);
      newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
      ctr = (newctr>ctr)?newctr:ctr;
    }
    print_stack(XSTR(crypto_sign),mlen,ctr);

    for(i=0;i<5;i++)
    {
      canary = random();
      WRITE_CANARY(&a);
      crypto_sign_open(sm,&mlen,sm,smlen,pk);
      newctr =(unsigned int)&a - (unsigned int)&_end - stack_count(canary);
      ctr = (newctr>ctr)?newctr:ctr;
    }
    print_stack(XSTR(crypto_sign_open),smlen,ctr);
  }

  avr_end();
  return 0;
}
int main()
{
  int i;

  print("====== BEGIN CPUCYCLES TEST ======\n");

  for(i=0;i<NTIMINGS;i++)
  {
    t[i] = cpucycles();
    _delay_ms(1);   
  }
  for(i=0;i<NTIMINGS-1;i++)
  {
    printllu(t[i+1]-t[i]);
    print(" ");
  }
  print("\n");


  for(i=0;i<NTIMINGS;i++)
  {
    t[i] = cpucycles();
    _delay_ms(2);   
  }
  for(i=0;i<NTIMINGS-1;i++)
  {
    printllu(t[i+1]-t[i]);
    print(" ");
  }
  print("\n");


  for(i=0;i<NTIMINGS;i++)
  {
    t[i] = cpucycles();
    _delay_ms(3);   
  }
  for(i=0;i<NTIMINGS-1;i++)
  {
    printllu(t[i+1]-t[i]);
    print(" ");
  }
  print("\n");


  for(i=0;i<NTIMINGS;i++)
  {
    t[i] = cpucycles();
    _delay_ms(4);   
  }
  for(i=0;i<NTIMINGS-1;i++)
  {
    printllu(t[i+1]-t[i]);
    print(" ");
  }
  print("\n");


  for(i=0;i<NTIMINGS;i++)
  {
    t[i] = cpucycles();
    _delay_ms(5);   
  }
  for(i=0;i<NTIMINGS-1;i++)
  {
    printllu(t[i+1]-t[i]);
    print(" ");
  }
  print("\n");
  
  print("======  END CPUCYCLES TEST  ======\n");


  avr_end();
  return 0;
}