Einzelnen Beitrag anzeigen

LHSoft2

Registriert seit: 5. Dez 2008
Ort: Niederbayern
5 Beiträge
 
Delphi 10.3 Rio
 
#64

AW: cc.KassenSichV.* - Die Unitsammlung zur Kassensicherungverordnung des BMF

  Alt 2. Okt 2020, 02:32
Zu Deiner Frage wegen der DSFinVK:
Meine DSFinVK ist eigentlich fertig, aber momentan zerlege ich sie wieder. Ursache ist, dass Amadeus meldet, meine Signaturen sind nicht gültig (aber zumindest richtig formatiert). Sonst ist in Amadeus alles grün. Da überlege ich schon seit Tagen und spiele mit Zertifikat, PublicKey, den Zeiten etc, habe aber keine Ahnung was das sein kann.
Der Support hat folgende Meldung gegeben:
Zitat:
das Problem an der starken Kryptographie ist, dass man diese nicht zurückrechnen kann. Wir können mit AV also nur feststellen, ob alles stimmt, sprich die Signaturen Byte für Byte richtig sind, oder eben nicht. Es ist unmöglich Fehler genau zu identifizieren.
Hat Hier im Forum jemand eine Idee?

Insgesamt ist mir beim Vergleich aufgefallen, dass wir eigentlich schon die Funktionen alle prinzipiell gleich definiert haben, aber Du selten Pointer benutzt. Liegt mein Problem vielleicht daran?

Ein Vergleich:

Deine
worm_transaction_finish(const aWormContext: TWormContextHandle; const aClientId: PWormChar; atransactionNumber: worm_uint; const aProcessData: PWormChar; aProcessDataLength: worm_uint; const aprocessType: PWormChar; const aresponse: TWormTransactionResponseHandle): TWormError; cdecl; external SwissbitWormApiDll;

Meine
worm_transaction_finish(context: PIntPtr; const clientId: PAnsiChar; transactionNumber: Worm_UInt; const processData: PBytes; processDataLength: Worm_UInt; const processType: PAnsiChar; response: PIntPtr): WormError; cdecl; external WormDLL;

eine / Meine
Context: IntPtr gegen PIntPtr
ClientID: Identisch: PAnsiChar
transactionNumber: Identisch UInt64
Prozessdata PansiChar gegen Pointer auf TBytes
processDataLength: identisch
processType: identisch
response: IntPtr gegen PIntPtr

Diese worm-transaction-finish ist der eigentliche Knackpunkt auch für die DSFinVK wegen den Signaturen. Alles andere läuft fein.
Was mir bei Dir noch aufgefallen ist: Du benutzt anscheinend UTC für die Rückgabe der Zeiten einer Transaktion aus der UnixTime. Die müssen ja in die DSFinVK und anhand derer wird auch die Gültigkeit der Signatur geprüft. Ist das bewusst oder zufällig.

Grüße
Hans
Hans Lackermeier
  Mit Zitat antworten Zitat