In diesem Artikel werden die Felder PIN, PUK und CredentialSeed beschrieben. 

  • Der PUK dient nur dazu die PIN's zu unblocken, falls diese gesperrt werden
  • Der PIN dient dafür, gewisse Funktionen auf der TSE durchzuführen. Dabei kann man sich entweder als TimaAdmin oder als Admin einloggen. 
  • Der TimeAdmin hat nur den zusätzlichen Zugriff auf die Funktion "worm_tse_updateTime". 
  • Der Admin hat Zugriff auf diverse andere Funktionen, wie einen neuen Client zu registrieren("worm_tse_registerClient"), die TSE zu deaktivieren ("worm_tse_ctss_disable"),.....
  • Der CredentialSeed ist nur dafür da eine TSE zu initialisieren. Dieser ist immer "SwissbitSwissbit" und sollte fest hinterlegt sein.


Der PIN/PUK werden nicht vom Hersteller der TSE direkt vergeben. Jede TSE hat einen ursprünglichen PIN/PUK, welcher aber geändert werden muss, wenn man die TSE initialisieren und verwenden will. Daher wird der PIN/PUK vom Endkunden vergeben. Einzig den CredentialSeed muss man wissen. Dieser ist immer "SwissbitSwissbit" und sollte fix hinterlegt sein. Über die Funktion "worm_tse_setup" wird das gemacht. 


Die Funktion "worm_tse_setup" ist eine Dachfunktion, welche mehrere andere Funktionen aufruft. Dazu gehören die Funktionen um den ursprünglichen PUK/PIN zu bekommen, diese zu ändern, sich einzuloggen,.... Ist diese Funktion ohne Fehlercoe/Exception durchgelaufen, sollte die TSE initialisiert und einsatzbereit sein. 


Für alle nachfolgenden Routinen gilt dann, dass ein selbstTest als erster Befehl durchgeführt werden muss (mit einem der Clients, welche man registriert hat), sich danach als TimeAdmin einloggt und die Zeit setzt. Nun können Transaktionen durchgeführt werden.



Achtung!

Initialisiert man die TSE über die Funktion "worm_tse_setup", und hat einen Typo im CredentialSeed, kann man sich die TSE komplett sperren. Denn es wird versucht den ursprünglichen PUK zu ändern, über den falschen CredentialSeed hat man jedoch den falschen ursprünglichen PUK generiert -> wird "worm_tse_setup" 3-Mal falsch aufgerufen ist die TSE gesperrt!


Achtung mit dem Datenschutz! Die TSE ist Eigentum des Endkunden und PIN/PUK gehen nur den Kunden etwas an. Da aber ein reibungsloser Betrieb ohne Kentnisse des TimeAdminPIN's nicht funktioniert, sollte man diesen PIN speichern, aber den Kunden darüber informieren. Ansonsten kann man die Zeit nicht setzten (was alle x Minuten gemacht werden muss) und keine Transaktionen durchführen. Für die Admin-Funktionen kann man dann immer erwarten, dass der Kunde den PIN eintippen muss, da diese im Betrieb nicht so oft vorkommen werden.


Nachfolgende Probleme treten nur bei SDK-Version < 5.5 auf:

Falls die TSE schon intialisiert wurde darf man "worm_tse_setup" nicht mehr aufrufen, da man sich ja den PUK sperren kann. Das ist in diesem Fall harmlos, wenn man noch den PIN des Admin weiß. 


Falls schon ein PIN/PUK geändert worden ist, die TSE aber noch nicht initialisiert ist (z.B. nur PUK wurde geändert). In diesem Fall wird ja wieder versucht den PUK zu ändern, diese wurde aber schon geänder -> der generierte PUK aus dem CredentialSeed ist falsch -> 3 Mal diese Funktion durchführen und die TSE ist gesperrt. 


Um die beiden vorherigen Probleme zu vermeiden, kann man via den Funktionen "worm_info_hasChangedPuk", "worm_info_hasChangedAdminPin " und "worm_info_hasChangedTimeAdminPin" überprüfen ob der PIN/PUK bereits geändert wurde. Das wird so auch in Version >= 5.5 gemacht.  


Zusätzlich kann man den WormInit-Status abfragen ("worm_info_initializationState"). Ist dieser "WORM_INIT_UNINITIALIZED" muss die TSE initialisiert werden, ansonsten braucht man nichts machen.


Die Entwickler-TSE und Produktiv-TSE unterscheiden sich in einen wesentlichen Punkt:


Die  Entwickler-TSE kann man über die Funktion "worm_tse_factoryReset" zurücksetzen, das ist in der Produktiv-TSE nicht der Fall. 

Falls Sie sich also die TSE gesperrt haben ist es kein Problem mit einer Entwickler-TSE, aber bei einer Produktiv-TSE kann man dann nichts machen.