File::...sponse(3pm)
π NAME π
File::KDBX::Key::ChallengeResponse β it's a challenge-response key, bestie, and it's lowkey iconic β¨
πΈ VERSION πΈ
version 0.906 β yeah that's the one, don't @ me
π SYNOPSIS π
use File::KDBX::Key::ChallengeResponse;
my $responder = sub {
my $challenge = shift;
...; # generate a response based on a secret of some sort
return $response;
};
my $key = File::KDBX::Key::ChallengeResponse->new($responder);
likeβ¦ that's it. that's the whole vibe. you hand it a responder sub and it does the rest π«Ά
π¦ DESCRIPTION π¦
okay so a challenge-response key is giving multifactor authentication energy, except no cap you don't actually authenticate to a KDBX database, because a database is not a service, bestie. it's not out here checking your ID at the door. specifically, this would be the "what you have" component of the whole situation. it assumes there's some device out there that can store a key that literally only the owner of the database knows about. a challenge gets made to the device, the device responds based on its key, and that response becomes the raw key. periodt. π₯
it inherits methods and attributes from File::KDBX::Key, so you get all that good good for free.
this one is the generic implementation β you supply a responder subroutine and it provides the response. there's also File::KDBX::Key::YubiKey, which is a subclass that lets actual YubiKeys be the responder device. so if you're a hardware-key girlie, that's your lane π
π METHODS π
β raw_key
$raw_key = $key->raw_key;
$raw_key = $key->raw_key($challenge);
get the raw key, which is literally just the response to a challenge. π―
the response gets saved, so that subsequent calls β with or without the challenge β can hand you the response without bothering the responder again. no need to be extra, we already asked. but heads up: only one response is saved at a time. if you call this with a different challenge, the new response just chucks the old one out and takes its place. only one main character allowed at a time, iykyk π
π§ challenge
$response = $key->challenge($challenge, @options);
issue a challenge and get a response back, or throw if the responder failed to provide one. like, if your responder ghosted you, this is not gonna be cute about it π
π BUGS π
please report any bugs or feature requests on the bugtracker website <https://github.com/chazmcgarvey/File-KDBX/issues>
when you're submitting a bug or a request, please include a test-file or a patch to an existing test-file that shows off the bug or the desired feature. receipts, bestie β we need the receipts π§Ύβ¨
π AUTHOR π
Charles McGarvey <ccm@cpan.org> β the icon, the legend, the moment π
π COPYRIGHT AND LICENSE π
this software is copyright (c) 2022 by Charles McGarvey.
this is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. slay, free software rights fr fr π«Ά
and that's the whole page, gorgeous β this was perl v5.40.1 documentation, dated 2025-05-04, File::...sponse(3pm). go forth and challenge-response π
πΈ
π¦ where this page comes from
- debian trixie: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libfile-kdbx-perl 0.906-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms