1. Oct 27, 2022
  2. Aug 05, 2022
  3. Aug 04, 2022
    • Alex Chernyakhovsky's avatar
      Bump release candidate to 1.4.0-rc1 · fe72a3e0
      Alex Chernyakhovsky authored
      fe72a3e0
    • Alex Chernyakhovsky's avatar
    • Alex Chernyakhovsky's avatar
      Fetch forcibly while fetching tags · 850c1f09
      Alex Chernyakhovsky authored
      `git fetch --tags --unshallow`, run as part of the CI for `git
      describe` to do the right thing, ran into the error:
      
      ```
       ! [rejected]        mosh-1.4.0-rc0   -> mosh-1.4.0-rc0  (would clobber existing tag)
      ```
      
      This is because mosh uses annotated tags, whereas the initial fetch
      command run by actions/checkout@v2 ends up creating an *unannotated*
      tag of the same name.
      
      This means that any time the release CI runs, it would fail.
      
      The resolution is straightforward: --force so that the line becomes
      
      ```
       t [tag update]      mosh-1.4.0-rc0 -> mosh-1.4.0-rc0
      ```
      
      and the annotation is brought in.
      850c1f09
    • Alex Chernyakhovsky's avatar
      Tag mosh 1.4.0 Release Candidate · 7d2601d4
      Alex Chernyakhovsky authored
      7d2601d4
    • Benjamin Barenblat's avatar
      Audit and fix up format strings · cd705061
      Benjamin Barenblat authored
      cd705061
    • Alex Chernyakhovsky's avatar
      Switch macOS multi-arch to x86_64+arm64 · 4cd2da52
      Alex Chernyakhovsky authored
      The previous CI attemtped to use Homebrew for builds, but
      unfortunately Homebrew has dropped support for universal packages aka
      multiarch (fat) binaries. This means that in order to build an arm64 +
      x86_64 package, macports has to be used instead of homebrew.
      
      Unlike Homebrew, MacPorts is not installed by default on the GitHub
      Actions runners, so we need to install it ourselves. This means
      managing our own instance of the cache, which itself produces
      challenges as the `gtar` binary run by the action doesn't have enough
      permissions to restore the MacPorts checkout. So we have to shim gtar
      with a sudo wrapper.
      
      With this commit, we produce a Mosh package that works on macOS 11.0
      and newer, on both arm64 and x86_64 architectures. The protobuf
      library is statically linked, but all other libraries are provided by
      the system.
      4cd2da52
    • Alex Chernyakhovsky's avatar
      Add -Wno-unused-parameter · 6154bc04
      Alex Chernyakhovsky authored
      Work around protocolbuffers/protobuf#10357 by disabling
      -Wunused-parameter.
      6154bc04
  4. Jul 12, 2022
    • Alex Chernyakhovsky's avatar
      0982212c
    • Alex Chernyakhovsky's avatar
      Add macOS release steps to Github Actions · 7f0c3a41
      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.
      7f0c3a41
    • Alex Chernyakhovsky's avatar
      Add release action on Linux · f0b0108c
      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.
      f0b0108c
  5. Jul 06, 2022
  6. Jun 28, 2022
  7. Jun 23, 2022
    • Benjamin Barenblat's avatar
      Go back to internal OCB implementation · bacc0240
      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.
      bacc0240
  8. Jun 14, 2022
    • Alex Chernyakhovsky's avatar
      Use OpenSSL native OCB-AES implementation · 135a11a2
      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
      135a11a2
  9. Jun 07, 2022
    • Benjamin Barenblat's avatar
      Separate OpenSSL-based OCB implementation from others · a563093f
      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 copyright notice update, a preprocessor check to ensure the
      appropriate cryptography implementation has been selected, and deletions
      to remove code that’s no longer in use. This does mean a substantial
      amount of code is duplicated between ocb_openssl.cc and ocb_internal.cc;
      however, ocb_openssl.cc should be completely replaced soon, so it won’t
      be an issue in the long term.
      
      Bug: https://github.com/mobile-shell/mosh/issues/1174
      a563093f
  10. May 31, 2022
  11. Feb 05, 2022
  12. Dec 11, 2021
  13. Dec 09, 2021
  14. Nov 05, 2021
  15. Oct 29, 2021