主题:[急救]哪位大侠把下面的程序看一下,画出它的流程图,最好写成VC++或JAVA,小妹在此谢谢先
要交毕业设计了,下面的东西一点都看不懂,求哪位大侠帮帮忙!!
Dim ka_type As Integer
Private Sub Command1_Click()
Dim comm As String
Dim resp As String
Dim ca_no As String
Dim comm1 As String
Dim subkey As String * 768
Dim money As Long
Dim ret As Integer
Dim lenr, lenc As Byte
Dim key As String
Dim sam1 As String
ret = 0
comm = String(250, vbnullstr)
resp = String(250, vbnullstr)
comm1 = String(250, vbnullstr)
ca_no = String(250, vbnullstr)
subkey = String(768, vbnullstr)
key = String(250, vbnullstr)
'用户卡、SAM卡、传输卡的初始化
Select Case ka_type
Case 0
' init user_card
'card_reset
ret = ICC_reset(fd, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "1ok"
Else
Label3.Caption = "1error"
CT_close (fd)
Exit Sub
End If
ret = 0
'####
'del MF
comm = Chr(&H80) + Chr(&HE) + Chr(&H0) + Chr(&H0) + Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "2ok"
Else
Label3.Caption = "2error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create MF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H3F) & Chr(&H0) & Chr(&HD) _
& Chr(&H38) & Chr(&HF) & Chr(&HC8) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Or ret = &H6A86 Then
Label3.Caption = "3ok"
Else
Label3.Caption = "3error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create DF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&HA) & Chr(&H8) _
& Chr(&H38) & Chr(&H6) & Chr(&HFF) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HF0) & Chr(&HFF) & Chr(&HFF)
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "4ok"
Else
Label3.Caption = "4error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'select DF
comm = Chr(&H0) & Chr(&HA4) & Chr(&H0) & Chr(&HC) & Chr(&H2) _
& Chr(&H0) & Chr(&HA)
lenc = 7
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "5ok"
Else
Label3.Caption = "5error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create key
comm = Chr(&H80) & Chr(&HE0) & Chr(&HA1) & Chr(&H1) & Chr(&H7) _
& Chr(&H3F) & Chr(&H0) & Chr(&H30) & Chr(&HFF) & Chr(&HF2) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "6ok"
Else
Label3.Caption = "6error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install passwd_key 01
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H1) & Chr(&HD) _
& Chr(&H3A) & Chr(&HF0) & Chr(&H11) & Chr(&H1) & Chr(&H55) _
& Chr(&H31) & Chr(&H32) & Chr(&H33) & Chr(&H34) & Chr(&H35) _
& Chr(&H36) & Chr(&H37) & Chr(&H38)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "7ok"
Else
Label3.Caption = "7error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install internal_auth 03="iamhappy"
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H3) & Chr(&HD) _
& Chr(&H30) & Chr(&HF0) & Chr(&H1) & Chr(&HFF) & Chr(&HFF) _
& "iamhappy"
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "8ok"
Else
Label3.Caption = "8error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install external_auth 02
ca_no = Right(Text1.Text, 8)
Call DESsubkey(subkey, "i_ambusy")
Call DESencrypt(subkey, comm1, ca_no)
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H2) & Chr(&HD) _
& Chr(&H39) & Chr(&HF1) & Chr(&H22) & Chr(&H2) & Chr(&H55) _
& comm1
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "9ok"
Else
Label3.Caption = "9error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'create purse file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H2) & Chr(&H7) _
& Chr(&H2F) & Chr(&H2) & Chr(&H4) & Chr(&H11) & Chr(&H22) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'add money into purse file
Print " add money and money is"
money = Val(Text2.Text) * 100
sam1 = SumToStr(money)
'MsgBox (Len(sam1))
comm = Chr(&H80) & Chr(&H32) & Chr(&H0) & Chr(&H14) & Chr(&H4) _
& sam1
lenc = 9
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
ret = 0
'Print "1"
'print resp
'#####
'release money from purse file
'Print " del money"
money = 256
sam1 = SumToStr(money)
comm = Chr(&H80) & Chr(&H30) & Chr(&H0) & Chr(&H14) & Chr(&H4) _
& sam1
lenc = 9
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
'Print resp
ret = 0
'#####
'get money from purse file
comm = Chr(&H0) & Chr(&HB2) & Chr(&H1) & Chr(&H14) & Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
'Print "read money is "
'Print resp
For i = 1 To 4
' MsgBox (Asc(Mid(resp, i, 1)))
Next
money = StrToSum(Mid(resp, 1, 4))
MsgBox (money / 100)
ret = 0
'#####
'create binary file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H1) & Chr(&H7) _
& Chr(&H28) & Chr(&H0) & Chr(&H30) & Chr(&HF0) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
ret = 0
'#####
Print " write and read binary file"
'Writing binary file 1.card_type 2.card_no 3.v_date 4.account_no
comm = Chr(&H0) & Chr(&HD0) & Chr(&H81) & Chr(&H0) & Chr(39) _
& Left(Text4.Text, 1) & Left(Text1.Text, 16) & Left(Text5.Text, 6) _
& Left(Text3.Text, 16)
lenc = 44
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "13ok"
Else
Label3.Caption = "13error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
ret = 0
'######
'read binary file 1.card_type 2.card_no 3.v_date 4.account
comm = Chr(&H0) & Chr(&HB0) & Chr(&H81) & Chr(&H0) & Chr(39)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "14ok"
Else
Label3.Caption = "14error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
'Print " binary file's data is"
Print resp
ret = 0
'verify passwd
comm = Chr(&H0) & Chr(&H20) & Chr(&H0) & Chr(&H1) & Chr(&H8) _
& Chr(&H31) & Chr(&H32) & Chr(&H33) & Chr(&H34) & Chr(&H35) _
& Chr(&H36) & Chr(&H37) & Chr(&H38)
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "15ok"
Else
Label3.Caption = "15error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'create record file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H3) & Chr(&H7) _
& Chr(&H2E) & Chr(&H15) & Chr(&H1E) & Chr(&HF2) & Chr(&HF2) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'append record file
comm = Chr(&H0) & Chr(&HE2) & Chr(&H0) & Chr(&H18) & Chr(&H1E) _
& "111222333444555666777888999000"
lenc = 35
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'read record file
resp = String(250, vbnullstr)
comm = Chr(&H0) & Chr(&HB2) & Chr(&H1) & Chr(&H18) & Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
Print "verify key"
'#####
'verify external key :1 first get challenge
comm = Chr(&H0) & Chr(&H84) & Chr(&H0) & Chr(&H0) & Chr(&H8)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "15ok"
Else
Label3.Caption = "15error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'verify external key :2 DESencrypt comm1=key
resp = Left(resp, 8)
Call DESsubkey(subkey, comm1)
Call DESencrypt(subkey, key, resp)
'#####
'verify external key :3 外部认证
comm = Chr(&H0) & Chr(&H82) & Chr(&H0) & Chr(&H2) & Chr(&H8) _
& key
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "16ok"
Else
Label3.Caption = "16error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
'#####
Case 1 'init SAM card
'card_reset
ret = ICC_reset(fd, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "1ok"
Else
Label3.Caption = "1error"
CT_close (fd)
Exit Sub
End If
ret = 0
'####
'del MF
comm = Chr(&H80) + Chr(&HE) + Chr(&H0) + Chr(&H0) + Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "2ok"
Else
Label3.Caption = "2error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create MF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H3F) & Chr(&H0) & Chr(&HD) _
& Chr(&H38) & Chr(&HF) & Chr(&HC8) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Or ret = &H6A86 Then
Label3.Caption = "3ok"
Else
Label3.Caption = "3error"
CT_close (fd)
Exit Sub
End If
ret = 0
Dim ka_type As Integer
Private Sub Command1_Click()
Dim comm As String
Dim resp As String
Dim ca_no As String
Dim comm1 As String
Dim subkey As String * 768
Dim money As Long
Dim ret As Integer
Dim lenr, lenc As Byte
Dim key As String
Dim sam1 As String
ret = 0
comm = String(250, vbnullstr)
resp = String(250, vbnullstr)
comm1 = String(250, vbnullstr)
ca_no = String(250, vbnullstr)
subkey = String(768, vbnullstr)
key = String(250, vbnullstr)
'用户卡、SAM卡、传输卡的初始化
Select Case ka_type
Case 0
' init user_card
'card_reset
ret = ICC_reset(fd, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "1ok"
Else
Label3.Caption = "1error"
CT_close (fd)
Exit Sub
End If
ret = 0
'####
'del MF
comm = Chr(&H80) + Chr(&HE) + Chr(&H0) + Chr(&H0) + Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "2ok"
Else
Label3.Caption = "2error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create MF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H3F) & Chr(&H0) & Chr(&HD) _
& Chr(&H38) & Chr(&HF) & Chr(&HC8) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Or ret = &H6A86 Then
Label3.Caption = "3ok"
Else
Label3.Caption = "3error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create DF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&HA) & Chr(&H8) _
& Chr(&H38) & Chr(&H6) & Chr(&HFF) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HF0) & Chr(&HFF) & Chr(&HFF)
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "4ok"
Else
Label3.Caption = "4error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'select DF
comm = Chr(&H0) & Chr(&HA4) & Chr(&H0) & Chr(&HC) & Chr(&H2) _
& Chr(&H0) & Chr(&HA)
lenc = 7
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "5ok"
Else
Label3.Caption = "5error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create key
comm = Chr(&H80) & Chr(&HE0) & Chr(&HA1) & Chr(&H1) & Chr(&H7) _
& Chr(&H3F) & Chr(&H0) & Chr(&H30) & Chr(&HFF) & Chr(&HF2) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "6ok"
Else
Label3.Caption = "6error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install passwd_key 01
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H1) & Chr(&HD) _
& Chr(&H3A) & Chr(&HF0) & Chr(&H11) & Chr(&H1) & Chr(&H55) _
& Chr(&H31) & Chr(&H32) & Chr(&H33) & Chr(&H34) & Chr(&H35) _
& Chr(&H36) & Chr(&H37) & Chr(&H38)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "7ok"
Else
Label3.Caption = "7error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install internal_auth 03="iamhappy"
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H3) & Chr(&HD) _
& Chr(&H30) & Chr(&HF0) & Chr(&H1) & Chr(&HFF) & Chr(&HFF) _
& "iamhappy"
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "8ok"
Else
Label3.Caption = "8error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'install external_auth 02
ca_no = Right(Text1.Text, 8)
Call DESsubkey(subkey, "i_ambusy")
Call DESencrypt(subkey, comm1, ca_no)
comm = Chr(&H80) & Chr(&HD4) & Chr(&H1) & Chr(&H2) & Chr(&HD) _
& Chr(&H39) & Chr(&HF1) & Chr(&H22) & Chr(&H2) & Chr(&H55) _
& comm1
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "9ok"
Else
Label3.Caption = "9error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'create purse file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H2) & Chr(&H7) _
& Chr(&H2F) & Chr(&H2) & Chr(&H4) & Chr(&H11) & Chr(&H22) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'add money into purse file
Print " add money and money is"
money = Val(Text2.Text) * 100
sam1 = SumToStr(money)
'MsgBox (Len(sam1))
comm = Chr(&H80) & Chr(&H32) & Chr(&H0) & Chr(&H14) & Chr(&H4) _
& sam1
lenc = 9
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
ret = 0
'Print "1"
'print resp
'#####
'release money from purse file
'Print " del money"
money = 256
sam1 = SumToStr(money)
comm = Chr(&H80) & Chr(&H30) & Chr(&H0) & Chr(&H14) & Chr(&H4) _
& sam1
lenc = 9
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
'Print resp
ret = 0
'#####
'get money from purse file
comm = Chr(&H0) & Chr(&HB2) & Chr(&H1) & Chr(&H14) & Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "10ok"
Else
Label3.Caption = "10error"
CT_close (fd)
Exit Sub
End If
'Print "read money is "
'Print resp
For i = 1 To 4
' MsgBox (Asc(Mid(resp, i, 1)))
Next
money = StrToSum(Mid(resp, 1, 4))
MsgBox (money / 100)
ret = 0
'#####
'create binary file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H1) & Chr(&H7) _
& Chr(&H28) & Chr(&H0) & Chr(&H30) & Chr(&HF0) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
ret = 0
'#####
Print " write and read binary file"
'Writing binary file 1.card_type 2.card_no 3.v_date 4.account_no
comm = Chr(&H0) & Chr(&HD0) & Chr(&H81) & Chr(&H0) & Chr(39) _
& Left(Text4.Text, 1) & Left(Text1.Text, 16) & Left(Text5.Text, 6) _
& Left(Text3.Text, 16)
lenc = 44
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "13ok"
Else
Label3.Caption = "13error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
ret = 0
'######
'read binary file 1.card_type 2.card_no 3.v_date 4.account
comm = Chr(&H0) & Chr(&HB0) & Chr(&H81) & Chr(&H0) & Chr(39)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
If ret = &H9000 Then
Label3.Caption = "14ok"
Else
Label3.Caption = "14error"
CT_close (fd)
Exit Sub
End If
Print Hex(ret)
'Print " binary file's data is"
Print resp
ret = 0
'verify passwd
comm = Chr(&H0) & Chr(&H20) & Chr(&H0) & Chr(&H1) & Chr(&H8) _
& Chr(&H31) & Chr(&H32) & Chr(&H33) & Chr(&H34) & Chr(&H35) _
& Chr(&H36) & Chr(&H37) & Chr(&H38)
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "15ok"
Else
Label3.Caption = "15error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'create record file
comm = Chr(&H80) & Chr(&HE0) & Chr(&H0) & Chr(&H3) & Chr(&H7) _
& Chr(&H2E) & Chr(&H15) & Chr(&H1E) & Chr(&HF2) & Chr(&HF2) _
& Chr(&HFF) & Chr(&HFF)
lenc = 12
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'append record file
comm = Chr(&H0) & Chr(&HE2) & Chr(&H0) & Chr(&H18) & Chr(&H1E) _
& "111222333444555666777888999000"
lenc = 35
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'read record file
resp = String(250, vbnullstr)
comm = Chr(&H0) & Chr(&HB2) & Chr(&H1) & Chr(&H18) & Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "11ok"
Else
Label3.Caption = "11error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
ret = 0
Print "verify key"
'#####
'verify external key :1 first get challenge
comm = Chr(&H0) & Chr(&H84) & Chr(&H0) & Chr(&H0) & Chr(&H8)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "15ok"
Else
Label3.Caption = "15error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'verify external key :2 DESencrypt comm1=key
resp = Left(resp, 8)
Call DESsubkey(subkey, comm1)
Call DESencrypt(subkey, key, resp)
'#####
'verify external key :3 外部认证
comm = Chr(&H0) & Chr(&H82) & Chr(&H0) & Chr(&H2) & Chr(&H8) _
& key
lenc = 13
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "16ok"
Else
Label3.Caption = "16error"
Print Hex(ret)
CT_close (fd)
Exit Sub
End If
'#####
Case 1 'init SAM card
'card_reset
ret = ICC_reset(fd, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "1ok"
Else
Label3.Caption = "1error"
CT_close (fd)
Exit Sub
End If
ret = 0
'####
'del MF
comm = Chr(&H80) + Chr(&HE) + Chr(&H0) + Chr(&H0) + Chr(&H0)
lenc = 5
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Then
Label3.Caption = "2ok"
Else
Label3.Caption = "2error"
CT_close (fd)
Exit Sub
End If
ret = 0
'#####
'Create MF
comm = Chr(&H80) & Chr(&HE0) & Chr(&H3F) & Chr(&H0) & Chr(&HD) _
& Chr(&H38) & Chr(&HF) & Chr(&HC8) & Chr(&HF0) & Chr(&HF0) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) & Chr(&HFF) _
& Chr(&HFF) & Chr(&HFF) & Chr(&HFF)
lenc = 18
ret = ICC_tsi_api(fd, lenc, comm, lenr, resp)
Print Hex(ret)
If ret = &H9000 Or ret = &H6A86 Then
Label3.Caption = "3ok"
Else
Label3.Caption = "3error"
CT_close (fd)
Exit Sub
End If
ret = 0