Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for yescrypt #447

Closed
1 of 5 tasks
troglobit opened this issue May 15, 2024 · 0 comments · Fixed by #480
Closed
1 of 5 tasks

Add support for yescrypt #447

troglobit opened this issue May 15, 2024 · 0 comments · Fixed by #480
Assignees
Labels
enhancement New feature or request feature Feature request
Milestone

Comments

@troglobit
Copy link
Contributor

Classification:

  • Bug report
  • Feature request
  • Question (see Discussions)

Description:

A few people so far have asked about support for alternative password crypts, https://en.wikipedia.org/wiki/Yescrypt is possibly the most interesting since. This is a feature currently not possible to add since ietf-system.yang has a limitation to which crypts are available, see RFC7317 for details:

typedef crypt-hash {
  type string {
    pattern
      '$0$.*'
      + '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}'
      + '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}'
      + '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}';
   }
   description
     "The crypt-hash type is used to store passwords using
      a hash function.  The algorithms for applying the hash
      function and encoding the result are implemented in
      various UNIX systems as the function crypt(3).

      A value of this type matches one of the forms:

      $0$<clear text password>
      $<id>$<salt>$<password hash>
      $<id>$<parameter>$<salt>$<password hash>

      The '$0$' prefix signals that the value is clear text.  When
      such a value is received by the server, a hash value is
      calculated, and the string '$<id>$<salt>$' or
      $<id>$<parameter>$<salt>$ is prepended to the result.  This
      value is stored in the configuration data store.

To enable support for this the current investigation has detailed the following issues:

  • Add a deviation the IETF system password type to include $y$
  • Migrate from libgcrypt to libxcrypt, the former does not have yescrypt

You can help out by sponsoring the development, or contributing a pull request for its support. Use this issue for discussions around this topic.

@troglobit troglobit added enhancement New feature or request feature Feature request triage Pending investigation & classification (CCB) labels May 15, 2024
@troglobit troglobit self-assigned this Jun 16, 2024
@troglobit troglobit added this to the Infix v24.06 milestone Jun 16, 2024
troglobit added a commit that referenced this issue Jun 16, 2024
Fixes #447

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
troglobit added a commit that referenced this issue Jun 18, 2024
Fixes #447

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
troglobit added a commit that referenced this issue Jun 20, 2024
Fixes #447

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
troglobit added a commit that referenced this issue Jun 20, 2024
Fixes #447

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
@troglobit troglobit linked a pull request Jun 20, 2024 that will close this issue
13 tasks
@troglobit troglobit removed the triage Pending investigation & classification (CCB) label Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature Feature request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant