#!/usr/bin/perl package KiokuX::User::Util; use strict; use warnings; use Sub::Exporter -setup => { exports => [qw( crypt_password )], }; use Class::MOP; sub crypt_password { my @args = @_; unshift @args, "passphrase" if @args % 2 == 1; my %args = @args; unless ( exists $args{class} ) { %args = ( class => "Authen::Passphrase::SaltedDigest", salt_random => 20, algorithm => "SHA-1", %args, ); } my $class = delete $args{class}; Class::MOP::load_class($class); $class->new(%args); } __PACKAGE__ __END__ =pod =head1 NAME KiokuX::User::Util - Utility functions for L =head1 SYNOPSIS use KiokuX::User::Util; MyFoo::User->new( id => "cutegirl17", password => crypt_password("justin timberlake!!!"), ); =head1 DESCRIPTION This module provides utility functions. =head1 EXPORTS =over 4 =item crypt_password @args If an even sized list is passed the first argument is assumed to be 'passphrase'. Defaults to creating a L with a 20 byte random salt. =back =cut # ex: set sw=4 et: