FMLiveSwitchStunMessageIntegrityAttribute Class Reference

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

Instance Methods

(NSString *) - description
 Returns a string that represents this instance. More...
 
(int) - getValueLength
 Gets the length of the attribute value. More...
 
(instancetype) - initWithKeyBuffer:
 Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class. More...
 
(bool) - isValidWithKeyBuffer:
 After creating a message-integrity attribute using the byte array representation, this method determines whether the supplied key is valid. More...
 
(FMLiveSwitchDataBuffer *) - messageBuffer
 Gets the message buffer. More...
 
(void) - setMessageBuffer:
 Sets the message buffer. More...
 
(int) - typeValue
 Gets the type value. More...
 
(void) - writeValueToWithBuffer:offset:
 Writes the attribute value to a data buffer. More...
 
- Instance Methods inherited from FMLiveSwitchStunAttribute
(int) - getLength
 Gets the length of the attribute, including header and padding. More...
 
(int) - getPaddingLengthWithValueLength:
 Gets the length of the padding. More...
 
(instancetype) - init
 
(void) - writeIPAddressWithBuffer:offset:addressType:ipAddress:
 Writes an IP address. More...
 
(void) - writePortWithBuffer:offset:port:
 Writes a port. More...
 
(void) - writeToWithBuffer:offset:
 Writes the attribute to a data buffer. More...
 
(void) - writeToWithBuffer:offset:offsetPlus:
 Writes the attribute to a data buffer. More...
 
(void) - writeXorIPAddressWithBuffer:offset:addressType:ipAddress:transactionId:
 Writes an XOR'd IP address. More...
 
(void) - writeXorPortWithBuffer:offset:port:transactionId:
 Writes an XOR'd port. More...
 

Class Methods

(FMLiveSwitchStunMessageIntegrityAttribute *) + messageIntegrityAttributeWithKeyBuffer:
 Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class. More...
 
(FMLiveSwitchStunMessageIntegrityAttribute *) + readValueFromWithBuffer:offset:length:messageBuffer:
 Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class. More...
 
- Class Methods inherited from FMLiveSwitchStunAttribute
(int) + alternateServerType
 Gets the ALTERNATE-SERVER type. More...
 
(FMLiveSwitchStunAttribute *) + attribute
 
(int) + channelNumberType
 Gets the CHANNEL-NUMBER type. More...
 
(int) + connectionIdType
 Gets the CONNECTION-ID type. More...
 
(int) + controlledType
 Gets the CONTROLLED type. More...
 
(int) + controllingType
 Gets the CONTROLLING type. More...
 
(int) + dataType
 Gets the DATA type. More...
 
(int) + dontFragmentType
 Gets the DONT-FRAGMENT type. More...
 
(int) + errorCodeType
 Gets the ERROR-CODE type. More...
 
(int) + evenPortType
 Gets the EVEN-PORT type. More...
 
(int) + fingerprintType
 Gets the FINGERPRINT type. More...
 
(int) + lifetimeType
 Gets the LIFETIME type. More...
 
(int) + mappedAddressType
 Gets the MAPPED-ADDRESS type. More...
 
(int) + messageIntegrityType
 Gets the MESSAGE-INTEGRITY type. More...
 
(int) + nextLengthWithBuffer:offset:
 Reads the length of the next attribute from a data buffer, including header and padding. More...
 
(int) + nonceType
 Gets the NONCE type. More...
 
(int) + priorityType
 Gets the PRIORITY type. More...
 
(FMLiveSwitchAddressType) + readAddressTypeWithBuffer:offset:
 Reads an address type. More...
 
(FMLiveSwitchStunAttribute *) + readFromWithBuffer:offset:offsetPlus:transactionId:messageBuffer:
 Reads an FMLiveSwitchStunAttribute from a data buffer. More...
 
(FMLiveSwitchStunAttribute *) + readFromWithBuffer:offset:transactionId:messageBuffer:
 Reads an FMLiveSwitchStunAttribute from a data buffer. More...
 
(NSString *) + readIPAddressWithBuffer:offset:addressType:
 Reads an IP address. More...
 
(int) + readPortWithBuffer:offset:
 Reads a port. More...
 
(NSString *) + readXorIPAddressWithBuffer:offset:addressType:transactionId:
 Reads an XOR'd IP address. More...
 
(int) + readXorPortWithBuffer:offset:transactionId:
 Reads an XOR'd port. More...
 
(int) + realmType
 Gets the REALM type. More...
 
(int) + requestedAddressFamilyType
 Gets the REQUESTED-ADDRESS-FAMILY type. More...
 
(int) + requestedTransportType
 Gets the REQUESTED-TRANSPORT type. More...
 
(int) + reservationTokenType
 Gets the RESERVATION-TOKEN type. More...
 
(int) + softwareType
 Gets the SOFTWARE type. More...
 
(int) + transactionTransmitCounterType
 Gets the comprehension-optional TRANSACTION_TRANSMIT_COUNTER type defined in RFC 7982. More...
 
(int) + unknownAttributesType
 Gets the UNKNOWN-ATTRIBUTES type. More...
 
(int) + useCandidateType
 Gets the USE-CANDIDATE type. More...
 
(int) + usernameType
 Gets the USERNAME type. More...
 
(void) + writeAddressTypeWithBuffer:offset:addressType:
 Writes an address type. More...
 
(int) + xorMappedAddressType
 Gets the XOR-MAPPED-ADDRESS type. More...
 
(int) + xorPeerAddressType
 Gets the XOR-PEER-ADDRESS type. More...
 
(int) + xorRelayedAddressType
 Gets the XOR-RELAYED-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.

Method Documentation

◆ description

- (NSString*) description

Returns a string that represents this instance.

Returns
A string that represents this instance.

◆ getValueLength

- (int) getValueLength

Gets the length of the attribute value.

Implements FMLiveSwitchStunAttribute.

◆ initWithKeyBuffer:

- (instancetype) initWithKeyBuffer: (NSMutableData *)  keyBuffer

Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class.

Parameters
keyBufferThe key as a buffer.

◆ isValidWithKeyBuffer:

- (bool) isValidWithKeyBuffer: (NSMutableData *)  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.

◆ messageBuffer

- (FMLiveSwitchDataBuffer*) messageBuffer

Gets the message buffer.

◆ messageIntegrityAttributeWithKeyBuffer:

+ (FMLiveSwitchStunMessageIntegrityAttribute*) messageIntegrityAttributeWithKeyBuffer: (NSMutableData *)  keyBuffer

Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class.

Parameters
keyBufferThe key as a buffer.

◆ readValueFromWithBuffer:offset:length:messageBuffer:

+ (FMLiveSwitchStunMessageIntegrityAttribute*) readValueFromWithBuffer: (FMLiveSwitchDataBuffer *)  buffer
offset: (int)  offset
length: (int)  length
messageBuffer: (FMLiveSwitchDataBuffer *)  messageBuffer 

Initializes a new instance of the FMLiveSwitchStunMessageIntegrityAttribute class.

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

◆ setMessageBuffer:

- (void) setMessageBuffer: (FMLiveSwitchDataBuffer *)  value

Sets the message buffer.

◆ typeValue

- (int) typeValue

Gets the type value.

Implements FMLiveSwitchStunAttribute.

◆ writeValueToWithBuffer:offset:

- (void) writeValueToWithBuffer: (FMLiveSwitchDataBuffer *)  buffer
offset: (int)  offset 

Writes the attribute value to a data buffer.

Parameters
bufferThe buffer.
offsetThe offset.

Implements FMLiveSwitchStunAttribute.