Open Nilix5 opened 7 years ago
nein, die Angaben sind optional
nein, kann auch 16 bytes lang sein, Sollwert liegt typisch bei 5, 6 oder 8 Bytes
Ja, was auch immer mit JWS gemeint ist
Beim Startbeleg fehlt die Signatur. Folgebeleg passt nicht. Da kommt hinter der Seriennummer der Verkettungswert und darauf folgend die Signatur des Belegs.
Prüfen sie ihre Daten = QR-Codes und DEP-Export bitte mit den A-SIT-Tools, dann wird ihnen das auch gemeldet werden.
Danke erst mal. Das mit der Signatur-Voriger-Beleg ist mit nicht klar.
Signatur-Voriger-Beleg = Hash aus "Kassa-4077" = "oG++ssL2A8E=" Woher nehme ich die Signatur die erhalte ich ja erst danach!
Ist das der header + Payload (_R1-AT1_Kassa-4077_0000000001) signiert?
Es ist keine Signatur des vorigen Belegs, sondern ein Hashwert über die kompakte Repräsentation des letzten Eintrags, siehe Prozess 2.4.2 im Dokument Detailfragen. Die Daten des vorigen Belegs haben sie ja zur Verfügung.
Die Signatur wird über alle Elemente des maschinenlesbaren Codes vor der Signatur gebildet - vom Reg.Alg.Kennzeichen "_R1..." bis inklusive Verkettungswert des letzten Belegs, siehe Prozess 2.3 und 3.1 im Dokument. Der Header ist derzeit ein fixer Wert. Die Payload entspricht den Daten aus Prozess 2.3. Angehängt wird das Ergebnis der Signaturerstellung.
Vielleicht hilft auch die folgende Grafik ein wenig.
Leider nicht. Also wenn man ml den Start- Beleg anschaut.
//Signatur Vorbeleg Kassa-4077 -> Hash -> oG++ssL2A8E=
//Umsatzzähler verschlüsseln und base64 Ergibt: "j31OpBXJbLrcvIB76hY8Uw=="
//Beleg- Zeile zusammenbauen "_R1-AT1_Kassa-4077_0000000001_2017-05-01T16:38:00_120,00_110,00_0,00_10,00_119,00_j31OpBXJbLrcvIB76hY8Uw==_487E89D8_oG++ssL2A8E="
//zu signierender String toBeSignedStr (1. und 2. Teil) "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9LYXNzYS00MDc3XzAwMDAwMDAwMDFfMjAxNy0wNS0wMVQxNjozODowMF8xMjAsMDBfMTEwLDAwXzAsMDBfMTAsMDBfMTE5LDAwX2ozMU9wQlhKYkxyY3ZJQjc2aFk4VXc9PV80ODdFODlEOF9vRysrc3NMMkE4RT0"
//Signieren und zu Base64 Ergibt: "zD7jyPWPkS0UZOgBD6a52XNVUPnNRxltrF5Vx5vFRzzvLRr3b72BWbI2v0TEu9nTxpwnl2HfdQNIsl-8YbJrDg"
//Zusammenfügen (1. 2. und 3. Teil) "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9LYXNzYS00MDc3XzAwMDAwMDAwMDFfMjAxNy0wNS0wMVQxNjozODowMF8xMjAsMDBfMTEwLDAwXzAsMDBfMTAsMDBfMTE5LDAwX2ozMU9wQlhKYkxyY3ZJQjc2aFk4VXc9PV80ODdFODlEOF9vRysrc3NMMkE4RT0.zD7jyPWPkS0UZOgBD6a52XNVUPnNRxltrF5Vx5vFRzzvLRr3b72BWbI2v0TEu9nTxpwnl2HfdQNIsl-8YbJrDg"
Das muss eigentlich stimmen. da laut Detailfragen.
2.4.1 Verkettung beim Startbeleg Der Verkettungswert für den Startbeleg wird bei einer Kasse mit der Kassen-ID A12347 wie folgt berechnet: Eingabewert für Hashalgorithmus: Die Kassen-ID – in diesem Fall A12347 ist im UTF8-Format gespeichert. Anwenden des Hashalgorithmus/Extraktion des Verkettungswerts: Die Kassen-ID A12347 ist der Eingabewert für den Hashalgorithmus SHA-256 (im Falle von RK1). Aus dem Ergebnis werden 8 Bytes/64 Bits extrahiert (im Falle von RK1).Kodierung des Verkettungswerts: Des extrahierte Wert wird BASE64-Kodiert. Dies entspricht in diesem Beispiel dem Wert OeSKQjO4zKI=, der im Feld Sig-Voriger-Beleg abgelegt wird.
Trennen sie bitte mal die Begriffe sauber. Signatur Vorbeleg ist etwas anderes.
Beim Startbeleg wird die Verkettung mit der Kassen-ID errechnet, siehe Prozess 2.4.1 wie geschrieben. Es wird ein Hashwert gebildet, keine Signatur und es gibt auch keinen Vorbeleg.
Wenn das der maschinenlesbare Code für den Startbeleg sein soll müssen dort die Umsätze 0 sein.
Signieren und zu Base64 sieht ungewohnt aus - das müssen im Ergebnis 88 Zeichen inklusive Padding-Characters sein.
Zusammenfügen ja, aber das ist nicht die Signatur, die in den maschinenlesbaren Code kommt.
Das Feld heißt eben laut 2.1 Sig-Voriger-Beleg:
So gesehen ja - korrekt - entschuldigung.
Sind die Ausgabe der Signatur Zertifikate und Zertifizierungsstellen im DEP nötig?
Muss der Umsatzzähler auf 8 Byte verkürzt werden. 2.5.2 bei Kassa-4077 und 359,01 € AES "qSJHqBUexcps2CxwN0eidnHapWLeMiKwRdl7EI+ZFx8=" ehalte ich
16 byte: j31OpBXJbLrcvIB76hY8Ug== 8 byte: j31OpBXJbLo= welchen verwende ich jetzt. Bei 16 byte kann ich decodieren bei 8 byte nicht.
QR- Code ist es die komplette _R1-AT1_Kassa-4077_0000000001_2017-05-.... JWS ?
2.3 Aufbereiten der zu signierenden Daten _Sig-Voriger-Beleg kommt danach noch etwas? Mein:
Startbeleg: __R1-AT1_Kassa-4077_0000000001_2017-05-01T14:57:00_0,00_0,00_0,00_0,00_0,00_j31OpBXJbLo=_487E89D8_oG++ssL2A8E=
Folgebeleg: _R1-AT1_Kassa-4077_0000000002_2017-05- 01T14:57:00_120,00_110,01_0,00_10,00_119,00_slr6FqM89to=_487E89D8_eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMV9LYXNzYS00MDc3XzAwMDAwMDAwMDFfMjAxNy0wNS0wMVQxNDo1NzowMF8xMjAsMDBfMTEwLDAxXzAsMDBfMTAsMDBfMTE5LDAwX2ozMU9wQlhKYkxvPV80ODdFODlEOF9vRysrc3NMMkE4RT0.v8VUVho06ZmtdPhuxwDnPDhL46ApQrOlqGXmPu0eR_hzcyU0ngqjCGZvjjOqdLmr7RkuFbmtk6mLokVk3r58Dg
passt das?
Vielen Dank vorab