- Aug 04, 2022
-
-
Alex Chernyakhovsky authored
Work around protocolbuffers/protobuf#10357 by disabling -Wunused-parameter.
-
- Jul 12, 2022
-
-
Alex Chernyakhovsky authored
-
Alex Chernyakhovsky authored
This change ports the Travis CI release workflow for macOS to Github Actions. Note that while this is functionally identical to the previous Travis CI flow, no work has been done to update the macOS build scripts to build for arm64.
-
Alex Chernyakhovsky authored
This Github Actions workflow uses a Linux-based running to create the release tarball for mosh. This is necessary since mosh does not check in the autoconf/automake generated files, so the default release action source download is missing files that are needed for distributions that use the upstream-provided ./configure script.
-
- Jul 06, 2022
-
-
Alex Chernyakhovsky authored
-
Alex Chernyakhovsky authored
-
- Jun 28, 2022
-
-
Benjamin Barenblat authored
Replace calls to AES_* APIs, which were deprecated in OpenSSL 3, with calls to EVP_* APIs. Closes: https://github.com/mobile-shell/mosh/issues/1174
-
Alex Chernyakhovsky authored
Previously, ocb_internal.cc supported different key sizes, by way of the deprecated aes_* function family. However, in practice, mosh always uses AES-128. In Nettle, the explicit key-size APIs are not deprecated, so switch to AES-128 directly. Fixes: 1202
-
Benjamin Barenblat authored
The OpenSSL EVP API requires that keys be heap-allocated, so switch _ae_ctx to use pointers to keys and opaque allocation functions. Bug: https://github.com/mobile-shell/mosh/issues/1174
-
Benjamin Barenblat authored
Explicitly define the primitive AES API used by the internal OCB implementation, and move it into its own namespace (ocb_aes). This will ease future implementation changes. Also make some style fixes to affected lines: Replace C-style casts with C++-style casts, add some missing spaces in argument lists, and remove some `inline` that the compiler will ignore. Bug: https://github.com/mobile-shell/mosh/issues/1174
-
Benjamin Barenblat authored
This macro was used in the reference and AES-NI AES implementations, both of which were deleted in a563093f.
-
Alex Chernyakhovsky authored
-
Benjamin Barenblat authored
bacc0240 inadvertently stopped propagating `pkg-config --libs` output into the link line. This didn’t affect OpenSSL (since configure.ac puts -lcrypto there manually) or Apple Common Crypto (since it’s not a separate dylib), but it broke Nettle builds. Fix Nettle builds by ensuring that `pkg-config --libs` output actually makes it to the linker.
-
- Jun 23, 2022
-
-
Benjamin Barenblat authored
After further discussion, the Mosh maintainers have decided to stick with the internal OCB implementation for this release. Restore support for using OpenSSL’s AES but internal OCB. To make this commit easy to audit, restore the code exactly, including calls to AES functions that are deprecated in OpenSSL 3; a future commit will update ocb_internal.cc to use EVP instead of directly calling the AES primitives. In anticipation of future changes, preserve support for OpenSSL’s AES-OCB, but don’t compile it in. Add --with-crypto-library=openssl-with-openssl-ocb and --with-crypto-library=openssl-with-internal-ocb options to configure so that developers can easily test Mosh using OpenSSL’s AES-OCB. These options are intended only for testing, are undocumented, and are not subject to any API stability guarantees. Rework configure to look for all possible cryptography libraries first and then dispatch on --with-crypto-library as appropriate.
-
- Jun 14, 2022
-
-
Alex Chernyakhovsky authored
OpenSSL 3.0 deprecated many of the functions that ocb.cc used to implement OCB-AES, causing a build failure when -Wdeprecated collided with -Werror. Debian temporarily fixed this by suppressing the error in #1191. Since mosh 1.4 will be the next stable release of mosh, it should not depend on deprecated functions in OpenSSL. Since version 1.1.0, OpenSSL natively supports OCB-AES through the EVP_CIPHER API. @cgull started early support for this in #924. This change extends upon the previous work by @cgull in a few ways * EVP_CipherInit_ex is called in ae_init to set up the EVP_CIPHER_CTX. It is later called in ae_encrypt and ae_decrypt just to load nonce (IV in OpenSSL EVP parlance), which reduces the amount of initialization done per-packet. However, due to OpenSSL API limitations, two copies of the EVP_CIPHER_CTX are kept: one for encryption, and one for decryption. * Adds missing support for an external tag, rather than just one appended to the ciphertext * Support for non-default-sized tags as well as some improved error handling. Note that this change raises the minimum OpenSSL version for Mosh to 1.1.0. OpenSSL does not provide security support for versions prior to 1.1 at this time, so this is in principle reasonable dependency. If we want to continue to support distributions (such as RHEL7) which continue to be supported by their vendor but use an unsupported OpenSSL, then some future work will have to restore the ocb.cc implementation that uses the deprecated functions. Bugs: #1174
-
- Jun 07, 2022
-
-
Benjamin Barenblat authored
Split src/crypto/ocb.cc into two files – one containing the AES-OCB implementation backed by OpenSSL, and the other containing implementations backed by Apple Common Crypto and Nettle. This paves the way for a new OpenSSL implementation that uses OpenSSL 1.1’s OCB support directly, rather than one that merely uses OpenSSL to provide the underlying block cipher. Remove support for rijndael-alg-fst.c and compiler-provided AES intrinsics, since they’re not in use anymore. (Mosh can still use hardware-accelerated AES if it’s available; it just now relies exclusively on the underlying cryptography library to accelerate AES if possible.) Update the build system to conditionally compile in either ocb_openssl.cc or ocb_internal.cc, depending on which cryptography library you pass to ./configure. To make this commit easy to audit, ocb_openssl.cc and ocb_internal.cc are trivially diffable against ocb.cc (now deleted). Expected diffs consist of a copyr...
-
- May 31, 2022
-
-
Alex Chernyakhovsky authored
This reverts commit 6321b1d9. The original commit 6321b1d9 switched from a malloc call of a 22400 byte buffer to a stack-allocated 22400 byte buffer, in addition to the fairly large buffers already allocated in the functions. Some systems have fairly small stack frames, making this 22K allocation potentially dangerous. On my stock Debian bullseye system, I have 200809 bytes (from `getconf _POSIX_THREAD_ATTR_STACKSIZE`); a 22400 byte buffer already represents about 10% of the available stacksize. Other systems, such as those with musl libc, may have either 80KiB or 128KiB [1], making this allocation represent between 18% to 28% of the available stack space. [1] https://wiki.musl-libc.org/functional-differences-from-glibc.html#Thread-stack-size
-
Alex Chernyakhovsky authored
This commit adds a fuzzer for more of the terminal pipeline, adding coverage for the input and output portions of the terminal framebuffer.
-
Alex Chernyakhovsky authored
This commit adds the --enable-fuzzing (and --enable-asan, to make fuzzing more useful) options and a sample fuzzer for the terminal parser. At this time only libfuzzer is supported. Future changes to add AFL to get more fuzzing capability should be possible with the addition of the afl_driver.cc from Chromium.
-
Alex Chernyakhovsky authored
-
Alex Chernyakhovsky authored
-
Alex Chernyakhovsky authored
This change adds autoconf/automake support for building all of mosh with gcov, and generates an lcov html report. This allows seeing which parts ofthe source tree have good test coverage, and which can be shored up. Eventually, it would be good to hook this up to Github Actions to be generated automatically.
-
- Feb 05, 2022
-
-
Wolfgang E. Sanyer authored
Signed-off-by:Wolfgang E. Sanyer <WolfgangESanyer@gmail.com>
-
Wolfgang E. Sanyer authored
Signed-off-by:Wolfgang E. Sanyer <WolfgangSanyer@Google.com>
-
Wolfgang E. Sanyer authored
Signed-off-by:Wolfgang E. Sanyer <WolfgangSanyer@Google.com>
-
- Dec 11, 2021
-
-
Andrew Chin authored
Add tmux and alacritty to title_term_types
-
- Dec 09, 2021
-
-
Andrew Chin authored
Use CLOCK_MONOTONIC_RAW when available
-
- Nov 05, 2021
-
-
Andrew Chin authored
Don't sometimes hang just after launching ssh
-
- Oct 29, 2021
-
-
Kalle Samuels authored
sshd has a bug in which the sometimes it may get stuck trying to read from the client even though the child process has already exited. This is visible at https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/serverloop.c?annotate=1.226 line 274: once the child is waited on, `child_terminated` is reset to 0, which causes it to use an infinite timeout in the select there. This workaround causes mosh to disconnect from the server, thereby allowing sshd finish.
-
- Oct 21, 2021
-
-
Harry Sintonen authored
-
- Aug 27, 2021
-
-
Naïm Favier authored
Resolves #1130
-
- Jul 21, 2021
-
-
Andrew Chin authored
.gitignore: add autogenerated files
-
black_desk authored
-
black_desk authored
-
- Jul 14, 2021
-
-
Andrew Chin authored
fixed the irc channel link in README
-
buZz authored
-
- Dec 06, 2020
-
-
Harry Sintonen authored
-
- May 18, 2020