Ik heb de c sharp naar
vb.net vertaald, ik geef je hieronder de belangrijkste (vertaalde) functie, "getdata". Deze functie heb ik net getest met dit voorbeeldje:
MsgBox(GetData("surname"))
en gaf correct de achternaam weer van de eID.
Hopelijk zet dit je op de juiste weg!
mvg, SDB
Public Function GetData(ByVal label As String)
Dim m As Net.Sf.Pkcs11.Module = Nothing
Dim value As String = ""
Dim mFileName As String = "beidpkcs11.dll"
Dim slotlist() As Net.Sf.Pkcs11.Slot
Try
m = Net.Sf.Pkcs11.Module.GetInstance(mFileName)
slotlist = m.GetSlotList(True)
If (slotlist.Length > 0) Then
Dim session As Net.Sf.Pkcs11.Session
Dim slot As Net.Sf.Pkcs11.Slot
slot = slotlist(0)
session = slot.Token.OpenSession(True)
Dim classAttribute As New ByteArrayAttribute(Net.Sf.Pkcs11.Wrapper.CKO.DATA)
classAttribute.Value = BitConverter.GetBytes(Convert.ToUInt32(Net.Sf.Pkcs11.Wrapper.CKO.DATA))
Dim labelAttribute As New ByteArrayAttribute(Net.Sf.Pkcs11.Wrapper.CKA.LABEL)
labelAttribute.Value = System.Text.Encoding.UTF8.GetBytes(label)
Dim p11a() As P11Attribute = {classAttribute, labelAttribute}
session.FindObjectsInit(p11a)
Dim foundObjects() As P11Object = session.FindObjects(50)
Dim counter As Integer = foundObjects.Length
Dim data As New Data
While (counter > 0)
'foundObjects[counter-1].ReadAttributes(session);
'public static BooleanAttribute ReadAttribute(Session session, uint hObj, BooleanAttribute attr)
data = foundObjects(counter - 1)
label = data.Label.ToString()
If Not label = "" Then
System.Diagnostics.Trace.WriteLine("label: " + label)
End If
If Not data.Label.Value = Nothing Then
value = System.Text.Encoding.UTF8.GetString(data.Value.Value)
System.Diagnostics.Trace.WriteLine("mijne label: " + value)
End If
counter = counter - 1
End While
session.FindObjectsFinal()
Else
MsgBox("no card found")
End If
Return value
Catch ex As Exception
MsgBox(ex.Message)
Finally
m.Dispose()
End Try
End Function