Verze - BPMF(X).EXE
9.00. (14.08.2022)
- Nahrání nových zkušebních certifikátů s platností do roku 2025.
9.00 (02.02.2020)
- Nová verze Https knihovny.
- Zrychlený fallback z TLS 1.3. na TLS 1.2, nyní již bez prodlevy.
- Rychlejší inicializace exe.
- Sjednocení kódu pro všechny verze.
8.97 (30.12.2019)
- Podpora šifty Chacha20. Tím umí exe všechny šifry, které akceptuje rozhraní EET.
- Integrace nové verze knihovny pro Https komunikaci.
8.92 (12.12.2019)
- Verze 8.9 akceptuje pouze TLS 1.3, což ostré EET bude umět až 9.1.2020. Z toho důvodu je v 8.92 nastavený fallback na TLS 1.2, pokud se TLS 1.3 nepovede navázat.
8.9 (11.12.2019)
- Vlastní podpora TLS 1.3.
---------------------------------------------------
Ukázka výstupu z komunikačního logu:
2019-12-11 07:23:12.016 INFO HttpRequest(8)[1] HTTP: Connecting to 'https://pg.eet.cz:443'...
2019-12-11 07:23:12.063 INFO HttpRequest(8)[7] TLS: Negotiating TLS 1.3, ECDH with secp256r1, AES with 128-bit key in GCM mode, SHA256.
2019-12-11 07:23:12.063 DEBUG HttpRequest(8)[29] TLS: Verifying server certificate ('CN=www.eet.cz, OU=Elektronická evidence tržeb, O=Generální finanční ředitelství, L=Praha, C=CZ, SERIALNUMBER=72080043, OID.1.3.6.1.4.1.311.60.2.1.3=CZ, OID.2.5.4.15=Government Entity').
2019-12-11 07:23:12.063 INFO HttpRequest(8)[1] TLS: Connection secured using cipher: TLS 1.3, ephemeral ECDH, AES with 128-bit key in GCM mode, AEAD.
8.0 (07.12.2019)
MF omezilo původní počet 14 akceptovaných šifer pro TLS 1.2 handshake na 3. Toto omezení je zatím pouze na PlayGround, netýká se ostrého EET.
Konkrétně podporuje relativně novou šifru Chacha20 a eliptické křivky (ECDHE) v módu GCM, ovšem POUZE v RSA. Toto umí nativně Windows 10 a Microsoft doplnil tuto šifru i do Windows 8x (musí být doinstalována). Windows 7 umí ECDHE i GCM, ale v ECDSA nikoliv v RSA. Tedy na Windows 7 nelze použít požadovanou šifru přes crypthographic API jako službu OS. U Windows XP je to ještě složitější, protože vůbec neumí ECDHE.
Důsledkem toho je, že
- BPM není títmo dotčena, nekomunikuje s EET.
- BPMFX.exe do verze 6.x nefunguje proti PlayGround.
- BPMFX.exe ve verzi 7.x funguje proti PlayGround na Windows 10 a Windows 7.
- BPMF.exe do verze 7.x včetně funguje proti PlayGround na Windows 10.
Řešení:
BPMFX.exe má nově přilinkovanou kryptografickou knihovnu BouncyCastle, která umožňuje pod Windows XP použít šifry s eliptickými křivkami. Verze 8 BPMFX.exe je funkční od Windows XP a výše.
BPMF.exe má nově přilinkovanou knihovnu pro TLS 1.2 komunikaci. Verze 8 BPMF.exe je funkční od Windows 7 a výše.
Přechod na verzi 8 je dobrovolně placený upgrade v ceně 500 Kč (+ DPH 21%) za verzi knihovny bez ohledu na počet licencí. Maximální cena 1 000 Kč + DPH, tedy 1 modul - 500 Kč, 2 a více modulů - 1 000 Kč.
7.0 (06.12.2019)
- Do BPMFX přidána podpora RSA šifry eliptických křivek Diffie-Hellman s AES klíčem 128/256 bit v módu GCM. Toto je nutné z důvodu ukončení podpory ostatních šifer u TLS 1.2 spojení ze starany EET, viz. https://www.etrzby.cz/assets/cs/prilohy/tls_eet_20191128.xlsx. BPMF tuto šifru již podporuje v předcházející verzi.
Přechod na verzi 7 je dobrovolně placený upgrade v ceně 250 Kč (+ DPH 21%) bez ohledu na počet licencí. "Dobrovolně placený" znamená, že neprobíhá žádná kontrola, kdo si co stáhl a zda si vyžádal fakturu.
6.7 (04.01.2018)
- Je možné logovat průběh generování XML a komunikaci s EET. Slouží k lepšímu hledání případných problémů.
- Pokud v adresáři s aplikací existuje soubor Test.On, vznikne Test.txt, ve kterém je log kroků programu (viz. verze 6.0).
- Pokud v adresáři s aplikací existuje soubor Log.On, vznikne Log.txt, ve kterém je log komunikace https knihovny. Toto je funkční POUZE u XP verze (BPMFX). Nativní .net https knihovnu nelze logovat.
6.6 (12.04.2017)
- Nové parametry Credentials, ProxyPwd, ProxyUrl, ProxyUser konfiguračního souboru umožňují nastavit nestransparentní proxy. Použije se buď Credentials (přihlášení dle uživatele Windows) nebo se nastaví heslo a uživatel pomocí ProxyPwd, ProxyUser. ProxyUrl nastavuje adresu (a případně port) pro proxy a MUSÍ se uvést jako poslední, protože na následné nastavení uživatele/heslo se již nepřihlíží.
CREDENTIALS | Přihlášení uživatele dle Windows |
PROXYPWD | Heslo |
PROXYUSER | Uživatel |
PROXYURL | Adresa:port proxy |
6.5 (11.3.2017)
- Rozšíření pramaterů v souboru config.txt nahrazující hodnoty řádkových parametrů. V příkazu volání se MUSÍ zadat správný počet parametrů, ale přes config.txt je možné je změnit. Tímto se řeší např. problém s dlouhými cestami. Prvý parametr pro PKPPlain musí být uveden správně (např. -)
CERTPATH | Cesta/soubor certifikátu |
CERTPWD | Heslo certifikátu |
IN | Vstupní soubor/adresář pro zprávu |
OUT | Výstupní soubor/adresář pro odpověď |
COPY | Soubor/adresář pro uložní odesílané zprávy |
URL | URI EET |
Příklad použití
CERTPATH=c:\vfp\eet\certifikat\EET_019.p12
CERTPWD=eet
IN=c:\vfp\eet\XMLsec\b.xml
OUT=c:\vfp\eet\XMLsec\v.xml
URL=https://pg.eet.cz:443/eet/services/EETServiceSOAP/v3
COPY=c:\vfp\eet\XMLsec\z.xml
6.1 (28.02.2017)
- Oprava: Pokud ve vstupním souboru chybělo některé pole potřebné pro PKPPlain a byl prvý parametr volání '-', program se zacyklil.
- Nová Https knihovna pro BPMFX.
- Rozšíření logovaných informací (např. chybné parametry v Config.txt).
- Datum/čas v logu je rozšířen o milisekundy.
6.0 (24.02.2017)
- Pokud existuje v adresáři soubor Test.On, bude program logovat jednotlivé kroky do souboru Test.txt
- Pokud existuje v adresáři soubor Config.txt, je při startu programu načten a zpracován jako soubor parametrů. Tímto lze nastavit TimeOut v ms.
Syntaxe Config.txt:
Parametr=hodnota
např. nastavení TimeOut na 7 vteřin
Timeout=7000
Neprovádí se žádná kontrola parametrů. Je možné psát malými i velkými písmeny.
5.4 (21.02.2017)
- Oprava: Při chybě v certifikátu/heslu nebyl popis chyby uložen do výstupního souboru.
5.3 (16.02.2017)
- V režimu Automat se nově každé odesílané zprávě generuje unikátní UUID, doposud se pro všechny používalo shodné.
5.2 (13.2.2017)
- Oprava: V režimu Automat se v případě komunikační chyby do výstupního XML ukládal stále stejný BKP/PKP z prvého dokladu. Kopie odesílaného dokumnetu byla v pořádku a obsahovala správné BKP/PKP.
Popis chování:
Pokud dojde v automatickém režimu ke komunikační chybě, není čekající doklad odstraněn ze vstupního adresáře a při obnovení komunikace se automaticky znovu zpracuje.
5.1 (09.02.2017)
- V případě komunikační chyby se nově ukládá odesílaná zpráva (při zadání nepovinného parametru). Doposud se zpráva uložila pouze v případě, že komunikace proběhla. Tímto je nyní možné vždy získat BKP a PKP.
Tato úprava je jistou kanibalizací na programu BPM, takže přechod na verzi 5 a výše je dobrovolně placený upgrade v ceně 250 Kč (+ DPH 21%) za verzi exe bez ohledu na počet licencí. Multilicence, držitelé licence BPM a licence BPMF(X) pořízené v roce 2017 zdarma. Pokud tedy např. došlo k pořízení BPMF.exe pro 1 vývojáře a BPMFX.exe pro 5 vývojářů v roce 2016, je cena za upgrade 250 Kč + 250 Kč = 500 Kč (+ DPH 21%). "Dobrovolně placený" znamená, že neprobíhá žádná kontrola, kdo si co stáhl a zda si vyžádal fakturu.
4.6 (29.12.2016)
- Korektní ošetření některých chybových stavů při špatně zadaných parametrech.
4.5 (13.12.2016)
- Oprava: v režimu Automat nebyla korektně odchycena chyba špatně zadaného hesla nebo cesty k certifikátu.
Na základě přání uživatelů je možné si napsat o zařazení na informační mail list o nových verzích. V takovém případě bude informace o dostupnosti nové verze proaktivně zaslaná. Je třeba uvést cílový mail a o jaký typ produktu se jedná (DLL a/nebo EXE).
4.4 (05.12.2016)
- Oprava: v automatickém režimu byl za určitých okolností špatně vygenerován PKPPlain, což se projevilo hláškou, že zpráva nevyhověla kontrole XML schématu.
- Změna: V případě IO chyby u automatického režimu byl problém korektně reportován volajícímu programu a BPMF(X) se ukončil. Nyní se neukončí a zpracovává další soubory ze vstupního adresáře.
4.3 (04.12.2016)
- Pokud se pole dat_trzby a/nebo dat_odesl nechají prázdné (=""), doplní program do daného pole hodnotu Now() v offsetovém formátu.
- Pokud je délka pole dat_trzby kratší, než 20 znaků, předpokládá se, že jde o formát DateTime a program převede string na DateTime Offset, např. "2016-09-19T19:06:37" na "2016-09-19T19:06:37+02:00"
4.2 (02.12.2016)
- Korektní ošetření případu, kdy se chybně volá BPMF(X) se souborovýní parametry v režimu automat a naopak.
4.1 (01.12.2016)
- Nová funkcionalita pro automatický režim.
Automatický režim znamená že spuštěný BPMF(X) permanentně monitoruje adresář se vstupními soubory, pokud nějaké nalezne, zpracuje je a odpovědi uloží pod stejným jménem do výstupního adresáře a čeká na další soubory pro zpracování. Tento režim se spustí vytvořením souboru Auto.mat v adresáři kde je i BPMF(X).exe. Odstraněním souboru Auto.mat se ukončí BPMF(X) v režimu automat.
Příklad volání:
BPMF "-" C:\eet\EET_CA1_Playground-CZ00000019.p12 eet C:\eet\vstup_dir C:\eet\vystup_dir "https://pg.eet.cz:443/eet/services/EETServiceSOAP/v3" C:\eet\zprava_dir
Pokud je cílem spustit BPMF(X) v batchi a nečekat na jeho ukončení lze použít cmd příkaz Start, tedy
Start BPMF "-" C:\eet\EET_CA1_Playground-CZ00000019.p12 eet C:\eet\vstup_dir C:\eet\vystup_dir "https://pg.eet.cz:443/eet/services/EETServiceSOAP/v3" C:\eet\zprava_dir
3.2 (30.11.2016)
- Pokud se prvý parametr zadá "-", pak se PKPPlain napočte ze vstupního XML souboru.
Tato úprava platí i pro BPM.exe
2.5 (22.10.2016)
- Chybová hláška propagovaná z .net je zbavená diakritiky a CrLf.
2.4 (12.10.2016)
- Nový nepovinný parametr umožňuje zadat výstupní XML soubor, do kterého je uložena odesílaná zpráva.
2.3 (10.10.2016)
- Nová verze https knihovny pro BPMFX.
2.2 (04.10.2016)
- Pokud se uvede ve vstupním XML prázdné UUID (uuid_zpravy=""), program UUID vygeneruje a do XML ho vloží.
2.1 (01.10.2016)
- Chybová hláška Communication error je pro snazší zjišťování problémů rozšířena o text chyby z komunikační knihovny.
- Při nezadání správného počtu parametrů se do Výstup.xml uloží informace o správném volání BPMF(X).exe.
2.0 (16.09.2016)
- EXE je zkompilován jako služba, takže je průběh podstatně rychlejší a lze ho volat i přes shell bez zobrazení command okna. Týká se BPM / BPMF / BPMFX.
1.5 (01.09.2016)
- Chyby jsou uloženy do výstupního souboru v XML. Pokud není BKP/PKP k dispozici, je místo těchto hodnot v souboru *bkp* resp. *pkp*
1.3a (01.09.2016)
- BPMFX obsahuje novou verzi externí komunikační knihovny pro TLS1.2 (při některých chybových odpovědích z EET došlo k aplikační výjimce Not enough data).
1.3 (01.09.2016)
- Ošetření případu, kdy je výstupní soubor otevřen jinou aplikací.
1.2 (31.08.2016)
- V případě komunikační chyby a timeoutu je do výstupního souboru přidán ještě BKP (2. řádek) a PKP (3. řádek).
1.1 (29.08.2016)
- V případě komunikační chyby a timeoutu je do výstupního souboru místo EET odpovědi uložena chybová hláška Timeout resp. Communication Error.
1.05 (20.08.2016)
- Ošetření komunikační chyby a timeoutu.
1.0 (15.08.2016)
- První funkční verze