-
- All Known Implementing Classes:
SNMPv3SecurityModel,TSM,USM
public interface SecurityModelTheSecurityModelinterface as described in RFC3411 section 4.4 and RFC 5590 section 5.- Version:
- 3.4.0
- Author:
- Frank Fock
-
-
Field Summary
Fields Modifier and Type Field Description static intSECURITY_MODEL_ANYstatic intSECURITY_MODEL_SNMPv1static intSECURITY_MODEL_SNMPv2cstatic intSECURITY_MODEL_TSMstatic intSECURITY_MODEL_USM
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description intgenerateRequestMessage(int messageProcessingModel, byte[] globalData, int maxMessageSize, int securityModel, byte[] securityEngineID, byte[] securityName, int securityLevel, BERInputStream scopedPDU, SecurityParameters securityParameters, BEROutputStream wholeMsg, TransportStateReference tmStateReference, SecurityStateReference securityStateReference)Generate a request message.intgenerateResponseMessage(int messageProcessingModel, byte[] globalData, int maxMessageSize, int securityModel, byte[] securityEngineID, byte[] securityName, int securityLevel, BERInputStream scopedPDU, SecurityStateReference securityStateReference, SecurityParameters securityParameters, BEROutputStream wholeMsg)Generates a response message.intgetID()Gets the ID of the security model.booleanhasAuthoritativeEngineID()Checks whether thisSecurityModelhas an authoritative engine ID.SecurityParametersnewSecurityParametersInstance()Creates a newSecurityParametersinstance that corresponds to this security model.SecurityStateReferencenewSecurityStateReference()Creates a newSecurityStateReferenceinstance that corresponds to this security model.intprocessIncomingMsg(int messageProcessingModel, int maxMessageSize, SecurityParameters securityParameters, SecurityModel securityModel, int securityLevel, BERInputStream wholeMsg, TransportStateReference tmStateReference, OctetString securityEngineID, OctetString securityName, BEROutputStream scopedPDU, Integer32 maxSizeResponseScopedPDU, SecurityStateReference securityStateReference, StatusInformation statusInfo)Processes an incoming message and returns its plaintext payload.booleansupportsEngineIdDiscovery()Checks whether thisSecurityModelsupports authoritative engine ID discovery.
-
-
-
Field Detail
-
SECURITY_MODEL_ANY
static final int SECURITY_MODEL_ANY
- See Also:
- Constant Field Values
-
SECURITY_MODEL_SNMPv1
static final int SECURITY_MODEL_SNMPv1
- See Also:
- Constant Field Values
-
SECURITY_MODEL_SNMPv2c
static final int SECURITY_MODEL_SNMPv2c
- See Also:
- Constant Field Values
-
SECURITY_MODEL_USM
static final int SECURITY_MODEL_USM
- See Also:
- Constant Field Values
-
SECURITY_MODEL_TSM
static final int SECURITY_MODEL_TSM
- See Also:
- Constant Field Values
-
-
Method Detail
-
getID
int getID()
Gets the ID of the security model.- Returns:
- one of the integer constants defined in the
SecurityModelinterface. - See Also:
SECURITY_MODEL_ANY,SECURITY_MODEL_SNMPv1,SECURITY_MODEL_SNMPv2c,SECURITY_MODEL_USM
-
newSecurityParametersInstance
SecurityParameters newSecurityParametersInstance()
Creates a newSecurityParametersinstance that corresponds to this security model.- Returns:
- a new
SecurityParametersinstance.
-
newSecurityStateReference
SecurityStateReference newSecurityStateReference()
Creates a newSecurityStateReferenceinstance that corresponds to this security model.- Returns:
- a new
SecurityStateReferenceinstance.
-
generateRequestMessage
int generateRequestMessage(int messageProcessingModel, byte[] globalData, int maxMessageSize, int securityModel, byte[] securityEngineID, byte[] securityName, int securityLevel, BERInputStream scopedPDU, SecurityParameters securityParameters, BEROutputStream wholeMsg, TransportStateReference tmStateReference, SecurityStateReference securityStateReference) throws java.io.IOExceptionGenerate a request message.- Parameters:
messageProcessingModel- the ID of the message processing model (SNMP version) to use.globalData- the message header and admin data.maxMessageSize- the maximum message size of the sending (this) SNMP entity for the selected transport mapping (determined by the message processing model).securityModel- the security model for the outgoing message.securityEngineID- the authoritative SNMP entity.securityName- the principal on behalf of this message is generated.securityLevel- the requestedSecurityLevel.scopedPDU- a BERInputStream containing the message (plain text) payload.securityParameters- returns theSecurityParametersfilled by the security model.wholeMsg- returns the complete generated message in aBEROutputStream. The buffer ofwholeMsgis set tonullby the caller and must be set by the implementation of this method.tmStateReference- the transport model state reference as defined by RFC 5590.securityStateReference- aSecurityStateReferenceinstance collecting information for response processing, i.e. should benullif no response is expected. This security state reference will be stored in the message processing model cache for response processing.- Returns:
- the error status of the message generation. On success
SnmpConstants.SNMPv3_USM_OKis returned, otherwise one of the otherSnmpConstants.SNMPv3_USM_*values is returned. - Throws:
java.io.IOException- if generation of the message fails because of an internal or an resource error.
-
generateResponseMessage
int generateResponseMessage(int messageProcessingModel, byte[] globalData, int maxMessageSize, int securityModel, byte[] securityEngineID, byte[] securityName, int securityLevel, BERInputStream scopedPDU, SecurityStateReference securityStateReference, SecurityParameters securityParameters, BEROutputStream wholeMsg) throws java.io.IOExceptionGenerates a response message.- Parameters:
messageProcessingModel- the ID of the message processing model (SNMP version) to use.globalData- the message header and admin data.maxMessageSize- the maximum message size of the sending (this) SNMP entity for the selected transport mapping (determined by the message processing model).securityModel- the security model for the outgoing message.securityEngineID- the authoritative SNMP entity.securityName- the principal on behalf of this message is generated.securityLevel- the requestedSecurityLevel.scopedPDU- a BERInputStream containing the message (plain text) payload.securityStateReference- aSecurityStateReferenceinstance providing information from original request.securityParameters- returns theSecurityParametersfilled by the security model.wholeMsg- returns the complete generated message in aBEROutputStream. The buffer ofwholeMsgis set tonullby the caller and must be set by the implementation of this method.- Returns:
- the error status of the message generation. On success
SnmpConstants.SNMPv3_USM_OKis returned, otherwise one of the otherSnmpConstants.SNMPv3_USM_*values is returned. - Throws:
java.io.IOException- if generation of the message fails because of an internal or an resource error.
-
processIncomingMsg
int processIncomingMsg(int messageProcessingModel, int maxMessageSize, SecurityParameters securityParameters, SecurityModel securityModel, int securityLevel, BERInputStream wholeMsg, TransportStateReference tmStateReference, OctetString securityEngineID, OctetString securityName, BEROutputStream scopedPDU, Integer32 maxSizeResponseScopedPDU, SecurityStateReference securityStateReference, StatusInformation statusInfo) throws java.io.IOExceptionProcesses an incoming message and returns its plaintext payload.- Parameters:
messageProcessingModel- the ID of the message processing model (SNMP version) to use.maxMessageSize- the maximum message size of the message processing model for the transport mapping associated with this message's source address less the length of the maximum header length of the message processing model. This value is used by the security model to determine themaxSizeResponseScopedPDUvalue.securityParameters- theSecurityParametersfor the received message.securityModel- theSecurityModelinstance for the received message.securityLevel- theSecurityLevelID.wholeMsg- theBERInputStreamcontaining the whole message as received on the wire.tmStateReference- the transport model state reference as defined by RFC 5590.securityEngineID- the authoritative SNMP entity.securityName- the identification of the principal.scopedPDU- returns the message (plaintext) payload into the suppliedBEROutputStream. The buffer ofscopedPDUis set tonullby the caller and must be set by the implementation of this method.maxSizeResponseScopedPDU- the determined maximum size for a response PDU.securityStateReference- theSecurityStateReferenceinformation needed for a response.statusInfo- theStatusInformationneeded to generate reports if processing of the incoming message failed.- Returns:
- the error status of the message processing. On success
SnmpConstants.SNMPv3_USM_OKis returned, otherwise one of the otherSnmpConstants.SNMPv3_USM_*values is returned. - Throws:
java.io.IOException- if an unexpected (internal) or an resource error occurred.
-
supportsEngineIdDiscovery
boolean supportsEngineIdDiscovery()
Checks whether thisSecurityModelsupports authoritative engine ID discovery. TheUSMfor instance, returnstruewhereasTSMreturnsfalse. See also RFC 5343 3.2 for details.- Returns:
trueif this security model has its own authoritative engine ID discovery mechanism.
-
hasAuthoritativeEngineID
boolean hasAuthoritativeEngineID()
Checks whether thisSecurityModelhas an authoritative engine ID.- Returns:
trueif an authoritative engine ID is exchanged between command sender and responder using this security model,falseotherwise.
-
-