From 9a9a466e83ca4cb8237199ec102c9af9a482647f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Mon, 5 Sep 2016 15:17:19 +0200 Subject: [PATCH] Define NETTLE_CURVE25519_RFC7748, and document it. --- ChangeLog | 6 ++++++ curve25519.h | 3 +++ nettle.texinfo | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6d54149a..5e130699 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-09-05 Niels Möller <nisse@lysator.liu.se> + + * curve25519.h (NETTLE_CURVE25519_RFC7748): New preprocessor + constant. + * nettle.texinfo: Document it. + 2016-09-03 Niels Möller <nisse@lysator.liu.se> * config.make.in (.SUFFIXES): Delete no longer used .p$(OBJEXT). diff --git a/curve25519.h b/curve25519.h index b47200b9..1dcd94da 100644 --- a/curve25519.h +++ b/curve25519.h @@ -44,6 +44,9 @@ extern "C" { #define CURVE25519_SIZE 32 +/* Indicates that curve25519_mul conforms to RFC 7748. */ +#define NETTLE_CURVE25519_RFC7748 1 + void curve25519_mul_g (uint8_t *q, const uint8_t *n); diff --git a/nettle.texinfo b/nettle.texinfo index e539dbe6..cbcad259 100644 --- a/nettle.texinfo +++ b/nettle.texinfo @@ -4337,6 +4337,20 @@ by @cite{RFC 7748}. Its the output is therefore well defined for @emph{all} possible inputs, no matter if the input string represents a valid point on the curve or not. +Note that the curve25519 implementation in earlier versions from Nettle +deviates slightly from @cite{RFC 7748}, in that bit 255 of the @math{x} +coordinate of the point input to curve25519_mul was not ignored. The +@file{nette/curve25519.h} defines a preprocessor symbol +@code{NETTLE_CURVE25519_RFC7748} to indicate conformance with the +standard. + +Nettle defines Curve 25519 in @file{<nettle/curve25519.h>}. + +@defvr Constant NETTLE_CURVE25519_RFC7748 +Defined to 1 in Nettle versions conforming to RFC 7748. Undefined in +earlier versions. +@end defvr + @defvr Constant CURVE25519_SIZE The size of the strings representing curve25519 points and scalars, 32. @end defvr -- GitLab