The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Passwd::Keyring::Auto - interface to secure password storage(s)

VERSION

Version 0.21

SYNOPSIS

Passwd::Keyring is about securely preserving passwords and similar sensitive data applications use in backends like Gnome Keyring, KDE Wallet, OSX/Keychain etc.

While modules like Passwd::Keyring::Gnome handle specific backends, Passwd::Keyring::Auto tries to pick the best backend available, considering the current desktop environment.

use Passwd::Keyring::Auto qw(get_keyring);

my $keyring = get_keyring();

my $username = "someuser";
my $password = $keyring->get_password($username, "some-app");
if(! $password) {
    # ... somehow interactively prompt for password
    $keyring->set_password($username, $password, "some-app");
}
login_somewhere_using($username, $password);
if( password_was_wrong ) {
    $keyring->clear_password($username, "some-app");
}

If any secure backend is available, password is preserved for successive runs, and users need not be prompted.

Instead of auto-detection, one can also be explicit:

use Passwd::Keyring::Gnome;
my $keyring = Passwd::Keyring::Gnome->new();
# ... and so on

EXPORT

get_keyring

SUBROUTINES/METHODS

get_keyring

Returns the keyring object most appropriate for the current system.

AUTHOR

Marcin Kasperski, <Marcin.Kasperski at mekk.waw.pl>

BUGS

Please report any bugs or feature requests to issue tracker at https://bitbucket.org/Mekk/perl-keyring.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Passwd::Keyring::Auto

Source code is published and issues are tracked at:

L<https://bitbucket.org/Mekk/perl-keyring-auto>

LICENSE AND COPYRIGHT

Copyright 2012 Marcin Kasperski.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.