Kea
1.9.9-git
|
This class represents Authentication (11) DHCPv6 option. More...
#include <option6_auth.h>
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. More... | |
virtual OptionPtr | clone () const |
Copies this option and returns a pointer to the copy. More... | |
std::vector< uint8_t > | getAuthInfo () const |
Return authentication information. More... | |
uint8_t | getHashAlgo () const |
Returns hash algorithm type. More... | |
uint8_t | getProtocol () const |
Returns protocol type. More... | |
uint8_t | getReplyDetectionMethod () const |
Returns replay detection method type. More... | |
uint64_t | getReplyDetectionValue () const |
Return replay detection mechanism. More... | |
void | pack (isc::util::OutputBuffer &buf) const |
Writes option in wire-format to buf, returns pointer to first unused byte after stored option. More... | |
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. More... | |
void | setAuthInfo (const std::vector< uint8_t > &auth_info) |
Set authentication information. More... | |
void | setHashAlgo (uint8_t algo) |
Set hash algorithm type. More... | |
void | setProtocol (uint8_t proto) |
Set protocol type. More... | |
void | setReplyDetectionMethod (uint8_t method) |
Set replay detection method type. More... | |
void | setReplyDetectionValue (uint64_t value) |
Set replay detection method value. More... | |
virtual std::string | toText (int indent=0) const |
Provides human readable text representation. More... | |
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end) |
Parses received buffer. More... | |
Public Member Functions inherited from isc::dhcp::Option | |
Option (Universe u, uint16_t type) | |
ctor, used for options constructed, usually during transmission More... | |
Option (Universe u, uint16_t type, const OptionBuffer &data) | |
Constructor, used for received options. More... | |
Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last) | |
Constructor, used for received options. More... | |
Option (const Option &source) | |
Copy constructor. More... | |
virtual | ~Option () |
just to force that every option has virtual dtor More... | |
void | addOption (OptionPtr opt) |
Adds a sub-option. More... | |
bool | delOption (uint16_t type) |
Attempts to delete first suboption of requested type. More... | |
bool | equals (const OptionPtr &other) const |
Checks if options are equal. More... | |
virtual bool | equals (const Option &other) const |
Checks if two options are equal. More... | |
virtual const OptionBuffer & | getData () const |
Returns pointer to actual data. More... | |
std::string | getEncapsulatedSpace () const |
Returns the name of the option space encapsulated by this option. More... | |
virtual uint16_t | getHeaderLen () const |
Returns length of header (2 for v4, 4 for v6) More... | |
OptionPtr | getOption (uint16_t type) const |
Returns shared_ptr to suboption of specific type. More... | |
const OptionCollection & | getOptions () const |
Returns all encapsulated options. More... | |
void | getOptionsCopy (OptionCollection &options_copy) const |
Performs deep copy of suboptions. More... | |
uint16_t | getType () const |
Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6) More... | |
uint16_t | getUint16 () const |
Returns content of first word. More... | |
uint32_t | getUint32 () const |
Returns content of first double word. More... | |
uint8_t | getUint8 () const |
Returns content of first byte. More... | |
Universe | getUniverse () const |
returns option universe (V4 or V6) More... | |
virtual uint16_t | len () const |
Returns length of the complete option (data length + DHCPv4/DHCPv6 option header) More... | |
Option & | operator= (const Option &rhs) |
Assignment operator. More... | |
template<typename InputIterator > | |
void | setData (InputIterator first, InputIterator last) |
Sets content of this option from buffer. More... | |
void | setEncapsulatedSpace (const std::string &encapsulated_space) |
Sets the name of the option space encapsulated by this option. More... | |
void | setUint16 (uint16_t value) |
Sets content of this option to a single uint16 value. More... | |
void | setUint32 (uint32_t value) |
Sets content of this option to a single uint32 value. More... | |
void | setUint8 (uint8_t value) |
Sets content of this option to a single uint8 value. More... | |
virtual std::vector< uint8_t > | toBinary (const bool include_header=false) const |
Returns binary representation of the option. More... | |
virtual std::string | toHexString (const bool include_header=false) const |
Returns string containing hexadecimal representation of option. More... | |
virtual std::string | toString () const |
Returns string representation of the value. More... | |
virtual bool | valid () const |
returns if option is valid (e.g. More... | |
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. More... | |
static const size_t | OPTION4_HDR_LEN = 2 |
length of the usual DHCPv4 option header (there are exceptions) More... | |
static const size_t | OPTION6_HDR_LEN = 4 |
length of any DHCPv6 option header More... | |
Protected Attributes | |
uint8_t | algorithm_ |
keeps hash algorithm value More... | |
std::vector< uint8_t > | auth_info_ |
keeps authentication information More... | |
uint8_t | protocol_ |
keeps protocol type More... | |
uint8_t | rdm_method_ |
keeps replay detection method type More... | |
uint64_t | rdm_value_ |
keeps replay detection method value More... | |
Protected Attributes inherited from isc::dhcp::Option | |
OptionBuffer | data_ |
contains content of this data More... | |
std::string | encapsulated_space_ |
Name of the option space being encapsulated by this option. More... | |
OptionCollection | options_ |
collection for storing suboptions More... | |
uint16_t | type_ |
option type (0-255 for DHCPv4, 0-65535 for DHCPv6) More... | |
Universe | universe_ |
option universe (V4 or V6) More... | |
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 More... | |
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 . More... | |
static OptionPtr | create (Universe u, uint16_t type, const OptionBuffer &data) |
Factory function creating an instance of the Option . More... | |
static OptionPtr | factory (Option::Universe u, uint16_t type, const OptionBuffer &buf) |
Factory function to create instance of option. More... | |
static OptionPtr | factory (Option::Universe u, uint16_t type) |
Factory function to create instance of option. More... | |
Protected Member Functions inherited from isc::dhcp::Option | |
void | check () const |
A protected method used for option correctness. More... | |
template<typename OptionType > | |
OptionPtr | cloneInternal () const |
Copies this option and returns a pointer to the copy. More... | |
std::string | headerToText (const int indent=0, const std::string &type_name="") const |
Returns option header in the textual format. More... | |
void | packHeader (isc::util::OutputBuffer &buf) const |
Store option's header in a buffer. More... | |
void | packOptions (isc::util::OutputBuffer &buf) const |
Store sub options in a buffer. More... | |
std::string | suboptionsToText (const int indent=0) const |
Returns collection of suboptions in the textual format. More... | |
void | unpackOptions (const OptionBuffer &buf) |
Builds a collection of sub options from the buffer. More... | |
This class represents Authentication (11) DHCPv6 option.
For details, see RFC 8415 Section 21.11.
Definition at line 27 of file option6_auth.h.
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.
proto | protocol type |
algo | algorithm type |
method | remote detection method |
rdm | replay detection value |
info | authentication info. |
Definition at line 25 of file option6_auth.cc.
|
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.
|
inline |
Return authentication information.
Definition at line 124 of file option6_auth.h.
References auth_info_.
|
inline |
Returns hash algorithm type.
Definition at line 109 of file option6_auth.h.
References algorithm_.
|
inline |
Returns protocol type.
Definition at line 104 of file option6_auth.h.
References protocol_.
|
inline |
Returns replay detection method type.
Definition at line 114 of file option6_auth.h.
References rdm_method_.
|
inline |
Return replay detection mechanism.
Definition at line 119 of file option6_auth.h.
References rdm_value_.
|
virtual |
Writes option in wire-format to buf, returns pointer to first unused byte after stored option.
buf | buffer (option will be stored here) |
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().
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.
buf | buffer (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().
|
inline |
Set authentication information.
auth_info | authentication information to be set |
Definition at line 99 of file option6_auth.h.
References auth_info_.
|
inline |
Set hash algorithm type.
algo | hash algorithm type to be set |
Definition at line 84 of file option6_auth.h.
References algorithm_.
|
inline |
Set protocol type.
proto | protocol type to be set |
Definition at line 79 of file option6_auth.h.
References protocol_.
|
inline |
Set replay detection method type.
method | replay detection method to be set |
Definition at line 89 of file option6_auth.h.
References rdm_method_.
|
inline |
Set replay detection method value.
value | replay detection method value to be set |
Definition at line 94 of file option6_auth.h.
References rdm_value_.
|
virtual |
Provides human readable text representation.
indent | number of leading space characters |
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_.
|
virtual |
Parses received buffer.
Parses received buffer and returns offset to the first unused byte after parsed option.
begin | iterator to first byte of option data |
end | iterator 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_.
|
protected |
keeps hash algorithm value
Definition at line 131 of file option6_auth.h.
Referenced by getHashAlgo(), pack(), packHashInput(), setHashAlgo(), toText(), and unpack().
|
protected |
keeps authentication information
Definition at line 140 of file option6_auth.h.
Referenced by getAuthInfo(), pack(), setAuthInfo(), toText(), and unpack().
|
static |
Definition at line 30 of file option6_auth.h.
Referenced by pack(), packHashInput(), and unpack().
|
static |
Definition at line 31 of file option6_auth.h.
Referenced by pack(), and packHashInput().
|
static |
Definition at line 32 of file option6_auth.h.
Referenced by pack(), and packHashInput().
|
protected |
keeps protocol type
Definition at line 128 of file option6_auth.h.
Referenced by getProtocol(), pack(), packHashInput(), setProtocol(), toText(), and unpack().
|
protected |
keeps replay detection method type
Definition at line 134 of file option6_auth.h.
Referenced by getReplyDetectionMethod(), pack(), packHashInput(), setReplyDetectionMethod(), toText(), and unpack().
|
protected |
keeps replay detection method value
Definition at line 137 of file option6_auth.h.
Referenced by getReplyDetectionValue(), pack(), packHashInput(), setReplyDetectionValue(), toText(), and unpack().