Perl
Chilkat2 Perl
ScMinidriver - Change Smart Card PIN (or USB token PIN)
See more ScMinidriver Examples
Demonstrates how to change the PIN for a smart card or USB token.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
my $scmd = Chilkat2::ScMinidriver->new;
# Reader names (smart card readers or USB tokens) can be discovered
# via List Readers or Find Smart Cards
my $readerName = 'Alcor Micro USB Smart Card Reader 0';
my $success = $scmd->AcquireContext($readerName);
if (!$success) {
print $scmd->LastErrorText, "\n";
exit;
}
# If successful, the name of the currently inserted smart card is available:
print 'Card name: ', $scmd->CardName, "\n";
# Change the "user" PIN. (Typically, you'll always be using the "user" PIN.)
my $currentPin = '0000';
my $newPin = '1234';
my $retval = $scmd->PinChange('user', $currentPin, $newPin);
if ($retval == -1) {
print "The PIN is already blocked.\n";
exit;
}
if ($retval == -2) {
print "The PinChange function failed for some unanticipated reason\n";
print $scmd->LastErrorText, "\n";
exit;
}
if ($retval == 0) {
print "PIN successfully changed.\n";
} else {
print "Current PIN is incorrect.\n";
print 'Number of attempts remaining = ', $retval, "\n";
}
$scmd->DeleteContext();