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.

