AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Swissbit DLL - Diverse Fragen

Ein Thema von hhcm · begonnen am 16. Dez 2019 · letzter Beitrag vom 27. Feb 2020
Antwort Antwort
Seite 1 von 6  1 23     Letzte » 
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
216 Beiträge
 
Delphi 10.3 Rio
 
#1

Swissbit DLL - Diverse Fragen

  Alt 16. Dez 2019, 12:39
Hallo zusammen,

da sich ja manche schon als Nutzer der Swissbit TSE "geoutet" haben, werde ich hier vielleicht die ein oder andere Frage los.
Nachdem ich 10x in der Doku überlesen habe, dass der erste Selbsttest mit einem Fehler abschmiert und das völlig in Ordnung ist, ging es auch weiter.
Selbst-Test, Setup, Diverse Info´s auslesen, Zeit updaten, Einloggen - Soweit so gut.

Ich versuche jetzt seit Stunden das Log-Zertifikat auszulesen

Code:
WORMAPI WormError WORMAPI_CALL worm_getLogMessageCertificate    (    
      WormContext *     context,
      unsigned char *     certificate,
      uint32_t *     certificateLength
   )
( wurde bisher in der gefühlt 100 Fassung zu )

function worm_getLogMessageCertificate(context: IntPtr; out certificate: PBytes; out certificateLength: PUInt32): Integer; cdecl; external 'WormAPI.dll';

Egas was ich anstelle, entweder gibt entweder eine AV oder das Result ist WORM_ERROR_INVALID_PARAMETER.
In der Doku steht, das man den Buffer (in dem Fall certificate) selbst initialisieren muss. Selbst da habe ich von GetMem bis SetLength mit den unterschiedlichsten Typen alles durch.

Hat da jedmand mal nen Tip?
Chris
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.923 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Swissbit DLL - Diverse Fragen

  Alt 16. Dez 2019, 12:51
Bei mir ist Certificate als PByte deklariert (ohne out). Ich rufe dann die Funktion einmal mit nil auf, um die Länge zu ermitteln, reserviere mir dann mit GetMem den entsprechenden Speicher und rufe die Funktion erneut mit dem entsprechenden Pointer auf. Zum Schluss das FreeMem nicht vergessen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
216 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Swissbit DLL - Diverse Fragen

  Alt 16. Dez 2019, 13:08
Ich glaub das jetzt nicht. Das hab ich 5x ausprobiert. Sowohl mit PBytes als auch PByte.
Das zweimalige aufrufen steht bei mir schon die ganze Zeit im Code. Die Länge habe ich auch immer zurück bekommen. Der zweite Aufruf wurde immer mit einer AV gekrönt.

Warum auch immer, jetzt gehts. Danke !
Chris
  Mit Zitat antworten Zitat
Frühlingsrolle

Registriert seit: 31. Aug 2019
183 Beiträge
 
#4

AW: Swissbit DLL - Diverse Fragen

  Alt 16. Dez 2019, 19:13
Versuch es mal damit:
Delphi-Quellcode:
type
  WormError = (
    WORM_ERROR_NOERROR = 0,
    WORM_ERROR_INVALID_PARAMETER = 1,
    WORM_ERROR_NO_WORM_CARD = 2,
    WORM_ERROR_IO = 3,
    WORM_ERROR_TIMEOUT = 4,
    WORM_ERROR_OUTOFMEM = 5,
    WORM_ERROR_INVALID_RESPONSE = 6,
    WORM_ERROR_STORE_FULL_INTERNAL = 7,
    WORM_ERROR_RESPONSE_MISSING = 8,
    WORM_ERROR_EXPORT_NOT_INITIALIZED = 9,
    WORM_ERROR_EXPORT_FAILED = 10,
    WORM_ERROR_POWER_CYCLE_DETECTED = 13,
    WORM_ERROR_FIRMWARE_UPDATE_NOT_APPLIED = 14,
    WORM_ERROR_FROM_CARD_FIRST = $1000,
    WORM_ERROR_UNKNOWN = $1001,
    WORM_ERROR_NO_TIME_SET = $1002,
    WORM_ERROR_NO_TRANSACTION_IN_PROGRESS = $1004,
    WORM_ERROR_INVALID_CMD_SYNTAX = $1005,
    WORM_ERROR_WRONG_LENGTH = WORM_ERROR_INVALID_CMD_SYNTAX,
    WORM_ERROR_NOT_ENOUGH_DATA_WRITTEN = $1006,
    WORM_ERROR_TSE_INVALID_PARAMETER = $1007,
    WORM_ERROR_TRANSACTION_NOT_STARTED = $1008,
    WORM_ERROR_MAX_PARALLEL_TRANSACTIONS = $1009,
    WORM_ERROR_CERTIFICATE_EXPIRED = $100a,
    WORM_ERROR_NO_LAST_TRANSACTION = $100c,
    WORM_ERROR_CMD_NOT_ALLOWED = $100d,
    WORM_ERROR_TRANSACTION_SIGNATURES_EXCEEDED = $100e,
    WORM_ERROR_NOT_AUTHORIZED = $100f,
    WORM_ERROR_MAX_REGISTERED_CLIENTS_REACHED = $1010,
    WORM_ERROR_CLIENT_NOT_REGISTERED = $1011,
    WORM_ERROR_EXPORT_UNACKNOWLEDGED_DATA = $1012,
    WORM_ERROR_CLIENT_HAS_UNFINISHED_TRANSACTIONS = $1013,
    WORM_ERROR_TSE_HAS_UNFINISHED_TRANSACTIONS = $1014,
    WORM_ERROR_TSE_NO_RESPONSE_TO_FETCH = $1015,
    WORM_ERROR_NOT_ALLOWED_EXPORT_IN_PROGRESS = $1016,
    WORM_ERROR_STORE_FULL = $1017,
    WORM_ERROR_WRONG_STATE_NEEDS_PUK_CHANGE = $1050,
    WORM_ERROR_WRONG_STATE_NEEDS_PIN_CHANGE = $1051,
    WORM_ERROR_WRONG_STATE_NEEDS_ACTIVE_CTSS = $1053,
    WORM_ERROR_WRONG_STATE_NEEDS_ACTIVE_ERS =
    WORM_ERROR_WRONG_STATE_NEEDS_ACTIVE_CTSS,
    WORM_ERROR_WRONG_STATE_NEEDS_SELF_TEST = $1054,
    WORM_ERROR_WRONG_STATE_NEEDS_SELF_TEST_PASSED = $1055,
    WORM_ERROR_FWU_INTEGRITY_FAILURE = $1061,
    WORM_ERROR_FWU_DECRYPTION_FAILURE = $1062,
    WORM_ERROR_FWU_WRONG_FORMAT = $1064,
    WORM_ERROR_FWU_INTERNAL_ERROR = $1065,
    WORM_ERROR_FWU_DOWNGRADE_PROHIBITED = $1067,
    WORM_ERROR_TSE_ALREADY_INITIALIZED = $10FD,
    WORM_ERROR_TSE_DECOMMISSIONED = $10FE,
    WORM_ERROR_TSE_NOT_INITIALIZED = $10FF,
    WORM_ERROR_AUTHENTICATION_FAILED = $1100,
    WORM_ERROR_AUTHENTICATION_PIN_BLOCKED = $1201,
    WORM_ERROR_AUTHENTICATION_USER_NOT_LOGGED_IN = $1202,
    WORM_ERROR_SELF_TEST_FAILED_FW = $1300,
    WORM_ERROR_SELF_TEST_FAILED_CSP = $1310,
    WORM_ERROR_SELF_TEST_FAILED_RNG = $1320,
    WORM_ERROR_FWU_BASE_FW_ERROR = $1400,
    WORM_ERROR_FWU_FWEXT_ERROR = $1500,
    WORM_ERROR_FWU_CSP_ERROR = $1600,
    WORM_ERROR_EXPORT_NONE_IN_PROGRESS = $2001,
    WORM_ERROR_EXPORT_RETRY = $2002,
    WORM_ERROR_EXPORT_NO_DATA_AVAILABLE = $2003,
    WORM_ERROR_CMD_NOT_FOUND = $f000,
    WORM_ERROR_SIG_ERROR = $ff00,
    WORM_ERROR_FROM_CARD_LAST = $FFFF
  );

  PWormContext = ^WormContext;
  WormContext = record
  end;

function worm_getLogMessageCertificate(context: PWormContext; certificate: PByte; certificateLength: PUINT): WormError; cdecl; external 'WormAPI.dll';
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
216 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Swissbit DLL - Diverse Fragen

  Alt 17. Dez 2019, 18:28
Hat schon mal jemand einen "extrahierbaren" Tar Export hinbekommen?

Ich bekomme keine Fehler aber das Tar-Archiv lässt sich mit keinem Programm extrahieren.

Delphi-Quellcode:
  TWormExportTarCallback = function(chunk: PBytes; chunkLength: Cardinal; callbackData: PBytes): Integer; cdecl;

  function worm_export_tar(context: IntPtr; callback: TWormExportTarCallback; callbackData: Pointer): Integer; cdecl; external 'WormAPI.dll';
Chris
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.923 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Swissbit DLL - Diverse Fragen

  Alt 18. Dez 2019, 07:36
Bei mir sieht das so aus:
Delphi-Quellcode:
// TChunkLength = UINT32
function Callback(const Chunk: PByte; ChunkLength: TChunkLength;
  CallbackData: Pointer): integer; Cdecl;
var
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream(CallbackData);
  Stream.Write(Chunk^, ChunkLength);
  Result := 0;
end;
Anschließend erzeuge ich einen MemoryStream und übergebe diesen als CallbackData an worm_export_tar.
Delphi-Quellcode:
Stream := TMemoryStream.Create;
try
  worm_export_tar(Context, Callback, Stream);
finally
  Stream.Free;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
216 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Swissbit DLL - Diverse Fragen

  Alt 18. Dez 2019, 08:18
Dann muss es was anderes sein.
Auch in dieser Variante sagt 7-Zip mir, Die Datei kann nicht als Archiv geöffnet werden.

Entpacken über Linux bringt mich aber glaube ich weiter.

Code:
time stamp 2019-12-18 09:07:44 is 3133.460484916 s in the future
Chris
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.923 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Swissbit DLL - Diverse Fragen

  Alt 18. Dez 2019, 08:21
Hast Du die aktuelle Version von 7-zip? Ich hatte auch erst eine veraltete, die aktuelle kann aber mit dem Archiv umgehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
449 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Swissbit DLL - Diverse Fragen

  Alt 18. Dez 2019, 10:07
Ich habe da auch noch einige Probleme mit meiner Swissbit-TSE.

Es geht einiges: Reset, Init,Setup, Settime, Transactionen, Seriennummer auslesen, PublicKey auslesen.

Was (noch) nicht geht ist:

Zusätzlichen Client anlegen Fehler 3 (IO Error), versuche ich so:

Function worm_tse_registerClient(context:pointer;clientid:p ansichar):integer;cdecl; external 'WormAPI.dll';

Clients auslesen Fehler 1 Wrong Input Parameter

Dann noch Dinge die mich um die Praxistauglichkeit fürchten lassen:

Nach Startendes Rechners aus dem Ruhezustand oft keine Funktion; nicht mal Init geht dann.
Abhilfe ist dann Karte rausnehmen und wieder einstecken.



Beim Einstecken fast regelmäßig Meldung von Windows das Laufwerk muss repariert werden, was ich Windows auch machen lasse da sonst oft kein Funktion
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
216 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Swissbit DLL - Diverse Fragen

  Alt 18. Dez 2019, 10:08
Zitat:
Hast Du die aktuelle Version von 7-zip? Ich hatte auch erst eine veraltete, die aktuelle kann aber mit dem Archiv umgehen.
Oh mann. Was soll ich dazu jetzt sagen Danke ! Das war´s
Chris
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf