NAME

Punk::Command::Challenge - the punk challenge subcommand

SYNOPSIS

$ punk challenge key
fQ2k...43 characters...

$ curl -si https://example.com/api/x | grep X-Challenge
X-Challenge: v1.1725600000.16.k3x-2f.Zm9vYmFy...
$ punk challenge solve v1.1725600000.16.k3x-2f.Zm9vYmFy...
solving at 16 bits: about 65536 hashes on average
v1.1725600000.16.k3x-2f.Zm9vYmFy....48213
$ curl -si -H 'X-Challenge-Response: v1....48213' https://example.com/api/x

DESCRIPTION

Registers punk challenge when loaded, which punk does on first use, so it costs nothing on the common path.

key

Prints thirty-two random bytes as base64url, for the plugin's secret. Croaks rather than printing anything when no entropy source is available.

solve

Solves one puzzle and prints the solution. Says how many hashes it expects before it starts, because twenty bits is a moment and twenty-two is a while, and refuses anything above the twenty-two the plugin ever issues.

SEE ALSO

Punk::Plugin::Challenge, Punk::Challenge::Token, Punk::Command.

AUTHOR

LNATION <email@lnation.org>

LICENSE AND COPYRIGHT

This software is Copyright (c) 2026 by LNATION <email@lnation.org>.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)