Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Nome

Tipo

Descrição

Obrigatório

Referência

lClient

lógicological

Indica se o dispositivo HSM está na máquina do SmartClient.



Retorno

Nome

Tipo

Descrição

aRet

vetorarray

Retorna um vetor com as informações dos slots.

...

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function teste()
  Local aSlots := {}
  
Local  if HSMInitialize() <aObjs := 0{}
    conout( "HSM not initialized" )
    return
  endif
  
  aSlots := HSMSlotList()
  varinfo( "aSlots", aSlots )
  
  // pode exibir o seguinte conteúdo
  //aSlots -> ARRAY (   10) [...]
  //   aSlots[1] -> ARRAY (    7) [...]
  //        aSlots[1][1] -> N (   15) [         0.0000]
  //        aSlots[1][2] -> C (   15) [e-CPF Certisign]
  //        aSlots[1][3] -> C (   31) [Gemalto USB Smart Card Reader 0]
  //        aSlots[1][4] -> L (    3) [.T.]
  //        aSlots[1][5] -> L (    3) [.T.]
  //        aSlots[1][6] -> L (    3) [.T.]
  //        aSlots[1][7] -> L (    3) [.F.]
  //   aSlots[2] -> ARRAY (    7) [...]
  //        aSlots[2][1] -> N (   15) [         1.0000]
  //        aSlots[2][2] -> C (    0) []
  //        aSlots[2][3] -> C (    0) []
  //        aSlots[2][4] -> L (    3) [.F.]
  //        aSlots[2][5] -> L (    3) [.F.]
  //        aSlots[2][6] -> L (    3) [.F.]
  //        aSlots[2][7] -> L (    3) [.F.]
  //   aSlots[3] -> ARRAY (    7) [...]
  //        aSlots[3][1] -> N (   15) [         2.0000]
  //        aSlots[3][2] -> C (    0) []
  //        aSlots[3][3] -> C (    0) []
  //        aSlots[3][4] -> L (    3) [.F.]
  //        aSlots[3][5] -> L (    3) [.F.]
  //        aSlots[3][6] -> L (    3) [.F.]
  //        aSlots[3][7] -> L (    3) [.F.]
  //   aSlots[4] -> ARRAY (    7) [...]
  //        aSlots[4][1] -> N (   15) [         3.0000]
  //        aSlots[4][2] -> C (    0) []
  //        aSlots[4][3] -> C (    0) []
  //        aSlots[4][4] -> L (    3) [.F.]
  //        aSlots[4][5] -> L (    3) [.F.]
  //        aSlots[4][6] -> L (    3) [.F.]
  //        aSlots[4][7] -> L (    3) [.F.]
  //   aSlots[5] -> ARRAY (    7) [...]
  //        aSlots[5][1] -> N (   15) [         4.0000]
  //        aSlots[5][2] -> C (    0) []
  //        aSlots[5][3] -> C (    0) []
  //        aSlots[5][4] -> L (    3) [.F.]
  //        aSlots[5][5] -> L (    3) [.F.]
  //        aSlots[5][6] -> L (    3) [.F.]
  //        aSlots[5][7] -> L (    3) [.F.]
  //   aSlots[6] -> ARRAY (    7) [...]
  //        aSlots[6][1] -> N (   15) [         5.0000]
  //        aSlots[6][2] -> C (    0) []
  //        aSlots[6][3] -> C (    0) []
  //        aSlots[6][4] -> L (    3) [.F.]
  //        aSlots[6][5] -> L (    3) [.F.]
  //        aSlots[6][6] -> L (    3) [.F.]
  //        aSlots[6][7] -> L (    3) [.F.]
  //   aSlots[7] -> ARRAY (    7) [...]
  //        aSlots[7][1] -> N (   15) [         6.0000]
  //        aSlots[7][2] -> C (    0) []
  //        aSlots[7][3] -> C (    0) []
  //        aSlots[7][4] -> L (    3) [.F.]
  //        aSlots[7][5] -> L (    3) [.F.]
  //        aSlots[7][6] -> L (    3) [.F.]
  //        aSlots[7][7] -> L (    3) [.F.]
  //   aSlots[8] -> ARRAY (    7) [...]
  //        aSlots[8][1] -> N (   15) [         7.0000]
  //        aSlots[8][2] -> C (    0) []
  //        aSlots[8][3] -> C (    0) []
  //        aSlots[8][4] -> L (    3) [.F.]
  //        aSlots[8][5] -> L (    3) [.F.]
  //        aSlots[8][6] -> L (    3) [.F.]
  //        aSlots[8][7] -> L (    3) [.F.]
  //   aSlots[9] -> ARRAY (    7) [...]
  //        aSlots[9][1] -> N (   15) [         8.0000]
  //        aSlots[9][2] -> C (    0) []
  //        aSlots[9][3] -> C (    0) []
  //        aSlots[9][4] -> L (    3) [.F.]
  //        aSlots[9][5] -> L (    3) [.F.]
  //        aSlots[9][6] -> L (    3) [.F.]
  //        aSlots[9][7] -> L (    3) [.F.]
  //   aSlots[10] -> ARRAY (    7) [...]
  //        aSlots[10][1] -> N (   15) [         9.0000]
  //        aSlots[10][2] -> C (    0) []
  //        aSlots[10][3] -> C (    0) []
  //        aSlots[10][4] -> L (    3) [.F.]
  //        aSlots[10][5] -> L (    3) [.F.]
  //        aSlots[10][6] -> L (    3) [.F.]
  //        aSlots[10][7] -> L (    3) [.F.]
Local nI := 0
  Local nJ := 0
  Local nSlots := 0
  Local cPass := ""
   
  cPass := "1234"
   
  if HSMInitialize() <= 0
    conout( "HSM not initialized" )
    return
  endif
   
  aSlots := HSMSlotList()
  nSlots := Len( aSlots )
   
  varinfo( "slots", aSlots )
   
  for nI := 1 to Len( aSlots )
    if aSlots[nI][4] == .T.
      ASize( aObjs, 0 )
      aObjs := HSMObjList( aSlots[nI][1], cPass )
      varinfo( "aObjs", aObjs )
    endif
  next nI
   
  if HSMFinalize() <> 1
    conout( "HSM not finalized" )
  endif
return

...