mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-14 03:30:02 +00:00
add speed test
This commit is contained in:
parent
1bd0592c26
commit
8e7bee7043
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*.o
|
*.o
|
||||||
test
|
test-speed
|
||||||
|
test-verify
|
||||||
|
14
Makefile
14
Makefile
@ -1,13 +1,17 @@
|
|||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS = -Wall
|
CFLAGS = -Wall
|
||||||
OBJS = aux.o ecdsa.o secp256k1.o sha256.o rand.o test.o
|
OBJS = aux.o ecdsa.o secp256k1.o sha256.o rand.o
|
||||||
NAME = test
|
|
||||||
|
all: test-speed test-verify
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(CC) $(CFLAGS) -o $@ -c $<
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
$(NAME): $(OBJS)
|
test-speed: test-speed.o $(OBJS)
|
||||||
gcc $(OBJS) -o $(NAME) -lcrypto
|
gcc test-speed.o $(OBJS) -o test-speed -lcrypto
|
||||||
|
|
||||||
|
test-verify: test-verify.o $(OBJS)
|
||||||
|
gcc test-verify.o $(OBJS) -o test-verify -lcrypto
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) $(NAME)
|
rm -f $(OBJS) test-speed test-verify
|
||||||
|
58
test-speed.c
Normal file
58
test-speed.c
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2013 Tomas Dzetkulic
|
||||||
|
* Copyright (c) 2013 Pavol Rusnak
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
* in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
|
||||||
|
* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "ecdsa.h"
|
||||||
|
#include "rand.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
uint8_t sig[70], priv_key[32], msg[256];
|
||||||
|
uint32_t sig_len, i, msg_len;
|
||||||
|
int cnt = 0;
|
||||||
|
|
||||||
|
init_rand();
|
||||||
|
|
||||||
|
clock_t t = clock();
|
||||||
|
for (;;) {
|
||||||
|
// random message len between 1 and 256
|
||||||
|
msg_len = (random32() & 0xFF) + 1;
|
||||||
|
// create random message
|
||||||
|
for (i = 0; i < msg_len; i++) {
|
||||||
|
msg[i] = random32() & 0xFF;
|
||||||
|
}
|
||||||
|
// create random privkey
|
||||||
|
for (i = 0; i < 32; i++) {
|
||||||
|
priv_key[i] = random32() & 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
// use our ECDSA signer to sign the message with the key
|
||||||
|
ecdsa_sign(priv_key, msg, msg_len, sig, &sig_len);
|
||||||
|
|
||||||
|
cnt++;
|
||||||
|
if ((cnt % 100) == 0) printf("Speed: %f sig/s \n", 1.0f * cnt / ((float)(clock() - t) / CLOCKS_PER_SEC));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
@ -24,6 +24,7 @@
|
|||||||
#include <openssl/ecdsa.h>
|
#include <openssl/ecdsa.h>
|
||||||
#include <openssl/obj_mac.h>
|
#include <openssl/obj_mac.h>
|
||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "ecdsa.h"
|
#include "ecdsa.h"
|
||||||
@ -44,7 +45,7 @@ int main()
|
|||||||
// random message len between 1 and 256
|
// random message len between 1 and 256
|
||||||
msg_len = (random32() & 0xFF) + 1;
|
msg_len = (random32() & 0xFF) + 1;
|
||||||
// create random message
|
// create random message
|
||||||
for (i = 0; i <msg_len; i++) {
|
for (i = 0; i < msg_len; i++) {
|
||||||
msg[i] = random32() & 0xFF;
|
msg[i] = random32() & 0xFF;
|
||||||
}
|
}
|
||||||
// new ECDSA key
|
// new ECDSA key
|
Loading…
Reference in New Issue
Block a user