Closed Alex1130 closed 7 years ago
Schon mal mit dem Source von A-Trust verglichen? Dort finden Sie ein komplettes Beispiel in C#: http://labs.a-trust.at/developer/source.aspx lg
Danke, das Beispiel kenne ich bereits, aber in dem Beispiel wird der Umsatzzähler in voller Länge zurückgeliefert. (zB AESKey in B64: K7L9NyWiC1xKuyBO/7DuoRFqsqgq+m3t8hjOCMNXBio= Kassa-ID: TRAXS-2 BelegNummer: 200002318 Stand Umsatzzähler (10,00€): 1000 liefert verschlüsselt in voller Länge: yGykiTFhYmd/SzwAWNr3RA== stimmt das?
Scheint zu stimmen - kann den Umsatz in beide Richtungen bearbeiten: umsatz: 1000 enc: yGykiTFhYmd/SzwAWNr3RA== dec: 1000
Darf man fragen, wo sie die 5 Bytes verwenden? Denn für die JWS Erstellung verwende ich den vollen B64...
Da in den Detailfragen V1.2 unter 2.5.5 steht
Verkürzter verschlüsselter Umsatzzähler für die Ablage im Feld „Stand-Umsatz-Zaehler-AES256-ICM
Da dieser Wert in 2.3 zu verwenden ist, dieses wiederum als Eingabewert in 3.1 und in Folge in 4.5 verwendet wird eigentlich durchgehend. Die Verkürzung ist meiner Meinung nach optional, liefert aber DEP Zeilen <=255 Zeichen, und kompaktere QR-Codes .
@cmaxmedia : Danke fürs nachrechnen!
schneiden Sie auch die richtigen Bytes weg wenn Sie den Umsatzzähler so verkürzen wie sie es tun (sprich den verschlüsselten Wert nehmen und dann verkürzen)? Bitte überprüfen ob sie da nicht 3 bytes mit Daten wegschneiden. ohne jetzt genau darüber nachzudenken (und den eigenen Demo-Code anzuschauen) würde ich meinen dass die LSBs am Ende des verschlüsselten Umsatzzählers sind nicht am Anfang...
@asitplus-pteufl Danke! Das wars!
//extract 5 bytes
byte[] encryptedByteskurz = new byte[5];
Array.Copy(encryptedBytes, 11,encryptedByteskurz,0, 5); //die letzten 5 Bytes von hash1 werden in hash3 abgelegt
string result = Convert.ToBase64String(encryptedByteskurz);
freut mich! noch ein Hinweis, nennen's das nicht HASH :-) das ist keiner
am besten noch den Umsatzzähler mit negativen Zahlen auch über das Prüftool testen, dann sollten Sie sicher sein dass auch die 2er Kom. Darstellung stimmt.
War ich schon dabei und leider nein 2er Komp ist noch falsch - ich wäre über einen Hinweis dankbar wo mir das Vorzeichen verloren geht. (hash im comment ist copy paste da der Algorithmus vom Extrahieren des Verkettungswertes entlehnt wurde, danke für den Hinweis)
Habe es geschafft, interessanter weise nur für 8 Bytes - Danke für die Hinweise! BitConverter.ToInt64 setzt 8 oder ein vielfaches davon voraus aber mit padding bekomme ich falsche Ergebnisse.
DEP.json beginnt mit: ...
beim zweiten Beleg ist allerdings:
Payload des zweiten Belegs X1IxLUFUMV9UUkFYUy0yXzIwMDAwMjMxOF8yMDE3LTAxLTE3VDE1OjE3OjU1XzAsMDBfMCwwMF8wLDAwXzEwLDAwXzAsMDBfeUd5a2lURT1fNzI2MzA3NEZfRk9zcDRCbndBaW89 _R1-AT1_TRAXS-2_200002318_2017-01-17T15:17:55_0,00_0,00_0,00_10,00_0,00_yGykiTE=_7263074F_FOsp4BnwAio=
AESKey in B64: K7L9NyWiC1xKuyBO/7DuoRFqsqgq+m3t8hjOCMNXBio=
verschlüsselt in voller Länge: yGykiTFhYmd/SzwAWNr3RA== entschlüsselt 1000 verschlüsselt 5Bytes extrahiert: yGykiTE=
Ich vermute, dass mein Fehler bei 2.5.5 der Extraktion „Verkürzter verschlüsselter Umsatzzähler für die Ablage im Feld „Stand-Umsatz-Zaehler-AES256-ICM“. mein C# - Code dazu:
DEP.json.txt Bitte um Hilfe.