Verze - EET.DLL
13.00. (14.08.2022)
- Nahrání nových zkušebních certifikátů s platností do roku 2025.
13.00 (29.01.2020)
- Nová verze Https knihovny u verzí EET a EETXP.
- Zrychlený fallback z TLS 1.3. na TLS 1.2, nyní již bez prodlevy.
- Rychlejší inicializace dll.
- Sjednocení kódu pro všechny verze.
12.99 (12.01.2020)
Protože MF zrušilo spuštění TLS 1.3 na ostrém EET a termín není znám, má EET/EETXP.dll nově možnost volit, které TLS se bude používat. Pokud se nechá defaultový stav, tedy 1.3 + 1.2, je handshake cca o 650ms pomalejší, protože po neúspěšném pokusu o TLS 1.3 se musí natáhnout komponenty pro TLS 1.2 a začít nové vyjednávání.
- Nová vlastnost TLSVer vrací, jaké TLS je nastavené pro komunikace s EET.
- Nová metoda SetTLS nastavuje, které TLS se použije pro komuniaci s EET. Parametr je string a může nabývat hodnot
'2' pro TLS 1.2
'3' pro TLS 1.3
'23' resp. '32' pro obě TLS.
12.97 (30.12.2019)
- Podpora šifty Chacha20. Tím umí dll všechny šifry, které akceptuje rozhraní EET.
- Integrace nové verze knihovny pro Https komunikaci.
12.92 (12.12.2019)
- Verze 12.90 akceptuje pouze TLS 1.3, což ostré EET bude umět až 9.1.2020. Z toho důvodu je v 12.92 nastavený fallback na TLS 1.2, pokud se TLS 1.3 nepovede navázat.
12.90 (11.12.2019)
- Vlastní podpora TLS 1.3 pro EET / EETXP.
---------------------------------------------------
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.
12.03 (08.12.2019)
- Sjednocení jádra pro EET / EETXP / EET10 po rozsáhlých změnách u verze 12.0.
- Drobné optimalizace kódu.
Tato verze nepřináší z uživatelského hlediska nic nového, není publikována ke stažení.
12.00 (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
- EET10.dll funguje proti PlayGround na Windows 10, žádná změna.
- EETXP.dll do verze 11.x včetně funguje proti PlayGround na Windows 10
- EETXP.dll verze 11.x funguje proti PlayGround na Windows 7.
- EET.dll do verze 11.x včetně funguje proti PlayGround na Windows 10.
Řešení:
EETXP.dll má nově přilinkovanou kryptografickou knihovnu BouncyCastle, která umožňuje pod Windows XP použít šifry s eliptickými křivkami. Verze 12 EETXP.dll je funkční od Windows XP a výše.
EET.dll má nově přilinkovanou knihovnu pro TLS 1.2 komunikaci. Verze 12 EET.dll je funkční od Windows 7 a výše.
- Vlastnost CertificateCacheTimeout (default 0), která definuje počet dní, kdy je zvalidovaný certifikát eet strany braný jako důvěryhodný, je k dispozici i pro EET.dll. Toto slouží k omezení komunikce s CLR servery.
Přechod na verzi 12 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č.
11.87 (10.09.2019)
- Drobné modifikace jádra pro použití .net 4.6.1 u verze pro Windows 10.
- Samostatná verze dll pouze pro WIndows 10.
11.67 (01.09.2018)
- Nová vlastnost CertificateCacheTimeout (default 0), která definuje počet dní, kdy je zvalidovaný certifikát eet strany braný jako důvěryhodný. Toto slouží k omezení komunikce s CLR servery. Tato vlastnost je k dispozici POUZE u XP verze díky vlastní knihovně pro https komunikaci.
11.00 (01.05.2018)
- Nová metoda QRFile, která uloží soubor s QR kódem pro načtení aplikací účtenkové loterie. Prvý parametr definuje rozlišení vzniklého souboru, druhý pak plnou cestu s názvem souboru. Typ souboru určuje extenze (jpg, png,...)
Příklad volání:
Leet.QRFile("300x300","C:\p\qr158.jpg") - Nová vlastnost QRString, ve které je řetězec pro zakódování pomocí QR kódu. Vhodné při využití vlastního generátoru QR kódu.
10.45 (12.03.2018)
- Nová chybová hláška 'Specified certificate has no associated private key'. Jedná se o odchycení chyby z .net 'Invalid provider specified', která je způsobená rozdílnými úložišti (CNG x RSA). Pokud nepomůže ruční přepnutí mezi User a Machine úložiští přes vlastnost StoreLocation, je řešením použít přístup k certifikátu přes Friendly Name, tedy přes vlastnost CerFrName, viz. verze 10.0 a 9.0.
10.20 (23.10.2017)
- Metody Trzba_kr_string a Set_T umožňují zadat numerickou hodnotu ve stringu také s desetinnou čárkou.
10.10 (2.4.2017)
- Pomocí metody SetT lze nastavit i logické vlastnosti Overeni a DateToOffset.
- V XP verzi je možné zvolit, zda komunikační knihovna nahradí systémovou v rámci celého solution/projektu (default) nebo zda se využije pouze v rámci dll (nově).
10.00 (7.3.2017)
- V případě chyby při načítání certifikátu je nově propagována konkrétní chyba k obecné hlášce; týká se všech metod přístupu.
- V EETXP je integrována nová verze Https knihovny.
- Nová vlastnost ZpravaPodepsana vracející kompletní odesílanou zprávu včetně podpisu.
- Nová vlastnost StoreLoaction s hodnotami: UserStore, MachineStore, Both umožňující uživatelsky volit uložiště certifikátu obcházející chybu CryptoAPI při načítání certifikátu, kdy při použití ve webové aplikaci běžící na MS IIS, může dojít k pádu celého application pool viz: Knihovna zkusí první řešení (použít MachineKeySet), to však v některých případech způsobí, že certifikát nemůže být použit k podepisování. Dalším řešením může být použít certifikát z Certificate Store načtený pomocí Friendly Name (vlastnost CertFrName) nebo zapnout v IIS LoadUserProfile.
- Úpravy knihovny pro bezpečné nasazení ve vícevláknovém prostředí.
Knihovna není určena pro paralelní provádění operací. Je zaručeno, že kritické oprace nebudou probíhat paralelně, aby nedošlo k pádu systému. Knihovna provede první požadavek, další souběžný požadavek odmítne s chybou. V případě nutnosti provádět více souběžných požadavků (např. na webovém serveru) je potřeba pro každý požadavek vytvořit novou instanci, nebo se musí zaručit, že volání budou zpracovávána sériově.
Přechod na verzi 10 je dobrovolně placený upgrade v ceně 250 Kč (+ DPH 21%) za verzi knihovny bez ohledu na počet licencí pro ty, kteří neplatili upgrade na verzi 9. Multilicence a licence od verze 9.00 (pořízení i upgrade) zdarma - pokud byl již zaplacený upgrade na verzi 9, je upgrade na verzi 10 zdarma. "Dobrovolně placený" znamená, že neprobíhá žádná kontrola, kdo si co stáhl a zda si vyžádal fakturu.
9.74 (15.02.2017)
- Nová metoda GetUUID, která vrací vygenerované UUID. Toto UUID nijak nesouvisí s metodami a vlastnostmi dll a slouží pouze jako generátor.
- Nová metoda ToOffset která vstupní řetězec ve formátu datum/čas převede na offsetový string.
- Změna: Pokud nedojde k úspěšné komunikaci s EET je vlastnost Odpoved nastavena na prázdný řetězec, doposud obsahovala poslední odpověď z EET.
9.45 (25.01.2017)
- Nová vlastnost Odpoved, ve které je kompletní XML odpověď z EET (obdoba vlastnosti Zprava).
9.00 (14.12.2016)
- Nová vlastnost CertFrName pro načtení certifikátu z úložiště na základě FriendlyName bez nutnosti znát heslo. Je nutné mít certifikát nainstalovaný na všech zařízeních. Certifikát musí být exportovatelný, jinak se objeví chybová hláška Špatný certifikát.
- Nová vlastnost CertByte pro načtení certifikátu jako pole bytů. Poměrně dost vývojových prostředí neumí předat korektně pole bytů do dll (např. VFP), takže je na zváženou, zda danou funkcionalitu použít.
- Pořadí vyhodnocení zpracování certifikátu je CertFrName - CertByte/CertHeslo - CertSb/CertHeslo v závislosti na neprázdnosti vlastnosti.
- Nová metoda SetProxy pro nastavení netransparentní proxy.
- Nová vlastnost DateToOffset (default = false). Pokud se nastaví na true, předpokládá dll, že jsou vstupní hodnoty datum/čas bez offset informace a provede jejich převod, např. "2016-09-19T19:06:37", se převede na "2016-09-19T19:06:37+2:00".
Přechod na verzi 9 a výše je dobrovolně placený upgrade v ceně 250 Kč (+ DPH 21%) za verzi knihovny bez ohledu na počet licencí. Multilicence a licence od verze 7.00 a výše zdarma. Pokud tedy např. došlo k pořízení EET.dll pro 1 vývojáře a EETXP.dll pro 5 vývojářů ve verzi 5.78, 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.
Verze 8.65 je stále ke stažení na stejném místě pod názvem EETSetupFull865.zip resp. EETXPSetupFull865.zip.
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).
8.65 (29.11.2016)
- Oprava: Volání CertExpiration při špatném certifikátu / heslu skončilo chybou v dll. Nyní je korektně vrácen text chyby.
- Úpravy jádra pro následující verzi.
Verze 8.x se po měsíci zkušebního provozu jeví jako stabilní a kromě opravy případných chyb se do ní neplánují žádné další úpravy či rozšíření funkcionality.
8.01 (15.11.2016)
- Načtený privátní klíč z certifikátu se při neúspěchu uložit se do User storage uloží do Machine storage.
- Verze DLL (Leet.Ver) se zobrazuje i v operačním systému v čísle verze DLL.
Tento upgrade obchází chybu 'Invalid provider type specified' při práci s certifikáty u starších vývojových prostředí (např. ASP, nikoliv ASP.net) a nepřináší žádná jiná vylepšení. Pokud nemáte tento problém, není nutné upgrade instalovat a lze zůstat u verze 8.00.
8.00 (2.11.2016)
- Nová vlastnost Exception, která slouží k vypsání kompletní chyby z .net v případě nestandardních situací. Slouží pro snadnější odstranění případných problémů vývojového prostředí s knihovnou. Vlastnost není určena pro přímé využití v aplikaci.
- Nová vlastnost CertExpiration vracející datum a čas exspirace certifikátu.
- Oprava SetUp, aby se v nainstalovaných programech objevila správná verze dll (nikoliv 6.85).
- Zavedení nové chyby, pokud se za certifikát zvolí soubor, ze kterého nelze získat privátní klíč (např. cacer.crt).
- V případě komunikační chyby u XP verze je do textu vložený celý řetěz InnerException pro lepší detekci problému.
- Obě verze knihovny jsou generovány se silným jménem (Assembly signed with a strong name).
Ná zakladě odezvy uživatelů, zůstane defaultové URL knihovny nastavené na PlayGround i po rozjezdu ostré verze EET.
7.00 (11.10.2016)
- Úpravy dané novým rozhraním EET verze 3.1:
- EETVer nastaveno na 3.1.
- Komunikace v ověřovacím režimu zobrazí i případná varování.
- Nová verze https knihovny pro EETXP.
6.99 (10.10.2016)
- Oprava: Za určitých okolností knihovna odeslala záporné částky kladně, tedy bez znaménka '-'.
6.85 (22.09.2016)
- Chybová hláška "Communication error" je pro lepší detekci problémů rozšířena o propagaci chyby z .net
- DLL vrací ve stringu další informaci a to o důvěryhodnosti opdovědi (Ano/Ne), takže řetězec má nyní podobu FIK, Chyba, Varování, Důvěryhodnost
Pokud je komunikace v režimu ověření, je odpověď z EET bez podpisu a proto je vždy vráceno
Důvěryhodnost: Ne.
6.71 (16.09.2016)
- Nová metoda ResponseTrusted vrací booleovskou hodnotu, zda je EET odpověď ověřená a z důvěryhodného zdroje. Pro správnou kontrolu musí být nainstalovaný kořenový certifikát EET na pc, kde se komunikace provádí. Pokud k ověření nedojde (ResponseTrusted = false), neovlivní to nijak vrácený FIK či chování knihovny.
Pokud je komunikace v režimu ověření, je odpověď z EET bez podpisu a proto je vždy ResponseTrusted = false.
6.00 (6.9.2016)
- Odchycení chyby při problémech s certifikátem (špatné heslo, špatná cesta, apod.). Chyba je při volání metody Trzba propagována s hodnotou -3 (Vysl), v textu chyby je převzatý text z .net (Chyba_Text) a i ve vráceném řetězci z metody (FIK, Chyba
, Varování). BKP a PKP jsou nastaveny na prázdný řetězec.
- Metoda Crypto nyní vrací hodnotu (string). "0" znamená úspěch, v opačném příadě je vrácen text chybové hlášky.
5.90 (01.09.2016)
- Oprava: Dotaz na VarovaniLen, VarovaniKod(i) a VarovaniText(i) před prvním odesláním na EET způsobilo chybu.
5.78 (31.08.2016)
- EETXP obsahuje novou verzi externí komunikační knihovny pro TLS1.2.
5.38 (26.08.2016)
- DLL je kromě existující verze Win7+ (.net 4.5) také ve verzi XP+ (.net 4.0 + komunikační knihovny pro TLS1.2)
5.17 (26.08.2016)
- Rozšíření vraceného řetězce o seznam varování (FIK, Chyba, Varování)
5.08 (25.08.2016)
- Přepis knihovny aby bylo jádro kompatibilní s .net 4.0
4.91 (24.08.2016)
- Metoda SetT_ vrací nově hodnotu.
úspěch = 0
neúspěch = -1
4.51 (22.08.2016)
- Nová metoda SetT_("Vlastnost","Hodnota"), která umožňuje nastavit hodnoty T_ vlastností jako řetězec. Důvod je ten, že některá vývojová prostředí mají problém předat knihovně parametr, který je Decimal.
Příklad:
Leet.SetT_("T_DPH1","15.2")
4.48 (21.08.2016)
- Nová metoda Trzba_kr_string, shodná s metodou Trzba_kr s tím rozdílem, že částka se předává jako řetězec. Důvod je ten, že některá vývojová prostředí mají problém předat knihovně parametr, který je Decimal.
4.44 (20.08.2016)
- Nová vlastnost EETVer zobrazující verzi EET rozhraní, proti kterému je DLL napsána.
- Nová vlastnost Zprava, která zobrazí SOAP XML před podpisem. Vhodné pro kontrolu, zda je vše správně vyplněno.
Příklad:
?Leet.Zprava
?Leet.EETVer
4.01 (19.08.2016)
- Nová metoda SetURL umožňující definovat adresu webové služby (pouze ostrá verze).
3.78 (17.08.2016)
- Zapracování rozhraní EET verze 3.0.
- Nové metody pro vrácení Varování z EET: VarovaniLen, VarovaniKod(i), VarovaniText(i)
3.12 (30.07.2016)
- Metoda Crypto, která generuje BKP a PKP nastavena jako Public, takže je možné použít knihovnu bez komunikace s EET. Vhodné pro offline zákazníky (pouze ostrá verze).
3.01 (28.07.2016)
- Z parametru UUID se odstraní mezery, takže už lze volat i jako " " a DLL vygeneruje vlastní UUID. Doposud se parametr nenulové délky považoval za validní UUID a předal se EET.
- Oprava: Při prázdném parametru data dokladu se vygenerovalo správné datum "Nyní" pro komunikaci s EET, ale do PKPPlain se předala prázdná hodnota parametru, takže PKPPLain i BKP a PKP byly chybně.
2.75 (12.07.2016)
- Privátní klíč se z certifikátu zjišťoval při každé komunikaci. Nově se zjistí pouze před prvou komunikaci s EET. Změna hesla či certifikátu načte privátní klíč znova.
1.26 (03.07.2016)
První funkční komunikující verze.