a.sign RK EXE Developer Manual -...
-
Upload
nguyenhanh -
Category
Documents
-
view
247 -
download
0
Transcript of a.sign RK EXE Developer Manual -...
A-Trust Gesellschaft für Sicherheitssystemeim elektronischen Datenverkehr GmbH
Landstraÿer Hauptstraÿe 5A-1030 Wien
https://www.a-trust.atE-Mail: o�[email protected]
a.sign RK EXE
Developer Manual
Version: 0.8
Datum: 9. Dezember 2016
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH
Copyright
c⃝ 2016 - Alle Rechte vorbehaltenA-TrustGesellschaft für Sicherheitssysteme im elektronischen Datenverkehr GmbHA-1030 Wien
Die in dieser Dokumentation enthaltenen Informationen, Kenntnisse und Darstellungensind geistiges Eigentum der A-Trust und dürfen ohne die vorherige schriftliche Zustim-mung von A-Trust weder vollständig noch auszugsweise, direkt oder indirekt Drittenzugänglich gemacht, verö�entlicht oder anderweitig verbreitet werden.Die Geltendmachung aller diesbezüglicher Rechte, bleiben der Firma A-Trust vorbehal-ten. Die Übergabe der Dokumentation begründet keinerlei Anspruch auf eine Lizenz oderBenutzung.
a.sign RK exe Version: 0.8 Seite 2 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH
Leistungsbeschreibung
A-Trust stellt ein Executable zur Verfügung welches die Funktionen zum Zugri� aufdie a.sign RK CHIP vereinfacht. Weiters werden Funktionen für den AES-Schlüssel,Base64 Kodierung und Sha256 Hash bereitgestellt, welche für die Implementierung derRegistrierkassensicherheitsverordnung [Bun15] benötigt werden.
Bereitgestellte Funktionen und Programme:
• Schnittstelle zum Zugri� auf die Chipkarte.
• Funktion für JWS-Signatur der aufbereiteten Datenstruktur des Belegs
• Funktion zur Base64 und Base64-URL Kodierung von String-Werten
• Funktionen zum Generieren und Verwenden des AES-Schlüssel zur Verschlüsselungdes Umsatzzählers.
• Sha256 Hash Funktion
• Funktionen zum Generieren eines QR-Codes
• Developer Handbuch mit Funktionsbeschreibung und Beispielaufrufen.
a.sign RK exe Version: 0.8 Seite 3 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH Inhaltsverzeichnis
Inhaltsverzeichnis
1 Überblick 71.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Verwendung der a.sign RK EXE 82.1 Schnittstelle Registrierkassen Karte - Methoden und Eigenschaften . . . . 82.1.1 Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.2 Software prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.3 Karte prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.4 Karteninformationen lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.5 ZDA-ID auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.6 Zerti�katsseriennummer lesen . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.7 Zerti�katsseriennummer lesen (hexadezimal) . . . . . . . . . . . . . . . . . 112.1.8 Zerti�kat lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.9 Ausstellerzerti�kat lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.10 Gültigkeit lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.1.11 SignJWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.1.12 Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Schnittstelle AES ICM - Methoden und Eigenschaften . . . . . . . . . . . 132.2.1 GenerateKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.2 Verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.3 Entschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Schnittstelle Base64 - Methoden und Eigenschaften . . . . . . . . . . . . . 142.3.1 Encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.2 EncodeUrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.3 Reencode Base64-URL to Base64 . . . . . . . . . . . . . . . . . . . . . . . 152.3.4 Reencode Base64 to Base64-URL . . . . . . . . . . . . . . . . . . . . . . . 162.3.5 Reencode Bease64 to Base32 . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.6 Reencode Bease64-URL to Base32 . . . . . . . . . . . . . . . . . . . . . . . 162.4 Schnittstelle Sha256 - Methoden und Eigenschaften . . . . . . . . . . . . . 172.4.1 HashString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4.2 HashSigVorigerBeleg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 QR-Code - Methoden und Eigenschaften . . . . . . . . . . . . . . . . . . . 172.5.1 QR-Code erstellen aus Belegzeile . . . . . . . . . . . . . . . . . . . . . . . 172.5.2 QR-Code erstellen aus JWS Zeile . . . . . . . . . . . . . . . . . . . . . . . 192.5.3 Beschreibung der Parameter scalefactor, margin, dpi . . . . . . . . . . . . 192.6 OCR-Code - Methoden und Eigenschaften . . . . . . . . . . . . . . . . . . 202.6.1 OCR-Code erstellen aus Belegzeile . . . . . . . . . . . . . . . . . . . . . . 202.6.2 OCR-Code erstellen aus JWS Zeile . . . . . . . . . . . . . . . . . . . . . . 212.7 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
a.sign RK exe Version: 0.8 Seite 4 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH Inhaltsverzeichnis
A Ausgabe der Hilfe 22
Literatur 23
a.sign RK exe Version: 0.8 Seite 5 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH Inhaltsverzeichnis
Datum Rev Autor Änderungen06.12.2016 0.9 Patrick Hagelkruys Fehlerkorrekturlevel für QR-Code29.09.2016 0.8 Patrick Hagelkruys Base64 zu Base32 Kodierung
Beschreibung scalefactor, margin, dpi13.06.2016 0.7 Patrick Hagelkruys OCR Funktionen hinzugefügt12.05.2016 0.6 Patrick Hagelkruys Umbenennung der Produkte13.04.2016 0.5 Patrick Hagelkruys Base64 url Padding Parameter11.04.2016 0.4 Patrick Hagelkruys Dokumentation erweitern30.03.2016 0.3 Patrick Hagelkruys QR-Code Funktionen09.03.2016 0.2 Ramin Sabet Internal Review
Patrick Hagelkruys09.03.2016 0.1 Patrick Hagelkruys Erste Version
Tabelle 1: Dokumentenhistorie
a.sign RK exe Version: 0.8 Seite 6 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 1 Überblick
1 Überblick
1.1 Zusammenfassung
Ziel dieses Dokumentes ist die Beschreibung der Schnittstelle der a.sign RK EXE.
Die a.sign RK EXE kapselt die Aufrufe zur Erstellung von digitalen Signaturen, wiediese in der österreichischen Registrierkassen Sicherheitsverordnung [Bun15] benötigtenwerden.
Diese Dokumentation entspricht der Version 1.9.0.0 der a.sign RK EXE.
1.2 Voraussetzungen
Für die Verwendung der a.sign RK EXE sind folgende Voraussetzungen zu erfüllen:
• Windows basiertes Betriebssystem (Windows Vista oder neuer)
• a.sign Client in der Version 1.3.2.29c oder neuer
• Kartenleser
• aktivierte a.sign RK CHIP
a.sign RK exe Version: 0.8 Seite 7 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2 Verwendung der a.sign RK EXE
2 Verwendung der a.sign RK EXE
Das Executeable wird über Kommandozeilenparameter gesteuert und retourniert die Er-gebnisse der Verarbeitung wahlweise über die Standard Konsolen Ausgabe oder in eineDatei. Zur Ausgabe der Ergebnisse in eine Datei ist der Parameter �outfile zu verwen-den.
asignRKEXE . exe −−ca rd i n f o
Ausgabe: Standard Konsole
asignRKEXE . exe −−ca rd i n f o −−o u t f i l e c : \temp\ t e s t . txt
Ausgabe: Datei
Eine erfolgreiche Abarbeitung des Programms kann durch den Exit-Code des Programmsüberprüft werden. Ein Exit-Code von 0 bedeutet erfolgreiche Abarbeitung, alle anderenWert kennzeichnen Fehler.
asignRKEXE . exe −−ca rd i n f o −−o u t f i l e c : \temp\ t e s t . txtecho %e r r o r l e v e l%
Überprüfung Exit-Code des Programms
2.1 Schnittstelle Registrierkassen Karte - Methoden und
Eigenschaften
2.1.1 Hilfe
Wird das Executeable ohne Parameter aufgerufen so werden die möglichen Parameterangezeigt:
asignRKEXE . exe
Programm ohne Parameter
Verfuegbare Parameter:−−help H i l f e t e x t ausgeben−−check_software S o f twa r e i n s t a l l a t i o n ueberprue fen−−check_card Karte ueberprue fen−−s i gn arg S ignatur mit Karte , Eingabe Format . . .
. . .
Ausgabe der Parameterübersicht
Die komplette Ausgabe dieses Befehls ist in Anhang A abgebildet.
a.sign RK exe Version: 0.8 Seite 8 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.1 Schnittstelle Registrierkassen Karte - Methoden und Eigenschaften
2.1.2 Software prüfen
Dieser Befehl prüft ob die notwendige a.sign Client Software in der richtigen Versioninstalliert ist.
asignRKEXE . exe −−check_software
Software überprüfen
Programm Exit-Code:
0 OK
2 Registry Einträge des a.sign Client fehlen. Fehlerhafte Installation?
3 a.sign Client Version nicht ausreichend, bitte aktualisieren
4 a.sign Client kann nicht geladen werden. Fehlerhafte Installation?
5 Allgemeiner Fehler
2.1.3 Karte prüfen
Dieser Befehl prüft ob eine Karte im Kartenleser ist.
asignRKEXE . exe −−check_card
Karte überprüfen
Programm Exit-Code:
0 OK
1 Keine aktivierte Karte gefunden
2 Keine Karte gefunden.
2.1.4 Karteninformationen lesen
Laden der Zerti�katsdaten von der Karte.
asignRKEXE . exe −−ca rd i n f o
Karteninformationen lesen
Die Ausgabe besteht aus einer mit Strichpunkt getrennten Liste welche folgende Datenenthält:
• ZDA-ID
• Zerti�katsseriennummer (dezimal)
• Zerti�kat
a.sign RK exe Version: 0.8 Seite 9 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.1 Schnittstelle Registrierkassen Karte - Methoden und Eigenschaften
• Ausstellerzerti�kat
AT1;1634338 ;MII . . . pQ==;MIIF . . . JCw==
Ausgabe: der Karteninformationen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.5 ZDA-ID auslesen
Laden der ZDA-ID von der Karte.
asignRKEXE . exe −−zdaid
ZDA-ID lesen
AT1
Ausgabe: ZDA-ID lesen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.6 Zerti�katsseriennummer lesen
Laden der Zerti�katsseriennummer von der Karte.
asignRKEXE . exe −−c e r t s e r i a l
Zerti�katsseriennummer lesen
1634338
Ausgabe: Zerti�katsseriennummer lesen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
a.sign RK exe Version: 0.8 Seite 10 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.1 Schnittstelle Registrierkassen Karte - Methoden und Eigenschaften
2.1.7 Zerti�katsseriennummer lesen (hexadezimal)
Laden der Zerti�katsseriennummer im hexadezimal Format von der Karte.
asignRKEXE . exe −−c e r t s e r i a l h e x
Zerti�katsseriennummer lesen
7684 d8f2
Ausgabe: Zerti�katsseriennummer lesen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.8 Zerti�kat lesen
Laden des Zerti�kats von der Karte.
asignRKEXE . exe −−c e r t i f i c a t e
Zerti�kat lesen
MIIE1zCCA7 . . . OIvPU2pQ==
Ausgabe: Zerti�kat lesen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.9 Ausstellerzerti�kat lesen
Laden der Ausstellerzerti�kat von der Karte.
asignRKEXE . exe −− i s s u e r
Ausstellerzerti�kat lesen
MIIF9TCCA . . . XtdkupJCw==
Ausgabe: Ausstellerzerti�kat lesen
Programm Exit-Code:
a.sign RK exe Version: 0.8 Seite 11 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.1 Schnittstelle Registrierkassen Karte - Methoden und Eigenschaften
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.10 Gültigkeit lesen
Auslesen der Gültigkeit des Zerti�kates, der Rückgabewert ist ist als UTC-Zeit zu inter-pretieren.asignRKEXE . exe −−g u e l t i g k e i t
Gültigkeit lesen
2020−12−30T22:00:00
Ausgabe: Gültigkeit lesen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler in a.sign Client
2.1.11 SignJWS
Durchführen einer Signatur auf der Karte. Die Funktion bereitet die eingegebenen Da-ten nach dem JWS Standard auf, d.h. es wird der entsprechende JWS-Header mit demAlgorithmus erzeugt und sowohl Daten als auch Header Base64-URL kodiert. Der zurück-gegebene Wert entspricht der JWS Signatur bestehend aus Protected Header, Payloadund Signatur jeweils Base64-URL kodiert und durch Punkt getrennt.Die Eingabedaten müssen entsprechende der österreichischen Registrierkassensicherheits-verordnung [Bun15, Detailspezi�kation Kapitel 5] formatiert werden. Beispiele, Testda-tensätze und Prüftools sind unter [A-S16a] verfügbar.asignRKEXE . exe −−s i gn jws _R1−AT1_1_1_2016−0 . . .XdnO+I=
Signatur JWS durchführen
eyJhbGciOiJFUzI1NiJ9 .X1IxLUFUMV8x . . . F9xZFhvb1hkbk8rST0=.gON2gQR . . . cpQZnyF0Kw==
Ausgabe: Signatur JWS durchführen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler beim Signieren
a.sign RK exe Version: 0.8 Seite 12 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.2 Schnittstelle AES ICM - Methoden und Eigenschaften
2.1.12 Sign
Es wird empfohlen die Funktion SignJWS aus Kapitel 2.1.11 zu verwenden. Für dieVerwendung der hier angeführten Funktion müssen die zu signierenden Daten selbst auf-bereitet werden.Durchführen einer Signatur auf der Karte, der zurückgegebenen Wert ist bereits Base64-URL kodiert. Die Eingabedaten müssen bereits die Form [protected header].[payload]
entsprechend dem JWS-Standard [Jon15] haben.asignRKEXE . exe −−s i gn eyJhbGciOiJFUzI1NiJ9 . X1IxLU . . . rST0
Signatur durchführen
vxQbHXIuMX . . . lLreEQ==
Ausgabe: Signatur durchführen
Programm Exit-Code:
0 OK
1 a.sign Client nicht initialisiert
2 Fehler beim Signieren
2.2 Schnittstelle AES ICM - Methoden und Eigenschaften
2.2.1 GenerateKey
Generieren eines AES Schlüssel. Dieser Befehl muss nur einmal pro Kasse durchgeführtwerden und das Ergebnis durch den Aufrufenden gespeichert werden.asignRKEXE . exe −−aes_generate
AES Schlüssel generieren
qyDC9hlN5MAvum2K/MUu+eVSxB6OzfIShT4o3vTcWtg=
Ausgabe: AES Schlüssel generieren
Programm Exit-Code:
0 OK
1 Fehler
2.2.2 Verschlüsseln
Verschlüsselung des Umsatzzählers. Der Umsatz muss in Euro-Cent Beträgen angegebenwerden, weitere Informationen dazu unter [A-S16b, Brutto vs. Netto].
a.sign RK exe Version: 0.8 Seite 13 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.3 Schnittstelle Base64 - Methoden und Eigenschaften
asignRKEXE . exe −−aes_encrypt−−aes_key qyDC9hlN5MAvum2K/MUu+eVSxB6OzfIShT4o3vTcWtg=−−umsatz 123412−−kas sen id cash−reg−1−−belegnummer ads f51
AES verschlüsseln
FIKrRXdGO6f76zg6zneiQg==
Ausgabe: AES verschlüsseln
Programm Exit-Code:
0 OK
1 Fehler
2.2.3 Entschlüsseln
Entschlüsselung des Umsatzzählers. Diese Funktion wird im Regelfall nicht benötigt.
asignRKEXE . exe −−aes_decrypt−−aes_key qyDC9hlN5MAvum2K/MUu+eVSxB6OzfIShT4o3vTcWtg=−−encrypted_data FIKrRXdGO6f76zg6zneiQg==−−kas sen id cash−reg−1−−belegnummer ads f51
AES entschlüsseln
123412
Ausgabe: AES entschlüsseln
Programm Exit-Code:
0 OK
1 Fehler
2.3 Schnittstelle Base64 - Methoden und Eigenschaften
2.3.1 Encode
Base64 Encoding eines String, mit dem optionalen Parameter �padding kann das Pad-ding eingestellt werden.
asignRKEXE . exe −−padding 1 −−base64_encode t e s t
Base64 kodieren eines Strings
a.sign RK exe Version: 0.8 Seite 14 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.3 Schnittstelle Base64 - Methoden und Eigenschaften
dGVzdA==
Ausgabe: Base64 kodieren eines Strings
Programm Exit-Code:
0 OK
1 Fehler
2.3.2 EncodeUrl
Base64-URL Encoding eines String, mit dem optionalen Parameter �padding kann dasPadding eingestellt werden.
asignRKEXE . exe −−padding 0 −−base64url_encode t e s t
Base64Url kodieren eines Strings
dGVzdA
Ausgabe: Base64Url kodieren eines Strings
Programm Exit-Code:
0 OK
1 Fehler
2.3.3 Reencode Base64-URL to Base64
Decodiert einen Base64-URL kodierten String und kodiert diesen neu als Base64 (Nor-mal). Mit dem optionalen Parameter �padding kann das Padding eingestellt werden.
asignRKEXE . exe −−padding 1 −−base64_url_to_normal_reencode dGVzdA==
Base64url kodieren zu Base64
dGVzdA==
Ausgabe: Base64url kodieren zu Base64
Programm Exit-Code:
0 OK
1 Fehler
a.sign RK exe Version: 0.8 Seite 15 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.3 Schnittstelle Base64 - Methoden und Eigenschaften
2.3.4 Reencode Base64 to Base64-URL
Decodiert einen Base64 (Normal) kodierten String und kodiert diesen neu als Base64-URL. Mit dem optionalen Parameter �padding kann das Padding eingestellt werden.asignRKEXE . exe −−padding 0 −−base64_normal_to_url_reencode dGVzdA==
Base64 kodieren zu Base64url
dGVzdA
Ausgabe: Base64 kodieren zu Base64url
Programm Exit-Code:
0 OK
1 Fehler
2.3.5 Reencode Bease64 to Base32
Decodiert einen Base64 (Normal) kodierten String und kodiert diesen neu als Base32.asignRKEXE . exe −−base64_normal_to_base32_reencode dGVzdA==
Base64 kodieren zu Base32
ORSXG5A=
Ausgabe: Base64 kodieren zu Base32
Programm Exit-Code:
0 OK
1 Fehler
2.3.6 Reencode Bease64-URL to Base32
Decodiert einen Base64 (URL) kodierten String und kodiert diesen neu als Base32.asignRKEXE . exe −−base64_url_to_base32_reencode dGVzdA==
Base64-URL kodieren zu Base32
ORSXG5A=
Ausgabe: Base64-URL kodieren zu Base32
Programm Exit-Code:
0 OK
1 Fehler
a.sign RK exe Version: 0.8 Seite 16 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.4 Schnittstelle Sha256 - Methoden und Eigenschaften
2.4 Schnittstelle Sha256 - Methoden und Eigenschaften
2.4.1 HashString
Sha256 eines String, Ausgabe ist bereits Base64 kodiertasignRKEXE . exe −−hash_str ing t e s t
Sha256 Hash eines Strings
n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=
Ausgabe: Sha256 Hash eines Strings
Programm Exit-Code:
0 OK
1 Fehler
2.4.2 HashSigVorigerBeleg
Sha256 des vorigen Belegs wie in [Bun15, Z4, Sig-Voriger-Beleg] verlangtasignRKEXE . exe −−hash_sig_voriger_beleg t e s t
Hash Signatur voriger Beleg
Zusätzlich kann die Anzahl der zu extrahierenden angegeben werdenasignRKEXE . exe −−hash_sig_voriger_beleg t e s t −−byte s_ext rah i e r t 8
Hash Signatur voriger Beleg mit Angabe der zu extrahierenden Bytes
n4bQgYhMfWU=
Ausgabe: Hash Signatur voriger Beleg
Programm Exit-Code:
0 OK
1 Fehler
2.5 QR-Code - Methoden und Eigenschaften
2.5.1 QR-Code erstellen aus Belegzeile
asignRKEXE . exe −−qrcode −−qrdata "R1 -AT1_DEMO -CA...Q2===" −−s c a l e f a c t o r 2 −−margin 3−−dpi 24 −−e r r o r c o r r e c t i o n H −−o u t f i l e qr1 .bmp
QR-Code erstellen aus Buchungszeile
a.sign RK exe Version: 0.8 Seite 17 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.5 QR-Code - Methoden und Eigenschaften
Abbildung 1: QR-Code Ausgabe (qr1.bmp)
Programm Exit-Code:
0 OK
1 Fehler
a.sign RK exe Version: 0.8 Seite 18 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.5 QR-Code - Methoden und Eigenschaften
2.5.2 QR-Code erstellen aus JWS Zeile
asignRKEXE . exe −−qrcode −−qrdata_jws "eyJhbGciOi ...CXH" −−s c a l e f a c t o r 3 −−margin 10−−dpi 24 −−e r r o r c o r r e c t i o n M −−o u t f i l e qr2 .bmp
QR-Code erstellen aus JWS Zeile
Programm Exit-Code:
0 OK
1 Fehler
Abbildung 2: QR-Code Ausgabe (qr2.bmp)
2.5.3 Beschreibung der Parameter scalefactor, margin, dpi
Bei den Befehlsaufrufen zur QR-Code Erstellung kann mittels der Paramter scalefactor,margin und dpi die erstellte Bilddatei beein�usst werden.
scalefactor: Skalierungsfaktor für QR-Code. Der QR-Code wird bei einem Skalierungs-faktor von 1 als 77x77 Pixel ausgegeben und entsprechend des Faktors vergröÿert.
maring: Rand für QR-Code. Entsprechend dem übergebenen Wert werden weiÿe Pixelan allen Seiten eingefügt.
dpi: Farbtiefe für den QR-Code in bit. Mögliche Werte sind 1,4,8,16,24,32.
errorcorrection: Fehlerkorrekturlevel für den QR-Code. Mögliche Werte sind L,M,Q,H.
Level L (Low): ca. 7% der Daten können wiederhergestellt werden
Level M (Medium): ca. 15% der Daten können wiederhergestellt werden
Level Q (Quartile): ca. 25% der Daten können wiederhergestellt werden
Level H (High): ca. 30% der Daten können wiederhergestellt werden
a.sign RK exe Version: 0.8 Seite 19 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.6 OCR-Code - Methoden und Eigenschaften
2.6 OCR-Code - Methoden und Eigenschaften
Für den OCR-Code ist in der RKSV [Bun15, Detailspezi�kation Kapitel 14] beschreiben,dass die Base64 Werte im Base32 Format kodiert werden müssen.
2.6.1 OCR-Code erstellen aus Belegzeile
asignRKEXE . exe −−ocrcode −−ocrdata "_R1 -AT1_DEMO -CA...Q2==="
OCR-Code erstellen aus Buchungszeile
_R1−AT1_DEMO−CASHBOX_r1_2016−03−11T04:24:43_0 ,00_0,00_0,00_0,00_0,00_4K6WEIOWIZ4AI===_. . .
Ausgabe: OCR-Code
Programm Exit-Code:
0 OK
1 Fehler
a.sign RK exe Version: 0.8 Seite 20 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH 2.7 Logging
2.6.2 OCR-Code erstellen aus JWS Zeile
asignRKEXE . exe −−ocr rcode −−ocrdata_jws "eyJhbGciOi ...CXH"
OCR-Code erstellen aus JWS Zeile
_R1−AT1_DEMO−CASHBOX_r1_2016−03−11T04:24:43_0 ,00_0,00_0,00_0,00_0,00_4K6WEIOWIZ4AI===_. . .
Ausgabe: OCR-Code
Programm Exit-Code:
0 OK
1 Fehler
2.7 Logging
Zur Fehleranalyse kann das Logging des Executeables aktiviert werden, dazu müssen inder Registry die entsprechenden Werte eingetragen werden.
HKEY_LOCAL_MACHINE\SOFTWARE\A−Trust GmbH\ATrustRegistr ierkasseCom
Registry Pfad für 32-bit Systeme
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\A−Trust GmbH\ATrustRegistr ierkasseCom
Registry Pfad für 64-bit Systeme
Nachfolgend die Werte für das Aktivieren des Logging.
Windows Reg i s t ry Editor Vers ion 5 .00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\A−Trust GmbH\ATrustRegistr ierkasseCom ]"LogPath"="c:\\temp\\ asignrkexe.log""Log"=dword:00000001
Registry Werte
a.sign RK exe Version: 0.8 Seite 21 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH A Ausgabe der Hilfe
A Ausgabe der Hilfe
Verfuegbare Parameter:−−help H i l f e t e x t ausgeben−−check_software S o f twa r e i n s t a l l a t i o n ueberprue fen−−check_card Karte ueberprue fen−−s i gn arg S ignatur mit Karte , Eingabe Format [JWS
protec ted Header ] . [ Payload ] , AusgabeFormat Base64
−−s i gn jws arg S ignatur JWS mit Karte , Eingabe FormatPayload , Ausgabe Format [JWS protec tedHeader ] . [ Payload ] . [ S ignatur ]
−−ca rd i n f o Karteninformationen aus l e sen ,Ausgabeformat ZdaId ; Seriennummer ; S ignaturz e r t i f i k a t ; A u s s t e l l e r z e r t i f i k a t
−−zdaid Karteninformationen aus l e sen ,Ausgabeformat ZdaId
−−c e r t s e r i a l Karteninformationen aus l e sen ,Ausgabeformat Seriennummer
−−c e r t s e r i a l h e x Karteninformationen aus l e sen ,Ausgabeformat Seriennummer (HEX)
−−c e r t i f i c a t e Karteninformationen aus l e sen ,Ausgabeformat S i g n a t u r z e r t i f i k a t
−− i s s u e r Karteninformationen aus l e sen ,Ausgabeformat A u s s t e l l e r z e r t i f i k a t
−−g u e l t i g k e i t Gue l t i g k e i t des Z e r t i f i k a t e s−−aes_generate AES Sch l u e s s e l gene r i e r en , Ausgabeformat
AES−S ch l u e s s e l in Base64−−aes_encrypt AES Versch lue s s e lung−−aes_decrypt AES Ent s ch lue s s e ln−−aes_key arg AES Sch l u e s s e l−−umsatz arg Umsatz−−kas sen id arg KassenId−−belegnummer arg Belegnummer−−encrypted_data arg Ve r s c h l u e s s e l t e r Umsatzzaehler−−base64_encode arg Base64 Encode−−base64url_encode arg Base64URL Encode−−padding arg padding fu e r base64−−base64_normal_to_url_reencode arg Base64 Normal zu URL umkodieren−−base64_url_to_normal_reencode arg Base64 URL zu Normal umkodieren−−hash_str ing arg Sha256 der Eingabedaten , Ausgabe in
Base64 Format−−hash_sig_voriger_beleg arg Sha256 der S ignatur des Vorigen Beleges ,
Ausgabe in Base64 Format−−byte s_ext rah i e r t arg Zu ext rah i e r ende Byteanzahl aus S ignatur
des Vorigen Be leges−−o u t f i l e arg Ausgabe in e ine Datei a n s t e l l e der
Konsole−−qrcode QR−Code e r s t e l l e n , o u t f i l e muss angegeben
werden−−qrdata arg QR−Daten−−qrdata_jws arg QR−Daten im JWS Format−−s c a l e f a c t o r arg Ska l i e r ung s f ak t o r f u e r QR−Code−−margin arg Margin fu e r QR−Code−−ocrcode OCR−Code vo rbe r i e t en−−ocrdata arg OCR−Daten−−ocrdata_jws arg OCR−Daten im JWS Format
Ausgabe der Parameterübersicht
a.sign RK exe Version: 0.8 Seite 22 von 23
Ges. für Sicherheitssystemeim elektr. Datenverkehr GmbH A Literatur
Literatur
[A-S16a] A-SIT Plus GmbH: a-sit-plus/at-registrierkassen-mustercode, 2016.https://github.com/a-sit-plus/at-registrierkassen-mustercode/,besucht: 2016-03-09.
[A-S16b] A-SIT Plus GmbH: Erläuterungen FAQ - a-sit-plus/at-registrierkassen-mustercode, 2016. https://github.com/a-sit-plus/
at-registrierkassen-mustercode/wiki/Erl%C3%A4uterungen-FAQ, be-sucht: 2016-04-11.
[Bun15] Bundesministers für Finanzen: Verordnung des Bundesministers für Finan-zen über die technischen Einzelheiten für Sicherheitseinrichtungen in den Re-gistrierkassen und andere, der Datensicherheit dienende Maÿnahmen (Regis-trierkassensicherheitsverordnung, RKSV), 2015. https://www.bmf.gv.at/
steuern/RKSV.pdf, besucht: 2015-11-16.
[Jon15] Jones, M.: JSON Web Algorithms (JWA). RFC 7518, May 2015. https:
//tools.ietf.org/html/rfc7518, besucht: 2015-11-25.
a.sign RK exe Version: 0.8 Seite 23 von 23