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
DirectUserTargetwith unlocalized passphrases can now be used in multiple threads concurrently
becauseDirectUserTarget.setAuthoritativeEngineIDis now synchronized. - Improved: Implemented
.clone()for subclasses ofTransportIpAddress. - 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 ofDirectUserTargettargets simplifies engine ID discovery which is only allowed forDirectUserTargetconstructed using this an empty authoritative engine ID ifUSM.isEngineDiscoveryEnabled()returns true for the usedUSMinstance.
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 anUSM. - 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
TargetBuilderare now log protected too (using SecretOctetString). - Fixed:
Snmp.setLocalizedUserCredentialsnow usesSecretOctetStringfor auth and priv keys as well. - Updated: (D)TLS test certificates.