SNMP4J 3.9.4 Release

SNMP4J 3.9.4 has been released on 2025-06-13T22:00:00Z with support for DirectUserTarget without immediate localisation of USM keys.

CHANGELOG

[2025-05-14] Version 3.9.4:

  • Improved: A DirectUserTarget with unlocalized passphrases can now be used in multiple threads concurrently
    because DirectUserTarget.setAuthoritativeEngineID is now synchronized.
  • Improved: Implemented .clone() for subclasses of TransportIpAddress.
  • Improved: Unit tests are using loopback address instead localhost to avoid permission and security issues.
  • Fixed: JavaDoc issues.
  • Added: DirectUserTarget(A address, OctetString securityName, AuthenticationProtocol authenticationProtocol, OctetString authenticationPassphrase, PrivacyProtocol privacyProtocol, OctetString privacyPassphrase) constructor to support non-localized direct user targets. This new usage of DirectUserTarget targets simplifies engine ID discovery which is only allowed for DirectUserTarget constructed using this an empty authoritative engine ID if USM.isEngineDiscoveryEnabled() returns true for the used USM instance.
    Using non-localized DirectUserTarget instances helps to communicate with different passphrases for same security names but different target addresses which is not possible using users added to the an USM.
  • Added: TargetBuilder.DirectUserBuilder.deferLocalizationUntilFirstUsage() to the fluent interface in order to support creation of non-localized DirectUserTarget using the fluent interface as well.
  • Fixed: Auth and priv keys/passphrases created by TargetBuilder are now log protected too (using SecretOctetString).
  • Fixed: Snmp.setLocalizedUserCredentials now uses SecretOctetString for auth and priv keys as well.
  • Updated: (D)TLS test certificates.