SNMP4J 3.6.4 has been released 2021-12-14T23:00:00Z to fix a DTLS regression and improve TLS NIO operations.
This version includes some fixes that are important when using SNMP4J with SNMP4J-Agent and SNMP4J-Agent-DB with persistent storage of USM keys. All version 3.x users should consider upgrading to at least this or later releases.
CHANGES
[2021-12-15] Version 3.6.4:
- Fixed: Possible busy looping for ready read and write keys in
TLSTM
caused by half-closed TLS connections and Java runtimes that reportNEED_WRAP
status from SSLEngine instead ofFINISHED
after processing CLOSED TLS warnings (i.e., after half-closing the connection). - Fixed: Possible write key busy looping in
TLSTM
caused whenNEED_TASK
is returned bySSLEngine.wrap
on writing a queued message. - Fixed: Bug in
DTLSTM.HandshakeTask.run()
which causedDTLSTM
handshake not to finish within timeout causing connect to fail or to be slow. - Fixed: Possible race condition in
AbstractSocketEntry.nextBusyLoop
. - Improved: JavaDoc.
[2021-12-04] Version 3.6.3:
- Fixed: Clean TLS session closing with
TLSTM.SocketEntry.closeSession()
(regression since 3.0.6) and improvedINFO
logging when session is closed. - Fixed: NPE in
DefaultTlsTmSecurityCallback
if local fingerprint is null. - Fixed: Possible NPE when sending TLS message without
tmStateReference
. - Fixed: Deprecated warnings regarding X500 certificates
getSubjectDN
andgetIssuerDN
. - Fixed: Corrected accepted issuer DN for
sendMessageWithPDUDnsCertPathVerification
test. - Added:
UsmUserEntry.setOwnerReference
andUsmUserEntry.getOwnerReference
to fix [AS-24]. - Added: Unit test
TLSTMTest.testCloseSession()
to test session close and correctTransportStateEvent
firing. - Added:
UsmUserEntry.setOwnerReference(Object)
andUsmUserEntry.getOwnerReference(Object)
to mark the origin ofUsmUserEntry
instances during creation and event processing to avoid cyclic event processing. - Improved: Removed busy wait in
DTLSTM.SocketEntry
. - Improved: Transport state event sending for closed connections that are closed via TLS messages but not (yet) via closed TCP connections.
[2021-11-23] Version 3.6.2:
- Fixed: Split up
TLSTM
unit test in two independent tests for testing with and without certificate revocation checks enabled or not.
[2021-11-15] Version 3.6.1:
- Fixed [SFJ-244]: Removed secret information (keys and passwords) from any log output (by default). To re-activate log output, use
SNMP4JSettings.setSecretLoggingEnabled(true)
. - Added: Default non-printable character support for
OctetString.toString()
. - Added: Global OctetString non-printable character escaping using
SNMP4JSettings.setDefaultNonPrintableEscapeCharacter(Character)
. - Improved:
USM.addUser
withoutlocalEngineID
parameter now uses the localisation engine ID of the providedUsmUser
(if the user is localized) instead using an empty engine ID (which had broken the user credentials if used so far).