Applied to s390x optimizations feature branch:
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=88570515b4ca92a44c4e40c31f877c11cc00ab68
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Dec 22 2020
Applied to s390x optimizations feature branch:
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=5aeb091f911398217b2e9facb9bdeb05c63d7844
Applied to s390x optimizations feature branch:
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=9219d9d1b60c01a4c7dbde05ee6b5b52e0d7d072
Implemented stitched ChaCha20-Poly1305 (vector ChaCha20 & ALU Poly1305). Unfortunately performance is less than OpenSSL (vector ChaCha20 & vector Poly1305). Instruction latencies make Poly1305 slower than combined OpenSSL ChaCha20+Poly1305, thus it is not possible to reach same performance with stitching. Vector Poly1305 implementation is therefore needed.
Currently have 8 block parallel implementation done. Need to check if 6 block parallel approach is better (as used in OpenSSL - benefit being less register pressure and less moving of data between registers and stack).
Dec 16 2020
I cannot find good test vectors for PBKDF2 with HMAC-SHA-2.
Dec 15 2020
Our tests are now in tests/basic.c.
For CMAC tests, we would need to use newer test vectors.
Dec 14 2020
Dec 8 2020
I would add "Provide a verbose message of why the key cannot be imported".
Dec 4 2020
OK, then we'll have to live with --disable-asm until the next major version is released, or switch to gcc.
We should not do this.
Dec 3 2020
AArch64 clang support was added to 'master' on 2018-03-28. One would need to backport commits 8ee38806245ca8452051b1a245f44082323f37f6...9b58e4a03ba3aeff7bae3f40da706977870c9649 to 1.8 branch.
In T5157#139622, @gniibe wrote:ARM64 has been only tested on platforms which support ELF.
While it doesn't looks good (using AMD64 even if it's ARM64), I think this patch should be applied:
diff --git a/cipher/asm-common-aarch64.h b/cipher/asm-common-aarch64.h ...
So, I'm going to push D513 to both of 1.8 and master (to be 1.9).
Dec 2 2020
I created D513: Support macOS build with SIP by using posix_spawn in tests/random, which is more conservative; It only affects build under macOS.
Dec 1 2020
In T5159#139739, @werner wrote:Put
extern char **environ;after the the include directives.
Put
extern char **environ;
after the the include directives.
After applying @gniibe 's patch:
The problem is that posix_spawn is not portable enough for libgcrypt. It is really time that we move the spawn functions from gnupg to gpgrt so that we can use them also in Libgcrypt.
BTW, I'm not sure if the claim in T5009#136688 is correct.
See also: https://dev.gnupg.org/T5009#136688
See my comment in: https://dev.gnupg.org/T5024#139701
Nov 30 2020
After disabling SIP, now all checks pass without having the library symlinked to /usr/local/lib. So it might be T2056: libgcrypt: make check fails "random" test on OS X 10.11 with link error after all.
After doing:
Another issue that comes in to mind is that current ARM/ARM64 HW feature detection most likely wont work on MacOS. Thus HW accelerated AES&SHA&GHASH implementation wont be used.
IIUC, for the build of Homebrew, it is the issue of in: https://github.com/Homebrew/homebrew-core/commit/e7da1e2157b2e8373c3b39ea6398f51588ea537c
Please have a look at T5024: libtool problem for some platforms for 'make check' (program built with -no-install won't work without installation), if make check works after the installation of libgcrypt.
See T2056: libgcrypt: make check fails "random" test on OS X 10.11 with link error, if test with 'random' fails.
HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS is never defined on ARM64 as it depends on "$mpi_cpu_arch" == "x86". Instead I think new check for GCC assembly ELF directives would be needed in configure.ac, similar to HAVE_GCC_ASM_CFI_DIRECTIVES check. Following check should work, but I have not yet tested it:
ARM64 has been only tested on platforms which support ELF.
Nov 29 2020
Yes, I did. Identical result.
Why the hell do they that? The standard compiler on a system is called cc which may translated to whatever the system installs for it. gcc is a specific implementation with certain properties. Di you try CC=clang to override this?
And the arm64 cross-compiler:
Sorry, I forgot to mention that Apple ships a gcc-wrapper for clang. It just accepts gcc command lines parameters and translates them to clang parameters.
Here is the output of gcc --version:
You say that you build using clang but the log shows that you invoke gcc.
Nov 28 2020
Nov 16 2020
Nov 14 2020
In T3189#117959, @gniibe wrote:Do we need to expose the secmem routines, as a public interface of gpgrt?
I would find it useful. For example I'm making a utility that gets a passphrase with GPGME and gpg-agent, and would like to copy it into a buffer that lives on after closing the context.
Oct 23 2020
Oct 7 2020
OK, I upgraded the patch, including style adjustments to GNU style despite feeling that not having clang-format support for GNU style leads to it driving away contributors. It also credits Andy, and I have personally e-mailed Andy before.
Sep 14 2020
I think the code is using https://en.wikipedia.org/wiki/Estrin%27s_scheme but I have no scholarship applying this to AES-GCM. I will have to look closer.
Aug 31 2020
I think I am doing to try to do this on top of the work of Szabolcs Nagy[1] with the goal of making it portable, and also serving as a test cast to my carry-less multiplication intrinsic RFC[2]. Hopefully I can also remove the manual register allocation that makes it still a derivitive work of Andy, however this algorithm takes advantage of the communicative properties of carry-less multiplication, which is mult(H) on page 5 of the gcm spec[3], this communicative property works differently than with addition and multiplication in a way I do not entirely understand.
Aug 15 2020
I believe the problem here is OS X 10.12's (and above) System Integrity Protection (SIP). SIP protects system integrity by doing things like sanitizing environmental variables for system programs. Sanitizing environmental variables on system programs avoids code injections.
Aug 14 2020
Aug 9 2020
Solved in master (1.9). We won't do it in 1.8.
Aug 6 2020
I'm afraid that the dynamic linker doesn't allow hardcoding library path in an executable on macOS.
(It is only supported on some limited platforms.)
Aug 5 2020
For the reference of full mod_sqrt, see https://eli.thegreenplace.net/2009/03/07/computing-modular-square-roots-in-python/
Aug 4 2020
There are no log file but you can run the test by hand:
Aug 2 2020
Jul 30 2020
Patch backported to 2.2
Jul 13 2020
- compressed representation of EC point can be used in:
- public key
- (exporting) private key
- signature
- ECDH ephemeral key
- Accepting compressed representation,for the initial implementation, I'd like to limit our effort for curves of NIST and Brainpool, except NIST P-224, which p = 3 mod 4.
Jul 10 2020
Creating is not that useful - we prefer modern curves anyway.
I think that retrieving a parameter in compressed format is all what we need as per API.
(3) _gcry_ecc_os2ec in libgcrypt/cipher/ecc-misc.c should be modified to support parsing compressed representation.
What kind of API should we offer?
(1) offering something like q@comp name for gcry_mpi_ec_get_mpi
But...
If the intended use case will be in create_request function in gpg/sm/certreqgen.c, the 'q' is already generated in the form of SEXP.
It is up to an application (gpgsm), to convert non-compressed point representation to compressed point representation, here.
Jul 6 2020
We will need this for 1.9
Yes please.
Jun 29 2020
Ok. This was just something that I noticed while going through configure.ac. Should I make patch for this or do you want to?
Jun 16 2020
Changes pushed to master.
Jun 12 2020
Jun 5 2020
Thanks for the info. So I guess me added that restrictions to be on the safe side regarding the VS-Nfd evaluation. For 1.9 we can and should lift that.
Please see [1] appendix F - I tested it more or less on all major CPUs, small
and large, old and new:
Jun 4 2020
AFAIK, Stephan evaluated it only for x86, let me ask him ...