openwall / openwall/john

Convert the RAdmin format to thin around dynamic_1010, or optimize

Open
#5,419 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C
Stars
13.6k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

The RAdmin format uses scalar MD5 code. Equivalent functionality is implemented in dynamic_1010 with SIMD. We could convert it similarly to what we already did with a few other formats:

$ grep 'thin format' *.c
NS_fmt_plug.c: * Changed to thin format dynamic_2004, Dec 2014, JimF
asaMD5_fmt_plug.c: * Converted to thin format, into $dynamic_20$ format.
mediawiki_fmt_plug.c: * This thin format will change the above line into this, for hooking
pixMD5_fmt_plug.c: * Converted to thin format, into $dynamic_19$ format.

Alternatively, optimize it to use SIMD directly, and perhaps to reverse MD5 steps for the second block (something dynamic doesn't do - but maybe it could be enhanced, too).

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

Compare the RAdmin implementation with dynamic_1010 and the thin-format examples named in the issue, including NS_fmt_plug.c, asaMD5_fmt_plug.c, mediawiki_fmt_plug.c, and pixMD5_fmt_plug.c. Determine whether the format should become a thin wrapper or receive direct SIMD and reversed-MD5-step optimization; done means the chosen approach is implemented and its behavior remains equivalent.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cryptography, security
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.