From 40ae0e0bbaa03821246e5fbde977da589c70f40b Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 31 Jan 2018 16:53:59 +0100 Subject: [PATCH] curve25519: replace hacl64 with fiat64 For now, it's faster: hacl64: 109782 cycles per call fiat64: 108984 cycles per call It's quite possible this commit will be reverted with nice changes from INRIA, though. Signed-off-by: Jason A. Donenfeld --- contrib/keygen-html/src/curve25519_generate.c | 2 +- src/curve25519.c | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/contrib/keygen-html/src/curve25519_generate.c b/contrib/keygen-html/src/curve25519_generate.c index 8b4bbb3..e7873a6 100644 --- a/contrib/keygen-html/src/curve25519_generate.c +++ b/contrib/keygen-html/src/curve25519_generate.c @@ -48,7 +48,7 @@ static __always_inline void normalize_secret(u8 secret[CURVE25519_POINT_SIZE]) secret[31] |= 64; } -#include "../../../../src/crypto/curve25519-fiat32.h" +#include "../../../../src/crypto/curve25519-generic.h" EMSCRIPTEN_KEEPALIVE void curve25519_generate_public(u8 public[static 32], const u8 private[static 32]) { diff --git a/src/curve25519.c b/src/curve25519.c index 0ed4977..50b95a9 100644 --- a/src/curve25519.c +++ b/src/curve25519.c @@ -1,11 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 * - * Copyright (C) 2016-2017 INRIA and Microsoft Corporation. - * Copyright (C) 2015-2016 The fiat-crypto Authors. * Copyright (C) 2018 Jason A. Donenfeld . All Rights Reserved. - * - * This is a machine-generated formally verified implementation of curve25519 DH from: - * https://github.com/mitls/hacl-star and https://github.com/mit-plv/fiat-crypto */ #include "curve25519.h" @@ -44,11 +39,11 @@ static noinline void memzero_explicit(void *s, size_t count) } #ifdef __SIZEOF_INT128__ -#include "../crypto/curve25519-hacl64.h" -#else -#include "../crypto/curve25519-fiat32.h" +#define CONFIG_ARCH_SUPPORTS_INT128 #endif +#include "../crypto/curve25519-generic.h" + void curve25519_generate_public(uint8_t pub[static CURVE25519_POINT_SIZE], const uint8_t secret[static CURVE25519_POINT_SIZE]) { static const uint8_t basepoint[CURVE25519_POINT_SIZE] = { 9 };