summaryrefslogtreecommitdiff
path: root/crypto
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-07-08openssl.old: Remove OPENSSL_NO_EC_NISTP_64_GCC_128 hack for alpha.rin
Unaligned memory access reported in PR lib/55701 has been fixed by upstream commit: https://github.com/openssl/openssl/commit/77286fe3ec6b9777934e67e35f3b7007143b0734 Actually, kernel no longer complains with machdep.unaligned_print=1, for sshd(8), ssh(1), and full ATF run.
2023-07-08openssl.old: Fix build with HAVE_OPENSSL == 11.rin
Introduce Makefile.subdir in the same manner as new openssl.
2023-07-07Remove extra whitespace inserted during merge. No binary changes.rin
2023-07-07Remove duplicate OpenBSD RCSID.rin
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-22fix sun2christos
2023-06-20Use PROGDPLIBS instead of LDADD/DPADD; remove ui.c kludgeschristos
2023-06-20Don't use the hcrypto version, use the OpenSSL one.christos
2023-06-20Add hcrypto/ui.h to avoid -I gymnastics everywhere elsechristos
2023-06-20re-fix the previous - i had only fixed one case, not the general one.mrg
guard the .BEGIN: rule with: .if !make(clean) && !make(cleandir) && !make(distclean) && !make(obj) so that it doesn't trigger in cases where we don't expect the objdir to exist already, or we don't want to be adding things while we're cleaning them out.
2023-06-20don't try to setup things in objdir before it exists.mrg
2023-06-20XXX stop gap to fix the builds in a way that doesn't make them useless.mrg
it does build "ui.c" a large number of times into individual places. in the libraries, they're force to local symbols, and in the binaries it doesn't really matter.
2023-06-19fix missing header issues.mrg
might seems to have an undef symbol issue in libkrb5.so: hc_UI_UTIL_read_pw_string
2023-06-19Adjust the build to include ui.c from hcrypto.christos
2023-06-19need the hcrypto/ui.h header for UI_UTIL_read_pw_string/UI_UTIL_FLAG_VERIFY*christos
2023-06-19Merge differences between 7.7.0 and 7.8.0christos
2023-06-19Import heimdal-7.8.0 (previous was 7.7.0)christos
This release includes both the Heimdal 7.7.1 Security Vulnerability fixes and non-Security bug fixes/improvements. Security Vulnerabilities: - CVE-2022-42898 PAC parse integer overflows - CVE-2022-3437 Overflows and non-constant time leaks in DES{,3} and arcfour - CVE-2022-41916 Fix Unicode normalization read of 1 bytes past end of array - CVE-2021-44758 A null pointer de-reference DoS in SPNEGO acceptors - CVE-2021-3671 A null pointer de-reference when handling missing sname in TGS-REQ - CVE-2022-44640 Heimdal KDC: invalid free in ASN.1 codec Note that CVE-2022-44640 is a severe vulnerability, possibly a 10.0 on the Common Vulnerability Scoring System (CVSS) v3, as we believe it should be possible to get an RCE on a KDC, which means that credentials can be compromised that can be used to impersonate anyone in a realm or forest of realms. Heimdal's ASN.1 compiler generates code that allows specially crafted DER encodings of CHOICEs to invoke the wrong free function on the decoded structure upon decode error. This is known to impact the Heimdal KDC, leading to an invalid free() of an address partly or wholly under the control of the attacker, in turn leading to a potential remote code execution (RCE) vulnerability. This error affects the DER codec for all extensible CHOICE types used in Heimdal, though not all cases will be exploitable. We have not completed a thorough analysis of all the Heimdal components affected, thus the Kerberos client, the X.509 library, and other parts, may be affected as well. This bug has been in Heimdal's ASN.1 compiler since 2005, but it may only affect Heimdal 1.6 and up. It was first reported by Douglas Bagnall, though it had been found independently by the Heimdal maintainers via fuzzing a few weeks earlier. While no zero-day exploit is known, such an exploit will likely be available soon after public disclosure. - CVE-2019-14870: Validate client attributes in protocol-transition - CVE-2019-14870: Apply forwardable policy in protocol-transition - CVE-2019-14870: Always lookup impersonate client in DB Other changes: - Bugs found by UBSAN (including the incorrect encoding of unconstrained INTEGER value -1). - Errors found by the LLVM scan-build static analyzer. - Errors found by the valgrind memory debugger. - Work around GCC Bug 95189 (memcmp wrongly stripped like strcmp). - Correct ASN.1 OID typo for SHA-384 - Fix a deadlock in in the MEMORY ccache type. - TGS: strip forwardable and proxiable flags if the server is disallowed. - CVE-2019-14870: Validate client attributes in protocol-transition - CVE-2019-14870: Apply forwardable policy in protocol-transition - CVE-2019-14870: Always lookup impersonate client in DB - Incremental HDB propagation improvements Refactor send_diffs making it progressive Handle partial writes on non-blocking sockets Disable Nagle in iprop master and slave Use async I/O Don't send I_HAVE in response to AYT Do not recover log in kadm5_get_principal() Don't send diffs to slaves with not yet known version Don't stutter in send_diffs - Optional backwards-compatible anon-pkinit behavior
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-06-03adapt to ${CC_WNO_IMPLICIT_FALLTHROUGH}lukem
Use ${CC_WNO_IMPLICIT_FALLTHROUGH} instead of the older style more complex expressions.
2023-06-03bsd.own.mk: rename GCC_NO_* to CC_WNO_*lukem
Rename compiler-warning-disable variables from GCC_NO_warning to CC_WNO_warning where warning is the full warning name as used by the compiler. GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH Using the convention CC_compilerflag, where compilerflag is based on the full compiler flag name.
2023-06-01Add checks to EVP_CipherInit_ex() where they were missing and add a cheesychristos
define to get the RC4 cipher from the legacy provider, since the legacy provider is not loaded by default now.
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: CWARNFLAGS, not COPTS, for -Wno-error=...riastradh
COPTS gets put too early, so these are cancelled out by -W flags added later by bsd.sys.mk. (How did this ever work???)
2023-05-25openssl: Note that -Wno-error=char-subscripts likely masks real bugs.riastradh
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-23centralize the warnings, try to fix clangchristos
2023-05-23centralie warningschristos
2023-05-20remove old files that cause conflicts on case insensitive filesystems. Reportedchristos
by lukem@
2023-05-19vax-inate (does not have _pic, .a is pic)christos
2023-05-18Make "shadow" warnings non-fatal for now (triggered by lots BN_* macros).martin
2023-05-18fix riscv32christos