diff --git a/bip32.c b/bip32.c index 11f3df75d..6effce145 100644 --- a/bip32.c +++ b/bip32.c @@ -406,7 +406,7 @@ void hdnode_fill_public_key(HDNode *node) ed25519_publickey(node->private_key, node->public_key + 1); } else if (node->curve == &curve25519_info) { node->public_key[0] = 1; - curve25519_donna_basepoint(node->public_key + 1, node->private_key); + curve25519_scalarmult_basepoint(node->public_key + 1, node->private_key); } else { ecdsa_get_public_key33(node->curve->params, node->private_key, node->public_key); } @@ -472,7 +472,7 @@ int hdnode_get_shared_key(const HDNode *node, const uint8_t *peer_public_key, ui if (peer_public_key[0] != 0x40) { return 1; // Curve25519 public key should start with 0x40 byte. } - curve25519_donna(session_key + 1, node->private_key, peer_public_key + 1); + curve25519_scalarmult(session_key + 1, node->private_key, peer_public_key + 1); *result_size = 33; return 0; } else { diff --git a/ed25519-donna/ed25519.c b/ed25519-donna/ed25519.c index 52a7f21fe..631d15f9d 100644 --- a/ed25519-donna/ed25519.c +++ b/ed25519-donna/ed25519.c @@ -108,8 +108,8 @@ ed25519_sign_open(const unsigned char *m, size_t mlen, const ed25519_public_key Fast Curve25519 basepoint scalar multiplication */ void -curved25519_scalarmult_basepoint(curved25519_key pk, const curved25519_key e) { - curved25519_key ec; +curve25519_scalarmult_basepoint(curve25519_key pk, const curve25519_key e) { + curve25519_key ec; bignum256modm s; bignum25519 ALIGN(16) yplusz, zminusy; ge25519 ALIGN(16) p; @@ -135,7 +135,7 @@ curved25519_scalarmult_basepoint(curved25519_key pk, const curved25519_key e) { } void -curve25519_donna(curve25519_key mypublic, const curve25519_key secret, const curve25519_key basepoint) { +curve25519_scalarmult(curve25519_key mypublic, const curve25519_key secret, const curve25519_key basepoint) { curve25519_key e; size_t i; @@ -145,9 +145,3 @@ curve25519_donna(curve25519_key mypublic, const curve25519_key secret, const cur e[31] |= 0x40; curve25519_scalarmult_donna(mypublic, e, basepoint); } - -void -curve25519_donna_basepoint(curve25519_key mypublic, const curve25519_key secret) { - static const curve25519_key basepoint = {9}; - curve25519_donna(mypublic, secret, basepoint); -} diff --git a/ed25519-donna/ed25519.h b/ed25519-donna/ed25519.h index 928e7cd06..96a2727b4 100644 --- a/ed25519-donna/ed25519.h +++ b/ed25519-donna/ed25519.h @@ -11,18 +11,12 @@ typedef unsigned char ed25519_secret_key[32]; typedef unsigned char curve25519_key[32]; -typedef unsigned char curved25519_key[32]; - void ed25519_publickey(const ed25519_secret_key sk, ed25519_public_key pk); int ed25519_sign_open(const unsigned char *m, size_t mlen, const ed25519_public_key pk, const ed25519_signature RS); void ed25519_sign(const unsigned char *m, size_t mlen, const ed25519_secret_key sk, const ed25519_public_key pk, ed25519_signature RS); -int ed25519_sign_open_batch(const unsigned char **m, size_t *mlen, const unsigned char **pk, const unsigned char **RS, size_t num, int *valid); - -void curved25519_scalarmult_basepoint(curved25519_key pk, const curved25519_key e); - -void curve25519_donna(curve25519_key mypublic, const curve25519_key secret, const curve25519_key basepoint); -void curve25519_donna_basepoint(curve25519_key mypublic, const curve25519_key secret); +void curve25519_scalarmult(curve25519_key mypublic, const curve25519_key secret, const curve25519_key basepoint); +void curve25519_scalarmult_basepoint(curve25519_key mypublic, const curve25519_key secret); #if defined(__cplusplus) } diff --git a/test_speed.c b/test_speed.c index c6fa53174..eaa808be6 100644 --- a/test_speed.c +++ b/test_speed.c @@ -91,7 +91,7 @@ void bench_curve25519(void) clock_t t = clock(); for (int i = 0 ; i < 500; i++) { - curve25519_donna(result, secret, basepoint); + curve25519_scalarmult(result, secret, basepoint); } printf("Curve25519 multiplying speed: %0.2f mul/s\n", 500.0f / ((float)(clock() - t) / CLOCKS_PER_SEC)); }