org.snmp4j.security
Interface AuthenticationProtocol

All Superinterfaces:
SecurityProtocol, java.io.Serializable
All Known Implementing Classes:
AuthGeneric, AuthMD5, AuthSHA

public interface AuthenticationProtocol
extends SecurityProtocol

The AuthenticationProtocol interface defines a common interface for all SNMP authentication protocols.

Version:
1.0
Author:
Frank Fock

Field Summary
static int MESSAGE_AUTHENTICATION_CODE_LENGTH
           
 
Method Summary
 boolean authenticate(byte[] authenticationKey, byte[] message, int messageOffset, int messageLength, ByteArrayWindow digest)
          Authenticates an outgoing message.
 byte[] changeDelta(byte[] oldKey, byte[] newKey, byte[] random)
          Computes the delta digest needed to remotely change an user's authenitcation key.
 int getDigestLength()
          Gets the length of the digest generated by this authentication protocol.
 OID getID()
          Gets the OID uniquely identifying the authentication protocol.
 byte[] hash(byte[] data)
          Generates a hash value for the given data.
 byte[] hash(byte[] data, int offset, int length)
          Generates a hash value for the given data.
 boolean isAuthentic(byte[] authenticationKey, byte[] message, int messageOffset, int messageLength, ByteArrayWindow digest)
          Authenticates an incoming message.
 byte[] passwordToKey(OctetString passwordString, byte[] engineID)
          Generates the localized key for the given password and engine id.
 

Field Detail

MESSAGE_AUTHENTICATION_CODE_LENGTH

static final int MESSAGE_AUTHENTICATION_CODE_LENGTH
See Also:
Constant Field Values
Method Detail

authenticate

boolean authenticate(byte[] authenticationKey,
                     byte[] message,
                     int messageOffset,
                     int messageLength,
                     ByteArrayWindow digest)
Authenticates an outgoing message. This method fills the authentication parameters field of the given message. The parameter digestOffset offset is pointing inside the message buffer and must be zeroed before the authentication value is computed.

Parameters:
authenticationKey - the authentication key to be used for authenticating the message.
message - the entire message for which the digest should be determined.
messageOffset - the offset in message where the message actually starts.
messageLength - the actual message length (may be smaller than message.length).
digest - the offset in message where to store the digest.
Returns:
true if the message digest has been successfully computed and set, false otherwise.

isAuthentic

boolean isAuthentic(byte[] authenticationKey,
                    byte[] message,
                    int messageOffset,
                    int messageLength,
                    ByteArrayWindow digest)
Authenticates an incoming message. This method checks if the value in the authentication parameters field of the message is valid. The following procedure is used to verify the authenitcation value

Parameters:
authenticationKey - the authentication key to be used for authenticating the message.
message - the entire message for which the digest should be determined.
messageOffset - the offset in message where the message actually starts.
messageLength - the actual message length (may be smaller than message.length).
digest - the digest of the message.
Returns:
true if the message is authentic, false otherwise.

changeDelta

byte[] changeDelta(byte[] oldKey,
                   byte[] newKey,
                   byte[] random)
Computes the delta digest needed to remotely change an user's authenitcation key. The length of the old key (e.g. 16 for MD5, 20 for SHA) must match the length of the new key.

Parameters:
oldKey - the old authentication/privacy key.
newKey - the new authentication/privacy key.
random - the random 'seed' to be used to produce the digest.
Returns:
the byte array representing the delta for key change operations. To obtain the key change value, append this delta to the random array.

getID

OID getID()
Gets the OID uniquely identifying the authentication protocol.

Specified by:
getID in interface SecurityProtocol
Returns:
an OID instance.

passwordToKey

byte[] passwordToKey(OctetString passwordString,
                     byte[] engineID)
Generates the localized key for the given password and engine id.

Parameters:
passwordString - the authentication pass phrase.
engineID - the engine ID of the authoritative engine.
Returns:
the localized authentication key.

hash

byte[] hash(byte[] data)
Generates a hash value for the given data.

Parameters:
data - the data
Returns:
the generated hash.

hash

byte[] hash(byte[] data,
            int offset,
            int length)
Generates a hash value for the given data.

Parameters:
data - the data
offset - offset into data
length - length of data to hash
Returns:
the generated hash.

getDigestLength

int getDigestLength()
Gets the length of the digest generated by this authentication protocol. This value can be used to compute the BER encoded length of the security parameters for authentication.

Returns:
the number of bytes of digests generated by this authentication procotol.

Copyright 2005-2010 Frank Fock (SNMP4J.org)

Copyright © 2011 SNMP4J.org. All Rights Reserved.