<div dir="ltr"><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">Erlang/OTP 22.3 is the last planned patch package for the 22 major release with new features, improvements and bugfixes. Below follows some highlights.</p><h3 style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;font-size:1.25em;line-height:1.25;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">Highlights</h3><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px"><li style="box-sizing:border-box"><span style="box-sizing:border-box;font-weight:600">ssl/public_key</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">Implementation of the key and initialization vector<br style="box-sizing:border-box">update feature, and general hardening of TLS 1.3.<br style="box-sizing:border-box">There are cryptographic limits on the amount of<br style="box-sizing:border-box">plaintext which can be safely encrypted under a given set of keys.<br style="box-sizing:border-box">This change enforces those limits by triggering<br style="box-sizing:border-box">automatic key updates on TLS 1.3 connections.</li><li style="box-sizing:border-box;margin-top:0.25em">Add support for TLS 1.3 Session Tickets (stateful and<br style="box-sizing:border-box">stateless). This allows session resumption using keying<br style="box-sizing:border-box">material from a previous successful handshake.</li><li style="box-sizing:border-box;margin-top:0.25em">Add support for key exchange with Edward curves and<br style="box-sizing:border-box">PSS-RSA padding in signature verification.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">erts</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">A socket "registry" has been added making it possible to list current open sockets.</li><li style="box-sizing:border-box;margin-top:0.25em">Add a "full featured" version of getifaddrs in the net module.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">ssh</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">The new functions ssh:set_sock_opts/2 and ssh:get_sock_opts/2 sets and reads option values for<br style="box-sizing:border-box">the underlying TCP stream.</li><li style="box-sizing:border-box;margin-top:0.25em">Changes to the internal api of the experimental <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">ssh_dbg</code> tool.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">common_test</span>: The ct_property_test has now a report function for<br style="box-sizing:border-box">results of stateful testing.</li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">stdlib</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">Implement uri_string:resolve/{2,3} that can be used to<br style="box-sizing:border-box">resolve a URI reference against a base URI.</li><li style="box-sizing:border-box;margin-top:0.25em">In gen_statem it is now possible to change the callback<br style="box-sizing:border-box">module for a running server. See gen_statem's<br style="box-sizing:border-box">documentation for <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">change_callback_module</code>,<br style="box-sizing:border-box"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">push_callback_module</code>, and <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">pop_callback_module</code>.</li></ul></li></ul><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">For more details see<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_src_22.3.readme" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_src_22.3.readme</a><br style="box-sizing:border-box">Pre built versions for Windows can be fetched here:<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_win32_22.3.exe" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_win32_22.3.exe</a><br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_win64_22.3.exe" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_win64_22.3.exe</a><br style="box-sizing:border-box">Online documentation can be browsed here:<br style="box-sizing:border-box"><a href="http://erlang.org/doc/search/" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/doc/search/</a><br style="box-sizing:border-box">The source tarball can be fetched here:<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_src_22.3.tar.gz" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_src_22.3.tar.gz</a><br style="box-sizing:border-box">The documentation can be fetched here:<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_doc_html_22.3.tar.gz" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_doc_html_22.3.tar.gz</a><br style="box-sizing:border-box">The man pages can be fetched here:<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_doc_man_22.3.tar.gz" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none">http://erlang.org/download/otp_doc_man_22.3.tar.gz</a><br style="box-sizing:border-box">The Erlang/OTP source can also be found at GitHub on the official Erlang repository:<br style="box-sizing:border-box"><a href="https://github.com/erlang/otp/tree/OTP-22.3">https://github.com/erlang/otp/tree/OTP-22.3</a><br></p><p style="box-sizing:border-box;margin-top:0px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;margin-bottom:0px">Thank you for all your contributions!</p></div>