]> git.ipfire.org Git - thirdparty/nettle.git/log
thirdparty/nettle.git
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.

5 years agocfb8: don't truncate output IV if input is shorter than block size
Daiki Ueno [Fri, 27 Sep 2019 14:12:00 +0000 (16:12 +0200)] 
cfb8: don't truncate output IV if input is shorter than block size

Previously cfb8_decrypt didn't update the IV if the input is shorter
than the AES block size.  Reported by Stephan Mueller.

Signed-off-by: Daiki Ueno <dueno@redhat.com>
5 years agosiv-test: Smaller cleanups. Call FAIL on all errors.
Niels Möller [Mon, 30 Sep 2019 18:07:33 +0000 (20:07 +0200)] 
siv-test: Smaller cleanups. Call FAIL on all errors.

5 years agosiv-test: Fix out-of-bounds read.
Niels Möller [Mon, 30 Sep 2019 17:53:50 +0000 (19:53 +0200)] 
siv-test: Fix out-of-bounds read.

5 years agoecc-internal.h comment fixes.
Niels Möller [Thu, 26 Sep 2019 04:37:05 +0000 (06:37 +0200)] 
ecc-internal.h comment fixes.

5 years agoAdd FIXME comment on struct gosthash94_ctx reorg.
Niels Möller [Sun, 15 Sep 2019 08:28:58 +0000 (10:28 +0200)] 
Add FIXME comment on struct gosthash94_ctx reorg.

5 years agoChangeLog entries for gosthash94cp.
Niels Möller [Sun, 15 Sep 2019 08:23:24 +0000 (10:23 +0200)] 
ChangeLog entries for gosthash94cp.

5 years agoAdd PBKDF2 support for gosthash94cp
Dmitry Eremin-Solenikov [Thu, 11 Jul 2019 18:43:16 +0000 (21:43 +0300)] 
Add PBKDF2 support for gosthash94cp

Russian technical comitee working on standartization of cryptography
algorithms has published the document describing usage of GOST R
34.11-94 hash function with PBKDF2 algorithm (MR 26.2.001-2012).
Add test vectors from that document and a special function implementing
Nettle interface for PBKDF2 using gosthash94cp.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoAdd HMAC functions for GOSTHASH94 and GOSTHASH94CP
Dmitry Eremin-Solenikov [Thu, 11 Jul 2019 18:43:15 +0000 (21:43 +0300)] 
Add HMAC functions for GOSTHASH94 and GOSTHASH94CP

GOST hash functions can be used to generate MAC using HMAC algorithm.
Add functions implementing HMAC with GOSTHASH94/GOSTHASH94CP.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoAdd GOST R 34.11-94 to nettle_hashes
Dmitry Eremin-Solenikov [Thu, 11 Jul 2019 18:43:14 +0000 (21:43 +0300)] 
Add GOST R 34.11-94 to nettle_hashes

Add entries for gosthash94 and gosthash94cp in nettle_hashes array.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoAdd support for GOSTHASH94CP: GOST R 34.11-94 hash with CryptoPro S-box
Dmitry Eremin-Solenikov [Thu, 11 Jul 2019 18:43:12 +0000 (21:43 +0300)] 
Add support for GOSTHASH94CP: GOST R 34.11-94 hash with CryptoPro S-box

Hash gosthash94 implements GOST R 34.11-94 standard using S-Box defined
in the standard 'for testing purposes only'. RFC 4357 defines S-Box
(CryptoPro one) for GOST R 34.11-94 hash function that is widely used in
applications. Add separate hash function algorithm (gosthash94cp)
implementing GOST R 34.11-94 hashing using that S-Box.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoStart separating GOST 28147-89 from GOST R 34.11-94
Dmitry Eremin-Solenikov [Thu, 11 Jul 2019 18:43:11 +0000 (21:43 +0300)] 
Start separating GOST 28147-89 from GOST R 34.11-94

Hash function GOST R 34.11-94 (gosthash94) in its compression function
uses Russian block cipher (GOST 28147-89, Magma). Start separating block
cipher code from hash function code. For now there is no public
interface for this cipher, it will be added later.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agodlopen-test: Use libnettle.dylib on MacOS.
Niels Möller [Sun, 15 Sep 2019 08:05:19 +0000 (10:05 +0200)] 
dlopen-test: Use libnettle.dylib on MacOS.

5 years agoMention dependencies on GNU make and GNU GMP in the README file.
Niels Möller [Sat, 14 Sep 2019 06:21:12 +0000 (08:21 +0200)] 
Mention dependencies on GNU make and GNU GMP in the README file.

5 years agogcm: move block shifting function to block-internal.h
Dmitry Eremin-Solenikov [Wed, 4 Sep 2019 06:10:31 +0000 (09:10 +0300)] 
gcm: move block shifting function to block-internal.h

Move GCM's block shift function to block-internal.h. This concludes
moving of all Galois mul-by-2 to single header.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoblock modes: move Galois shifts to block-internal.h
Dmitry Eremin-Solenikov [Wed, 4 Sep 2019 06:10:30 +0000 (09:10 +0300)] 
block modes: move Galois shifts to block-internal.h

Move Galois polynomial shifts to block-internal.h, simplifying common
code. GCM is left unconverted for now, this will be fixed later.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoblock-internal: add block XORing functions
Dmitry Eremin-Solenikov [Wed, 4 Sep 2019 06:10:29 +0000 (09:10 +0300)] 
block-internal: add block XORing functions

Add common implementations for functions doing XOR over
nettle_block16/nettle_block8.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agocmac64: fix nettle_block16 usage
Dmitry Eremin-Solenikov [Mon, 26 Aug 2019 18:20:22 +0000 (21:20 +0300)] 
cmac64: fix nettle_block16 usage

CMAC64 uses block8, rather than block16.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agogcm: use uint64_t member of nettle_block16
Dmitry Eremin-Solenikov [Mon, 26 Aug 2019 18:20:21 +0000 (21:20 +0300)] 
gcm: use uint64_t member of nettle_block16

Remove last usage of unsigned long member of nettle_block16.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
5 years agoMerge branch 'block16-refactor' into master-updates
Niels Möller [Fri, 23 Aug 2019 04:31:13 +0000 (06:31 +0200)] 
Merge branch 'block16-refactor' into master-updates

6 years agoExpand documentation to cover CMAC-64 cmac64
Dmitry Eremin-Solenikov [Mon, 22 Jul 2019 06:37:12 +0000 (08:37 +0200)] 
Expand documentation to cover CMAC-64