openwall / openwall/john

Reconsider potcheck during build

Open
#4,452 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

maintenance/cleanup RFC / discussion
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

The potcheck.pl script introduced in #2161 depends on Perl (obviously) and Digest::MD5. This makes build attempts fail when those are not both available and a john.pot is present, even when there are no entries in john.pot needing conversion. That's weird.

In fact, it's weird that we're doing anything with john.pot at build time. I think that instead of the dependency and build failure, we should give a hint that the file may need to be updated and how, but not actually do that. That hint may be printed at build time, or (perhaps more reasonably) when john is run and sees old entries needing an update (we'd need to introduce such logic into it).

And if we do introduce the detection logic into john, perhaps the update logic can be in there too, eliminating the dependencies entirely? Alternatively, has it possibly been enough time that we don't need to bother (but need to keep the script around for when it's still needed)?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing potcheck.pl and the build behavior triggered when john.pot is present, then inspect the john entry point for where old entries could be detected. Compare the proposed build-time hint, runtime detection, and update approaches, including the Perl and Digest::MD5 dependencies. Done means the chosen behavior is specified and build attempts no longer fail unnecessarily.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, perl
Domain
build-system, cli
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.