Αλλαγή στην αποθήκευση των a.txt, b.txt (απαλοιφή του επιπλέον χαρακτήρα #13#10 στο τέλος του αρχείου)
Διαπιστώθηκε μια συστηματική ιδιότητα των αρχείων a.txt και b.txt που δημιουργούνται από τους drivers του IPOS για τις μηχανές που υποστηρίζουν ηλεκτρονικό ημερολόγιο.
Πιο συγκεκριμένα, στο τέλος των αρχείων αυτών εισάγονται οι κάτωθι επιπλέον ΑSCII χαρακτήρες:
- <CR> (Hex:13)
- <LF> (Hex:10)
Αυτό έχει σαν συνέπεια ο έλεγχος της ακεραιότητας των αρχείων (υπολογισμός SHA1 του a.txt και αντιπαραβολή του με το περιεχόμενο του b.txt) με χρήση διαφόρων εφαρμογών να αποτυγχάνει διότι λαμβάνουν υπόψη και τους ανωτέρω 2 επιπλέον χαρακτήρες.
Στη νέα έκδοση οι χαρακτήρες αυτοί απαλείφονται στα αρχεία που δημιουργούνται από τους κατωτέρω drivers:
- EpsonFP81.dll,
- CT601.dll,
- CPIPOSIII.dll,
- CPI.dll,
- CPI_v4.dll,
- EasyFiscal.dll
Αλλαγές που έγιναν στον driver CPIPOSΙΙΙ με το θέμα που προέκυψε με την ΕΚΟ
Σε πελάτες που χρησιμοποιούν τον driver CPIPOSIII.dll εμφανίσθηκαν περιπτώσεις όπου μετά από προσπάθεια κλεισίματος ημέρας και μεταφοράς του ηλεκτρονικού της ημερολογίου, η μηχανή σταματούσε να αποκρίνεται.
Από επιτόπιους ελέγχους διαπιστώθηκε ότι το πρόβλημα οφείλεται σε κάποια δυσλειτουργία/μη τεκμηριωμένη συμπεριφορά (bug) του firmware της μηχανής. Πιο συγκεκριμένα το SHA1 (digest) που επιστρέφει η μηχανή για το ηλεκτρονικό της ημερολόγιο δεν είναι ίδιο με το SHA1 (hash) που υπολογίζει ο driver του IPOS.
Ο τελευταίος υπολογισμός κρίνεται από το IPOS απαραίτητος ώστε να διασφαλισθεί η ακεραιότητα των δεδομένων. Η διαφοροποίηση digest-hash είναι ικανός λόγος για να μην ολοκληρώσει το IPOS τη μεταφορά του ηλεκτρονικού της ημερολογίου και η μηχανή να κλειδώσει.
Υπό φυσιολογικές συνθήκες το θέμα άπτεται του κατασκευαστή της μηχανής ο οποίος οφείλει να ελέγξει το firmware της μηχανής και να επικαιροποιήσει την τεκμηρίωση του όπου και αναφέρονται τα στοιχεία του ηλεκτρονικού ημερολογίου επί των οποίων γίνεται ο υπολογισμός του SHA1. Κρίθηκε ωστόσο σκόπιμο να δοθεί ενδιάμεση λύση η οποία να διασφαλίζει αφενός την ακεραιότητα της λειτουργίας του IPOS και επιπλέον σας δίνει δυνατότητα να συνεχίσετε να εργάζεσθε.
Στην ενδιάμεση λύση που περιλαμβάνεται στην έκδοση ο driver του IPOS σε περίπτωση που αντιληφθεί ότι υπάρχει διαφοροποίηση μεταξύ hash και digest δεν βγάζει σφάλμα αλλά προχωρά κανονικά στην εγγραφή των a.txt και b.txt σύμφωνα με τα στοιχεία που βγάζει η μηχανή. Ωστόσο στον ίδιο κατάλογο με τα a.txt και b.txt δημιουργεί ένα αρχείο με κατάληξη ERRORJOURNAL.txt το οποίο περιέχει:
Α) τα στοιχεία της μηχανής (Serial Number, έκδοση Firmware)
Β) όλες τις γραμμές του ηλεκτρονικού ημερολογίου που διαβάζονται από το driver του IPOS
C) την αλφαριθμητική ακολουθία που χρησιμοποιεί ο driver για τον υπολογισμό του SHA-1
D) την ακολουθία ελέγχου SHA-1 που έχει επιστρέψει η μηχανή
Ε) την ακολουθία ελέγχου SHA-1 που υπολογίζει ο driver
Υποστηριζόμενα Πρωτόκολλα
Πρωτόκολλο |
Fiscal Printers |
Driver Name |
Υποστηρίζει Τμήματα (πλήθος) |
Αποθήκευση Ημερολογίου |
Παρατηρήσεις |
CPI |
POSI Fiscal |
CPI.dll |
- |
√ |
|
ICS EasyFiscal |
EasyFiscal.dll |
- |
√ |
|
|
POSI Fiscal III |
CPIPOSIII.dll |
- |
√ |
|
|
CPI v2 R4 |
POSI Fiscal (new) ProLine |
Cpi_v4.dll |
- |
√ |
|
Micrelec 1.0 |
ARCADIA III |
ArcadiaIII.dll |
√ (10) |
|
(*1) |
HiTec 458 |
Hitec458.dll |
√ (10) |
|
(*1) |
|
Toshiba ST 52 |
Toshiba_ST52.dll |
√ (10) |
|
(*2) |
|
FPU_EJ |
FASY |
FpuEJ.dll |
√ (255) |
√ |
|
LD 628 |
LD 628 |
LD628.dll |
√ (10) |
|
|
LD 628 v2 |
LD 628 (new) |
LD628_v2.dll |
√ (10) |
|
|
EPSON LD 90 |
EPSON LD 90 |
LD90.dll |
√ (20) |
√ |
|
EPSON 210 |
EPSON 210 |
Epson210.dll |
|
|
|
EPSON 220 |
EPSON 220 |
Epson220.dll |
√ (10) |
|
|
EPSON FP-81F |
EPSON FP-81F |
EpsonFP81.dll |
√ (99) |
√ |
|
SAMSUNG FISCAL SRP350 |
SAMSUNG FISCAL SRP350 |
SRP.dll |
|
√ |
|
SP 300 |
STAR SP 300 |
Sp300.dll |
|
|
|
Micrelec V1.R1.T8 |
Citizen 601 |
Ct601.DLL |
- |
√ |
|
ProLine Ergospeed III |
ProlineErgospeed3.DLL |
- |
√ |
|
|
Micrelec V1.R1.T29 |
RBS Elio WEB |
RBSElio.DLL |
√ (60) |
|
(*1) |
RBS EDO WEB |
(*3) |
|
(*3) |
||
RBS Mercato NET |
(*3) |
|
(*3) |
||
Micrelec V1.R1.T13 |
RBS Mercato II |
RBSMercato.DLL |
√ (30) |
|
(*1) |