PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkScMinidriver.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
scmd.i = CkScMinidriver::ckCreate()
If scmd.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Reader names (smart card readers or USB tokens) can be discovered
; via List Readers or Find Smart Cards
readerName.s = "Alcor Micro USB Smart Card Reader 0"
success = CkScMinidriver::ckAcquireContext(scmd,readerName)
If success = 0
Debug CkScMinidriver::ckLastErrorText(scmd)
CkScMinidriver::ckDispose(scmd)
ProcedureReturn
EndIf
; If successful, the name of the currently inserted smart card is available:
Debug "Card name: " + CkScMinidriver::ckCardName(scmd)
; Change the "user" PIN. (Typically, you'll always be using the "user" PIN.)
currentPin.s = "0000"
newPin.s = "1234"
retval.i = CkScMinidriver::ckPinChange(scmd,"user",currentPin,newPin)
If retval = -1
Debug "The PIN is already blocked."
CkScMinidriver::ckDispose(scmd)
ProcedureReturn
EndIf
If retval = -2
Debug "The PinChange function failed for some unanticipated reason"
Debug CkScMinidriver::ckLastErrorText(scmd)
CkScMinidriver::ckDispose(scmd)
ProcedureReturn
EndIf
If retval = 0
Debug "PIN successfully changed."
Else
Debug "Current PIN is incorrect."
Debug "Number of attempts remaining = " + Str(retval)
EndIf
CkScMinidriver::ckDeleteContext(scmd)
CkScMinidriver::ckDispose(scmd)
ProcedureReturn
EndProcedure