fm.liveswitch.stun.MessageIntegrityAttribute Class Reference

The MESSAGE-INTEGRITY attribute contains an HMAC-SHA1 [RFC2104] of the STUN message. More...

Public Member Functions

fm.liveswitch.DataBuffer getMessageBuffer ()
 Gets the message buffer. More...
 
int getTypeValue ()
 Gets the type value. More...
 
boolean isValid (byte[] keyBuffer)
 After creating a message-integrity attribute using the byte array representation, this method determines whether the supplied key is valid. More...
 
 MessageIntegrityAttribute (byte[] keyBuffer)
 Initializes a new instance of the fm.liveswitch.stun.MessageIntegrityAttribute class. More...
 
void setMessageBuffer (fm.liveswitch.DataBuffer value)
 Sets the message buffer. More...
 
String toString ()
 Returns a string that represents this instance. More...
 
- Public Member Functions inherited from fm.liveswitch.stun.Attribute
int getLength ()
 Gets the length of the attribute, including header and padding. More...
 
int getPaddingLength (int valueLength)
 Gets the length of the padding. More...
 
void writeTo (fm.liveswitch.DataBuffer buffer, int offset)
 Writes the attribute to a data buffer. More...
 
void writeTo (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.IntegerHolder offsetPlus)
 Writes the attribute to a data buffer. More...
 

Static Public Member Functions

static fm.liveswitch.stun.MessageIntegrityAttribute readValueFrom (fm.liveswitch.DataBuffer buffer, int offset, int length, fm.liveswitch.DataBuffer messageBuffer)
 Initializes a new instance of the fm.liveswitch.stun.MessageIntegrityAttribute class. More...
 
- Static Public Member Functions inherited from fm.liveswitch.stun.Attribute
static int getAlternateServerType ()
 Gets the ALTERNATE-SERVER type. More...
 
static int getChannelNumberType ()
 Gets the CHANNEL-NUMBER type. More...
 
static int getConnectionIdType ()
 Gets the CONNECTION-ID type. More...
 
static int getControlledType ()
 Gets the CONTROLLED type. More...
 
static int getControllingType ()
 Gets the CONTROLLING type. More...
 
static int getDataType ()
 Gets the DATA type. More...
 
static int getDontFragmentType ()
 Gets the DONT-FRAGMENT type. More...
 
static int getErrorCodeType ()
 Gets the ERROR-CODE type. More...
 
static int getEvenPortType ()
 Gets the EVEN-PORT type. More...
 
static int getFingerprintType ()
 Gets the FINGERPRINT type. More...
 
static int getLifetimeType ()
 Gets the LIFETIME type. More...
 
static int getMappedAddressType ()
 Gets the MAPPED-ADDRESS type. More...
 
static int getMessageIntegrityType ()
 Gets the MESSAGE-INTEGRITY type. More...
 
static int getNonceType ()
 Gets the NONCE type. More...
 
static int getPriorityType ()
 Gets the PRIORITY type. More...
 
static int getRealmType ()
 Gets the REALM type. More...
 
static int getRequestedAddressFamilyType ()
 Gets the REQUESTED-ADDRESS-FAMILY type. More...
 
static int getRequestedTransportType ()
 Gets the REQUESTED-TRANSPORT type. More...
 
static int getReservationTokenType ()
 Gets the RESERVATION-TOKEN type. More...
 
static int getSoftwareType ()
 Gets the SOFTWARE type. More...
 
static int getTransactionTransmitCounterType ()
 Gets the comprehension-optional TRANSACTION_TRANSMIT_COUNTER type defined in RFC 7982. More...
 
static int getUnknownAttributesType ()
 Gets the UNKNOWN-ATTRIBUTES type. More...
 
static int getUseCandidateType ()
 Gets the USE-CANDIDATE type. More...
 
static int getUsernameType ()
 Gets the USERNAME type. More...
 
static int getXorMappedAddressType ()
 Gets the XOR-MAPPED-ADDRESS type. More...
 
static int getXorPeerAddressType ()
 Gets the XOR-PEER-ADDRESS type. More...
 
static int getXorRelayedAddressType ()
 Gets the XOR-RELAYED-ADDRESS type. More...
 
static int nextLength (fm.liveswitch.DataBuffer buffer, int offset)
 Reads the length of the next attribute from a data buffer, including header and padding. More...
 
static fm.liveswitch.stun.Attribute readFrom (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.IntegerHolder offsetPlus, fm.liveswitch.DataBuffer transactionId, fm.liveswitch.DataBuffer messageBuffer)
 Reads an fm.liveswitch.stun.Attribute from a data buffer. More...
 
static fm.liveswitch.stun.Attribute readFrom (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.DataBuffer transactionId, fm.liveswitch.DataBuffer messageBuffer)
 Reads an fm.liveswitch.stun.Attribute from a data buffer. More...
 

Protected Member Functions

int getValueLength ()
 Gets the length of the attribute value. More...
 
void writeValueTo (fm.liveswitch.DataBuffer buffer, int offset)
 Writes the attribute value to a data buffer. More...
 
- Protected Member Functions inherited from fm.liveswitch.stun.Attribute
 Attribute ()
 
void writeIPAddress (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.AddressType addressType, String ipAddress)
 Writes an IP address. More...
 
void writePort (fm.liveswitch.DataBuffer buffer, int offset, int port)
 Writes a port. More...
 
void writeXorIPAddress (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.AddressType addressType, String ipAddress, fm.liveswitch.DataBuffer transactionId)
 Writes an XOR'd IP address. More...
 
void writeXorPort (fm.liveswitch.DataBuffer buffer, int offset, int port, fm.liveswitch.DataBuffer transactionId)
 Writes an XOR'd port. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from fm.liveswitch.stun.Attribute
static fm.liveswitch.AddressType readAddressType (fm.liveswitch.DataBuffer buffer, int offset)
 Reads an address type. More...
 
static String readIPAddress (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.AddressType addressType)
 Reads an IP address. More...
 
static int readPort (fm.liveswitch.DataBuffer buffer, int offset)
 Reads a port. More...
 
static String readXorIPAddress (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.AddressType addressType, fm.liveswitch.DataBuffer transactionId)
 Reads an XOR'd IP address. More...
 
static int readXorPort (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.DataBuffer transactionId)
 Reads an XOR'd port. More...
 
static void writeAddressType (fm.liveswitch.DataBuffer buffer, int offset, fm.liveswitch.AddressType addressType)
 Writes an address type. More...
 

Detailed Description

The MESSAGE-INTEGRITY attribute contains an HMAC-SHA1 [RFC2104] of the STUN message.

The MESSAGE-INTEGRITY attribute can be present in any STUN message type. Since it uses the SHA1 hash, the HMAC will be 20 bytes. The text used as input to HMAC is the STUN message, including the header, up to and including the attribute preceding the MESSAGE-INTEGRITY attribute. With the exception of the FINGERPRINT attribute, which appears after MESSAGE-INTEGRITY, agents MUST ignore all other attributes that follow MESSAGE-INTEGRITY.

Constructor & Destructor Documentation

◆ MessageIntegrityAttribute()

fm.liveswitch.stun.MessageIntegrityAttribute.MessageIntegrityAttribute ( byte[]  keyBuffer)

Initializes a new instance of the fm.liveswitch.stun.MessageIntegrityAttribute class.

Parameters
keyBufferThe key as a buffer.

Member Function Documentation

◆ getMessageBuffer()

fm.liveswitch.DataBuffer fm.liveswitch.stun.MessageIntegrityAttribute.getMessageBuffer ( )

Gets the message buffer.

◆ getTypeValue()

int fm.liveswitch.stun.MessageIntegrityAttribute.getTypeValue ( )

Gets the type value.

Reimplemented from fm.liveswitch.stun.Attribute.

◆ getValueLength()

int fm.liveswitch.stun.MessageIntegrityAttribute.getValueLength ( )
protected

Gets the length of the attribute value.

Reimplemented from fm.liveswitch.stun.Attribute.

◆ isValid()

boolean fm.liveswitch.stun.MessageIntegrityAttribute.isValid ( byte[]  keyBuffer)

After creating a message-integrity attribute using the byte array representation, this method determines whether the supplied key is valid.

Parameters
keyBufferThe key as a buffer.
Returns
true
if the key is valid; otherwise,
false
.

◆ readValueFrom()

static fm.liveswitch.stun.MessageIntegrityAttribute fm.liveswitch.stun.MessageIntegrityAttribute.readValueFrom ( fm.liveswitch.DataBuffer  buffer,
int  offset,
int  length,
fm.liveswitch.DataBuffer  messageBuffer 
)
static

Initializes a new instance of the fm.liveswitch.stun.MessageIntegrityAttribute class.

Parameters
bufferThe buffer.
offsetThe offset.
lengthThe length.
messageBufferThe message buffer thus far.

◆ setMessageBuffer()

void fm.liveswitch.stun.MessageIntegrityAttribute.setMessageBuffer ( fm.liveswitch.DataBuffer  value)

Sets the message buffer.

◆ toString()

String fm.liveswitch.stun.MessageIntegrityAttribute.toString ( )

Returns a string that represents this instance.

Returns
A string that represents this instance.

◆ writeValueTo()

void fm.liveswitch.stun.MessageIntegrityAttribute.writeValueTo ( fm.liveswitch.DataBuffer  buffer,
int  offset 
)
protected

Writes the attribute value to a data buffer.

Parameters
bufferThe buffer.
offsetThe offset.

Reimplemented from fm.liveswitch.stun.Attribute.