1
0
mirror of https://github.com/taigrr/arduinolibs synced 2025-01-18 04:33:12 -08:00

Finalization and key setup figures for hash/auth algorithms

This commit is contained in:
Rhys Weatherley
2015-04-02 16:33:47 +10:00
parent d50a7fed2d
commit 47ab405e7f
10 changed files with 392 additions and 19 deletions

View File

@@ -228,6 +228,66 @@ void perfHash(Hash *hash)
Serial.println(" bytes per second");
}
void perfFinalize(Hash *hash)
{
unsigned long start;
unsigned long elapsed;
int count;
Serial.print("Finalizing ... ");
hash->reset();
hash->update("abc", 3);
start = micros();
for (count = 0; count < 1000; ++count) {
hash->finalize(buffer, hash->hashSize());
}
elapsed = micros() - start;
Serial.print(elapsed / 1000.0);
Serial.print("us per op, ");
Serial.print((1000.0 * 1000000.0) / elapsed);
Serial.println(" ops per second");
}
void perfHMAC(Hash *hash)
{
unsigned long start;
unsigned long elapsed;
int count;
Serial.print("HMAC Reset ... ");
for (size_t posn = 0; posn < sizeof(buffer); ++posn)
buffer[posn] = (uint8_t)posn;
start = micros();
for (count = 0; count < 1000; ++count) {
hash->resetHMAC(buffer, hash->hashSize());
}
elapsed = micros() - start;
Serial.print(elapsed / 1000.0);
Serial.print("us per op, ");
Serial.print((1000.0 * 1000000.0) / elapsed);
Serial.println(" ops per second");
Serial.print("HMAC Finalize ... ");
hash->resetHMAC(buffer, hash->hashSize());
hash->update("abc", 3);
start = micros();
for (count = 0; count < 1000; ++count) {
hash->finalizeHMAC(buffer, hash->hashSize(), buffer, hash->hashSize());
}
elapsed = micros() - start;
Serial.print(elapsed / 1000.0);
Serial.print("us per op, ");
Serial.print((1000.0 * 1000000.0) / elapsed);
Serial.println(" ops per second");
}
void setup()
{
Serial.begin(9600);
@@ -254,6 +314,8 @@ void setup()
Serial.println("Performance Tests:");
perfHash(&sha256);
perfFinalize(&sha256);
perfHMAC(&sha256);
}
void loop()