]> git.ipfire.org Git - thirdparty/nettle.git/log
thirdparty/nettle.git
5 years agoFix gnutls ci job to not replace the system's nettle libraries.
Niels Möller [Thu, 2 Apr 2020 19:42:21 +0000 (21:42 +0200)] 
Fix gnutls ci job to not replace the system's nettle libraries.

5 years agoUpdate config.guess and config.sub.
Niels Möller [Wed, 1 Apr 2020 17:45:38 +0000 (19:45 +0200)] 
Update config.guess and config.sub.

5 years agoDelete some unused autoconf macros.
Niels Möller [Wed, 1 Apr 2020 17:39:31 +0000 (19:39 +0200)] 
Delete some unused autoconf macros.

5 years agoDelete extra quotes from TEST_SHLIB_DIR. Add comment.
Niels Möller [Wed, 1 Apr 2020 16:37:54 +0000 (18:37 +0200)] 
Delete extra quotes from TEST_SHLIB_DIR. Add comment.

5 years agoRework setting of LD_LIBRARY_PATH for tests. test-shlib-dir
Niels Möller [Tue, 31 Mar 2020 17:52:15 +0000 (19:52 +0200)] 
Rework setting of LD_LIBRARY_PATH for tests.

* testsuite/Makefile.in (check): Pass only TEST_SHLIB_DIR
to the run-tests script, and leave setting of LD_LIBRARY_PATH and
related variables to that script.
* examples/Makefile.in (check): Likewise.

* run-tests: Check TEST_SHLIB_DIR, and set up LD_LIBRARY_PATH and
related member variables.

* config.make.in (abs_top_builddir, TEST_SHLIB_DIR): New variables.

5 years agoVersion number update for Nettle-3.6
Niels Möller [Thu, 26 Mar 2020 18:51:37 +0000 (19:51 +0100)] 
Version number update for Nettle-3.6

* configure.ac: Bump package version to 3.6.
(LIBNETTLE_MINOR): Bump minor number, now 7.1.
(LIBHOGWEED_MINOR): Bump minor numbers, now 5.1

5 years agoMore NEWS entries for Nettle-3.6.
Niels Möller [Sun, 22 Mar 2020 18:47:55 +0000 (19:47 +0100)] 
More NEWS entries for Nettle-3.6.

5 years agox86: Add x86-ibt-test.c
H.J. Lu [Mon, 16 Mar 2020 12:17:34 +0000 (05:17 -0700)] 
x86: Add x86-ibt-test.c

On Linux/x86, when CET is enabled, all indirect branch targets must
start with ENDBR instruction.  Add x86-ibt-test.c to verify that missing
ENDBR instruction at indirect branch target will trigger SIGSEGV on CET
platforms.

5 years agoChangeLog entry for x86_64 CET fixes.
Niels Möller [Sat, 14 Mar 2020 18:45:41 +0000 (19:45 +0100)] 
ChangeLog entry for x86_64 CET fixes.

5 years agox86: Add ASM_X86_ENDBR and x86 CET marker to config.m4.in
H.J. Lu [Fri, 28 Feb 2020 17:52:08 +0000 (09:52 -0800)] 
x86: Add ASM_X86_ENDBR and x86 CET marker to config.m4.in

Intel Control-flow Enforcement Technology (CET):

https://software.intel.com/en-us/articles/intel-sdm

contains shadow stack (SHSTK) and indirect branch tracking (IBT).  When
CET is enabled, ELF object files must be marked with .note.gnu.property
section.  Also when IBT is enabled, all indirect branch targets must
start with ENDBR instruction.

This patch adds ASM_X86_ENDBR and the x86 CET marker to config.m4.in when
CET is enabled.  It updates PROLOGUE with ASM_X86_ENDBR.

Tested on CET machine with i686 and x86-64.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
5 years agoarm: Fix memxor for non-armv6+ big-endian systems
Michael Weiser [Thu, 5 Mar 2020 19:13:07 +0000 (20:13 +0100)] 
arm: Fix memxor for non-armv6+ big-endian systems

ARM assembly adjustments for big-endian systems contained armv6+-only
instructions (rev) in generic arm memxor code. Replace those with an
actual conversion of the leftover byte store routines for big-endian
systems. This also provides a slight optimisation by removing the
additional instruction as well as increased symmetry between little- and
big-endian implementations.

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
5 years agoMinor fixes for chacha comments and docs.
Niels Möller [Mon, 9 Mar 2020 21:15:21 +0000 (22:15 +0100)] 
Minor fixes for chacha comments and docs.

5 years agoChangeLog for previous change.
Niels Möller [Mon, 9 Mar 2020 21:14:34 +0000 (22:14 +0100)] 
ChangeLog for previous change.

5 years agodoc: match ChaCha-Poly1305 documentation to the implementation
Daiki Ueno [Mon, 9 Mar 2020 12:01:19 +0000 (13:01 +0100)] 
doc: match ChaCha-Poly1305 documentation to the implementation

While the documentation said the nonce size is 8 octets, the
implementation actually assumed 12 octets following RFC 7539.

Signed-off-by: Daiki Ueno <dueno@redhat.com>
5 years agochacha: add variant that treats counter value as 32-bit
Daiki Ueno [Mon, 9 Mar 2020 12:01:18 +0000 (13:01 +0100)] 
chacha: add variant that treats counter value as 32-bit

The ChaCha-Poly1305 implementation previously used the chacha_crypt
function that assumes the block counter is 64-bit long, while RFC 8439
defines that the counter is 32-bit long.  Although this should be fine
as long as up to 256 gigabytes of data is encrypted with the same key,
it would be nice to use a separate functions (chacha_set_counter32 and
chacha_crypt32) that assume the counter is 32-bit long.

Signed-off-by: Daiki Ueno <dueno@redhat.com>
5 years agochacha: add function to set initial block counter
Daiki Ueno [Mon, 9 Mar 2020 12:01:17 +0000 (13:01 +0100)] 
chacha: add function to set initial block counter

The ChaCha20 based header protection algorithm in QUIC requires a way
to set the initial value of counter:
https://quicwg.org/base-drafts/draft-ietf-quic-tls.html#name-chacha20-based-header-prote

This will add a new function chacha_set_counter, which takes an
8-octet initial value of the block counter.

Signed-off-by: Daiki Ueno <dueno@redhat.com>
5 years agoChangeLog for previous change.
Niels Möller [Sun, 8 Mar 2020 19:16:12 +0000 (20:16 +0100)] 
ChangeLog for previous change.

5 years agocmac-des3: add meta declaration to Nettle library
Dmitry Baryshkov [Sun, 9 Feb 2020 17:13:04 +0000 (20:13 +0300)] 
cmac-des3: add meta declaration to Nettle library

Move cmac-des3 meta information from testsuite/cmac-test.c to main
Nettle library.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoChangeLog for previous change.
Niels Möller [Sat, 15 Feb 2020 18:57:36 +0000 (19:57 +0100)] 
ChangeLog for previous change.

5 years agoecc: remove ecc_modp_foo/ecc_modq_foo macros
Dmitry Baryshkov [Mon, 10 Feb 2020 15:09:33 +0000 (18:09 +0300)] 
ecc: remove ecc_modp_foo/ecc_modq_foo macros

To make ecc functions usage more obvious remove ecc_modp_foo() and
ecc_modq_foo() wrapper macros.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agonettle-meta: Expose defined MACs through nettle_macs move-nettle_mac
Niels Möller [Sun, 9 Feb 2020 13:13:22 +0000 (14:13 +0100)] 
nettle-meta: Expose defined MACs through nettle_macs

Based on patches by Daiki Ueno.

5 years agoFix dash vs underscore in nettle_cmac_aes256 name.
Niels Möller [Sun, 9 Feb 2020 09:46:59 +0000 (10:46 +0100)] 
Fix dash vs underscore in nettle_cmac_aes256 name.

5 years agoAdd meta interface for HMAC functions.
Niels Möller [Sun, 9 Feb 2020 08:57:34 +0000 (09:57 +0100)] 
Add meta interface for HMAC functions.

Based on patches by Daiki Ueno.

5 years agoAdd meta interface for CMAC functions.
Niels Möller [Sun, 9 Feb 2020 07:48:27 +0000 (08:48 +0100)] 
Add meta interface for CMAC functions.

Based on patches by Daiki Ueno.
* testsuite/cmac-test.c (nettle_cmac_aes128, nettle_cmac_aes256):
Moved to...
* cmac-aes128-meta.c: New file.
* cmac-aes256-meta.c: New file.

5 years agoMove struct nettle_mac to nettle-meta.h.
Niels Möller [Wed, 25 Dec 2019 11:34:29 +0000 (12:34 +0100)] 
Move struct nettle_mac to nettle-meta.h.

5 years agoChangeLog for previous change.
Niels Möller [Thu, 6 Feb 2020 06:36:28 +0000 (07:36 +0100)] 
ChangeLog for previous change.

5 years agogost28147: move gost params to internal interface
Dmitry Baryshkov [Tue, 4 Feb 2020 13:29:26 +0000 (16:29 +0300)] 
gost28147: move gost params to internal interface

gost28147_param instances were never a part of stable release, so move
them to internal header.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoOn Solaris, link shared libraries with --shared rather than -G.
Niels Möller [Wed, 5 Feb 2020 05:25:08 +0000 (06:25 +0100)] 
On Solaris, link shared libraries with --shared rather than -G.

5 years agoFix comment typo
Niels Möller [Wed, 29 Jan 2020 14:20:28 +0000 (15:20 +0100)] 
Fix comment typo

5 years agoMerge branch 'delete-ecc-g'
Niels Möller [Tue, 28 Jan 2020 15:51:29 +0000 (16:51 +0100)] 
Merge branch 'delete-ecc-g'

5 years agoMerge branch 'ecc-gost'
Niels Möller [Tue, 28 Jan 2020 15:26:06 +0000 (16:26 +0100)] 
Merge branch 'ecc-gost'

5 years agoAdd index entries for GOST hash and GOST DSA. ecc-gost
Niels Möller [Mon, 27 Jan 2020 14:25:05 +0000 (15:25 +0100)] 
Add index entries for GOST hash and GOST DSA.

5 years agoAdd documentation for GOSTDSA and GOST curves.
Dmitry Baryshkov [Thu, 16 Jan 2020 21:52:36 +0000 (00:52 +0300)] 
Add documentation for GOSTDSA and GOST curves.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoChangeLog entries
Niels Möller [Sun, 26 Jan 2020 17:37:54 +0000 (18:37 +0100)] 
ChangeLog entries

5 years agoMerge commit '33d047b2fdf56207fa26a41c531eb7b3192ced53' into ecc-gost
Niels Möller [Sun, 26 Jan 2020 15:42:57 +0000 (16:42 +0100)] 
Merge commit '33d047b2fdf56207fa26a41c531eb7b3192ced53' into ecc-gost

For gitlab CI fix.

5 years agoChangeLog entries delete-ecc-g
Niels Möller [Sun, 26 Jan 2020 15:41:24 +0000 (16:41 +0100)] 
ChangeLog entries

5 years agoFix memory leak in ecc-mul-a-test
Niels Möller [Sun, 26 Jan 2020 15:20:32 +0000 (16:20 +0100)] 
Fix memory leak in ecc-mul-a-test

5 years agoStarted on NEWS entries for Nettle-3.6.
Niels Möller [Sun, 26 Jan 2020 15:13:12 +0000 (16:13 +0100)] 
Started on NEWS entries for Nettle-3.6.

5 years agoFix ChangeLog typo.
Niels Möller [Sun, 26 Jan 2020 15:10:44 +0000 (16:10 +0100)] 
Fix ChangeLog typo.

5 years agoMerge branch 'master' into delete-ecc-g
Niels Möller [Sun, 26 Jan 2020 13:37:45 +0000 (14:37 +0100)] 
Merge branch 'master' into delete-ecc-g

For gitlab CI fix.

5 years ago.gitlab-ci.yml: require linux systems for running CI
Nikos Mavrogiannopoulos [Sat, 25 Jan 2020 19:56:40 +0000 (20:56 +0100)] 
.gitlab-ci.yml: require linux systems for running CI

Gitlab added windows shared runners and we should avoid
running CI in this environment as it will immediatelly
fail.

Signed-off-by: Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
5 years agoDelete definition of ecc->g
Niels Möller [Sat, 25 Jan 2020 19:04:33 +0000 (20:04 +0100)] 
Delete definition of ecc->g

5 years agoDelete all usage of ecc->g
Niels Möller [Sat, 25 Jan 2020 18:55:08 +0000 (19:55 +0100)] 
Delete all usage of ecc->g

5 years agohogweed-benchmark: Pass correct sizes to knuth_lfib_random.
Niels Möller [Sat, 25 Jan 2020 15:31:44 +0000 (16:31 +0100)] 
hogweed-benchmark: Pass correct sizes to knuth_lfib_random.

5 years agohogweed-benchmark: enable testing of GOST DSA
Dmitry Baryshkov [Thu, 16 Jan 2020 21:52:37 +0000 (00:52 +0300)] 
hogweed-benchmark: enable testing of GOST DSA

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoAdd GOST DSA according to GOST R 34.10-2001/-2012
Dmitry Baryshkov [Thu, 16 Jan 2020 21:52:35 +0000 (00:52 +0300)] 
Add GOST DSA according to GOST R 34.10-2001/-2012

Add GOST Digital Signature Algorithms support according to GOST R
34.10-2001/-2012. English translations of these standards are provided
as RFC 5832 and RFC 7091.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years ago.gitignore: correct generated header names
Dmitry Baryshkov [Sat, 18 Jan 2020 13:01:45 +0000 (16:01 +0300)] 
.gitignore: correct generated header names

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agogost gc512a: rename functions to follow usual pattern
Dmitry Baryshkov [Sat, 18 Jan 2020 13:01:44 +0000 (16:01 +0300)] 
gost gc512a: rename functions to follow usual pattern

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoAdd support for GOST GC512A curve
Dmitry Eremin-Solenikov [Wed, 15 Jan 2020 22:36:09 +0000 (01:36 +0300)] 
Add support for GOST GC512A curve

Add support for GC512A curve ("TLS Supported Groups" registry,
draft-smyshlyaev-tls12-gost-suites) also known as
tc26-gost-3410-12-512-paramSetA (RFC 7836).

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoAdd support for GOST GC256B curve
Dmitry Eremin-Solenikov [Wed, 15 Jan 2020 22:36:08 +0000 (01:36 +0300)] 
Add support for GOST GC256B curve

Add support for GC256B curve ("TLS Supported Groups" registry,
draft-smyshlyaev-tls12-gost-suites) also known as
GostR3410-2001-CryptoPro-A and GostR3410-2001-CryptoPro-XchA (RFC 4357).

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
5 years agoUse %-pattern rules instad of suffix rules. require-gnu-make
Niels Möller [Wed, 15 Jan 2020 20:38:45 +0000 (21:38 +0100)] 
Use %-pattern rules instad of suffix rules.

5 years agoSimplify dependency rules using GNU make -include.
Niels Möller [Wed, 15 Jan 2020 19:16:48 +0000 (20:16 +0100)] 
Simplify dependency rules using GNU make -include.

* aclocal.m4 (DEP_INCLUDE): Delete substituted variable.

* Makefile.in: Use the GNU make directive -include to include
dependency .d files. Delete dependency files on make clean.
* examples/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise. Also use $(OBJEXT) properly.
* tools/Makefile.in: Likewise.

* configure.ac (dummy-dep-files): Delete these config commands.

5 years agoChangeLog entry for ecc renaming.
Niels Möller [Fri, 10 Jan 2020 19:59:40 +0000 (20:59 +0100)] 
ChangeLog entry for ecc renaming.

5 years agoecc: rename functions to contain curve names instead of bits
Dmitry Eremin-Solenikov [Mon, 6 Jan 2020 22:16:45 +0000 (01:16 +0300)] 
ecc: rename functions to contain curve names instead of bits

Rename curve functions to use curve names instead of just bits.
Otherwise function names can easily become confusing after adding other
curves.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoecc: prefix optimized ECC function names with underscore
Dmitry Eremin-Solenikov [Mon, 6 Jan 2020 22:16:44 +0000 (01:16 +0300)] 
ecc: prefix optimized ECC function names with underscore

There is no need to keep optimized ECC functions in public namespace
(nettle_*), move them to internal namespace (_nettle_*).

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoecc: rename source files with curves data
Dmitry Eremin-Solenikov [Mon, 6 Jan 2020 22:16:43 +0000 (01:16 +0300)] 
ecc: rename source files with curves data

In preparation to adding GOST curves support, rename source files and
use curve name as eccdata parameter.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years ago.gitlab-ci.yml: use fedora31 image
Nikos Mavrogiannopoulos [Fri, 3 Jan 2020 08:48:59 +0000 (09:48 +0100)] 
.gitlab-ci.yml: use fedora31 image

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
5 years agosexp-conv: ensure non-null input to strcmp() and strtol()
Nikos Mavrogiannopoulos [Fri, 3 Jan 2020 08:57:38 +0000 (09:57 +0100)] 
sexp-conv: ensure non-null input to strcmp() and strtol()

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
5 years agoAdd benchmarking of ed25519, ed448 and curve448. ed448
Niels Möller [Fri, 3 Jan 2020 06:38:04 +0000 (07:38 +0100)] 
Add benchmarking of ed25519, ed448 and curve448.

5 years agoUse function pointer to represent eddsa dom prefix.
Niels Möller [Thu, 2 Jan 2020 21:58:07 +0000 (22:58 +0100)] 
Use function pointer to represent eddsa dom prefix.

5 years agoImplement ed448-shake256
Niels Möller [Thu, 2 Jan 2020 18:51:24 +0000 (19:51 +0100)] 
Implement ed448-shake256

5 years agoUpdate eddsa internals to support ed448.
Niels Möller [Thu, 2 Jan 2020 18:36:17 +0000 (19:36 +0100)] 
Update eddsa internals to support ed448.

5 years agoAdd dom string to struct ecc_eddsa.
Niels Möller [Thu, 2 Jan 2020 18:24:45 +0000 (19:24 +0100)] 
Add dom string to struct ecc_eddsa.

5 years agoFix comment typo.
Niels Möller [Thu, 2 Jan 2020 06:45:33 +0000 (07:45 +0100)] 
Fix comment typo.

5 years agoReduce scratch need for curve448 inverse and sqrt
Niels Möller [Wed, 1 Jan 2020 19:22:21 +0000 (20:22 +0100)] 
Reduce scratch need for curve448 inverse and sqrt

5 years agoTest edddsa point compression with curve448.
Niels Möller [Wed, 1 Jan 2020 13:42:01 +0000 (14:42 +0100)] 
Test edddsa point compression with curve448.

5 years agoReorganize eddsa, based on patch by Daiki Ueno.
Niels Möller [Mon, 30 Dec 2019 21:43:48 +0000 (22:43 +0100)] 
Reorganize eddsa, based on patch by Daiki Ueno.

* eddsa-internal.h (struct ecc_eddsa): New struct for eddsa
parameters.
ed25519-sha512.c (_nettle_ed25519_sha512): New parameter struct.
* eddsa-expand.c (_eddsa_expand_key): Replace input
struct nettle_hash with struct ecc_eddsa, and generalize for
ed448. Update all callers.
* eddsa-sign.c (_eddsa_sign): Likewise.
* eddsa-verify.c (_eddsa_verify): Likewise.
* eddsa-compress.c (_eddsa_compress): Store sign bit in most
significant bit of last byte, as specified by RFC 8032.
* eddsa-decompress.c (_eddsa_decompress): Corresponding update.
Also generalize to support ed448, and make validity checks
stricter.
* testsuite/eddsa-sign-test.c (test_ed25519_sign): New function.
(test_main): Use it.
* testsuite/eddsa-verify-test.c (test_ed25519): New function.
(test_main): Use it.

5 years agoWhitespace fixes.
Niels Möller [Sat, 28 Dec 2019 09:53:15 +0000 (10:53 +0100)] 
Whitespace fixes.

5 years agoTweak includes of nettle-meta.h.
Niels Möller [Sat, 28 Dec 2019 09:47:32 +0000 (10:47 +0100)] 
Tweak includes of nettle-meta.h.

* bignum.h: Drop unreleted include of nettle-meta.h.
* pss.h: Include nettle-meta.h explicitly.
* eddsa-internal.h: Likewise.

5 years agoDocument SHAKE-256. shake256
Niels Möller [Wed, 25 Dec 2019 18:55:17 +0000 (19:55 +0100)] 
Document SHAKE-256.

5 years agoSupport for SHAKE256, based on patch by Daiki Ueno.
Niels Möller [Wed, 25 Dec 2019 16:55:19 +0000 (17:55 +0100)] 
Support for SHAKE256, based on patch by Daiki Ueno.

* shake256.c (sha3_256_shake): New file and function.
* Makefile.in (nettle_SOURCES): Add shake256.c.
* testsuite/testutils.c (test_hash): Allow arbitrary digest size,
if hash->digest_size == 0.
* testsuite/shake.awk: New script to extract test vectors.
* testsuite/Makefile.in (TS_NETTLE_SOURCES): Add shake256-test.c.
(DISTFILES): Add shake.awk.

5 years agoChangeLog entry for previous change.
Niels Möller [Wed, 25 Dec 2019 16:41:54 +0000 (17:41 +0100)] 
ChangeLog entry for previous change.

5 years agoGeneralize _sha3_pad to take magic value as argument.
Niels Möller [Wed, 25 Dec 2019 15:30:50 +0000 (16:30 +0100)] 
Generalize _sha3_pad to take magic value as argument.

5 years agoUse add_hh rather than add_hhh for ecc_mul_a_eh.
Niels Möller [Wed, 25 Dec 2019 10:33:08 +0000 (11:33 +0100)] 
Use add_hh rather than add_hhh for ecc_mul_a_eh.

* ecc-mul-a-eh.c (ecc_mul_a_eh) [ECC_MUL_A_EH_WBITS == 0]: Use
add_hh rather than add_hhh.
(table_init) [[ECC_MUL_A_EH_WBITS > 0]: Likewise.
* ecc-internal.h (ECC_MUL_A_EH_ITCH) [ECC_MUL_A_EH_WBITS == 0]:
Reduced from 13*n to 12*n.

5 years agoRename add and dup functions for Edwards curves.
Niels Möller [Tue, 17 Dec 2019 21:59:57 +0000 (22:59 +0100)] 
Rename add and dup functions for Edwards curves.

5 years agoUse function pointer rather than calling ecc_add_eh directly.
Niels Möller [Wed, 18 Dec 2019 07:15:55 +0000 (08:15 +0100)] 
Use function pointer rather than calling ecc_add_eh directly.

* eddsa-verify.c (_eddsa_verify): Use function pointer rather than
calling ecc_add_eh directly. Preparation for eddsa over curve448.

5 years agoSimplify ecc-benchmark.c and delete curve25519 special case.
Niels Möller [Tue, 17 Dec 2019 22:24:15 +0000 (23:24 +0100)] 
Simplify ecc-benchmark.c and delete curve25519 special case.

5 years agoEliminate one unneeded ecc_modp_add in ecc_dup_eh.
Niels Möller [Sun, 15 Dec 2019 18:01:45 +0000 (19:01 +0100)] 
Eliminate one unneeded ecc_modp_add in ecc_dup_eh.

5 years agoComment fixes and notation for ecc_dup_eh
Niels Möller [Sun, 15 Dec 2019 12:39:17 +0000 (13:39 +0100)] 
Comment fixes and notation for ecc_dup_eh

5 years agoComment fixes for ecc_add_ehh
Niels Möller [Sat, 14 Dec 2019 16:46:57 +0000 (17:46 +0100)] 
Comment fixes for ecc_add_ehh

5 years agoComment fixes for ecc_add_eh
Niels Möller [Sat, 14 Dec 2019 12:07:03 +0000 (13:07 +0100)] 
Comment fixes for ecc_add_eh

5 years agoNew function ecc_mul_m.
Niels Möller [Sat, 14 Dec 2019 09:00:23 +0000 (10:00 +0100)] 
New function ecc_mul_m.

* curve25519-mul.c (curve25519_mul): Use ecc_mul_m.
* curve448-mul.c (curve448_mul): Likewise.

* ecc-mul-m.c (ecc_mul_m): New file and function. Implements
multipliction for curves in Montgomery representation, as used for
curve25519 and curve448. Extracted from curve25519_mul.
* ecc-internal.h (ecc_mul_m): Declare.
(ECC_MUL_M_ITCH): New macro.
* Makefile.in (hogweed_SOURCES): Add ecc-mul-m.c.

5 years agoMerge branch 'curve448' into master
Niels Möller [Fri, 13 Dec 2019 17:24:41 +0000 (18:24 +0100)] 
Merge branch 'curve448' into master

5 years agoRevert itch macro changes. curve448
Niels Möller [Mon, 9 Dec 2019 18:28:15 +0000 (19:28 +0100)] 
Revert itch macro changes.

We now have h_to_a_itch <= mul_itch, mul_g_itch. Add asserts at a few
places relying on this.
(ECC_ECDSA_KEYGEN_ITCH, ECC_MAX): Delete macros.
(ECC_ECDSA_SIGN_ITCH): Revert previous change.

5 years agoTrim scratch usage of curve448 operations.
Niels Möller [Mon, 9 Dec 2019 17:58:53 +0000 (18:58 +0100)] 
Trim scratch usage of curve448 operations.

* ecc-448.c (ecc_mod_pow_446m224m1): Reduce scratch space from 9*n
to 6*n.
(ECC_448_INV_ITCH, ECC_448_SQRT_ITCH): Reduce accordingly.
* curve448-mul.c (curve448_mul): Reduce allocation from 14*n to 12*n.

5 years agox86_64 implementation of nettle_ecc_curve448_modp
Niels Möller [Sun, 8 Dec 2019 10:14:00 +0000 (11:14 +0100)] 
x86_64 implementation of nettle_ecc_curve448_modp

* x86_64/ecc-curve448-modp.asm (nettle_ecc_curve448_modp): New
assembly function.
* ecc-448.c (ecc_448_modp) [HAVE_NATIVE_ecc_curve448_modp]: Use
native nettle_ecc_curve448_modp if available.
* configure.ac (asm_hogweed_optional_list): Add ecc-curve448-modp.asm.
(HAVE_NATIVE_ecc_curve448_modp): New config.h define.

5 years agoDelete tests and code for ecdsa over curve25519.
Niels Möller [Sat, 7 Dec 2019 07:14:21 +0000 (08:14 +0100)] 
Delete tests and code for ecdsa over curve25519.

* ecc-eh-to-a.c (ecc_eh_to_a): Require op == 0, delete code only
used for non-standard ecdsa over curve25519.
* testsuite/ecdsa-sign-test.c (test_main): Delete test of ecdsa
over curve25519.
* testsuite/ecdsa-verify-test.c (test_main): Likewise.
* testsuite/ecdsa-keygen-test.c (test_main): Exclude curve25519
from test.

5 years agoFix configure check for __builtin_bswap64.
Niels Möller [Thu, 5 Dec 2019 08:02:15 +0000 (09:02 +0100)] 
Fix configure check for __builtin_bswap64.

* configure.ac: Use AC_TRY_LINK rather than AC_TRY_COMPILE to
check for __builtin_bswap64. Since calling an non-existing
function typically results in a warning only at compile time, but
fails at link time. Patch contributed by by George Koehler.

5 years agoAdd cast in test_cipher_cfb8.
Niels Möller [Wed, 4 Dec 2019 16:32:02 +0000 (17:32 +0100)] 
Add cast in test_cipher_cfb8.

* testsuite/testutils.c (test_cipher_cfb8): Add cast of size_t to
unsigned long for argument to fprintf.

5 years agoNew mod function for curve448, for 64-bit architectures
Niels Möller [Tue, 3 Dec 2019 21:56:47 +0000 (22:56 +0100)] 
New mod function for curve448, for 64-bit architectures

* ecc-448.c (ecc_448_modp) [GMP_NUMB_BITS == 64]: New function.

5 years agoChangeLog for curve448 changes
Niels Möller [Sun, 1 Dec 2019 19:15:46 +0000 (20:15 +0100)] 
ChangeLog for curve448 changes

5 years agoImplement Curve448 primitives
Daiki Ueno [Sat, 30 Nov 2019 09:29:23 +0000 (10:29 +0100)] 
Implement Curve448 primitives

This patch adds the necessary primitives for "curve448", defined in
RFC 7748.  Those primitives are namely: addition, doubling, scalar
multiplication of the generator or an arbitrary point, inversion, and
square root.

5 years agogitlab-ci: Disable gost in gnutls build
Niels Möller [Sun, 24 Nov 2019 08:28:01 +0000 (09:28 +0100)] 
gitlab-ci: Disable gost in gnutls build

Current gost support in gnutls depends on nettle internals.

5 years agoeccdata: (ecc_curve_init_str): Delete unused t and d arguments.
Niels Möller [Thu, 21 Nov 2019 19:00:35 +0000 (20:00 +0100)] 
eccdata: (ecc_curve_init_str): Delete unused t and d arguments.

Related to the the edwards_root member of struct ecc_curve, which
was used by ecc_a_to_eh before it was deleted, see 2014-09-17
entry below.
(ecc_curve_init): Delete corresponding curve25519 constants, and
NULL arguments passed for the other curves.

5 years agoMerge branch 'curve448' into master
Niels Möller [Thu, 21 Nov 2019 18:43:57 +0000 (19:43 +0100)] 
Merge branch 'curve448' into master

5 years agoUpdate link to Pike.
Niels Möller [Sat, 5 Oct 2019 07:30:04 +0000 (09:30 +0200)] 
Update link to Pike.

5 years agoLink to Rust bindings.
Justus Winter [Wed, 2 Oct 2019 12:10:27 +0000 (14:10 +0200)] 
Link to Rust bindings.

5 years agoSort bindings alphabetically.
Justus Winter [Wed, 2 Oct 2019 12:10:26 +0000 (14:10 +0200)] 
Sort bindings alphabetically.

5 years agoImprove cfb8 test
Niels Möller [Tue, 1 Oct 2019 17:56:38 +0000 (19:56 +0200)] 
Improve cfb8 test

* testsuite/testutils.c (test_cipher_cfb8): Reset destination area
between tests. Encrypt/decrypt final partial block.

5 years agoChangeLog for previous change.
Niels Möller [Tue, 1 Oct 2019 17:44:55 +0000 (19:44 +0200)] 
ChangeLog for previous change.