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
becauseDirectUserTarget.setAuthoritativeEngineID
is 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 ofDirectUserTarget
targets simplifies engine ID discovery which is only allowed forDirectUserTarget
constructed using this an empty authoritative engine ID ifUSM.isEngineDiscoveryEnabled()
returns true for the usedUSM
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 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
TargetBuilder
are now log protected too (using SecretOctetString). - Fixed:
Snmp.setLocalizedUserCredentials
now usesSecretOctetString
for auth and priv keys as well. - Updated: (D)TLS test certificates.