pexip / pexshell

A shell utility for the Pexip Infinity Management API
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link

Build(deps): bump keyring from 2.3.3 to 3.2.1 #228

Closed dependabot[bot] closed 2 months ago

dependabot[bot] commented 2 months ago

Bumps keyring from 2.3.3 to 3.2.1.

Release notes

Sourced from keyring's releases.

v3.2.1: Re-enable access to v1 credentials

The v3.2.0 release, which fixed #204, had an unfortunate side effect: it broke compatibility with credentials that were originally written by a v1.x release. This bug-fix release restores that compatibility.

With this change, the CLI changes in v3.2.0 have been reverted, because they are no longer necessary.

v3.2.0: Improve secret-service handling of targets

As reported in #201 and now fixed in #204, the secret-service credential store implementation could not disambiguate credentials that were created with different targets unless the collections containing those targets had already been unlocked.

The fix for this issue introduces a compatibility break: secret-service credentials created by the keyring v1 implementation, which were readable using platform-independent code in keyring v2, are no longer readable without using platform-specific code in v3. The necessary platform-specific code is very simple, and it has been added to the CLI (both for documentation purposes and to allow the CLI to access v1 credentials). The comments in issue #204 explain why the decision was made to add this secret-service-specific compatibility break; these include the fact that keyring v2 was released 18 months ago so only those users who haven't changed their password in a very long time would still have a v1 credential in their secret-service store.

The README has been updated to address this compatibility break and to provide recommendations for keyring clients who want to update their code to make sure users with old credentials are not impacted.

v3.1.0: enhance the CLI

As reported in #201, the CLI had a couple of problems:

  • It didn't allow empty user names, even on platforms where that's supported.
  • Its debugging output on Ambiguous errors provided no information about the underlying platform credentials.

The first issue was just a bug, now fixed.

The second issue stemmed from the fact that platform-independent code couldn't get at the details of the underlying platform-specific credentials. To fix this, the CredentialAPI had to be extended to provide access to the underlying platform credential's implementation of the std::fmt::Debug trait, and each of the keying credential stores extended to implement the new API.

To make this API extension backward-compatible, a default implementation was provided that did what the former code did: it revealed nothing. But that allows this release to be a SerVer-compatible dot release, rather than a major release.

v3.0.5: update docs and clean up dead code

As reported in #132, using the secret-service asynchronously via the keyring wrapper can lead to deadlocks. The docs have been updated to make this clear, and a recommendation has been added to use the sync-secret-service feature so as to avoid any issues related to async runtimes, even if the calling app may already be asynchronous.

While this fix was being made, it was discovered that new clippy lints in Rust 1.80 had been added. These lints revealed some dead code related to windows testing, and some documentation that was "legal" per the markdown spec but slightly ambiguous in intent. Both of these other issues were also fixed.

There are no code changes in this release relative to v3.0.4.

v3.0.4: expose cross-platform module alias

As reported in #197, there's no way for a client to access an instance of the default credential builder with platform-independent code. This releases fixes that oversight, and provides an example as part of the documentation of the credential module.

v3.0.3: Fix feature linux-native

Earlier releases didn't correctly use the keyring when the linux-native feature was specified. This release does.

Thanks to @​Brooooooklyn for finding this issue!

v3.0.2: fix iOS and doc issues in v3 release

This patch release adds in the missing iOS APIs reported in #187 and the missing CHANGELOG entries reported in #189. It also updates the README to be a lot clearer about how the new feature system interacts with platforms.

v3.0.1: Support for new keystores and binary secrets

The major functional change between v2 and v3 is the addition of synchronous support for the Secret Service via the dbus-secret-service crate. This means that keyring users of the Secret Service no longer need to link with an async runtime.

The main API change between v2 and v3 is the addition of support for non-string (i.e., binary) "password" data. To accommodate this, two changes have been made:

  1. There are two new methods on Entry objects: set_secret and get_secret. These are the analogs of set_password and get_password, but instead of taking or returning strings they take or return binary data (byte arrays/vectors).

  2. The v2 method delete_password has been renamed delete_credential, both to clarify what's actually being deleted and to emphasize that it doesn't matter whether it's holding a "password" or a "secret".

... (truncated)

Changelog

Sourced from keyring's changelog.

Version 3.0.2

  • add missing implementations for iOS set_secret and get_secret

Version 3.0.1

  • add back missing Sync trait on errors.

Version 3.0.0

  • add dbus-secret-service dependency to allow use on *n*x without an async runtime
  • (API change) rework feature controls on included keystores: now there is a feature for each keystore, and that keystore is included in a build if and only if its feature is specified and the keystore is supported by the target OS.
  • (API change) add direct support for setting and reading binary secret data, not just UTF-8 strings.

Version 2.0.1

  • fix the example in the README.

Version 2.0

  • (API change) Allow creation of entries to fail.
  • (API change) Introduce an ambiguous error on credential lookup.
  • (API change) Make the Error enum non-exhaustive.
  • (API change) Introduce traits for pluggable credential-store implementations. (This removes the old platform module.)
  • Add a mock credential store for easy cross-platform client testing.
  • Upgrade to secret-service v3.
  • Always use service-level search in secret-service.
  • Allow creation of new collections in secret-service.
  • Add the kernel keyutils as a linux credential store.
  • Add build support for FreeBSD (thanks @​ryanavella).

Version 1.2.1

  • password length was not validated correctly on Windows (#85)

Version 1.2

  • introduce protection against the use of empty arguments

Version 1.1.2

  • replace structopt with new, improved clap that incorporates all the same functionality.

Version 1.1.1

  • no functional updates, just documentation improvements

Version 1.1.0

  • add iOS support

Version 1.0.1

  • fix #80: missing winapi features (jyuch)

Version 1.0.0

  • Breaking API changes:
    • Keyring struct renamed to Entry
    • KeyringError enum renamed to Error, and is completely cross-platform.
  • API enhancements:
    • Clients can now control how entries map to credentials; see Entry::new_with_target and Entry::new_with_credential

... (truncated)

Commits
  • 55789e3 Merge pull request #209 from brotskydotcom/issue-207
  • a583eb3 Fix disallowed move in async secret service.
  • ae8396a Update version to 3.2.1.
  • a1ba734 Update docs.
  • 42f1ea3 Update the README.
  • c207407 Re-enable access to secret-servce items with no target attribute.
  • 9cb38f1 Merge pull request #205 from brotskydotcom/issue-204
  • 13f069f Bump version to 3.2.
  • 5a5797c Fix compile for non-secret-service builds.
  • 114a815 Fix typo/bug in the secret service multi-map utilities.
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 2 months ago

Looks like keyring is up-to-date now, so this is no longer needed.