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
TLSTMcaused by half-closed TLS connections and Java runtimes that reportNEED_WRAPstatus from SSLEngine instead ofFINISHEDafter processing CLOSED TLS warnings (i.e., after half-closing the connection). - Fixed: Possible write key busy looping in
TLSTMcaused whenNEED_TASKis returned bySSLEngine.wrapon writing a queued message. - Fixed: Bug in
DTLSTM.HandshakeTask.run()which causedDTLSTMhandshake 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 improvedINFOlogging when session is closed. - Fixed: NPE in
DefaultTlsTmSecurityCallbackif local fingerprint is null. - Fixed: Possible NPE when sending TLS message without
tmStateReference. - Fixed: Deprecated warnings regarding X500 certificates
getSubjectDNandgetIssuerDN. - Fixed: Corrected accepted issuer DN for
sendMessageWithPDUDnsCertPathVerificationtest. - Added:
UsmUserEntry.setOwnerReferenceandUsmUserEntry.getOwnerReferenceto fix [AS-24]. - Added: Unit test
TLSTMTest.testCloseSession()to test session close and correctTransportStateEventfiring. - Added:
UsmUserEntry.setOwnerReference(Object)andUsmUserEntry.getOwnerReference(Object)to mark the origin ofUsmUserEntryinstances 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
TLSTMunit 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.addUserwithoutlocalEngineIDparameter 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).