summaryrefslogtreecommitdiff
path: root/crypto/external/bsd/openssl
AgeCommit message (Collapse)Author
2023-07-08Sprinkle OPENSSL_NO_EC_NISTP_64_GCC_128 for aarch64eb.rin
Otherwise, the following tests fail with wrong results: - crypto/libcrypto/t_ciphers:evp - crypto/libcrypto/t_pubkey:ec Official document says ec_nistp_64_gcc_128 does not support big endian: https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-ec_nistp_64_gcc_128 Thanks @a_rin for pointing this out on Twitter! Note that an equivalent hack was present in openssl.old for aarch64eb, alpha, and sparc64. But: - alpha received upstream fix (PR lib/55701) - sparc64 has been fixed differently (PR port-sparc64/57472)
2023-06-27PR 57472: adjust the BIGNUM configuration for sparc64 to match a nativemartin
openssl build [internally called bn(64/32)] and make the BN limbs be 32bit. The sparc64 ASM code only deals with this layout. Enable all sparc64 optimized asm code and define OPENSSL_NO_EC_NISTP_64_GCC_128 as this optimization is not valid on sparc64 (bigendian, alignement critical) - again matching the native build. Analyzed by Taylor and Harold, thanks!
2023-06-27Remove unused leftovers from earlier versionsmartin
2023-06-27The sha512 generator perl script can output a sha256 version too, butmartin
needs a special cased invocation to do so. Fix the regen script and update the output.
2023-06-17Split the SUBDIR variable into a separate Makefile so it can be usedchristos
by /usr/src/lib/Makefile
2023-06-08don't assume that the root directory of CVS is called src (Jan-Benedict Glaw)christos
2023-05-31fix the buildchristos
2023-05-31regenchristos
2023-05-31regenchristos
2023-05-31merge conflicts between 3.0.8 and 3.0.9christos
2023-05-31Import OpenSSL-3.0.9christos
### Changes between 3.0.8 and 3.0.9 [30 May 2023] * Mitigate for the time it takes for `OBJ_obj2txt` to translate gigantic OBJECT IDENTIFIER sub-identifiers to canonical numeric text form. OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical numeric text form. For gigantic sub-identifiers, this would take a very long time, the time complexity being O(n^2) where n is the size of that sub-identifier. ([CVE-2023-2650]) To mitigitate this, `OBJ_obj2txt()` will only translate an OBJECT IDENTIFIER to canonical numeric text form if the size of that OBJECT IDENTIFIER is 586 bytes or less, and fail otherwise. The basis for this restriction is RFC 2578 (STD 58), section 3.5. OBJECT IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS may have at most 128 sub-identifiers, and that the maximum value that each sub- identifier may have is 2^32-1 (4294967295 decimal). For each byte of every sub-identifier, only the 7 lower bits are part of the value, so the maximum amount of bytes that an OBJECT IDENTIFIER with these restrictions may occupy is 32 * 128 / 7, which is approximately 586 bytes. Ref: https://datatracker.ietf.org/doc/html/rfc2578#section-3.5 *Richard Levitte* * Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms which happens if the buffer size is 4 mod 5 in 16 byte AES blocks. This can trigger a crash of an application using AES-XTS decryption if the memory just after the buffer being decrypted is not mapped. Thanks to Anton Romanov (Amazon) for discovering the issue. ([CVE-2023-1255]) *Nevine Ebeid* * Reworked the Fix for the Timing Oracle in RSA Decryption ([CVE-2022-4304]). The previous fix for this timing side channel turned out to cause a severe 2-3x performance regression in the typical use case compared to 3.0.7. The new fix uses existing constant time code paths, and restores the previous performance level while fully eliminating all existing timing side channels. The fix was developed by Bernd Edlinger with testing support by Hubert Kario. *Bernd Edlinger* * Corrected documentation of X509_VERIFY_PARAM_add0_policy() to mention that it does not enable policy checking. Thanks to David Benjamin for discovering this issue. ([CVE-2023-0466]) *Tomáš Mráz* * Fixed an issue where invalid certificate policies in leaf certificates are silently ignored by OpenSSL and other certificate policy checks are skipped for that certificate. A malicious CA could use this to deliberately assert invalid certificate policies in order to circumvent policy checking on the certificate altogether. ([CVE-2023-0465]) *Matt Caswell* * Limited the number of nodes created in a policy tree to mitigate against CVE-2023-0464. The default limit is set to 1000 nodes, which should be sufficient for most installations. If required, the limit can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX build time define to a desired maximum number of nodes or zero to allow unlimited growth. ([CVE-2023-0464]) *Paul Dale*
2023-05-27Explicitly run openssl's "gen" script in a shellhgutch
The script has permissions 755 in the repo but ends up with permissions 644 in the source sets, therefore we cannot invoke it simply as path/to/gen .
2023-05-27openssl: Delete capi makefiles -- not likely to ever see use here.riastradh
2023-05-27openssl: Nix capi.so engine -- it's for the Windows crypto API.riastradh
Not likely to work in NetBSD base!
2023-05-27openssl: padlock.so engine for VIA CPUs makes sense only on x86.riastradh
2023-05-26openssl: Link engines against libcrypto so they can be loaded.riastradh
2023-05-26openssl: Wire up dynamic engine build goo.riastradh
This restores the devcrypto engine, which was converted from static to dynamic since the previous OpenSSL update. XXX Pretty sure I got some of the set list package names wrong, but it's not clear what the right ones are or what consequences any of this has. XXX Needs testing.
2023-05-26Revert "openssl: Nix build goo for dynamically loaded engines."riastradh
Turns out there is a regression lurking here: the devcrypto engine was made dynamic-only (https://github.com/openssl/openssl/pull/7859), so to maintain that functionality, we need to build dynamic engines. Will fix the aarch64 build issue and wire things up separately.
2023-05-26openssl: Nix build goo for dynamically loaded engines.riastradh
- Engines are deprecated in openssl 3. - We never actually had the .so engines wired up to be built in openssl 1.1, and judging by the lack of obsolete entries in the set lists, I don't think we ever had them wired up to be built at all.
2023-05-25openssl: Consolidate new CWARNFLAGS.clang stuff in Makefile.openssl.riastradh
2023-05-25add a little const to help clangchristos
2023-05-25openssl: Suppress clang warnings for using string literals as char *.riastradh
Not sure this is actually forbidden by the C standard. There may be bugs lurking here, but OpenSSL uses this extensively, so let's just get the build going again.
2023-05-25openssl: Nix trailing whitespace in build goo.riastradh
No functional change intended.
2023-05-23centralie warningschristos
2023-05-19vax-inate (does not have _pic, .a is pic)christos
2023-05-18fix riscv32christos
2023-05-17add missing assembly stub macro, remove WARNS=0christos
2023-05-16include earm to <=5christos
2023-05-16fix ia64christos
2023-05-16use the pic version of the common library (affects hppa/alpha)christos
2023-05-16openssl: Limit armv8 stuff to aarch64.riastradh
Strictly speaking there is armv8 aarch32, e.g. AES instructions are exposed to 32-bit mode, but OpenSSL's `*_armv8.S' files are staunchly aarch64 and don't work when built for aarch64 32-bit compat libraries (which could take advantage of armv8 instructions, but only if the code is actually aarch32, which it isn't). The armv8 stuff is still included in aarch64 /usr/lib/libcrypto, just not in the 32-bit compat libraries. With any luck, this will fix the aarch64 clang build (again).
2023-05-16Simplify previous, from Riastradhmartin
2023-05-15fix typochristos
2023-05-15add riskv64 from Robert Swindellschristos
2023-05-1532bit sparc needs the atomic hack toomartin
2023-05-15fix ppc, sh3christos
2023-05-15armv4 also needs the atomic hackmartin
2023-05-15Fix armv5martin
2023-05-15fix buildchristos
2023-05-15fix mipschristos
2023-05-14fix powerpcchristos
2023-05-14make things linkchristos
2023-05-14make arm buildchristos
2023-05-13fix alphachristos
2023-05-13fix m68k/i386christos
2023-05-13libcryptotest: Suppress some warnings.riastradh
Detected by clang aarch64 32-bit arm compat library build.
2023-05-12we don't have int128christos
2023-05-11fix vax, restructure.christos
2023-05-11fix sparc64christos
2023-05-11changes to get aarch64 to linkchristos