aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcryptobox/curve25519/curve25519-donna.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-10-12 16:18:22 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-10-12 16:18:22 +0100
commit395cb950190b94ea6565cbf7cfeb65d05de75209 (patch)
tree5158ac507e90cd7d697b7fd83b71373de91d6e0c /src/libcryptobox/curve25519/curve25519-donna.c
parentd73986b308e2385201c02ca197260d1adc481f03 (diff)
downloadrspamd-395cb950190b94ea6565cbf7cfeb65d05de75209.tar.gz
rspamd-395cb950190b94ea6565cbf7cfeb65d05de75209.zip
Add testing for curve25519 ECDH.
Diffstat (limited to 'src/libcryptobox/curve25519/curve25519-donna.c')
-rw-r--r--src/libcryptobox/curve25519/curve25519-donna.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libcryptobox/curve25519/curve25519-donna.c b/src/libcryptobox/curve25519/curve25519-donna.c
index b3b59d860..55d1d1730 100644
--- a/src/libcryptobox/curve25519/curve25519-donna.c
+++ b/src/libcryptobox/curve25519/curve25519-donna.c
@@ -894,11 +894,18 @@ static void crecip (limb *out, const limb *z)
int scalarmult_donna32 (u8 *mypublic, const u8 *secret, const u8 *basepoint)
{
limb bp[10], x[10], z[11], zmone[10];
+ unsigned char e[32];
+
+ memcpy (e, secret, 32);
+ e[0] &= 248;
+ e[31] &= 127;
+ e[31] |= 64;
fexpand (bp, basepoint);
- cmult (x, z, secret, bp);
+ cmult (x, z, e, bp);
crecip (zmone, z);
fmul (z, x, zmone);
fcontract (mypublic, z);
+
return 0;
}