org.snmp4j.security
Class UsmUser

java.lang.Object
  extended by org.snmp4j.security.UsmUser
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, User

public class UsmUser
extends java.lang.Object
implements User, java.lang.Comparable, java.lang.Cloneable

The UsmUser class represents USM user providing information to secure SNMPv3 message exchange. A user is characterized by its security name and optionally by a authentication protocol and passphrase as well as a privacy protocol and passphrase.

There are no mutators for the attributes of this class, to prevent inconsistent states in the USM, when a user is changed from outside.

Version:
1.6
Author:
Frank Fock
See Also:
Serialized Form

Constructor Summary
UsmUser(OctetString securityName, OID authenticationProtocol, OctetString authenticationPassphrase, OID privacyProtocol, OctetString privacyPassphrase)
          Creates a USM user.
UsmUser(OctetString securityName, OID authenticationProtocol, OctetString authenticationPassphrase, OID privacyProtocol, OctetString privacyPassphrase, OctetString localizationEngineID)
          Creates a localized USM user.
 
Method Summary
 java.lang.Object clone()
           
 int compareTo(java.lang.Object o)
          Compares two USM users by their security names.
 OctetString getAuthenticationPassphrase()
          Gets the authentication passphrase.
 OID getAuthenticationProtocol()
          Gets the authentication protocol ID.
 OctetString getLocalizationEngineID()
          Returns the localization engine ID for which this USM user has been already localized.
 OctetString getPrivacyPassphrase()
          Gets the privacy passphrase.
 OID getPrivacyProtocol()
          Gets the privacy protocol ID.
 int getSecurityModel()
          Gets the security model ID of the USM.
 OctetString getSecurityName()
          Gets the user's security name.
 boolean isLocalized()
          Indicates whether the passphrases of this USM user need to be localized or not (true is returned in that case).
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UsmUser

public UsmUser(OctetString securityName,
               OID authenticationProtocol,
               OctetString authenticationPassphrase,
               OID privacyProtocol,
               OctetString privacyPassphrase)
Creates a USM user.

Parameters:
securityName - the security name of the user (typically the user name).
authenticationProtocol - the authentication protcol ID to be associated with this user. If set to null, this user only supports unauthenticated messages.
authenticationPassphrase - the authentication passphrase. If not null, authenticationProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
privacyProtocol - the privacy protcol ID to be associated with this user. If set to null, this user only supports unencrypted messages.
privacyPassphrase - the privacy passphrase. If not null, privacyProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.

UsmUser

public UsmUser(OctetString securityName,
               OID authenticationProtocol,
               OctetString authenticationPassphrase,
               OID privacyProtocol,
               OctetString privacyPassphrase,
               OctetString localizationEngineID)
Creates a localized USM user.

Parameters:
securityName - the security name of the user (typically the user name).
authenticationProtocol - the authentication protcol ID to be associated with this user. If set to null, this user only supports unauthenticated messages.
authenticationPassphrase - the authentication passphrase. If not null, authenticationProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
privacyProtocol - the privacy protcol ID to be associated with this user. If set to null, this user only supports unencrypted messages.
privacyPassphrase - the privacy passphrase. If not null, privacyProtocol must also be not null. RFC3414 §11.2 requires passphrases to have a minimum length of 8 bytes. If the length of authenticationPassphrase is less than 8 bytes an IllegalArgumentException is thrown.
localizationEngineID - if not null, the localizationEngineID specifies the engine ID for which the supplied passphrases are already localized. Such an USM user can only be used with the target whose engine ID equals localizationEngineID.
Method Detail

getSecurityName

public OctetString getSecurityName()
Gets the user's security name.

Returns:
a clone of the user's security name.

getAuthenticationProtocol

public OID getAuthenticationProtocol()
Gets the authentication protocol ID.

Returns:
a clone of the authentication protocol ID or null.

getPrivacyProtocol

public OID getPrivacyProtocol()
Gets the privacy protocol ID.

Returns:
a clone of the privacy protocol ID or null.

getAuthenticationPassphrase

public OctetString getAuthenticationPassphrase()
Gets the authentication passphrase.

Returns:
a clone of the authentication passphrase or null.

getPrivacyPassphrase

public OctetString getPrivacyPassphrase()
Gets the privacy passphrase.

Returns:
a clone of the privacy passphrase or null.

getLocalizationEngineID

public OctetString getLocalizationEngineID()
Returns the localization engine ID for which this USM user has been already localized.

Returns:
null if this USM user is not localized or the SNMP engine ID of the target for which this user has been localized.
Since:
1.6

isLocalized

public boolean isLocalized()
Indicates whether the passphrases of this USM user need to be localized or not (true is returned in that case).

Returns:
true if the passphrases of this USM user represent localized keys.
Since:
1.6

getSecurityModel

public int getSecurityModel()
Gets the security model ID of the USM.

Returns:
USM.getID()

compareTo

public int compareTo(java.lang.Object o)
Compares two USM users by their security names.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
o - another UsmUser instance.
Returns:
a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

Copyright 2005-2010 Frank Fock (SNMP4J.org)

Copyright © 2011 SNMP4J.org. All Rights Reserved.