Module org.snmp4j

Class SecurityProtocols

java.lang.Object
org.snmp4j.security.SecurityProtocols
All Implemented Interfaces:
Serializable

public class SecurityProtocols extends Object implements Serializable
The SecurityProtocols class holds all authentication and privacy protocols for a SNMP entity.

To register security protocols other than the default, set the system property SECURITY_PROTOCOLS_PROPERTIES to a customized version of the SecurityProtocols.properties file. The path has to be specified relatively to this class.

Version:
3.5.0
Author:
Frank Fock, Jochen Katz
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • removeAll

      public void removeAll()
      Remove all security protocols from this set.
      Since:
      3.5.0
    • addPredefinedProtocolSet

      public void addPredefinedProtocolSet(SecurityProtocols.SecurityProtocolSet initialSecurityProtocolSet)
      Add a consistent, predefined, set of security protocols to this security protocol set.
      Parameters:
      initialSecurityProtocolSet - the set that defines the protocols to add.
      Since:
      3.5.0
    • getInstance

      public static SecurityProtocols getInstance()
      Get an instance of class SecurityProtocols.
      Returns:
      the globally used SecurityProtocols object.
    • setSecurityProtocols

      public static void setSecurityProtocols(SecurityProtocols securityProtocols)
      Set the SecurityProtocols
      Parameters:
      securityProtocols - SecurityProtocols
    • getSecurityProtocol

      public SecurityProtocol getSecurityProtocol(OID protocolID)
      Get the security protocol (AuthenticationProtocol or PrivacyProtocol) for the specified protocol OID.
      Parameters:
      protocolID - an object identifier of the security protocol to return.
      Returns:
      the security protocol or null if a protocol with such an ID has not been added yet.
      Since:
      2.6.0
    • addDefaultProtocols

      public SecurityProtocols addDefaultProtocols()
      Add the default SecurityProtocols.

      The names of the SecurityProtocols to add are read from a properties file.

      Returns:
      this SecurityProtocols instance for chaining configuration.
      Throws:
      InternalError - if SNMP4JSettings.isExtensibilityEnabled() is true and corresponding properties file with the security protocols configuration cannot be opened/read.
    • addAuthenticationProtocol

      public void addAuthenticationProtocol(AuthenticationProtocol auth)
      Add the given AuthenticationProtocol. If an authentication protocol with the supplied ID already exists, the supplied authentication protocol will not be added and the security protocols will not be unchang.
      Parameters:
      auth - the AuthenticationProtocol to add (an existing authentication protcol with auth's ID remains unchanged).
    • getAuthenticationProtocol

      public AuthenticationProtocol getAuthenticationProtocol(OID id)
      Get the AuthenticationProtocol with the given ID.
      Parameters:
      id - The unique ID (specified as OID) of the AuthenticationProtocol.
      Returns:
      the AuthenticationProtocol object if it was added before, or null if not.
    • removeAuthenticationProtocol

      public void removeAuthenticationProtocol(OID authOID)
      Remove the given AuthenticationProtocol.
      Parameters:
      authOID - The object identifier of the protocol to remove
    • addPrivacyProtocol

      public void addPrivacyProtocol(PrivacyProtocol priv)
      Add the given PrivacyProtocol. If a privacy protocol with the supplied ID already exists, the supplied privacy protocol will not be added and the security protocols will not be changed.
      Parameters:
      priv - the PrivacyProtocol to add (an existing privacy protocol with priv's ID remains unchanged).
    • getPrivacyProtocol

      public PrivacyProtocol getPrivacyProtocol(OID id)
      Get the PrivacyProtocol with the given ID.
      Parameters:
      id - The unique ID (specified as OID) of the PrivacyProtocol.
      Returns:
      the PrivacyProtocol object if it was added before, or null if not.
    • removePrivacyProtocol

      public void removePrivacyProtocol(OID privOID)
      Remove the given PrivacyProtocol.
      Parameters:
      privOID - The object identifier of the protocol to remove
    • passwordToKey

      public byte[] passwordToKey(OID authProtocolID, OctetString passwordString, byte[] engineID)
      Generates the localized key for the given password and engine id for the authentication protocol specified by the supplied OID.
      Parameters:
      authProtocolID - an OID identifying the authentication protocol to use.
      passwordString - the authentication pass phrase.
      engineID - the engine ID of the authoritative engine.
      Returns:
      the localized authentication key.
    • passwordToKey

      public byte[] passwordToKey(OID privProtocolID, OID authProtocolID, OctetString passwordString, byte[] engineID)
      Generates the localized key for the given password and engine id for the privacy protocol specified by the supplied OID.
      Parameters:
      privProtocolID - an OID identifying the privacy protocol the key should be created for.
      authProtocolID - an OID identifying the authentication protocol to use.
      passwordString - the authentication pass phrase.
      engineID - the engine ID of the authoritative engine.
      Returns:
      the localized privacy key.
    • getMaxAuthDigestLength

      public int getMaxAuthDigestLength()
      Gets the maximum authentication key length of the all known authentication protocols.
      Returns:
      the maximum authentication key length of all authentication protocols that have been added to this SecurityProtocols instance.
    • getMaxPrivDecryptParamsLength

      public int getMaxPrivDecryptParamsLength()
      Gets the maximum privacy key length of the currently known privacy protocols.
      Returns:
      the maximum privacy key length of all privacy protocols that have been added to this SecurityProtocols instance.
    • truncateKey

      public byte[] truncateKey(byte[] key, int maxKeyLength)
      Limits the supplied key value to the specified maximum length
      Parameters:
      key - the key to truncate.
      maxKeyLength - the maximum length of the returned key.
      Returns:
      the truncated key with a length of min(key.length, maxKeyLength).
      Since:
      1.9
    • getSecurityProtocolOIDs

      public Collection<OID> getSecurityProtocolOIDs(SecurityProtocols.SecurityProtocolType securityProtocolType)
      Returns the object identifiers (OIDs) of the SecurityProtocols known to this SecurityProtocols instance that have the specified type.
      Parameters:
      securityProtocolType - the security protocol type (authentication or privacy).
      Returns:
      a collection of security protocol identifiers of the specified type or null if the type is not supported by this instance.
      Since:
      3.3.4