1. Marcin Kasperski
  2. perl/keyring/kdewallet

Source

perl/keyring/kdewallet /

Filename Size Date modified Message
example
experiments
lib/Passwd/Keyring
t
54 B
110 B
476 B
2.3 KB
1.1 KB
1.1 KB
503 B
1.3 KB
3.4 KB
3.5 KB
70 B
134 B

NAME

Passwd::Keyring::KDEWallet - Password storage implementation based on KDE Wallet.

VERSION

Version 0.60

SYNOPSIS

KDE Wallet based implementation of Passwd::Keyring.

use Passwd::Keyring::KDEWallet;

my $keyring = Passwd::Keyring::KDEWallet->new(
     app=>"blahblah scraper",
     group=>"Johnny web scrapers",
);

my $username = "John";  # or get from .ini, or from .argv...

my $password = $keyring->get_password($username, "blahblah.com");
unless( $password ) {
    $password = <somehow interactively prompt for password>;

    # securely save password for future use
    $keyring->set_password($username, $password, "blahblah.com");
}

login_somewhere_using($username, $password);
if( password_was_wrong ) {
    $keyring->clear_password($username, "blahblah.com");
}

Note: see Passwd::Keyring::Auto::KeyringAPI for detailed comments on keyring method semantics (this document is installed with Passwd::Keyring::Auto package).

SUBROUTINES/METHODS

new

Passwd::Keyring::KDEWallet->new(
    app=>'app name', group=>'passwords folder');

Passwd::Keyring::KDEWallet->new(
    app=>'app name', group=>'passwords folder',
    start_kwalletd_if_missing=>1);

Initializes the processing. Croaks if kwallet (or d-bus, or anything needed) does not seem to be available.

Handled named parameters:

  • app

    symbolic application name (used in "Application .... is asking to open the wallet" KDE Wallet prompt)

  • group

    name for the password group (used as KDE Wallet folder name)

  • dont_start_daemon

    by default, in case kwalletd service is missing, we try to start it, this option disables this behaviour

  • kwalletd_path

    path to kwalletd binary, used in case we try starting it. Default: kwalletd (relative path means searching in PATH).

set_password(username, password, realm)

Sets (stores) password identified by given realm for given user

get_password($user_name, $realm)

Reads previously stored password for given user in given app. If such password can not be found, returns undef.

clear_password($user_name, $realm)

Removes given password (if present)

is_persistent

Returns info, whether this keyring actually saves passwords persistently.

(true in this case)

AUTHOR

Marcin Kasperski

Approach inspired by http://www.perlmonks.org/?node_id=869620.

BUGS

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

SUPPORT

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

perldoc Passwd::Keyring::KDEWallet

You can also look for information at:

http://search.cpan.org/~mekk/Passwd-Keyring-KDEWallet/

Source code is tracked at:

https://bitbucket.org/Mekk/perl-keyring-kdewallet

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.