2017-08-06 23:08:37
HCM i OpenSSL 1.1.0+

Normalnie nie wypowiadam się o daily bo od tego jest changelog, ale dzisiaj zmiany są poważne: począwszy od dzisiejszego (6 VIII 2017) daily, HCM wymaga w systemie obecności bibliotek OpenSSL 1.1.0f lub nowszych. To też przekłada się na inny problem - HCM pod systemami Windows 2000 i starszymi nie ma obsługi TLS, więc nie zadziała z np. GMailem.

Dałem HCMa swojej dziewczynie do testów i oczywiście nie zadziałał. Po doinstalowaniu brakującego OpenSSLa, dalej nie dało rady go poprawnie skonfigurować, komunikacja z Gmailem nie działa. Wczoraj miałem chwilę czasu by pomyśleć czemu tak jest i dzisiaj mam gotowe rozwiązanie.
Okazuje się bowiem, że wraz z OpenSSL 1.1.0, pozmieniało się trochę w API tej biblioteki, wobec czego, rozsądnie (to nie ironia), pozmieniali nazwy plików bibliotek z libeay32.dll na libcrypto-1_1.dll oraz z libssl32.dll na libssl-1_1.dll, w skutek czego program nie znajdował zainstalowanego OpenSSLa. Wymagało to sporo zmian z mojej strony, ale przy okazji zabrałem się za porządki w modułach i HCM przez to schudł o parę kilo. Uznałem, że bez sensu, że robię konkurencję OpenSSLowi trzymając w binarce HCMa moją wersję kodu do obliczania sum SHA1 i MD5, skoro OpenSSL to ma i udostępnia. Lepiej, jeśli HCM widzi OpenSSLa i może z niego korzystać, to z niego i tak jak najbardziej korzysta! (głównie dlatego, że wersja OpenSSL jest prawie 4x szybsza...) ;) Tak więc dzisiaj pozbyłem się swoich implementacji i HCM obecnie wymaga OpenSSLa. Tak na szybko sprawdziłem jak to zadziała ze starszymi systemami i... Windows 95, 98 i 2000 niestety od teraz są problematyczne. Uznałem jednak, że skoro używa ich ok. 0,01% (jedna setna procenta) użytkowników internetu, to w zasadzie nie ma o czym rozmawiać. Potem może pomyślę o ręcznym przekompilowaniu OpenSSLa tak, by wróciła chociaż obsługa Windows 2000, ale to kwestia wolnego czasu, a mam dużo do roboty. Poza tym, usunięcie moich hasherów pozwoliło zmniejszyć HCMa o kolejnych kilka kilobajtów. Finalnym efektem sprzątania w kodzie TLS/kryptograficznym była poprawa wydajności szyfratora (o max. 7%) i nieznaczna redukcja użycia pamięci przez wewnętrzne klasy.

Przy okazji, poprawiłem też bug polegający na ignorowaniu żądań powiadomień o przeczytaniu nadanych przez klienty pocztowe Microsoftu (niestandardowy nagłówek "X-Confirm-Reading-To") -- HCM oczekiwał "X-Confirm-Reading". Ponadto, w oknie ustawienia konta, unikalne id jest generowane automatycznie na podstawie adresu e-mail, jeśli do tej pory id było puste.

Daily do pobrania ze strony HCMa.


Może Cię zainteresować...

Link | Skomentuj! | HCM, Tech
Pokazuj komentarze.
Powered by:
Hellcore Mailer - polski program pocztowyOpera Web BrowserFreeBSD - The Power to Serve!Slackware
RSSy:
Sidekick:
Projekty:
O autorze:
Zobacz:
Kategorie:
Archiwum:
Szukaj: