2013-08-17 12:20:15 +00:00
|
|
|
MicroECDSA
|
|
|
|
==========
|
|
|
|
|
|
|
|
Heavily optimized ECDSA (secp256k1) signer for embedded devices.
|
|
|
|
|
|
|
|
Distibuted under MIT License.
|
2013-08-17 12:28:45 +00:00
|
|
|
|
|
|
|
Notes
|
|
|
|
-----
|
|
|
|
|
2013-08-21 16:07:02 +00:00
|
|
|
a) the signer only understands secp256k1 elliptic curve
|
|
|
|
|
|
|
|
b) random generator in rand.c is using stdlib's rand() function.
|
2013-08-17 12:28:45 +00:00
|
|
|
you should replace this code with one that uses a hardware random
|
2013-08-21 16:07:02 +00:00
|
|
|
generator of your microcontroller in production.
|
|
|
|
(see speed-stm32/rand.c for such example)
|
2013-08-21 18:05:25 +00:00
|
|
|
|
|
|
|
c) there are executables:
|
|
|
|
* test-speed
|
|
|
|
- check signing speed (sign 100x and compute speed from duration)
|
|
|
|
* test-verify
|
|
|
|
- generate random messages and private keys
|
|
|
|
- check signature validity against OpenSSL (call verify method)
|
|
|
|
|
|
|
|
d) directory speed-stm32 contains project for deploying the code
|
|
|
|
on STM32 microcontroller and checking signing speed there
|