]>
git.ipfire.org Git - thirdparty/nettle.git/log
Niels Möller [Wed, 10 Nov 2021 17:46:02 +0000 (18:46 +0100)]
eccdata: Generate both redc and non-redc versions of ecc_sqrt_z.
Niels Möller [Mon, 8 Nov 2021 19:14:32 +0000 (20:14 +0100)]
Implement secp224r1 square root, based on patch by Wim Lewis.
Niels Möller [Mon, 8 Nov 2021 19:10:32 +0000 (20:10 +0100)]
New function ecc_mod_equal_p, based on patch by Wim Lewis.
Niels Möller [Mon, 8 Nov 2021 19:03:11 +0000 (20:03 +0100)]
New function ecc_mod_pow_127m1, used for ecc_secp224r1_inv.
Niels Möller [Mon, 8 Nov 2021 16:51:07 +0000 (17:51 +0100)]
Implement secp521r1 square root, based on patch by Wim Lewis.
Niels Möller [Mon, 8 Nov 2021 16:47:12 +0000 (17:47 +0100)]
Implement secp384r1 square root, based on patch by Wim Lewis.
Niels Möller [Mon, 8 Nov 2021 16:41:54 +0000 (17:41 +0100)]
Implement secp256r1 square root, based on patch by Wim Lewis.
Niels Möller [Mon, 8 Nov 2021 16:37:05 +0000 (17:37 +0100)]
Implement secp192r1 square root, based on patch by Wim Lewis.
Niels Möller [Sat, 6 Nov 2021 16:10:26 +0000 (17:10 +0100)]
Renamed sqrt_itch --> sqrt_ratio_itch, and curve25519 and curve448 sqrt functions.
Niels Möller [Sat, 6 Nov 2021 15:38:41 +0000 (16:38 +0100)]
Rename ecc sqrt --> sqrt_ratio.
* ecc-internal.h (ecc_mod_sqrt_ratio_func): Renamed typedef...
(ecc_mod_sqrt_func): ... from old name.
(struct ecc_modulo): Renamed corresponding function pointer to
sqrt_ratio. Updated all uses.
Niels Möller [Sat, 6 Nov 2021 15:30:50 +0000 (16:30 +0100)]
Merge branch 'secp256r1-mod'
Niels Möller [Sun, 31 Oct 2021 07:35:19 +0000 (07:35 +0000)]
Merge branch 's390x-sha1' into 'master'
[S390x] Optimize SHA3 permute using vector facility
This patch optimizes SHA3 permute function by taking advantage of supported vector facility. Vectorizing SHA3 permute fits more than applying SHA3 hardware-accelerator for s390x architecture in terms of implementing the actual permute procedure only rather than executing unneeded extra procedures which are handled by other functions in nettle library. Applying SHA3 hardware-accelerator in a previous patch yielded 12% performance boost while this patch has ~105% performance increase for SHA3 functions.
The optimized core follows the same optimization procedure that used in SHA3 permute implementation for x86_64 architecture.
| Algorithm | C (Mbyte/s) | Vectorized (Mbyte/s) |
| ------ | ------ | ------ |
| sha3_224 | 235.08 | 483.41 |
| sha3_256 | 226.15 | 460.68 |
| sha3_384 | 172.90 | 357.15 |
| sha3_512 | 120.46 | 243.96 |
See merge request nettle/nettle!36
Niels Möller [Tue, 26 Oct 2021 16:00:07 +0000 (18:00 +0200)]
New function ecc_mod_zero_p.
* ecc-mod-arith.c (ecc_mod_zero_p): New function.
* ecc-curve25519.c (ecc_curve25519_zero_p): Use it.
* ecc-curve448.c (ecc_curve448_zero_p): Deleted, usage replaced
with ecc_mod_zero_p.
* testsuite/ecc-modinv-test.c (mod_eq_p): Rewritten to use
ecc_mod_zero_p, and require that one input is canonically reduced.
(zero_p): Deleted, usage replaced with ecc_mod_zero_p.
Mamone Tarsha [Sun, 24 Oct 2021 18:39:11 +0000 (20:39 +0200)]
[S390x] Improvements on documentation and instruction set usage for SHA3 permute
Niels Möller [Sat, 23 Oct 2021 18:39:15 +0000 (20:39 +0200)]
New function sec_zero_p.
Mamone Tarsha [Fri, 22 Oct 2021 13:08:04 +0000 (15:08 +0200)]
[S390x] Remove lgr instructions by using xgrk instead of xgr instruction
Niels Möller [Fri, 22 Oct 2021 08:03:12 +0000 (10:03 +0200)]
Rewrite of secp256r1 mod functions.
Niels Möller [Fri, 22 Oct 2021 07:46:03 +0000 (09:46 +0200)]
Extend ecc-mod-test, with improved coverage of corner cases.
Mamone Tarsha [Thu, 21 Oct 2021 09:25:26 +0000 (11:25 +0200)]
[S390x] Optimize SHA3 permute using vector facility
Niels Möller [Tue, 12 Oct 2021 15:45:15 +0000 (17:45 +0200)]
Change "signature on digest" --> "of digest".
Niels Möller [Tue, 12 Oct 2021 06:07:17 +0000 (08:07 +0200)]
Doc fixes.
Add documented types to the index. Clarify docs on dsa_signature,
ecc_point_clear and ecc_scalar_clear. Fix typo in docs of ecdsa_sign.
Niels Möller [Fri, 24 Sep 2021 05:48:11 +0000 (07:48 +0200)]
Delete a few old FIXME comments
Niels Möller [Tue, 21 Sep 2021 19:45:13 +0000 (21:45 +0200)]
Use @url and https consistently for references. Fix overlong lines.
Niels Möller [Tue, 21 Sep 2021 19:18:32 +0000 (21:18 +0200)]
Use texi2pdf to generate the pdf manual
Niels Möller [Tue, 21 Sep 2021 19:13:38 +0000 (21:13 +0200)]
ChangeLog entries for doc structure improvements.
Niels Möller [Tue, 21 Sep 2021 19:03:11 +0000 (21:03 +0200)]
Divide Cipher section into menu and nodes, and some other minor fixes.
Niels Möller [Tue, 21 Sep 2021 16:20:43 +0000 (18:20 +0200)]
Delete explicit node pointers in nettle.texinfo
Instead, rely on makeinfo's automatic pointer creation.
Niels Möller [Tue, 14 Sep 2021 12:40:35 +0000 (14:40 +0200)]
Change CBC-AES interface
* cbc.h (cbc_aes128_encrypt, cbc_aes192_encrypt)
(cbc_aes256_encrypt): Change interface, take cipher context
pointer and iv as separate arguments. Update C and x86_64
implementations and corresponding glue code.
Niels Möller [Tue, 14 Sep 2021 11:51:17 +0000 (13:51 +0200)]
Test AEAD encrypt/decrypt with message split into pieces.
Niels Möller [Sun, 12 Sep 2021 15:30:27 +0000 (17:30 +0200)]
Merge branch 'aes-cbc' into master
Niels Möller [Thu, 9 Sep 2021 19:46:29 +0000 (21:46 +0200)]
More checks for null pointers in test_aead, to silent static analyzer.
Niels Möller [Thu, 9 Sep 2021 19:40:59 +0000 (21:40 +0200)]
Fix checks of HAVE_NATIVE_cbc_aes*_encrypt
Niels Möller [Thu, 9 Sep 2021 19:29:07 +0000 (21:29 +0200)]
Fix fat builds for x86_64 windows
Niels Möller [Thu, 9 Sep 2021 19:07:29 +0000 (21:07 +0200)]
x86_64: Fat setup for assembly CBC AES.
Niels Möller [Thu, 9 Sep 2021 18:36:59 +0000 (20:36 +0200)]
x86_64: Assembly CBC AES aesni functions.
Niels Möller [Wed, 8 Sep 2021 19:30:43 +0000 (21:30 +0200)]
Add specialized functions for cbc-aes.
Niels Möller [Thu, 2 Sep 2021 17:37:48 +0000 (19:37 +0200)]
Merge branch 'x86_64-aes-refactor' into master
Niels Möller [Thu, 2 Sep 2021 17:29:42 +0000 (19:29 +0200)]
ChangeLog entries for recent contributions.
Niels Möller [Mon, 30 Aug 2021 20:05:29 +0000 (22:05 +0200)]
gitlab-ci: Use mini-gmp for big-endian powerpc64 cross build
Niels Möller [Mon, 30 Aug 2021 19:51:08 +0000 (21:51 +0200)]
gitlab-ci: Explicitly install cross libgmp-dev packages
Niels Möller [Mon, 30 Aug 2021 19:33:12 +0000 (21:33 +0200)]
gitlab-ci: No-assembly cross-build for s390x, to test big-endian
Niels Möller [Mon, 23 Aug 2021 18:12:51 +0000 (20:12 +0200)]
gitlab-ci: Delete mips build
It's no longer a debian release arch, and not supported by the build
images used for cross builds.
Niels Möller [Mon, 16 Aug 2021 20:09:24 +0000 (20:09 +0000)]
Merge branch 's390x-sha1' into 'master'
[S390x] Optimize SHA256 and SHA512 compress functions
This patch optimizes SHA256 and SHA512 compress functions for s390x architecture, the testsuite passes the tests. Benchmark on Z15:
| Algorithm | C | Hardware-accelerated |
| ------ | ------ | ------ |
| SHA265 | 242.76 Mbyte/s | 869.00 Mbyte/s |
| SHA512 | 373.18 Mbyte/s | 1555.21 Mbyte/s |
See merge request nettle/nettle!35
Mamone Tarsha [Fri, 13 Aug 2021 12:06:11 +0000 (15:06 +0300)]
[S390x] Optimize SHA256 and SHA512 compress functions
Niels Möller [Tue, 10 Aug 2021 20:53:24 +0000 (20:53 +0000)]
Merge branch 's390x-sha1' into 'master'
[S390x] Optimize SHA1 compress with fat build support
See merge request nettle/nettle!33
Niels Möller [Tue, 10 Aug 2021 20:23:14 +0000 (22:23 +0200)]
x86_64: New 2-way aesni loop also for aes256
Niels Möller [Tue, 10 Aug 2021 20:05:40 +0000 (22:05 +0200)]
x86_64: Refactor aesni assembly, with specific functions for each key size.
Mamone Tarsha [Tue, 10 Aug 2021 13:01:18 +0000 (16:01 +0300)]
[S390x] Optimize SHA1 compress
Niels Möller [Mon, 9 Aug 2021 14:51:10 +0000 (14:51 +0000)]
Merge branch 'arm64-aes' into 'master'
[AArch64] Optimize AES with fat build support
This patch optimizes AES encrypt/decrypt functions with each key size has its own implementation to load the key expansion just once at function prologue which yields a considerable performance increase over loading the key expansion for every block iteration. The patch also adds fat build support for the AES functions.
`make check` passes all tests. Benchmark of executing `examples/nettle-benchmark`:
| Algorithm | mode | C (Mbyte/s) | OpenSSL (Mbyte/s) | This patch (Mbyte/s) |
| ------ | ------ | ------ | ------ | ------ |
| aes128 | ECB encrypt | 95.01 | 1037.85 | 2579.62 |
| aes128 | ECB decrypt | 93.47 | 1005.15 | 2577.53 |
| aes192 | ECB encrypt | 79.60 | 893.34 | 2205.53 |
| aes192 | ECB decrypt | 78.34 | 889.17 | 2204.41 |
| aes256 | ECB encrypt | 66.64 | 782.21 | 1925.73 |
| aes256 | ECB decrypt | 65.81 | 781.37 | 1925.79 |
See merge request nettle/nettle!34
Mamone Tarsha [Sun, 8 Aug 2021 13:12:16 +0000 (16:12 +0300)]
[AArch64] Utilize AES 1-block macros in 4-block macros
Mamone Tarsha [Sun, 8 Aug 2021 12:09:59 +0000 (15:09 +0300)]
[AArch64] Load AES keys at function prologue
Niels Möller [Fri, 6 Aug 2021 09:17:15 +0000 (11:17 +0200)]
ChangeLog entries for previous change.
Niels Möller [Fri, 6 Aug 2021 09:07:56 +0000 (11:07 +0200)]
Merge branch 'mamonet/nettle-s390x-memxor' into master-updates
Mamone Tarsha [Sun, 1 Aug 2021 11:23:11 +0000 (14:23 +0300)]
[AArch64] Move AES round macros to machine.m4
Mamone Tarsha [Fri, 30 Jul 2021 11:45:28 +0000 (14:45 +0300)]
[AArch64] Optimize AES with fat build support
Niels Möller [Sat, 24 Jul 2021 09:42:37 +0000 (11:42 +0200)]
Merge branch 's390x' into master-updates
Mamone Tarsha [Thu, 22 Jul 2021 10:08:58 +0000 (13:08 +0300)]
[S390x] Optimize memxor3 using vector facility with fat support
Mamone Tarsha [Thu, 22 Jul 2021 10:07:24 +0000 (13:07 +0300)]
[S390x] Optimize memxor
Niels Möller [Wed, 21 Jul 2021 20:48:04 +0000 (22:48 +0200)]
Add fat-s390x.c to OPT_SOURCES.
Niels Möller [Wed, 21 Jul 2021 15:20:10 +0000 (17:20 +0200)]
Fix name of s390x/fat directory in make dist target.
Niels Möller [Wed, 21 Jul 2021 15:09:40 +0000 (15:09 +0000)]
Merge branch 's390x-fat' into 's390x'
[S390x] Replace inline assembly, fix fat filenames and add FAT_TEST_LIST
See merge request nettle/nettle!32
Mamone Tarsha [Wed, 21 Jul 2021 06:10:15 +0000 (09:10 +0300)]
[S390x] add FAT_TEST_LIST variable to enable fat build testing
Mamone Tarsha [Wed, 21 Jul 2021 06:03:13 +0000 (09:03 +0300)]
[S390x] Replace inline assembly and fix fat filenames
Niels Möller [Sat, 17 Jul 2021 10:11:14 +0000 (10:11 +0000)]
Merge branch 's390x-fat' into 's390x'
[S390x] Fat build support for AES and GHASH
See merge request nettle/nettle!31
Mamone Tarsha [Sat, 10 Jul 2021 17:57:08 +0000 (20:57 +0300)]
[S390x] Fat build support for AES and GHASH
Niels Möller [Fri, 9 Jul 2021 06:58:13 +0000 (08:58 +0200)]
Merge branch 'arm64-sha1' into master-updates
Niels Möller [Thu, 8 Jul 2021 20:51:15 +0000 (22:51 +0200)]
arm64: Add sha2 to aarch64 fat tests.
Niels Möller [Thu, 8 Jul 2021 20:49:43 +0000 (22:49 +0200)]
ChangeLog entry for arm64 sha256..
Niels Möller [Thu, 8 Jul 2021 20:37:26 +0000 (20:37 +0000)]
Merge branch 's390x-gcm' into 's390x'
[S390x] Optimize GHASH
See merge request nettle/nettle!26
Niels Möller [Mon, 5 Jul 2021 19:18:57 +0000 (19:18 +0000)]
Merge branch 'arm64-sha' into 'arm64-sha1'
[AArch64] Fat build support for SHA-256 compress
See merge request nettle/nettle!29
Mamone Tarsha [Sat, 3 Jul 2021 11:46:30 +0000 (14:46 +0300)]
[AArch64] Fat build support for SHA-256 compress
Mamone Tarsha [Fri, 2 Jul 2021 23:40:29 +0000 (02:40 +0300)]
[S390x] wipe parameter block content and leftover bytes of data from stack
Mamone Tarsha [Fri, 2 Jul 2021 20:49:43 +0000 (23:49 +0300)]
[S390x] wipe hash subkey from stack once GHASH operation completed
Niels Möller [Thu, 1 Jul 2021 19:45:06 +0000 (19:45 +0000)]
Merge branch 'arm64-sha' into 'arm64-sha1'
[AArch64] Optimize SHA-256 compress
See merge request nettle/nettle!28
Mamone Tarsha [Thu, 1 Jul 2021 13:28:13 +0000 (16:28 +0300)]
[AArch64] Optimize SHA-256 compress
Mamone Tarsha [Thu, 1 Jul 2021 02:47:02 +0000 (05:47 +0300)]
[S390x] Use uppercase for macro names in machine.m4 and enhance the documentation for GHASH implementation
Niels Möller [Wed, 30 Jun 2021 18:40:14 +0000 (20:40 +0200)]
Add sha1 to aarch64 fat tests.
Niels Möller [Wed, 30 Jun 2021 18:36:22 +0000 (20:36 +0200)]
ChangeLog entry for previous change.
Maamoun TK [Wed, 30 Jun 2021 18:34:30 +0000 (20:34 +0200)]
arm64: Fat build support for SHA1 compress
Mamone Tarsha [Sun, 27 Jun 2021 15:14:43 +0000 (18:14 +0300)]
[S390x] Update configure.ac and Makefile.in
Mamone Tarsha [Sun, 27 Jun 2021 14:16:56 +0000 (17:16 +0300)]
[S390x] Implement alloc_stack and free_stack macros in machine.m4
Mamone Tarsha [Sun, 27 Jun 2021 13:54:14 +0000 (16:54 +0300)]
[S390x] Optimize GHASH
Niels Möller [Tue, 8 Jun 2021 19:34:08 +0000 (21:34 +0200)]
Update Nettle-3.7.3 NEWS.
(cherry picked from commit
52bacacaf4339fd78289f58919732f1f35bea1c1 )
Niels Möller [Tue, 8 Jun 2021 19:32:38 +0000 (21:32 +0200)]
Add input check to rsa_decrypt family of functions.
(cherry picked from commit
0ad0b5df315665250dfdaa4a1e087f4799edaefe )
Niels Möller [Tue, 8 Jun 2021 19:31:39 +0000 (21:31 +0200)]
Change _rsa_sec_compute_root_tr to take a fix input size.
Improves consistency with _rsa_sec_compute_root, and fixes zero-input bug.
(cherry picked from commit
485b5e2820a057e873b1ba812fdb39cae4adf98c )
Niels Möller [Tue, 8 Jun 2021 19:30:48 +0000 (21:30 +0200)]
Fix comment typos.
(cherry picked from commit
0a714543136de97c7fd34f1c6ac1592dc5036879 )
Niels Möller [Thu, 6 May 2021 19:30:23 +0000 (21:30 +0200)]
Add check that message length to _pkcs1_sec_decrypt is valid.
* pkcs1-sec-decrypt.c (_pkcs1_sec_decrypt): Check that message
length is valid, for given key size.
* testsuite/rsa-sec-decrypt-test.c (test_main): Add test cases for
calls to rsa_sec_decrypt specifying a too large message length.
(cherry picked from commit
7616541e6eff73353bf682c62e3a68e4fe696707 )
Niels Möller [Tue, 1 Jun 2021 17:00:36 +0000 (19:00 +0200)]
ChangeLog entry for arm64 sha1.
Maamoun TK [Fri, 14 May 2021 05:45:33 +0000 (08:45 +0300)]
aarch64: Optimize SHA1 Compress
This patch optimizes SHA1 compress function for arm64 architecture by
taking advantage of SHA-1 instructions of Armv8 crypto extension.
The SHA-1 instructions:
SHA1C: SHA1 hash update (choose)
SHA1H: SHA1 fixed rotate
SHA1M: SHA1 hash update (majority)
SHA1P: SHA1 hash update (parity)
SHA1SU0: SHA1 schedule update 0
SHA1SU1: SHA1 schedule update 1
Benchmark on gcc117 instance of CFarm before applying the patch:
Algorithm mode Mbyte/s
sha1 update 214.16
openssl sha1 update 849.44
hmac-sha1 64 bytes 61.69
hmac-sha1 256 bytes 131.50
hmac-sha1 1024 bytes 185.20
hmac-sha1 4096 bytes 204.55
hmac-sha1 single msg 210.97
Benchmark on gcc117 instance of CFarm after applying the patch:
Algorithm mode Mbyte/s
sha1 update 800.80
openssl sha1 update 849.17
hmac-sha1 64 bytes 166.10
hmac-sha1 256 bytes 409.24
hmac-sha1 1024 bytes 636.98
hmac-sha1 4096 bytes 739.20
hmac-sha1 single msg 775.67
Niels Möller [Mon, 24 May 2021 16:58:12 +0000 (18:58 +0200)]
Fix C++-style comments
Niels Möller [Sun, 23 May 2021 19:14:00 +0000 (21:14 +0200)]
ChangeLog entries for aes keywrap.
Nicolas Mora [Sun, 23 May 2021 19:04:58 +0000 (21:04 +0200)]
Implement aes key wrap and key unwrap (RFC 3394)
Niels Möller [Sat, 22 May 2021 07:47:30 +0000 (09:47 +0200)]
gitlab-ci: Explicitly pass --enable-s390x-msa to s390x build.
Niels Möller [Mon, 10 May 2021 18:52:39 +0000 (20:52 +0200)]
Fix comment typo.
Niels Möller [Sun, 9 May 2021 08:06:47 +0000 (10:06 +0200)]
Reorder and indent asm_replace_list.
Niels Möller [Sun, 9 May 2021 08:03:45 +0000 (10:03 +0200)]
ChangeLog entry for new s390x AES implementation.
Niels Möller [Sun, 9 May 2021 07:38:21 +0000 (07:38 +0000)]
Merge branch 's390x' into 's390x'
[S390x] Basic AES optimization
See merge request nettle/nettle!23
Mamone Tarsha [Sat, 8 May 2021 21:02:06 +0000 (00:02 +0300)]
Append s390x-specific asm file names to asm_replace_list in configure.ac
Mamone Tarsha [Fri, 7 May 2021 23:32:52 +0000 (02:32 +0300)]
[S390x] Basic AES-192 and AES-256 optimizations
Niels Möller [Tue, 13 Apr 2021 09:23:27 +0000 (11:23 +0200)]
ppc: Fix macro name SWAP_MASK to use all uppercase.