DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoScmd
String sReaderName
String sCurrentPin
String sNewPin
Integer iRetval
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatScMinidriver)) To hoScmd
If (Not(IsComObjectCreated(hoScmd))) Begin
Send CreateComObject of hoScmd
End
// Reader names (smart card readers or USB tokens) can be discovered
// via List Readers or Find Smart Cards
Move "Alcor Micro USB Smart Card Reader 0" To sReaderName
Get ComAcquireContext Of hoScmd sReaderName To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoScmd To sTemp1
Showln sTemp1
Procedure_Return
End
// If successful, the name of the currently inserted smart card is available:
Get ComCardName Of hoScmd To sTemp1
Showln "Card name: " sTemp1
// Change the "user" PIN. (Typically, you'll always be using the "user" PIN.)
Move "0000" To sCurrentPin
Move "1234" To sNewPin
Get ComPinChange Of hoScmd "user" sCurrentPin sNewPin To iRetval
If (iRetval = -1) Begin
Showln "The PIN is already blocked."
Procedure_Return
End
If (iRetval = -2) Begin
Showln "The PinChange function failed for some unanticipated reason"
Get ComLastErrorText Of hoScmd To sTemp1
Showln sTemp1
Procedure_Return
End
If (iRetval = 0) Begin
Showln "PIN successfully changed."
End
Else Begin
Showln "Current PIN is incorrect."
Showln "Number of attempts remaining = " iRetval
End
Get ComDeleteContext Of hoScmd To iSuccess
End_Procedure