Use --enable-large-data-tests with configure and go out for a real long lunch
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Sep 6 2024
Sep 4 2024
Sep 2 2024
Aug 30 2024
As far as I know the practice to have separate -dev packages is very common among Linux distributions.
I wonder how common this practice of splitting development material into a separate file might be? It is in place at Alpine, since the file libgpg-error-dev exists. Once the related component is instaled, these messages/strings are printed:; output filtered:
checking for GPG Error - version >= 1.49... expr: warning: '^x-L': using '^' as the first character of a basic regular expression is not portable; it is ignored yes (1.49)
Aug 29 2024
Does alpine split the development files of libgpg-error into a separate *-devel (or similar) package like most other distros? If yes, then you need to install this development package.
Aug 28 2024
Thanks. Test works in my nightly builds now.
Aug 26 2024
That's my badness.
I noticed by the CI at https://gitlab.com/redhat-crypto/libgcrypt/libgcrypt-mirror
Aug 22 2024
Aug 7 2024
I do not have Aarch64 machine at hand so what I did was building the package with changes on the build system with previous patches and checking the correct flag are in place (previously in RHEL10, but now in Fedora):
Do you have any way to test PAC/BTI on actual HW that support these extensions?
Aug 6 2024
Aug 5 2024
Thanks! Verified this builds on aarch64 correctly and generates the right flags on the output:
Hardened: /builddir/build/BUILDROOT/libgcrypt-1.11.0-3.el10.aarch64/usr/lib64/libgcrypt.so.20.5.0: Overall: PASS.
This excludes 32-bit ARM assembly from Aarch64 builds:
In T7226#189443, @jukivili wrote:This patch should fix the issue:
0001-mpi-ec-inline-reduce-register-pressure-on-32-bit-ARM.patch4 KBDownload
Tested in our build environment and indeed, just this patch does not solve the issue for aarch64.
Aug 4 2024
Here's patch:
This patch should fix the issue:
Ok, so aarch64 assembly would need PAC and BTI support. As far as I have understood these, is that PAC instructions are not needed with current assembly as none of those is storing/loading LR register (all aarch64 assembly functions are leaf functions). So only BTI is needed and that is basically same modification as CET on x86.
This already shows with 9d909cb67e70fd792926ac1e2ab305b2cc96bc27 which initially added ec-inline.h. (Reproducing with old versions like this one requires cherry-picking 693ffa145378682229473b0e811a9cea7c4d307a since otherwise NEON support is disabled at configure time due to implicit functions.)
Jul 29 2024
Recent changes fixed the issue for the x86_64 builds, but I see similar symptoms in the aarch64 build now. Annocheck reports the following failures:
Hardened: /usr/lib64/libgcrypt.so.20.5.0: FAIL: dynamic-tags test because the BTI_PLT flag is missing from the dynamic tags Hardened: /usr/lib64/libgcrypt.so.20.5.0: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-dynamic-tags.html Hardened: /usr/lib64/libgcrypt.so.20.5.0: FAIL: property-note test because properly formatted .note.gnu.property not found (it is needed for branch protection support) Hardened: /usr/lib64/libgcrypt.so.20.5.0: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-property-note.html
I do not have aarch64 machine at hand now to investigate this further, but this sounds like orthogonal functionality to the CET on Intel.
Jul 28 2024
Jul 27 2024
Thank you. With this patch the IBT flags are present on the shared object and CF protection test passes.
"rijndael-vaes-avx2-i386.S" should not be build for x86-64 but until now that has not had any affect as #ifdefs in that source file result empty object file on x86-64.
Jul 26 2024
Thank you for having a look into this!
Not for a broken compiler but for several CC versions which consumed lots of memory for unrulling stuff. iirc, this was not only gcc.
Here's patches for adding CET support to x86-64 and i386 assembly.
OpenBSD carries libgcrypt patch for CET which adds endbr64 instruction to CFI_STARTPROC() macro in "asm-common-amd64.h". We could do the same and also add endbr32 to i386 too. That would be easiest way to add required endbr instructions. OpenBSD also has patch for arm64 to add similar BTI instructions to aarch64 variant of CFI_STARTPROC.
There is -O flag munging for "tiger.o" in "cipher/Makefile.am", an old workaround for broken compiler I think. IMHO tiger.o case can and should be removed.
OpenBSD carries libgcrypt patch for CET which adds endbr64 instruction to CFI_STARTPROC() macro in "asm-common-amd64.h". We could do the same and also add endbr32 to i386 too. That would be easiest way to add required endbr instructions. OpenBSD also has patch for arm64 to add similar BTI instructions to aarch64 variant of CFI_STARTPROC.
Jul 25 2024
Jul 11 2024
We hereby deliver with some delay our completed version of the integration of PQC algorithms into Libgcrypt from our project. The code features the following algorithms:
Jul 7 2024
Jul 2 2024
Jun 24 2024
Verified the fix.
Pushed the change to master. Please test.
rCbb0895bbb7c6: m4: Fix acinclude.m4 for underscore detection in the symbol.
Thank you for the report.
Jun 23 2024
Thanks for the detailed analysis; we will check to tomorrow why this was changed.
In T7175#187690, @jukivili wrote:Hm, CFI directives should not be used on WIN32 target. This patch should solve the issue for now:
0001-src-hwf-x86-disable-inline-assembly-CFI-directivies-.patch984 BDownload
Jun 22 2024
Here is a fix for the issue which preserves the removal of cut:
Using clang for Windows is not tested or suggested. Thus low priority.
Thanks for testing. I pushed this fix to libgcrypt master.
Jun 21 2024
Done.
Done in 1.11.0.
Jun 20 2024
This diff for 1.11.0 fixes the problem for me:
The following logic from 1.11.0 acinclude.m4 cannot possibly work to detect _ at the beginning of symbol names:
The toolchain is clang / llvm and the apple ld, native build, not cross compiling.
Thank you for having a look into that. If I see right, Fedora has a real s390 hardware for builders so I can verify the fix when available.
Algo 329 and 330 are the new CSHAKE128 and CSHAKE256 digest algos. Looks that s390x only support accelerating SHA3 and SHAKE, as only SHA3 and SHAKE suffix are supported (see keccak_final_s390x()). So s390x acceleration needs to be disabled for CSHAKE algos.
Jun 19 2024
Jun 6 2024
May 29 2024
I left review comments in gitlab.
We discussed this forth and back with the RedHat people at our jour-fix to explain that the Kairo fix is done at the wrong layer - this needs to be done at the protocol layer and not in the building blocks. This is not covered by our security policy and @gniibe already came up with some extra support to help at the protocol layer. There are only a few use cases where this side-channel or the Minerva one (for ECDSA) should be considered (e.g. time stamping services). Generally required protection against DoS are also pat of the mitigation.
I left review comments in gitlab. One additional concern is license for mpi-mul-cs.c, original code not having copyright information... "does not have any copyright information, assuming public domain".
May 28 2024
May 21 2024
Right, thats my understanding from reading of the RFC that the padding should be strictly < 8B. We can reword though.
Well, but if the padding is indeed limited to 7 bytes the fix should be applied anyway.
The report went like this
Error: OVERRUN (CWE-119): libgcrypt-1.10.3/cipher/cipher-aeswrap.c:303: cond_at_most: Checking "plen > 8U" implies that "plen" may be up to 8 on the false branch. libgcrypt-1.10.3/cipher/cipher-aeswrap.c:305: cond_between: Checking "plen" implies that "plen" is between 1 and 8 (inclusive) on the true branch. libgcrypt-1.10.3/cipher/cipher-aeswrap.c:309: assignment: Assigning: "i" = "0". libgcrypt-1.10.3/cipher/cipher-aeswrap.c:310: overrun-local: Overrunning array "t" of 16 bytes at byte offset 16 using index "8U + plen + i" (which evaluates to 16). # 308| # 309| for (i = 0; i < 16 - (8+plen); i++) # 310|-> if (t[8+plen+i]) # 311| { # 312| err = GPG_ERR_CHECKSUM;
but looking again, it is wrong as it did not reflect the end condition for the cycle, which obviously means the cycle does not run. Sorry for the noise.
Can you give a hint where there is a buffer overrun in the first patch? Padding limit might be correct but I can't see an overrun.
May 20 2024
May 16 2024
Thank you. Applied by : rM87061c0260bb: gpgme.m4: Set $host correctly always.
May 15 2024
Ditto for ksba and assuan.
May 14 2024
The gcrypt change works for me. Thanks!
In general, asking an application change is not good. Migrating to pkg-config should be an option (not requirement).
However, it's usually recommended to use libgpg-error when an application is used with libgcrypt/libksba/libassuan.