#!/usr/bin/perl # # testing pam for authentication # use strict; use Authen::PAM; my $service = "passwd"; my $username = "foo"; my $passwd = "bar"; my $pamh = new Authen::PAM($service,$username, \&conv_func); ref($pamh) || die "Problems!\n"; my $res = $pamh->pam_authenticate(); print $pamh->pam_strerror($res),"\n" unless $res == PAM_SUCCESS(); print "ending...\n"; sub conv_func { my @res; while ( @_ ) { my $code = shift; my $msg = shift; my $ans = ""; $ans = $username if ($code == PAM_PROMPT_ECHO_ON() ); if ($code == PAM_PROMPT_ECHO_OFF() ) { $ans = $passwd; } push @res, (PAM_SUCCESS(),$ans); } push @res, PAM_SUCCESS(); return @res; }