Kea 2.5.8
isc::dhcp::Option6Auth Class Reference

This class represents Authentication (11) DHCPv6 option. More...

#include <option6_auth.h>

+ Inheritance diagram for isc::dhcp::Option6Auth:

Public Member Functions

 Option6Auth (const uint8_t proto, const uint8_t algo, const uint8_t method, const uint64_t rdm, const std::vector< uint8_t > &info)
 Constructor, used for auth options while transmitting.
 
virtual OptionPtr clone () const
 Copies this option and returns a pointer to the copy.
 
std::vector< uint8_t > getAuthInfo () const
 Return authentication information.
 
uint8_t getHashAlgo () const
 Returns hash algorithm type.
 
uint8_t getProtocol () const
 Returns protocol type.
 
uint8_t getReplyDetectionMethod () const
 Returns replay detection method type.
 
uint64_t getReplyDetectionValue () const
 Return replay detection mechanism.
 
void pack (isc::util::OutputBuffer &buf, bool check=true) const
 Writes option in wire-format to buf, returns pointer to first unused byte after stored option.
 
void packHashInput (isc::util::OutputBuffer &buf) const
 Writes option in wire-format to buf, for computing hash auth info filled with 0 for a length of 128 bits returns with pointer to first unused byte after stored option.
 
void setAuthInfo (const std::vector< uint8_t > &auth_info)
 Set authentication information.
 
void setHashAlgo (uint8_t algo)
 Set hash algorithm type.
 
void setProtocol (uint8_t proto)
 Set protocol type.
 
void setReplyDetectionMethod (uint8_t method)
 Set replay detection method type.
 
void setReplyDetectionValue (uint64_t value)
 Set replay detection method value.
 
virtual std::string toText (int indent=0) const
 Provides human readable text representation.
 
virtual void unpack (OptionBufferConstIter begin, OptionBufferConstIter end)
 Parses received buffer.
 
- Public Member Functions inherited from isc::dhcp::Option
 Option (const Option &source)
 Copy constructor.
 
 Option (Universe u, uint16_t type)
 ctor, used for options constructed, usually during transmission
 
 Option (Universe u, uint16_t type, const OptionBuffer &data)
 Constructor, used for received options.
 
 Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last)
 Constructor, used for received options.
 
virtual ~Option ()
 just to force that every option has virtual dtor
 
void addOption (OptionPtr opt)
 Adds a sub-option.
 
virtual OptionPtr clone () const
 Copies this option and returns a pointer to the copy.
 
bool delOption (uint16_t type)
 Attempts to delete first suboption of requested type.
 
virtual bool equals (const Option &other) const
 Checks if two options are equal.
 
bool equals (const OptionPtr &other) const
 Checks if options are equal.
 
virtual const OptionBuffergetData () const
 Returns pointer to actual data.
 
std::string getEncapsulatedSpace () const
 Returns the name of the option space encapsulated by this option.
 
virtual uint16_t getHeaderLen () const
 Returns length of header (2 for v4, 4 for v6)
 
OptionCollectiongetMutableOptions ()
 Returns all encapsulated options.
 
OptionPtr getOption (uint16_t type) const
 Returns shared_ptr to suboption of specific type.
 
const OptionCollectiongetOptions () const
 Returns all encapsulated options.
 
void getOptionsCopy (OptionCollection &options_copy) const
 Performs deep copy of suboptions.
 
uint16_t getType () const
 Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6)
 
uint16_t getUint16 () const
 Returns content of first word.
 
uint32_t getUint32 () const
 Returns content of first double word.
 
uint8_t getUint8 () const
 Returns content of first byte.
 
Universe getUniverse () const
 returns option universe (V4 or V6)
 
virtual uint16_t len () const
 Returns length of the complete option (data length + DHCPv4/DHCPv6 option header)
 
Optionoperator= (const Option &rhs)
 Assignment operator.
 
virtual void pack (isc::util::OutputBuffer &buf, bool check=true) const
 Writes option in wire-format to a buffer.
 
template<typename InputIterator >
void setData (InputIterator first, InputIterator last)
 Sets content of this option from buffer.
 
void setEncapsulatedSpace (const std::string &encapsulated_space)
 Sets the name of the option space encapsulated by this option.
 
void setUint16 (uint16_t value)
 Sets content of this option to a single uint16 value.
 
void setUint32 (uint32_t value)
 Sets content of this option to a single uint32 value.
 
void setUint8 (uint8_t value)
 Sets content of this option to a single uint8 value.
 
virtual std::vector< uint8_t > toBinary (const bool include_header=false) const
 Returns binary representation of the option.
 
virtual std::string toHexString (const bool include_header=false) const
 Returns string containing hexadecimal representation of option.
 
virtual std::string toString () const
 Returns string representation of the value.
 
virtual std::string toText (int indent=0) const
 Returns string representation of the option.
 
virtual void unpack (OptionBufferConstIter begin, OptionBufferConstIter end)
 Parses received buffer.
 
virtual bool valid () const
 returns if option is valid (e.g.
 

Static Public Attributes

static const uint8_t OPTION6_AUTH_MIN_LEN = 11
 
static const uint8_t OPTION6_HASH_MSG_LEN = 16
 
static const uint8_t OPTION6_HDR = 4
 
- Static Public Attributes inherited from isc::dhcp::Option
static bool lenient_parsing_
 Governs whether options should be parsed less strictly.
 
static const size_t OPTION4_HDR_LEN = 2
 length of the usual DHCPv4 option header (there are exceptions)
 
static const size_t OPTION6_HDR_LEN = 4
 length of any DHCPv6 option header
 

Protected Attributes

uint8_t algorithm_
 keeps hash algorithm value
 
std::vector< uint8_t > auth_info_
 keeps authentication information
 
uint8_t protocol_
 keeps protocol type
 
uint8_t rdm_method_
 keeps replay detection method type
 
uint64_t rdm_value_
 keeps replay detection method value
 
- Protected Attributes inherited from isc::dhcp::Option
OptionBuffer data_
 contains content of this data
 
std::string encapsulated_space_
 Name of the option space being encapsulated by this option.
 
OptionCollection options_
 collection for storing suboptions
 
uint16_t type_
 option type (0-255 for DHCPv4, 0-65535 for DHCPv6)
 
Universe universe_
 option universe (V4 or V6)
 

Additional Inherited Members

- Public Types inherited from isc::dhcp::Option
typedef OptionPtr Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf)
 a factory function prototype
 
enum  Universe { V4 , V6 }
 defines option universe DHCPv4 or DHCPv6 More...
 
- Static Public Member Functions inherited from isc::dhcp::Option
static OptionPtr create (Universe u, uint16_t type)
 Factory function creating an instance of the Option.
 
static OptionPtr create (Universe u, uint16_t type, const OptionBuffer &data)
 Factory function creating an instance of the Option.
 
static OptionPtr factory (Option::Universe u, uint16_t type)
 Factory function to create instance of option.
 
static OptionPtr factory (Option::Universe u, uint16_t type, const OptionBuffer &buf)
 Factory function to create instance of option.
 
- Protected Member Functions inherited from isc::dhcp::Option
void check () const
 A protected method used for option correctness.
 
template<typename OptionType >
OptionPtr cloneInternal () const
 Copies this option and returns a pointer to the copy.
 
std::string headerToText (const int indent=0, const std::string &type_name="") const
 Returns option header in the textual format.
 
void packHeader (isc::util::OutputBuffer &buf, bool check=true) const
 Store option's header in a buffer.
 
void packOptions (isc::util::OutputBuffer &buf, bool check=true) const
 Store sub options in a buffer.
 
std::string suboptionsToText (const int indent=0) const
 Returns collection of suboptions in the textual format.
 
void unpackOptions (const OptionBuffer &buf)
 Builds a collection of sub options from the buffer.
 

Detailed Description

This class represents Authentication (11) DHCPv6 option.

For details, see RFC 8415 Section 21.11.

Definition at line 27 of file option6_auth.h.

Constructor & Destructor Documentation

◆ Option6Auth()

isc::dhcp::Option6Auth::Option6Auth ( const uint8_t  proto,
const uint8_t  algo,
const uint8_t  method,
const uint64_t  rdm,
const std::vector< uint8_t > &  info 
)

Constructor, used for auth options while transmitting.

Parameters
protoprotocol type
algoalgorithm type
methodremote detection method
rdmreplay detection value
infoauthentication info.

Definition at line 25 of file option6_auth.cc.

Member Function Documentation

◆ clone()

OptionPtr isc::dhcp::Option6Auth::clone ( ) const
virtual

Copies this option and returns a pointer to the copy.

Reimplemented from isc::dhcp::Option.

Definition at line 35 of file option6_auth.cc.

◆ getAuthInfo()

std::vector< uint8_t > isc::dhcp::Option6Auth::getAuthInfo ( ) const
inline

Return authentication information.

Returns
authentication information value

Definition at line 125 of file option6_auth.h.

References auth_info_.

◆ getHashAlgo()

uint8_t isc::dhcp::Option6Auth::getHashAlgo ( ) const
inline

Returns hash algorithm type.

Returns
hash algorithm value

Definition at line 110 of file option6_auth.h.

References algorithm_.

◆ getProtocol()

uint8_t isc::dhcp::Option6Auth::getProtocol ( ) const
inline

Returns protocol type.

Returns
protocol value

Definition at line 105 of file option6_auth.h.

References protocol_.

◆ getReplyDetectionMethod()

uint8_t isc::dhcp::Option6Auth::getReplyDetectionMethod ( ) const
inline

Returns replay detection method type.

Returns
replay detection method type value

Definition at line 115 of file option6_auth.h.

References rdm_method_.

◆ getReplyDetectionValue()

uint64_t isc::dhcp::Option6Auth::getReplyDetectionValue ( ) const
inline

Return replay detection mechanism.

Returns
replay detection method value

Definition at line 120 of file option6_auth.h.

References rdm_value_.

◆ pack()

void isc::dhcp::Option6Auth::pack ( isc::util::OutputBuffer buf,
bool  check = true 
) const
virtual

Writes option in wire-format to buf, returns pointer to first unused byte after stored option.

Parameters
bufbuffer (option will be stored here)
checkif set to false, allows options larger than 255 for v4

Reimplemented from isc::dhcp::Option.

Definition at line 40 of file option6_auth.cc.

References algorithm_, auth_info_, isc::util::OutputBuffer::getCapacity(), isc_throw, OPTION6_AUTH_MIN_LEN, OPTION6_HASH_MSG_LEN, OPTION6_HDR, protocol_, rdm_method_, rdm_value_, isc::dhcp::Option::type_, isc::util::OutputBuffer::writeUint16(), isc::util::OutputBuffer::writeUint64(), and isc::util::OutputBuffer::writeUint8().

+ Here is the call graph for this function:

◆ packHashInput()

void isc::dhcp::Option6Auth::packHashInput ( isc::util::OutputBuffer buf) const

Writes option in wire-format to buf, for computing hash auth info filled with 0 for a length of 128 bits returns with pointer to first unused byte after stored option.

Parameters
bufbuffer (option will be stored here)

Definition at line 67 of file option6_auth.cc.

References algorithm_, isc::util::OutputBuffer::getCapacity(), isc_throw, OPTION6_AUTH_MIN_LEN, OPTION6_HASH_MSG_LEN, OPTION6_HDR, protocol_, rdm_method_, rdm_value_, isc::dhcp::Option::type_, isc::util::OutputBuffer::writeUint16(), isc::util::OutputBuffer::writeUint64(), and isc::util::OutputBuffer::writeUint8().

+ Here is the call graph for this function:

◆ setAuthInfo()

void isc::dhcp::Option6Auth::setAuthInfo ( const std::vector< uint8_t > &  auth_info)
inline

Set authentication information.

Parameters
auth_infoauthentication information to be set

Definition at line 100 of file option6_auth.h.

References auth_info_.

◆ setHashAlgo()

void isc::dhcp::Option6Auth::setHashAlgo ( uint8_t  algo)
inline

Set hash algorithm type.

Parameters
algohash algorithm type to be set

Definition at line 85 of file option6_auth.h.

References algorithm_.

◆ setProtocol()

void isc::dhcp::Option6Auth::setProtocol ( uint8_t  proto)
inline

Set protocol type.

Parameters
protoprotocol type to be set

Definition at line 80 of file option6_auth.h.

References protocol_.

◆ setReplyDetectionMethod()

void isc::dhcp::Option6Auth::setReplyDetectionMethod ( uint8_t  method)
inline

Set replay detection method type.

Parameters
methodreplay detection method to be set

Definition at line 90 of file option6_auth.h.

References rdm_method_.

◆ setReplyDetectionValue()

void isc::dhcp::Option6Auth::setReplyDetectionValue ( uint64_t  value)
inline

Set replay detection method value.

Parameters
valuereplay detection method value to be set

Definition at line 95 of file option6_auth.h.

References rdm_value_.

◆ toText()

std::string isc::dhcp::Option6Auth::toText ( int  indent = 0) const
virtual

Provides human readable text representation.

Parameters
indentnumber of leading space characters
Returns
string with text representation

Reimplemented from isc::dhcp::Option.

Definition at line 118 of file option6_auth.cc.

References algorithm_, auth_info_, isc::util::encode::encodeHex(), protocol_, rdm_method_, and rdm_value_.

+ Here is the call graph for this function:

◆ unpack()

void isc::dhcp::Option6Auth::unpack ( OptionBufferConstIter  begin,
OptionBufferConstIter  end 
)
virtual

Parses received buffer.

Parses received buffer and returns offset to the first unused byte after parsed option.

Parameters
beginiterator to first byte of option data
enditerator to end of option data (first byte after option end)

Reimplemented from isc::dhcp::Option.

Definition at line 93 of file option6_auth.cc.

References algorithm_, auth_info_, isc_throw, OPTION6_AUTH_MIN_LEN, protocol_, rdm_method_, rdm_value_, isc::util::readUint64(), and isc::dhcp::Option::type_.

+ Here is the call graph for this function:

Member Data Documentation

◆ algorithm_

uint8_t isc::dhcp::Option6Auth::algorithm_
protected

keeps hash algorithm value

Definition at line 132 of file option6_auth.h.

Referenced by getHashAlgo(), pack(), packHashInput(), setHashAlgo(), toText(), and unpack().

◆ auth_info_

std::vector<uint8_t> isc::dhcp::Option6Auth::auth_info_
protected

keeps authentication information

Definition at line 141 of file option6_auth.h.

Referenced by getAuthInfo(), pack(), setAuthInfo(), toText(), and unpack().

◆ OPTION6_AUTH_MIN_LEN

const uint8_t isc::dhcp::Option6Auth::OPTION6_AUTH_MIN_LEN = 11
static

Definition at line 30 of file option6_auth.h.

Referenced by pack(), packHashInput(), and unpack().

◆ OPTION6_HASH_MSG_LEN

const uint8_t isc::dhcp::Option6Auth::OPTION6_HASH_MSG_LEN = 16
static

Definition at line 31 of file option6_auth.h.

Referenced by pack(), and packHashInput().

◆ OPTION6_HDR

const uint8_t isc::dhcp::Option6Auth::OPTION6_HDR = 4
static

Definition at line 32 of file option6_auth.h.

Referenced by pack(), and packHashInput().

◆ protocol_

uint8_t isc::dhcp::Option6Auth::protocol_
protected

keeps protocol type

Definition at line 129 of file option6_auth.h.

Referenced by getProtocol(), pack(), packHashInput(), setProtocol(), toText(), and unpack().

◆ rdm_method_

uint8_t isc::dhcp::Option6Auth::rdm_method_
protected

keeps replay detection method type

Definition at line 135 of file option6_auth.h.

Referenced by getReplyDetectionMethod(), pack(), packHashInput(), setReplyDetectionMethod(), toText(), and unpack().

◆ rdm_value_

uint64_t isc::dhcp::Option6Auth::rdm_value_
protected

keeps replay detection method value

Definition at line 138 of file option6_auth.h.

Referenced by getReplyDetectionValue(), pack(), packHashInput(), setReplyDetectionValue(), toText(), and unpack().


The documentation for this class was generated from the following files: