Sample code for 30+ languages & platforms
PHP

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 PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\ScMinidriver;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$scmd = new ScMinidriver();

// Reader names (smart card readers or USB tokens) can be discovered
// via List Readers or Find Smart Cards
$readerName = 'Alcor Micro USB Smart Card Reader 0';
try {
    $scmd->AcquireContext($readerName);
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

// If successful, the name of the currently inserted smart card is available:
echo 'Card name: ', $scmd->CardName, "\n";

// Change the "user" PIN.  (Typically, you'll always be using the "user" PIN.)
$currentPin = '0000';
$newPin = '1234';
$retval = $scmd->PinChange('user', $currentPin, $newPin);
if ($retval == -1) {
    echo "The PIN is already blocked.\n";
    exit;
}

if ($retval == -2) {
    echo "The PinChange function failed for some unanticipated reason\n";
    echo $scmd->LastErrorText, "\n";
    exit;
}

if ($retval == 0) {
    echo "PIN successfully changed.\n";
} else {
    echo "Current PIN is incorrect.\n";
    echo 'Number of attempts remaining = ', $retval, "\n";
}

$scmd->DeleteContext();