diff options
Diffstat (limited to 'web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino')
-rw-r--r-- | web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino b/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino deleted file mode 100644 index c3c8900d8..000000000 --- a/web/server/h2o/libh2o/deps/picotls/deps/micro-ecc/test/ecc_test/ecc_test.ino +++ /dev/null @@ -1,85 +0,0 @@ -#include <uECC.h> - -extern "C" { - -static int RNG(uint8_t *dest, unsigned size) { - // Use the least-significant bits from the ADC for an unconnected pin (or connected to a source of - // random noise). This can take a long time to generate random data if the result of analogRead(0) - // doesn't change very frequently. - while (size) { - uint8_t val = 0; - for (unsigned i = 0; i < 8; ++i) { - int init = analogRead(0); - int count = 0; - while (analogRead(0) == init) { - ++count; - } - - if (count == 0) { - val = (val << 1) | (init & 0x01); - } else { - val = (val << 1) | (count & 0x01); - } - } - *dest = val; - ++dest; - --size; - } - // NOTE: it would be a good idea to hash the resulting random data using SHA-256 or similar. - return 1; -} - -} // extern "C" - -void setup() { - Serial.begin(115200); - Serial.print("Testing ecc\n"); - uECC_set_rng(&RNG); -} - -void loop() { - const struct uECC_Curve_t * curve = uECC_secp160r1(); - uint8_t private1[21]; - uint8_t private2[21]; - - uint8_t public1[40]; - uint8_t public2[40]; - - uint8_t secret1[20]; - uint8_t secret2[20]; - - unsigned long a = millis(); - uECC_make_key(public1, private1, curve); - unsigned long b = millis(); - - Serial.print("Made key 1 in "); Serial.println(b-a); - a = millis(); - uECC_make_key(public2, private2, curve); - b = millis(); - Serial.print("Made key 2 in "); Serial.println(b-a); - - a = millis(); - int r = uECC_shared_secret(public2, private1, secret1, curve); - b = millis(); - Serial.print("Shared secret 1 in "); Serial.println(b-a); - if (!r) { - Serial.print("shared_secret() failed (1)\n"); - return; - } - - a = millis(); - r = uECC_shared_secret(public1, private2, secret2, curve); - b = millis(); - Serial.print("Shared secret 2 in "); Serial.println(b-a); - if (!r) { - Serial.print("shared_secret() failed (2)\n"); - return; - } - - if (memcmp(secret1, secret2, 20) != 0) { - Serial.print("Shared secrets are not identical!\n"); - } else { - Serial.print("Shared secrets are identical\n"); - } -} - |