tinydtls.h
CFLAGS:=-Wall -pedantic -std=c99 @CFLAGS@
CPPFLAGS:=@CPPFLAGS@ -DDTLS_CHECK_CONTENTTYPE
-SUBDIRS:=tests doc platform-specific sha2 aes ecc
+SUBDIRS:=tests platform-specific sha2 aes ecc
DISTSUBDIRS:=$(SUBDIRS) examples/contiki
DISTDIR=$(top_builddir)/$(package)
FILES:=Makefile.in configure configure.in dtls_config.h.in tinydtls.h.in \
+++ /dev/null
-# Doxyfile 1.6.3
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = tinydtls
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = 0.8.2
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 4
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it parses.
-# With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this tag.
-# The format is ext=language, where ext is a file extension, and language is one of
-# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
-# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
-# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen to replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penality.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will rougly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
-# doxygen. The layout file controls the global structure of the generated output files
-# in an output format independent way. The create the layout file that represents
-# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
-# file name after the option, if omitted DoxygenLayout.xml will be used as the name
-# of the layout file.
-
-LAYOUT_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ..
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-
-FILE_PATTERNS =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
-
-GENERATE_DOCSET = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
-# are set, an additional index file will be generated that can be used as input for
-# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
-# HTML documentation.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
-# For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE = 10
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED = DSRV_NO_DTLS DSRV_NO_PROTOCOL_DEMUX
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = NO
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# By default doxygen will write a font called FreeSans.ttf to the output
-# directory and reference it in all dot files that doxygen generates. This
-# font does not include all possible unicode characters however, so when you need
-# these (or just want a differently looking font) you can specify the font name
-# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
-
-DOT_FONTNAME = FreeSans
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
+++ /dev/null
-# Doxyfile 1.6.3
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = @PACKAGE_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = @PACKAGE_VERSION@
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 4
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it parses.
-# With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this tag.
-# The format is ext=language, where ext is a file extension, and language is one of
-# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
-# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
-# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen to replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penality.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will rougly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
-# doxygen. The layout file controls the global structure of the generated output files
-# in an output format independent way. The create the layout file that represents
-# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
-# file name after the option, if omitted DoxygenLayout.xml will be used as the name
-# of the layout file.
-
-LAYOUT_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ..
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-
-FILE_PATTERNS =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
-
-GENERATE_DOCSET = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
-# are set, an additional index file will be generated that can be used as input for
-# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
-# HTML documentation.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
-# For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE = 10
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED = DSRV_NO_DTLS DSRV_NO_PROTOCOL_DEMUX
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = NO
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# By default doxygen will write a font called FreeSans.ttf to the output
-# directory and reference it in all dot files that doxygen generates. This
-# font does not include all possible unicode characters however, so when you need
-# these (or just want a differently looking font) you can specify the font name
-# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
-
-DOT_FONTNAME = FreeSans
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
+++ /dev/null
-# the library's version
-VERSION:=@PACKAGE_VERSION@
-PACKAGE_TARNAME:=@PACKAGE_TARNAME@
-
-# tools
-@SET_MAKE@
-SHELL = /bin/sh
-MKDIR = mkdir
-DOXYGEN= @DOXYGEN@
-
-top_builddir = @top_builddir@
-prefix = @prefix@
-datarootdir = @datarootdir@
-docdir = @docdir@
-htmldir = @htmldir@
-
-DISTDIR?=$(top_builddir)/@PACKAGE_TARNAME@-@PACKAGE_VERSION@
-FILES:=Makefile.in Doxyfile.in html
-
-doc: Doxyfile
- $(DOXYGEN) $< >./doxygen.out 2>&1
-
-clean:
- @rm -rf html
-
-distclean: clean
- @rm -rf $(DISTDIR)
- @rm -f *~
-
-dist: doc
- test -d $(DISTDIR)/doc || mkdir $(DISTDIR)/doc
- cp -r $(FILES) $(DISTDIR)/doc
-
-install: $(doc) html
- test -d $(htmldir) || mkdir -p $(htmldir)
- cp -r html/* $(htmldir)
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: alert.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">alert.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>DTLS alert protocol.
-<a href="#details">More...</a></p>
-
-<p><a href="alert_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:aec2aa0683b1a39b4b1abba357b06f844"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844">DTLS_EVENT_CONNECT</a>   0x01DC</td></tr>
-<tr class="separator:aec2aa0683b1a39b4b1abba357b06f844"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5bed06f27f571d7c7d9b9f212c3a0b22"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22">DTLS_EVENT_CONNECTED</a>   0x01DE</td></tr>
-<tr class="separator:a5bed06f27f571d7c7d9b9f212c3a0b22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a06e52ce3a2909c8f5a3d47d2c0346124"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124">DTLS_EVENT_RENEGOTIATE</a>   0x01DF</td></tr>
-<tr class="separator:a06e52ce3a2909c8f5a3d47d2c0346124"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ab6264d1b950719f1c2e00b122cad871f"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> { <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a> =1,
-<a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a> =2
- }</td></tr>
-<tr class="separator:ab6264d1b950719f1c2e00b122cad871f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a41c9f2d4035bc6bf5a0f437842a9ecbd"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> { <br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a> = 0,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a> = 10,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca">DTLS_ALERT_BAD_RECORD_MAC</a> = 20,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12">DTLS_ALERT_RECORD_OVERFLOW</a> = 22,
-<br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888">DTLS_ALERT_DECOMPRESSION_FAILURE</a> = 30,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a> = 40,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c">DTLS_ALERT_BAD_CERTIFICATE</a> = 42,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab">DTLS_ALERT_UNSUPPORTED_CERTIFICATE</a> = 43,
-<br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1">DTLS_ALERT_CERTIFICATE_REVOKED</a> = 44,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782">DTLS_ALERT_CERTIFICATE_EXPIRED</a> = 45,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d">DTLS_ALERT_CERTIFICATE_UNKNOWN</a> = 46,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">DTLS_ALERT_ILLEGAL_PARAMETER</a> = 47,
-<br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f">DTLS_ALERT_UNKNOWN_CA</a> = 48,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11">DTLS_ALERT_ACCESS_DENIED</a> = 49,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a> = 50,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">DTLS_ALERT_DECRYPT_ERROR</a> = 51,
-<br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a> = 70,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a> = 71,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a> = 80,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638">DTLS_ALERT_USER_CANCELED</a> = 90,
-<br/>
-  <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a> = 100,
-<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc">DTLS_ALERT_UNSUPPORTED_EXTENSION</a> = 110
-<br/>
- }</td></tr>
-<tr class="separator:a41c9f2d4035bc6bf5a0f437842a9ecbd"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a4242f419ffdd4b83bfaa2a0935ed2b6d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a> (<a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> desc)</td></tr>
-<tr class="separator:a4242f419ffdd4b83bfaa2a0935ed2b6d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9b9a52e7d4bb621be12878c7dfc8f5df"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a> (<a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> desc)</td></tr>
-<tr class="separator:a9b9a52e7d4bb621be12878c7dfc8f5df"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>DTLS alert protocol. </p>
-
-<p>Definition in file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="aec2aa0683b1a39b4b1abba357b06f844"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_EVENT_CONNECT   0x01DC</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>initiated handshake </p>
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00064">64</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5bed06f27f571d7c7d9b9f212c3a0b22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_EVENT_CONNECTED   0x01DE</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>handshake or re-negotiation has finished </p>
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00065">65</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a06e52ce3a2909c8f5a3d47d2c0346124"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_EVENT_RENEGOTIATE   0x01DF</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>re-negotiation has started </p>
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00068">68</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="ab6264d1b950719f1c2e00b122cad871f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7"></a>DTLS_ALERT_LEVEL_WARNING</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4"></a>DTLS_ALERT_LEVEL_FATAL</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00034">34</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800"></a>DTLS_ALERT_CLOSE_NOTIFY</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a"></a>DTLS_ALERT_UNEXPECTED_MESSAGE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca"></a>DTLS_ALERT_BAD_RECORD_MAC</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12"></a>DTLS_ALERT_RECORD_OVERFLOW</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888"></a>DTLS_ALERT_DECOMPRESSION_FAILURE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d"></a>DTLS_ALERT_HANDSHAKE_FAILURE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c"></a>DTLS_ALERT_BAD_CERTIFICATE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab"></a>DTLS_ALERT_UNSUPPORTED_CERTIFICATE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1"></a>DTLS_ALERT_CERTIFICATE_REVOKED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782"></a>DTLS_ALERT_CERTIFICATE_EXPIRED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d"></a>DTLS_ALERT_CERTIFICATE_UNKNOWN</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc"></a>DTLS_ALERT_ILLEGAL_PARAMETER</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f"></a>DTLS_ALERT_UNKNOWN_CA</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11"></a>DTLS_ALERT_ACCESS_DENIED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649"></a>DTLS_ALERT_DECODE_ERROR</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0"></a>DTLS_ALERT_DECRYPT_ERROR</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652"></a>DTLS_ALERT_PROTOCOL_VERSION</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e"></a>DTLS_ALERT_INSUFFICIENT_SECURITY</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58"></a>DTLS_ALERT_INTERNAL_ERROR</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638"></a>DTLS_ALERT_USER_CANCELED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab"></a>DTLS_ALERT_NO_RENEGOTIATION</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc"></a>DTLS_ALERT_UNSUPPORTED_EXTENSION</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00039">39</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a4242f419ffdd4b83bfaa2a0935ed2b6d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_alert_create </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> </td>
- <td class="paramname"><em>desc</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00071">71</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9b9a52e7d4bb621be12878c7dfc8f5df"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_alert_fatal_create </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> </td>
- <td class="paramname"><em>desc</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="alert_8h_source.html#l00077">77</a> of file <a class="el" href="alert_8h_source.html">alert.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: alert.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">alert.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="alert_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* alert.h -- DTLS alert protocol</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef _DTLS_ALERT_H_</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_ALERT_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f"> 34</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7"> 35</a></span>  <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a>=1,</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4"> 36</a></span>  <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>=2</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> } <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a>;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd"> 39</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800"> 40</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a> = 0, <span class="comment">/* close_notify */</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a"> 41</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a> = 10, <span class="comment">/* unexpected_message */</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca"> 42</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca">DTLS_ALERT_BAD_RECORD_MAC</a> = 20, <span class="comment">/* bad_record_mac */</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12"> 43</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12">DTLS_ALERT_RECORD_OVERFLOW</a> = 22, <span class="comment">/* record_overflow */</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888"> 44</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888">DTLS_ALERT_DECOMPRESSION_FAILURE</a> = 30, <span class="comment">/* decompression_failure */</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d"> 45</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a> = 40, <span class="comment">/* handshake_failure */</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c"> 46</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c">DTLS_ALERT_BAD_CERTIFICATE</a> = 42, <span class="comment">/* bad_certificate */</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab"> 47</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab">DTLS_ALERT_UNSUPPORTED_CERTIFICATE</a> = 43, <span class="comment">/* unsupported_certificate */</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1"> 48</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1">DTLS_ALERT_CERTIFICATE_REVOKED</a> = 44, <span class="comment">/* certificate_revoked */</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782"> 49</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782">DTLS_ALERT_CERTIFICATE_EXPIRED</a> = 45, <span class="comment">/* certificate_expired */</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d"> 50</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d">DTLS_ALERT_CERTIFICATE_UNKNOWN</a> = 46, <span class="comment">/* certificate_unknown */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc"> 51</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">DTLS_ALERT_ILLEGAL_PARAMETER</a> = 47, <span class="comment">/* illegal_parameter */</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f"> 52</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f">DTLS_ALERT_UNKNOWN_CA</a> = 48, <span class="comment">/* unknown_ca */</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11"> 53</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11">DTLS_ALERT_ACCESS_DENIED</a> = 49, <span class="comment">/* access_denied */</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649"> 54</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a> = 50, <span class="comment">/* decode_error */</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0"> 55</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">DTLS_ALERT_DECRYPT_ERROR</a> = 51, <span class="comment">/* decrypt_error */</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652"> 56</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a> = 70, <span class="comment">/* protocol_version */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e"> 57</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a> = 71, <span class="comment">/* insufficient_security */</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58"> 58</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a> = 80, <span class="comment">/* internal_error */</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638"> 59</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638">DTLS_ALERT_USER_CANCELED</a> = 90, <span class="comment">/* user_canceled */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab"> 60</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a> = 100, <span class="comment">/* no_renegotiation */</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc"> 61</a></span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc">DTLS_ALERT_UNSUPPORTED_EXTENSION</a> = 110 <span class="comment">/* unsupported_extension */</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> } <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844"> 64</a></span> <span class="preprocessor">#define DTLS_EVENT_CONNECT 0x01DC </span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22"> 65</a></span> <span class="preprocessor">#define DTLS_EVENT_CONNECTED 0x01DE </span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#define DTLS_EVENT_RENEGOTIATE 0x01DF </span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">static inline int</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span><a class="code" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a>(<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> desc)</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d"> 71</a></span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> -((level << 8) | desc);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> desc)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df"> 77</a></span> {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a>(<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>, desc);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_ALERT_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00045">alert.h:45</a></div></div>
-<div class="ttc" id="alert_8h_html_a9b9a52e7d4bb621be12878c7dfc8f5df"><div class="ttname"><a href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a></div><div class="ttdeci">static int dtls_alert_fatal_create(dtls_alert_t desc)</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00077">alert.h:77</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638">DTLS_ALERT_USER_CANCELED</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00059">alert.h:59</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00036">alert.h:36</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00035">alert.h:35</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871f"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a></div><div class="ttdeci">dtls_alert_level_t</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00034">alert.h:34</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782">DTLS_ALERT_CERTIFICATE_EXPIRED</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00049">alert.h:49</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00040">alert.h:40</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d">DTLS_ALERT_CERTIFICATE_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00050">alert.h:50</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00060">alert.h:60</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00041">alert.h:41</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00058">alert.h:58</a></div></div>
-<div class="ttc" id="alert_8h_html_a4242f419ffdd4b83bfaa2a0935ed2b6d"><div class="ttname"><a href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a></div><div class="ttdeci">static int dtls_alert_create(dtls_alert_level_t level, dtls_alert_t desc)</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00071">alert.h:71</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab">DTLS_ALERT_UNSUPPORTED_CERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00047">alert.h:47</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f">DTLS_ALERT_UNKNOWN_CA</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00052">alert.h:52</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00054">alert.h:54</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12">DTLS_ALERT_RECORD_OVERFLOW</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00043">alert.h:43</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc">DTLS_ALERT_UNSUPPORTED_EXTENSION</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00061">alert.h:61</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbd"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a></div><div class="ttdeci">dtls_alert_t</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00039">alert.h:39</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca">DTLS_ALERT_BAD_RECORD_MAC</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00042">alert.h:42</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1">DTLS_ALERT_CERTIFICATE_REVOKED</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00048">alert.h:48</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c">DTLS_ALERT_BAD_CERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00046">alert.h:46</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">DTLS_ALERT_DECRYPT_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00055">alert.h:55</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00056">alert.h:56</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11">DTLS_ALERT_ACCESS_DENIED</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00053">alert.h:53</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888">DTLS_ALERT_DECOMPRESSION_FAILURE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00044">alert.h:44</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00057">alert.h:57</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">DTLS_ALERT_ILLEGAL_PARAMETER</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00051">alert.h:51</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Data Structures</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">Data Structures</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structaes128__ccm__t.html" target="_self">aes128_ccm_t</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__cipher__context__t.html" target="_self">dtls_cipher_context_t</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__context__t.html" target="_self">dtls_context_t</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__ecdsa__key__t.html" target="_self">dtls_ecdsa_key_t</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__handler__t.html" target="_self">dtls_handler_t</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html" target="_self">dtls_handshake_parameters_ecdsa_t</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__handshake__parameters__psk__t.html" target="_self">dtls_handshake_parameters_psk_t</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__handshake__parameters__t.html" target="_self">dtls_handshake_parameters_t</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__hmac__context__t.html" target="_self">dtls_hmac_context_t</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__hs__state__t.html" target="_self">dtls_hs_state_t</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__peer__t.html" target="_self">dtls_peer_t</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structdtls__security__parameters__t.html" target="_self">dtls_security_parameters_t</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structlist.html" target="_self">list</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structnetq__t.html" target="_self">netq_t</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structsession__t.html" target="_self">session_t</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structUT__hash__bucket.html" target="_self">UT_hash_bucket</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structUT__hash__handle.html" target="_self">UT_hash_handle</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structUT__hash__table.html" target="_self">UT_hash_table</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: ccm.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">ccm.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <string.h></code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="numeric_8h_source.html">numeric.h</a>"</code><br/>
-<code>#include "<a class="el" href="ccm_8h_source.html">ccm.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-</div>
-<p><a href="ccm_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a18f6fffa08314e79c95e2de10e7409cb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb">CCM_FLAGS</a>(A, M, L)   (((A > 0) << 6) | (((M - 2)/2) << 3) | (L - 1))</td></tr>
-<tr class="separator:a18f6fffa08314e79c95e2de10e7409cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a46e95fc2cb115ab9c342707ec443265f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f">MASK_L</a>(_L)   ((1 << 8 * _L) - 1)</td></tr>
-<tr class="separator:a46e95fc2cb115ab9c342707ec443265f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a13d9e1fa611f50a7176fd6da7b1b4994"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">SET_COUNTER</a>(A, L, cnt, C)</td></tr>
-<tr class="separator:a13d9e1fa611f50a7176fd6da7b1b4994"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a1dfe92428f63772e3907a26435e54354"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">block0</a> (size_t M, size_t L, size_t la, size_t lm, unsigned char nonce[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char *result)</td></tr>
-<tr class="separator:a1dfe92428f63772e3907a26435e54354"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a59faf5a2a638dc03c01605d4bebe0bcc"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">add_auth_data</a> (rijndael_ctx *ctx, const unsigned char *msg, size_t la, unsigned char B[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char X[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>])</td></tr>
-<tr class="separator:a59faf5a2a638dc03c01605d4bebe0bcc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a983462ca57ee8fe54249c77281f6559e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a> (rijndael_ctx *ctx, size_t L, unsigned long counter, unsigned char *msg, size_t len, unsigned char A[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char S[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>])</td></tr>
-<tr class="separator:a983462ca57ee8fe54249c77281f6559e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af90d9a6bdae478b53926bf6f1bd6c9d5"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a> (rijndael_ctx *ctx, unsigned char *msg, size_t len, unsigned char B[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char X[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>])</td></tr>
-<tr class="separator:af90d9a6bdae478b53926bf6f1bd6c9d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a40f4f23b5687e18dc1bce1c19101da42"><td class="memItemLeft" align="right" valign="top">long int </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a> (rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:a40f4f23b5687e18dc1bce1c19101da42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa3e92bdeca1d0730d48b8a85181d5b6d"><td class="memItemLeft" align="right" valign="top">long int </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a> (rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:aa3e92bdeca1d0730d48b8a85181d5b6d"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a18f6fffa08314e79c95e2de10e7409cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CCM_FLAGS</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">A, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">M, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">L </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (((A > 0) << 6) | (((M - 2)/2) << 3) | (L - 1))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00037">37</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a46e95fc2cb115ab9c342707ec443265f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define MASK_L</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">_L</td><td>)</td>
- <td>   ((1 << 8 * _L) - 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00039">39</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a13d9e1fa611f50a7176fd6da7b1b4994"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define SET_COUNTER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">A, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">L, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cnt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">C </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">{ \</div>
-<div class="line"> int i; \</div>
-<div class="line"> memset((A) + <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a> - (L), 0, (L)); \</div>
-<div class="line"> (C) = (cnt) & <a class="code" href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f">MASK_L</a>(L); \</div>
-<div class="line"> for (i = <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a> - 1; (C) && (i > (L)); --i, (C) >>= 8) \</div>
-<div class="line"> (A)[i] |= (C) & 0xFF; \</div>
-<div class="line"> }</div>
-<div class="ttc" id="ccm_8c_html_a46e95fc2cb115ab9c342707ec443265f"><div class="ttname"><a href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f">MASK_L</a></div><div class="ttdeci">#define MASK_L(_L)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00039">ccm.c:39</a></div></div>
-<div class="ttc" id="ccm_8h_html_a5c46c97c6c3ef5d4e5bd616dbd064859"><div class="ttname"><a href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_CCM_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8h_source.html#l00033">ccm.h:33</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00041">41</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a59faf5a2a638dc03c01605d4bebe0bcc"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void add_auth_data </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>B</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>X</em>[DTLS_CCM_BLOCKSIZE] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Creates the CBC-MAC for the additional authentication data that is sent in cleartext.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The crypto context for the AES encryption. </td></tr>
- <tr><td class="paramname">msg</td><td>The message starting with the additional authentication data. </td></tr>
- <tr><td class="paramname">la</td><td>The number of additional authentication bytes in <code>msg</code>. </td></tr>
- <tr><td class="paramname">B</td><td>The input buffer for crypto operations. When this function is called, <code>B</code> must be initialized with <code>B0</code> (the first authentication block. </td></tr>
- <tr><td class="paramname">X</td><td>The output buffer where the result of the CBC calculation is placed. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The result is written to <code>X</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00084">84</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1dfe92428f63772e3907a26435e54354"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void block0 </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>lm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>nonce</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00050">50</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa3e92bdeca1d0730d48b8a85181d5b6d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">long int dtls_ccm_decrypt_message </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>nonce</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>lm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00240">240</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a40f4f23b5687e18dc1bce1c19101da42"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">long int dtls_ccm_encrypt_message </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>nonce</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>lm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Authenticates and encrypts a message using AES in CCM mode. Please see also RFC 3610 for the meaning of <code>M</code>, <code>L</code>, <code>lm</code> and <code>la</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The initialized rijndael_ctx object to be used for AES operations. </td></tr>
- <tr><td class="paramname">M</td><td>The number of authentication octets. </td></tr>
- <tr><td class="paramname">L</td><td>The number of bytes used to encode the message length. </td></tr>
- <tr><td class="paramname">N</td><td>The nonce value to use. You must provide <code>DTLS_CCM_BLOCKSIZE</code> nonce octets, although only the first <code>16</code> - <code>L</code> are used. </td></tr>
- <tr><td class="paramname">msg</td><td>The message to encrypt. The first <code>la</code> octets are additional authentication data that will be cleartext. Note that the encryption operation modifies the contents of <code>msg</code> and adds <code>M</code> bytes MAC. Therefore, the buffer must be at least <code>lm</code> + <code>M</code> bytes large. </td></tr>
- <tr><td class="paramname">lm</td><td>The actual length of <code>msg</code>. </td></tr>
- <tr><td class="paramname">aad</td><td>A pointer to the additional authentication data (can be <code>NULL</code> if <code>la</code> is zero). </td></tr>
- <tr><td class="paramname">la</td><td>The number of additional authentication octets (may be zero). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>FIXME </dd></dl>
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00176">176</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a983462ca57ee8fe54249c77281f6559e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void encrypt </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned long </td>
- <td class="paramname"><em>counter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>A</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>S</em>[DTLS_CCM_BLOCKSIZE] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00149">149</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af90d9a6bdae478b53926bf6f1bd6c9d5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void mac </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>B</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>X</em>[DTLS_CCM_BLOCKSIZE] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00162">162</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: ccm.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">ccm.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="ccm_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <string.h></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="numeric_8h.html">numeric.h</a>"</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="ccm_8h.html">ccm.h</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor"># include <assert.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb"> 37</a></span> <span class="preprocessor">#define CCM_FLAGS(A,M,L) (((A > 0) << 6) | (((M - 2)/2) << 3) | (L - 1))</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f"> 39</a></span> <span class="preprocessor">#define MASK_L(_L) ((1 << 8 * _L) - 1)</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994"> 41</a></span> <span class="preprocessor">#define SET_COUNTER(A,L,cnt,C) { \</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> int i; \</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> memset((A) + DTLS_CCM_BLOCKSIZE - (L), 0, (L)); \</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"> (C) = (cnt) & MASK_L(L); \</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"> for (i = DTLS_CCM_BLOCKSIZE - 1; (C) && (i > (L)); --i, (C) >>= 8) \</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"> (A)[i] |= (C) & 0xFF; \</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354"> 50</a></span> <a class="code" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">block0</a>(<span class="keywordtype">size_t</span> M, <span class="comment">/* number of auth bytes */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">size_t</span> L, <span class="comment">/* number of bytes to encode message length */</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">size_t</span> la, <span class="comment">/* l(a) octets additional authenticated data */</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">size_t</span> lm, <span class="comment">/* l(m) message length */</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>],</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result) {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  result[0] = <a class="code" href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb">CCM_FLAGS</a>(la, M, L);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">/* copy the nonce */</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  memcpy(result + 1, nonce, DTLS_CCM_BLOCKSIZE - L);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span> (i=0; i < L; i++) {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  result[15-i] = lm & 0xff;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  lm >>= 8;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc"> 84</a></span> <a class="code" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">add_auth_data</a>(rijndael_ctx *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> la,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> B[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> X[DTLS_CCM_BLOCKSIZE]) {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">size_t</span> i,j; </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  rijndael_encrypt(ctx, B, X);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  memset(B, 0, DTLS_CCM_BLOCKSIZE);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (!la)</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (la < 0xFF00) { <span class="comment">/* 2^16 - 2^8 */</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  j = 2;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(B, la);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (la <= UINT32_MAX) {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  j = 6;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(B, 0xFFFE);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(B+2, la);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  j = 10;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(B, 0xFFFF);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">dtls_int_to_uint64</a>(B+2, la);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"></span> <span class="comment">/* With Contiki, we are building for small devices and thus</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> * anticipate that the number of additional authentication bytes</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> * will not exceed 65280 bytes (0xFF00) and we can skip the</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> * workarounds required for j=6 and j=10 on devices with a word size</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> * of 32 bits or 64 bits, respectively.</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  assert(la < 0xFF00);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  j = 2;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(B, la);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  i = <a class="code" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a>(DTLS_CCM_BLOCKSIZE - j, la);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  memcpy(B + j, msg, i);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  la -= i;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  msg += i;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a>(B, X, DTLS_CCM_BLOCKSIZE);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  rijndael_encrypt(ctx, B, X);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">while</span> (la > DTLS_CCM_BLOCKSIZE) {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>; ++i)</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  B[i] = X[i] ^ *msg++;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  la -= <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  rijndael_encrypt(ctx, B, X);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (la) {</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  memset(B, 0, DTLS_CCM_BLOCKSIZE);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  memcpy(B, msg, la);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a>(B, X, DTLS_CCM_BLOCKSIZE);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  rijndael_encrypt(ctx, B, X); </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  } </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e"> 149</a></span> <a class="code" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a>(rijndael_ctx *ctx, <span class="keywordtype">size_t</span> L, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter,</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> len,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>],</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> S[DTLS_CCM_BLOCKSIZE]) {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter_tmp;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">SET_COUNTER</a>(A, L, counter, counter_tmp); </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  rijndael_encrypt(ctx, A, S);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a>(msg, S, len);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5"> 162</a></span> <a class="code" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a>(rijndael_ctx *ctx, </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> len,</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> B[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>],</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> X[DTLS_CCM_BLOCKSIZE]) {</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">size_t</span> i;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">for</span> (i = 0; i < len; ++i)</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  B[i] = X[i] ^ msg[i];</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  rijndael_encrypt(ctx, B, X);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42"> 176</a></span> <a class="code" href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a>(rijndael_ctx *ctx, <span class="keywordtype">size_t</span> M, <span class="keywordtype">size_t</span> L, </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> lm, </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la) {</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordtype">size_t</span> i, len;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter_tmp;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter = 1; <span class="comment">/* \bug does not work correctly on ia32 when</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> lm >= 2^16 */</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* A_i blocks for encryption input */</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> B[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* B_i blocks for CBC-MAC input */</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> S[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* S_i = encrypted A_i blocks */</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> X[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* X_i = encrypted B_i blocks */</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  len = lm; <span class="comment">/* save original length */</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">/* create the initial authentication block B0 */</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">block0</a>(M, L, la, lm, nonce, B);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">add_auth_data</a>(ctx, aad, la, B, X);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">/* initialize block template */</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  A[0] = L-1;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">/* copy the nonce */</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  memcpy(A + 1, nonce, DTLS_CCM_BLOCKSIZE - L);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">while</span> (lm >= DTLS_CCM_BLOCKSIZE) {</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="comment">/* calculate MAC */</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a>(ctx, msg, DTLS_CCM_BLOCKSIZE, B, X);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">/* encrypt */</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a>(ctx, L, counter, msg, DTLS_CCM_BLOCKSIZE, A, S);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">/* update local pointers */</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  lm -= <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  msg += <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  counter++;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span> (lm) {</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">/* Calculate MAC. The remainder of B must be padded with zeroes, so</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> * B is constructed to contain X ^ msg for the first lm bytes (done in</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"> * mac() and X ^ 0 for the remaining DTLS_CCM_BLOCKSIZE - lm bytes</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"> * (i.e., we can use memcpy() here).</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  memcpy(B + lm, X + lm, DTLS_CCM_BLOCKSIZE - lm);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a>(ctx, msg, lm, B, X);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">/* encrypt */</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a>(ctx, L, counter, msg, lm, A, S);</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">/* update local pointers */</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  msg += lm;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">/* calculate S_0 */</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">SET_COUNTER</a>(A, L, 0, counter_tmp);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  rijndael_encrypt(ctx, A, S);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span> (i = 0; i < M; ++i)</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  *msg++ = X[i] ^ S[i];</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> len + M;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d"> 240</a></span> <a class="code" href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a>(rijndael_ctx *ctx, <span class="keywordtype">size_t</span> M, <span class="keywordtype">size_t</span> L,</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> lm, </div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la) {</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">size_t</span> len;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter_tmp;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> counter = 1; <span class="comment">/* \bug does not work correctly on ia32 when</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> lm >= 2^16 */</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* A_i blocks for encryption input */</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> B[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* B_i blocks for CBC-MAC input */</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> S[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* S_i = encrypted A_i blocks */</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> X[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>]; <span class="comment">/* X_i = encrypted B_i blocks */</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (lm < M)</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  len = lm; <span class="comment">/* save original length */</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  lm -= M; <span class="comment">/* detract MAC size*/</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="comment">/* create the initial authentication block B0 */</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">block0</a>(M, L, la, lm, nonce, B);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">add_auth_data</a>(ctx, aad, la, B, X);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="comment">/* initialize block template */</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  A[0] = L-1;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">/* copy the nonce */</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  memcpy(A + 1, nonce, DTLS_CCM_BLOCKSIZE - L);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">while</span> (lm >= DTLS_CCM_BLOCKSIZE) {</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">/* decrypt */</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a>(ctx, L, counter, msg, DTLS_CCM_BLOCKSIZE, A, S);</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="comment">/* calculate MAC */</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a>(ctx, msg, DTLS_CCM_BLOCKSIZE, B, X);</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">/* update local pointers */</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  lm -= <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  msg += <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  counter++;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (lm) {</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">/* decrypt */</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a>(ctx, L, counter, msg, lm, A, S);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">/* Calculate MAC. Note that msg ends in the MAC so we must</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment"> * construct B to contain X ^ msg for the first lm bytes (done in</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment"> * mac() and X ^ 0 for the remaining DTLS_CCM_BLOCKSIZE - lm bytes</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"> * (i.e., we can use memcpy() here).</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  memcpy(B + lm, X + lm, DTLS_CCM_BLOCKSIZE - lm);</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a>(ctx, msg, lm, B, X); </div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">/* update local pointers */</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  msg += lm;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="comment">/* calculate S_0 */</span> </div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">SET_COUNTER</a>(A, L, 0, counter_tmp);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  rijndael_encrypt(ctx, A, S);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a>(msg, S, M);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">/* return length if MAC is valid, otherwise continue with error handling */</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (<a class="code" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a>(X, msg, M))</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> len - M;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  error:</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div>
-<div class="ttc" id="ccm_8c_html_a1dfe92428f63772e3907a26435e54354"><div class="ttname"><a href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">block0</a></div><div class="ttdeci">static void block0(size_t M, size_t L, size_t la, size_t lm, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00050">ccm.c:50</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="ccm_8c_html_aa3e92bdeca1d0730d48b8a85181d5b6d"><div class="ttname"><a href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a></div><div class="ttdeci">long int dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00240">ccm.c:240</a></div></div>
-<div class="ttc" id="debug_8c_html_ac6afabdc09a49a433ee19d8a9486056d"><div class="ttname"><a href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a></div><div class="ttdeci">#define min(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00114">debug.c:114</a></div></div>
-<div class="ttc" id="global_8h_html_a6c31c5d8a0fe09547a192100d2a00dc5"><div class="ttname"><a href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a></div><div class="ttdeci">static void memxor(unsigned char *x, const unsigned char *y, size_t n)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00109">global.h:109</a></div></div>
-<div class="ttc" id="ccm_8c_html_a983462ca57ee8fe54249c77281f6559e"><div class="ttname"><a href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">encrypt</a></div><div class="ttdeci">static void encrypt(rijndael_ctx *ctx, size_t L, unsigned long counter, unsigned char *msg, size_t len, unsigned char A[DTLS_CCM_BLOCKSIZE], unsigned char S[DTLS_CCM_BLOCKSIZE])</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00149">ccm.c:149</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="ccm_8c_html_a18f6fffa08314e79c95e2de10e7409cb"><div class="ttname"><a href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb">CCM_FLAGS</a></div><div class="ttdeci">#define CCM_FLAGS(A, M, L)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00037">ccm.c:37</a></div></div>
-<div class="ttc" id="ccm_8c_html_a40f4f23b5687e18dc1bce1c19101da42"><div class="ttname"><a href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a></div><div class="ttdeci">long int dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00176">ccm.c:176</a></div></div>
-<div class="ttc" id="numeric_8h_html_ab4d80395fb7f4118dfcb101ae94a5e93"><div class="ttname"><a href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">dtls_int_to_uint64</a></div><div class="ttdeci">static int dtls_int_to_uint64(unsigned char *field, uint64_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00081">numeric.h:81</a></div></div>
-<div class="ttc" id="numeric_8h_html_a074d352855e1ffde4c2ddb6a6fea01b9"><div class="ttname"><a href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a></div><div class="ttdeci">static int dtls_int_to_uint16(unsigned char *field, uint16_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00046">numeric.h:46</a></div></div>
-<div class="ttc" id="ccm_8c_html_a59faf5a2a638dc03c01605d4bebe0bcc"><div class="ttname"><a href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">add_auth_data</a></div><div class="ttdeci">static void add_auth_data(rijndael_ctx *ctx, const unsigned char *msg, size_t la, unsigned char B[DTLS_CCM_BLOCKSIZE], unsigned char X[DTLS_CCM_BLOCKSIZE])</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00084">ccm.c:84</a></div></div>
-<div class="ttc" id="numeric_8h_html_a6914ee523b27539f4e441bede8c072b4"><div class="ttname"><a href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a></div><div class="ttdeci">static int dtls_int_to_uint32(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00061">numeric.h:61</a></div></div>
-<div class="ttc" id="ccm_8c_html_af90d9a6bdae478b53926bf6f1bd6c9d5"><div class="ttname"><a href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">mac</a></div><div class="ttdeci">static void mac(rijndael_ctx *ctx, unsigned char *msg, size_t len, unsigned char B[DTLS_CCM_BLOCKSIZE], unsigned char X[DTLS_CCM_BLOCKSIZE])</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00162">ccm.c:162</a></div></div>
-<div class="ttc" id="ccm_8h_html_a5c46c97c6c3ef5d4e5bd616dbd064859"><div class="ttname"><a href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_CCM_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8h_source.html#l00033">ccm.h:33</a></div></div>
-<div class="ttc" id="global_8h_html_a8277c276ecd5cd2f998f08fd344d90ef"><div class="ttname"><a href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a></div><div class="ttdeci">static int equals(unsigned char *a, unsigned char *b, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00127">global.h:127</a></div></div>
-<div class="ttc" id="numeric_8h_html"><div class="ttname"><a href="numeric_8h.html">numeric.h</a></div></div>
-<div class="ttc" id="ccm_8c_html_a13d9e1fa611f50a7176fd6da7b1b4994"><div class="ttname"><a href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">SET_COUNTER</a></div><div class="ttdeci">#define SET_COUNTER(A, L, cnt, C)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00041">ccm.c:41</a></div></div>
-<div class="ttc" id="ccm_8h_html"><div class="ttname"><a href="ccm_8h.html">ccm.h</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: ccm.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">ccm.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "aes/rijndael.h"</code><br/>
-</div>
-<p><a href="ccm_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a5c46c97c6c3ef5d4e5bd616dbd064859"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>   16</td></tr>
-<tr class="separator:a5c46c97c6c3ef5d4e5bd616dbd064859"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a84305b079fda12bfa1323b41b3c50849"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8h.html#a84305b079fda12bfa1323b41b3c50849">DTLS_CCM_MAX</a>   16</td></tr>
-<tr class="separator:a84305b079fda12bfa1323b41b3c50849"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2d0e7515c26737872fe840958ed140ac"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">DTLS_CCM_NONCE_SIZE</a>   12</td></tr>
-<tr class="separator:a2d0e7515c26737872fe840958ed140ac"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a40f4f23b5687e18dc1bce1c19101da42"><td class="memItemLeft" align="right" valign="top">long int </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a> (rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:a40f4f23b5687e18dc1bce1c19101da42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa3e92bdeca1d0730d48b8a85181d5b6d"><td class="memItemLeft" align="right" valign="top">long int </td><td class="memItemRight" valign="bottom"><a class="el" href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a> (rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[<a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:aa3e92bdeca1d0730d48b8a85181d5b6d"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a5c46c97c6c3ef5d4e5bd616dbd064859"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CCM_BLOCKSIZE   16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>size of hmac blocks </p>
-
-<p>Definition at line <a class="el" href="ccm_8h_source.html#l00033">33</a> of file <a class="el" href="ccm_8h_source.html">ccm.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a84305b079fda12bfa1323b41b3c50849"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CCM_MAX   16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>max number of bytes in digest </p>
-
-<p>Definition at line <a class="el" href="ccm_8h_source.html#l00034">34</a> of file <a class="el" href="ccm_8h_source.html">ccm.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2d0e7515c26737872fe840958ed140ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CCM_NONCE_SIZE   12</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>size of nonce </p>
-
-<p>Definition at line <a class="el" href="ccm_8h_source.html#l00035">35</a> of file <a class="el" href="ccm_8h_source.html">ccm.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aa3e92bdeca1d0730d48b8a85181d5b6d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">long int dtls_ccm_decrypt_message </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>nonce</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>lm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00240">240</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a40f4f23b5687e18dc1bce1c19101da42"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">long int dtls_ccm_encrypt_message </td>
- <td>(</td>
- <td class="paramtype">rijndael_ctx * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>L</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>nonce</em>[DTLS_CCM_BLOCKSIZE], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>lm</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Authenticates and encrypts a message using AES in CCM mode. Please see also RFC 3610 for the meaning of <code>M</code>, <code>L</code>, <code>lm</code> and <code>la</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The initialized rijndael_ctx object to be used for AES operations. </td></tr>
- <tr><td class="paramname">M</td><td>The number of authentication octets. </td></tr>
- <tr><td class="paramname">L</td><td>The number of bytes used to encode the message length. </td></tr>
- <tr><td class="paramname">N</td><td>The nonce value to use. You must provide <code>DTLS_CCM_BLOCKSIZE</code> nonce octets, although only the first <code>16</code> - <code>L</code> are used. </td></tr>
- <tr><td class="paramname">msg</td><td>The message to encrypt. The first <code>la</code> octets are additional authentication data that will be cleartext. Note that the encryption operation modifies the contents of <code>msg</code> and adds <code>M</code> bytes MAC. Therefore, the buffer must be at least <code>lm</code> + <code>M</code> bytes large. </td></tr>
- <tr><td class="paramname">lm</td><td>The actual length of <code>msg</code>. </td></tr>
- <tr><td class="paramname">aad</td><td>A pointer to the additional authentication data (can be <code>NULL</code> if <code>la</code> is zero). </td></tr>
- <tr><td class="paramname">la</td><td>The number of additional authentication octets (may be zero). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>FIXME </dd></dl>
-
-<p>Definition at line <a class="el" href="ccm_8c_source.html#l00176">176</a> of file <a class="el" href="ccm_8c_source.html">ccm.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: ccm.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">ccm.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="ccm_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_CCM_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_CCM_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "aes/rijndael.h"</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">/* implementation of Counter Mode CBC-MAC, RFC 3610 */</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859"> 33</a></span> <span class="preprocessor">#define DTLS_CCM_BLOCKSIZE 16 </span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="ccm_8h.html#a84305b079fda12bfa1323b41b3c50849"> 34</a></span> <span class="preprocessor">#define DTLS_CCM_MAX 16 </span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac"> 35</a></span> <span class="preprocessor">#define DTLS_CCM_NONCE_SIZE 12 </span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">long int</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span><a class="code" href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a>(rijndael_ctx *ctx, <span class="keywordtype">size_t</span> M, <span class="keywordtype">size_t</span> L, </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> lm, </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <a class="code" href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a>(rijndael_ctx *ctx, <span class="keywordtype">size_t</span> M, <span class="keywordtype">size_t</span> L, </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>], </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *msg, <span class="keywordtype">size_t</span> lm, </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_CCM_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="ccm_8h_html_a40f4f23b5687e18dc1bce1c19101da42"><div class="ttname"><a href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a></div><div class="ttdeci">long int dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00176">ccm.c:176</a></div></div>
-<div class="ttc" id="ccm_8h_html_aa3e92bdeca1d0730d48b8a85181d5b6d"><div class="ttname"><a href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a></div><div class="ttdeci">long int dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00240">ccm.c:240</a></div></div>
-<div class="ttc" id="ccm_8h_html_a5c46c97c6c3ef5d4e5bd616dbd064859"><div class="ttname"><a href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_CCM_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8h_source.html#l00033">ccm.h:33</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Data Structure Index</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">Data Structure Index</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_U">U</a></div>
-<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  U  </div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  d  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html">dtls_handshake_parameters_ecdsa_t</a>   </td><td valign="top"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>   </td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  s  </div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a>   </td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  l  </div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a>   </td><td valign="top"><a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a>   </td><td valign="top"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>   </td><td valign="top"><a class="el" href="structsession__t.html">session_t</a>   </td></tr>
-<tr><td valign="top"><a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>   </td><td valign="top"><a class="el" href="structdtls__context__t.html">dtls_context_t</a>   </td><td valign="top"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>   </td><td valign="top"><a class="el" href="structlist.html">list</a>   </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structUT__hash__table.html">UT_hash_table</a>   </td><td valign="top"><a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a>   </td><td valign="top"><a class="el" href="structdtls__hs__state__t.html">dtls_hs_state_t</a>   </td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  n  </div></td></tr></table>
-</td><td></td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  a  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structdtls__handler__t.html">dtls_handler_t</a>   </td><td valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>   </td><td></td></tr>
-<tr><td></td><td></td><td valign="top"><a class="el" href="structnetq__t.html">netq_t</a>   </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a>   </td><td></td><td></td><td></td><td></td></tr>
-<tr><td></td><td></td><td></td><td></td><td></td></tr>
-</table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_U">U</a></div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: config.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle">
-<div class="title">config.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="config_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a7d1a71461e07569d0c9003da24c30a59"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a7d1a71461e07569d0c9003da24c30a59">HAVE_ARPA_INET_H</a>   1</td></tr>
-<tr class="separator:a7d1a71461e07569d0c9003da24c30a59"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad0eabe2e5407bc73450eb15b657983cd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">HAVE_ASSERT_H</a>   1</td></tr>
-<tr class="separator:ad0eabe2e5407bc73450eb15b657983cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a765d75020849aa0a9b6becd9a5b7a193"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">HAVE_FCNTL_H</a>   1</td></tr>
-<tr class="separator:a765d75020849aa0a9b6becd9a5b7a193"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab90a030ff2790ebdc176660a6dd2a478"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">HAVE_INTTYPES_H</a>   1</td></tr>
-<tr class="separator:ab90a030ff2790ebdc176660a6dd2a478"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a14503280ca0cb757db915eea09282bfc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a14503280ca0cb757db915eea09282bfc">HAVE_MALLOC</a>   1</td></tr>
-<tr class="separator:a14503280ca0cb757db915eea09282bfc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae93a78f9d076138897af441c9f86f285"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ae93a78f9d076138897af441c9f86f285">HAVE_MEMORY_H</a>   1</td></tr>
-<tr class="separator:ae93a78f9d076138897af441c9f86f285"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3df52e9809253860c385be6f3a160607"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a3df52e9809253860c385be6f3a160607">HAVE_MEMSET</a>   1</td></tr>
-<tr class="separator:a3df52e9809253860c385be6f3a160607"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9fe2d1d4726a6b846483a2276866dc6e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">HAVE_NETDB_H</a>   1</td></tr>
-<tr class="separator:a9fe2d1d4726a6b846483a2276866dc6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0938658b988a082864efcee2d1b2bfd2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a0938658b988a082864efcee2d1b2bfd2">HAVE_NETINET_IN_H</a>   1</td></tr>
-<tr class="separator:a0938658b988a082864efcee2d1b2bfd2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aee3a7313d861afa18971031528fd0cd5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#aee3a7313d861afa18971031528fd0cd5">HAVE_SELECT</a>   1</td></tr>
-<tr class="separator:aee3a7313d861afa18971031528fd0cd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4cd6234bfe3f7c10968a1151f43ce280"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">HAVE_SOCKET</a>   1</td></tr>
-<tr class="separator:a4cd6234bfe3f7c10968a1151f43ce280"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0e6b9a04ae66b7846715e51a0a2dccff"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">HAVE_STDDEF_H</a>   1</td></tr>
-<tr class="separator:a0e6b9a04ae66b7846715e51a0a2dccff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab6cd6d1c63c1e26ea2d4537b77148354"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">HAVE_STDINT_H</a>   1</td></tr>
-<tr class="separator:ab6cd6d1c63c1e26ea2d4537b77148354"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9e0e434ec1a6ddbd97db12b5a32905e0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">HAVE_STDLIB_H</a>   1</td></tr>
-<tr class="separator:a9e0e434ec1a6ddbd97db12b5a32905e0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a41b838eb3b86a0ebbd0981e92a759c0f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">HAVE_STRDUP</a>   1</td></tr>
-<tr class="separator:a41b838eb3b86a0ebbd0981e92a759c0f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a992653625041edef146772df96f7bca9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a992653625041edef146772df96f7bca9">HAVE_STRERROR</a>   1</td></tr>
-<tr class="separator:a992653625041edef146772df96f7bca9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a405d10d46190bcb0320524c54eafc850"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a405d10d46190bcb0320524c54eafc850">HAVE_STRINGS_H</a>   1</td></tr>
-<tr class="separator:a405d10d46190bcb0320524c54eafc850"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad4c234dd1625255dc626a15886306e7d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ad4c234dd1625255dc626a15886306e7d">HAVE_STRING_H</a>   1</td></tr>
-<tr class="separator:ad4c234dd1625255dc626a15886306e7d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9bee6d8db098b2230690f8e8db9ffb74"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">HAVE_STRNLEN</a>   1</td></tr>
-<tr class="separator:a9bee6d8db098b2230690f8e8db9ffb74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a05aa9fc25e1231d8eb347390558e4e22"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">HAVE_SYS_PARAM_H</a>   1</td></tr>
-<tr class="separator:a05aa9fc25e1231d8eb347390558e4e22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afb96c2bc08ebf33cca68c714f624a58d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">HAVE_SYS_SOCKET_H</a>   1</td></tr>
-<tr class="separator:afb96c2bc08ebf33cca68c714f624a58d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ace156430ba007d19b4348a950d0c692b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ace156430ba007d19b4348a950d0c692b">HAVE_SYS_STAT_H</a>   1</td></tr>
-<tr class="separator:ace156430ba007d19b4348a950d0c692b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2aae46056558e9d6fef6380f9678ffe3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">HAVE_SYS_TIME_H</a>   1</td></tr>
-<tr class="separator:a2aae46056558e9d6fef6380f9678ffe3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a69dc70bea5d1f8bd2be9740e974fa666"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">HAVE_SYS_TYPES_H</a>   1</td></tr>
-<tr class="separator:a69dc70bea5d1f8bd2be9740e974fa666"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2397007ae170bf57faa808bacaaa2499"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a2397007ae170bf57faa808bacaaa2499">HAVE_TIME_H</a>   1</td></tr>
-<tr class="separator:a2397007ae170bf57faa808bacaaa2499"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a219b06937831d0da94d801ab13987639"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a219b06937831d0da94d801ab13987639">HAVE_UNISTD_H</a>   1</td></tr>
-<tr class="separator:a219b06937831d0da94d801ab13987639"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a11e8ffa0e0ee1d52812402f2eac05fa7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">HAVE_VPRINTF</a>   1</td></tr>
-<tr class="separator:a11e8ffa0e0ee1d52812402f2eac05fa7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d1d2d7f8d2f95b376954d649ab03233"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">PACKAGE_BUGREPORT</a>   ""</td></tr>
-<tr class="separator:a1d1d2d7f8d2f95b376954d649ab03233"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1c0439e4355794c09b64274849eb0279"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a1c0439e4355794c09b64274849eb0279">PACKAGE_NAME</a>   "tinydtls"</td></tr>
-<tr class="separator:a1c0439e4355794c09b64274849eb0279"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac73e6f903c16eca7710f92e36e1c6fbf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">PACKAGE_STRING</a>   "tinydtls 0.5.2"</td></tr>
-<tr class="separator:ac73e6f903c16eca7710f92e36e1c6fbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af415af6bfede0e8d5453708afe68651c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#af415af6bfede0e8d5453708afe68651c">PACKAGE_TARNAME</a>   "tinydtls"</td></tr>
-<tr class="separator:af415af6bfede0e8d5453708afe68651c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5c93853116d5a50307b6744f147840aa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a5c93853116d5a50307b6744f147840aa">PACKAGE_URL</a>   ""</td></tr>
-<tr class="separator:a5c93853116d5a50307b6744f147840aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa326a05d5e30f9e9a4bb0b4469d5d0c0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">PACKAGE_VERSION</a>   "0.5.2"</td></tr>
-<tr class="separator:aa326a05d5e30f9e9a4bb0b4469d5d0c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a550e5c272cc3cf3814651721167dcd23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="config_8h.html#a550e5c272cc3cf3814651721167dcd23">STDC_HEADERS</a>   1</td></tr>
-<tr class="separator:a550e5c272cc3cf3814651721167dcd23"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a7d1a71461e07569d0c9003da24c30a59"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_ARPA_INET_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00008">8</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad0eabe2e5407bc73450eb15b657983cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_ASSERT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00011">11</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a765d75020849aa0a9b6becd9a5b7a193"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_FCNTL_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00014">14</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab90a030ff2790ebdc176660a6dd2a478"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_INTTYPES_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00020">20</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a14503280ca0cb757db915eea09282bfc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MALLOC   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00024">24</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae93a78f9d076138897af441c9f86f285"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MEMORY_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00027">27</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3df52e9809253860c385be6f3a160607"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MEMSET   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00030">30</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9fe2d1d4726a6b846483a2276866dc6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_NETDB_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00033">33</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0938658b988a082864efcee2d1b2bfd2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_NETINET_IN_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00036">36</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aee3a7313d861afa18971031528fd0cd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SELECT   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00039">39</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4cd6234bfe3f7c10968a1151f43ce280"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SOCKET   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00045">45</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0e6b9a04ae66b7846715e51a0a2dccff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDDEF_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00048">48</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab6cd6d1c63c1e26ea2d4537b77148354"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDINT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00051">51</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9e0e434ec1a6ddbd97db12b5a32905e0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDLIB_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00054">54</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a41b838eb3b86a0ebbd0981e92a759c0f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRDUP   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00057">57</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a992653625041edef146772df96f7bca9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRERROR   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00060">60</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad4c234dd1625255dc626a15886306e7d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRING_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00066">66</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a405d10d46190bcb0320524c54eafc850"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRINGS_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00063">63</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9bee6d8db098b2230690f8e8db9ffb74"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRNLEN   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00069">69</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a05aa9fc25e1231d8eb347390558e4e22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_PARAM_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00072">72</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afb96c2bc08ebf33cca68c714f624a58d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_SOCKET_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00075">75</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ace156430ba007d19b4348a950d0c692b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_STAT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00078">78</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2aae46056558e9d6fef6380f9678ffe3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_TIME_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00081">81</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a69dc70bea5d1f8bd2be9740e974fa666"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_TYPES_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00084">84</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2397007ae170bf57faa808bacaaa2499"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_TIME_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00087">87</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a219b06937831d0da94d801ab13987639"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_UNISTD_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00090">90</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a11e8ffa0e0ee1d52812402f2eac05fa7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_VPRINTF   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00093">93</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1d1d2d7f8d2f95b376954d649ab03233"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_BUGREPORT   ""</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00096">96</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1c0439e4355794c09b64274849eb0279"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_NAME   "tinydtls"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00099">99</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac73e6f903c16eca7710f92e36e1c6fbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_STRING   "tinydtls 0.5.2"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00102">102</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af415af6bfede0e8d5453708afe68651c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_TARNAME   "tinydtls"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00105">105</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c93853116d5a50307b6744f147840aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_URL   ""</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00108">108</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa326a05d5e30f9e9a4bb0b4469d5d0c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_VERSION   "0.5.2"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00111">111</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a550e5c272cc3cf3814651721167dcd23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define STDC_HEADERS   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="config_8h_source.html#l00114">114</a> of file <a class="el" href="config_8h_source.html">config.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: config.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">config.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="config_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* config.h. Generated from config.h.in by configure. */</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/* config.h.in. Generated from configure.in by autoheader. */</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/* Define if building universal (internal helper macro) */</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">/* #undef AC_APPLE_UNIVERSAL_BUILD */</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/* Define to 1 if you have the <arpa/inet.h> header file. */</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="config_8h.html#a7d1a71461e07569d0c9003da24c30a59"> 8</a></span> <span class="preprocessor">#define HAVE_ARPA_INET_H 1</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">/* Define to 1 if you have the <assert.h> header file. */</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="config_8h.html#ad0eabe2e5407bc73450eb15b657983cd"> 11</a></span> <span class="preprocessor">#define HAVE_ASSERT_H 1</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">/* Define to 1 if you have the <fcntl.h> header file. */</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="config_8h.html#a765d75020849aa0a9b6becd9a5b7a193"> 14</a></span> <span class="preprocessor">#define HAVE_FCNTL_H 1</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">/* Define to 1 if you have the `fls' function. */</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">/* #undef HAVE_FLS */</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/* Define to 1 if you have the <inttypes.h> header file. */</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="config_8h.html#ab90a030ff2790ebdc176660a6dd2a478"> 20</a></span> <span class="preprocessor">#define HAVE_INTTYPES_H 1</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/* Define to 1 if your system has a GNU libc compatible `malloc' function, and</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> to 0 otherwise. */</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="config_8h.html#a14503280ca0cb757db915eea09282bfc"> 24</a></span> <span class="preprocessor">#define HAVE_MALLOC 1</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">/* Define to 1 if you have the <memory.h> header file. */</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="config_8h.html#ae93a78f9d076138897af441c9f86f285"> 27</a></span> <span class="preprocessor">#define HAVE_MEMORY_H 1</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">/* Define to 1 if you have the `memset' function. */</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="config_8h.html#a3df52e9809253860c385be6f3a160607"> 30</a></span> <span class="preprocessor">#define HAVE_MEMSET 1</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/* Define to 1 if you have the <netdb.h> header file. */</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e"> 33</a></span> <span class="preprocessor">#define HAVE_NETDB_H 1</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/* Define to 1 if you have the <netinet/in.h> header file. */</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="config_8h.html#a0938658b988a082864efcee2d1b2bfd2"> 36</a></span> <span class="preprocessor">#define HAVE_NETINET_IN_H 1</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* Define to 1 if you have the `select' function. */</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="config_8h.html#aee3a7313d861afa18971031528fd0cd5"> 39</a></span> <span class="preprocessor">#define HAVE_SELECT 1</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* Define to 1 if struct sockaddr_in6 has a member sin6_len. */</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">/* #undef HAVE_SOCKADDR_IN6_SIN6_LEN */</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/* Define to 1 if you have the `socket' function. */</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280"> 45</a></span> <span class="preprocessor">#define HAVE_SOCKET 1</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/* Define to 1 if you have the <stddef.h> header file. */</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff"> 48</a></span> <span class="preprocessor">#define HAVE_STDDEF_H 1</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/* Define to 1 if you have the <stdint.h> header file. */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354"> 51</a></span> <span class="preprocessor">#define HAVE_STDINT_H 1</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">/* Define to 1 if you have the <stdlib.h> header file. */</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0"> 54</a></span> <span class="preprocessor">#define HAVE_STDLIB_H 1</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">/* Define to 1 if you have the `strdup' function. */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f"> 57</a></span> <span class="preprocessor">#define HAVE_STRDUP 1</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">/* Define to 1 if you have the `strerror' function. */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="config_8h.html#a992653625041edef146772df96f7bca9"> 60</a></span> <span class="preprocessor">#define HAVE_STRERROR 1</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/* Define to 1 if you have the <strings.h> header file. */</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="config_8h.html#a405d10d46190bcb0320524c54eafc850"> 63</a></span> <span class="preprocessor">#define HAVE_STRINGS_H 1</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* Define to 1 if you have the <string.h> header file. */</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="config_8h.html#ad4c234dd1625255dc626a15886306e7d"> 66</a></span> <span class="preprocessor">#define HAVE_STRING_H 1</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/* Define to 1 if you have the `strnlen' function. */</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74"> 69</a></span> <span class="preprocessor">#define HAVE_STRNLEN 1</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/* Define to 1 if you have the <sys/param.h> header file. */</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="config_8h.html#a05aa9fc25e1231d8eb347390558e4e22"> 72</a></span> <span class="preprocessor">#define HAVE_SYS_PARAM_H 1</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* Define to 1 if you have the <sys/socket.h> header file. */</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="config_8h.html#afb96c2bc08ebf33cca68c714f624a58d"> 75</a></span> <span class="preprocessor">#define HAVE_SYS_SOCKET_H 1</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">/* Define to 1 if you have the <sys/stat.h> header file. */</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="config_8h.html#ace156430ba007d19b4348a950d0c692b"> 78</a></span> <span class="preprocessor">#define HAVE_SYS_STAT_H 1</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">/* Define to 1 if you have the <sys/time.h> header file. */</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="config_8h.html#a2aae46056558e9d6fef6380f9678ffe3"> 81</a></span> <span class="preprocessor">#define HAVE_SYS_TIME_H 1</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">/* Define to 1 if you have the <sys/types.h> header file. */</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666"> 84</a></span> <span class="preprocessor">#define HAVE_SYS_TYPES_H 1</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/* Define to 1 if you have the <time.h> header file. */</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="config_8h.html#a2397007ae170bf57faa808bacaaa2499"> 87</a></span> <span class="preprocessor">#define HAVE_TIME_H 1</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/* Define to 1 if you have the <unistd.h> header file. */</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="config_8h.html#a219b06937831d0da94d801ab13987639"> 90</a></span> <span class="preprocessor">#define HAVE_UNISTD_H 1</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">/* Define to 1 if you have the `vprintf' function. */</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7"> 93</a></span> <span class="preprocessor">#define HAVE_VPRINTF 1</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/* Define to the address where bug reports for this package should be sent. */</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233"> 96</a></span> <span class="preprocessor">#define PACKAGE_BUGREPORT ""</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/* Define to the full name of this package. */</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="config_8h.html#a1c0439e4355794c09b64274849eb0279"> 99</a></span> <span class="preprocessor">#define PACKAGE_NAME "tinydtls"</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/* Define to the full name and version of this package. */</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf"> 102</a></span> <span class="preprocessor">#define PACKAGE_STRING "tinydtls 0.5.2"</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* Define to the one symbol short name of this package. */</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="config_8h.html#af415af6bfede0e8d5453708afe68651c"> 105</a></span> <span class="preprocessor">#define PACKAGE_TARNAME "tinydtls"</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">/* Define to the home page for this package. */</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="config_8h.html#a5c93853116d5a50307b6744f147840aa"> 108</a></span> <span class="preprocessor">#define PACKAGE_URL ""</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">/* Define to the version of this package. */</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0"> 111</a></span> <span class="preprocessor">#define PACKAGE_VERSION "0.5.2"</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">/* Define to 1 if you have the ANSI C header files. */</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="config_8h.html#a550e5c272cc3cf3814651721167dcd23"> 114</a></span> <span class="preprocessor">#define STDC_HEADERS 1</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> significant byte first (like Motorola and SPARC, unlike Intel). */</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#if defined AC_APPLE_UNIVERSAL_BUILD</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"></span><span class="preprocessor"># if defined __BIG_ENDIAN__</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span><span class="preprocessor"># define WORDS_BIGENDIAN 1</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span><span class="preprocessor"># ifndef WORDS_BIGENDIAN</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"></span><span class="comment">/* # undef WORDS_BIGENDIAN */</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">/* Define to `__inline__' or `__inline' if that's what the C compiler</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> calls it, or to nothing if 'inline' is not supported under any name. */</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span><span class="comment">/* #undef inline */</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">/* Define to rpl_malloc if the replacement function should be used. */</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">/* #undef malloc */</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">/* Define to `unsigned int' if <sys/types.h> does not define. */</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">/* #undef size_t */</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: contiki-config.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">contiki-config.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="contiki-config_8h_source.html">Go to the source code of this file.</a></p>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: contiki-config.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">contiki-config.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="contiki-config_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* tinydtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2015 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#ifndef _CONTIKI_CONFIG_H_</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#define _CONTIKI_CONFIG_H_ 1</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor">#include "contiki.h"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "contiki-lib.h"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "contiki-net.h"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "contiki-conf.h"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/* global constants for constrained devices running Contiki */</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#ifndef DTLS_PEER_MAX</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># define DTLS_PEER_MAX 1</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifndef DTLS_HANDSHAKE_MAX</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># define DTLS_HANDSHAKE_MAX 1</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#ifndef DTLS_SECURITY_MAX</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># define DTLS_SECURITY_MAX (DTLS_PEER_MAX + DTLS_HANDSHAKE_MAX)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#ifndef DTLS_HASH_MAX</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># define DTLS_HASH_MAX (3 * DTLS_PEER_MAX)</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "platform-specific/platform.h"</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* !_CONTIKI_CONFIG_H_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: crypto.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> |
-<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">crypto.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdio.h></code><br/>
-<code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-<code>#include "<a class="el" href="numeric_8h_source.html">numeric.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls_8h_source.html">dtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="crypto_8h_source.html">crypto.h</a>"</code><br/>
-<code>#include "<a class="el" href="ccm_8h_source.html">ccm.h</a>"</code><br/>
-<code>#include "ecc/ecc.h"</code><br/>
-<code>#include "<a class="el" href="prng_8h_source.html">prng.h</a>"</code><br/>
-<code>#include "<a class="el" href="netq_8h_source.html">netq.h</a>"</code><br/>
-<code>#include <pthread.h></code><br/>
-</div>
-<p><a href="crypto_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:ab7ea6d487f3c6e67106df7f4d281804a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(Context, Seed, Length)   if (Seed) <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(Context, (Seed), (Length))</td></tr>
-<tr class="separator:ab7ea6d487f3c6e67106df7f4d281804a"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a5e6fa88c169e5d7289052600fc445c29"><td class="memItemLeft" align="right" valign="top">static struct <br class="typebreak"/>
-<a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">dtls_cipher_context_get</a> (void)</td></tr>
-<tr class="separator:a5e6fa88c169e5d7289052600fc445c29"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af65bc79ab89b4e162a0d30938d13109e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">dtls_cipher_context_release</a> (void)</td></tr>
-<tr class="separator:af65bc79ab89b4e162a0d30938d13109e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a86e6ce9d4b4afcef355836955697f52c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a> ()</td></tr>
-<tr class="separator:a86e6ce9d4b4afcef355836955697f52c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa1b91000e339073fd2a9344957c22cbe"><td class="memItemLeft" align="right" valign="top">static <br class="typebreak"/>
-<a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">dtls_handshake_malloc</a> ()</td></tr>
-<tr class="separator:aa1b91000e339073fd2a9344957c22cbe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a120f7f398e1a71a5f16e5447842bcfb3"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">dtls_handshake_dealloc</a> (<a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake)</td></tr>
-<tr class="separator:a120f7f398e1a71a5f16e5447842bcfb3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa58fc0b3953c6048834855a364432d8c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">dtls_security_malloc</a> ()</td></tr>
-<tr class="separator:aa58fc0b3953c6048834855a364432d8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a444e2410b15ce27c6201204476d20497"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">dtls_security_dealloc</a> (<a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security)</td></tr>
-<tr class="separator:a444e2410b15ce27c6201204476d20497"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a25930cdb27a6ffcf05e2c2a9c95a6af8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a> ()</td></tr>
-<tr class="separator:a25930cdb27a6ffcf05e2c2a9c95a6af8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa17bcdc666796e52788f82ee003bb172"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a> (<a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake)</td></tr>
-<tr class="separator:aa17bcdc666796e52788f82ee003bb172"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d568085636a04b4706b7e50df802a7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a> ()</td></tr>
-<tr class="separator:a1d568085636a04b4706b7e50df802a7b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad54069f2880b3c07185ebba736d02d17"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a> (<a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security)</td></tr>
-<tr class="separator:ad54069f2880b3c07185ebba736d02d17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aea7bd0a10cf289c033216a97c0ee701e"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a> (<a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</td></tr>
-<tr class="separator:aea7bd0a10cf289c033216a97c0ee701e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5e47576e502b5a6255f1b489a4915512"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a> (const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</td></tr>
-<tr class="separator:a5e47576e502b5a6255f1b489a4915512"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1423f8111df1533241178461c10b50e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf)</td></tr>
-<tr class="separator:a1423f8111df1533241178461c10b50e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8b75c06a8e364132816aaddb81db0f2c"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">dtls_ccm_encrypt</a> (<a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> *ccm_ctx, const unsigned char *src, size_t srclen, unsigned char *buf, unsigned char *nounce, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:a8b75c06a8e364132816aaddb81db0f2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a64f692530b9bb934f8852ca27c9ca2a1"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">dtls_ccm_decrypt</a> (<a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> *ccm_ctx, const unsigned char *src, size_t srclen, unsigned char *buf, unsigned char *nounce, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:a64f692530b9bb934f8852ca27c9ca2a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa53dfed4868e257d2485024b5c170bae"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a> (unsigned char *key, size_t keylen, unsigned char *result, size_t result_len)</td></tr>
-<tr class="separator:aa53dfed4868e257d2485024b5c170bae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaa510b41aa69dc5f93a1bf5bdde4a9c4"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a> (const unsigned char *key, size_t key_size, uint32_t *result)</td></tr>
-<tr class="separator:aaa510b41aa69dc5f93a1bf5bdde4a9c4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8cefde2bc97452f889600c6b17ff04a6"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a> (const uint32_t *key, size_t key_size, unsigned char *result)</td></tr>
-<tr class="separator:a8cefde2bc97452f889600c6b17ff04a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ae24f3621f545752732e318840d7e2b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a> (const uint32_t *key, size_t key_size, unsigned char *buf)</td></tr>
-<tr class="separator:a5ae24f3621f545752732e318840d7e2b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5f9937088ea2e1d19e7d472fecae9aaa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a> (unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len)</td></tr>
-<tr class="separator:a5f9937088ea2e1d19e7d472fecae9aaa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a982fc9e78cd10d9323756b15b72c7970"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a> (unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size)</td></tr>
-<tr class="separator:a982fc9e78cd10d9323756b15b72c7970"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a49f03039780664684d110d83a228b163"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a> (const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9])</td></tr>
-<tr class="separator:a49f03039780664684d110d83a228b163"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afa2d9b2a195a1d8e8c56b1af8cb7bc82"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a> (const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9])</td></tr>
-<tr class="separator:afa2d9b2a195a1d8e8c56b1af8cb7bc82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a802b3a2b267747a76d4557c6c9a899d7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a> (const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s)</td></tr>
-<tr class="separator:a802b3a2b267747a76d4557c6c9a899d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a035860da45ba2586a95c8ef7f539a3c9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a> (const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s)</td></tr>
-<tr class="separator:a035860da45ba2586a95c8ef7f539a3c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad58098f0e821f81b4f1a6672ead17ac5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">dtls_encrypt</a> (const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:ad58098f0e821f81b4f1a6672ead17ac5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aac32554190e3970917a31ff01eed4080"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">dtls_decrypt</a> (const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</td></tr>
-<tr class="separator:aac32554190e3970917a31ff01eed4080"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
-Variables</h2></td></tr>
-<tr class="memitem:a9fd792e4bb85e55082e4bf32de0d4bdb"><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">cipher_context</a></td></tr>
-<tr class="separator:a9fd792e4bb85e55082e4bf32de0d4bdb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad4a90eac1ed6a277c837d7f9dc0a923c"><td class="memItemLeft" align="right" valign="top">static pthread_mutex_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">cipher_context_mutex</a> = PTHREAD_MUTEX_INITIALIZER</td></tr>
-<tr class="separator:ad4a90eac1ed6a277c837d7f9dc0a923c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="ab7ea6d487f3c6e67106df7f4d281804a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HMAC_UPDATE_SEED</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Context, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Seed, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Length </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   if (Seed) <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(Context, (Seed), (Length))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00052">52</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a86e6ce9d4b4afcef355836955697f52c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void crypto_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00076">76</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a64f692530b9bb934f8852ca27c9ca2a1"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t dtls_ccm_decrypt </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> * </td>
- <td class="paramname"><em>ccm_ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>srclen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00300">300</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8b75c06a8e364132816aaddb81db0f2c"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t dtls_ccm_encrypt </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> * </td>
- <td class="paramname"><em>ccm_ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>srclen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>la</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00283">283</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5e6fa88c169e5d7289052600fc445c29"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static struct <a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a>* dtls_cipher_context_get </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00060">60</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af65bc79ab89b4e162a0d30938d13109e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_cipher_context_release </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00068">68</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aac32554190e3970917a31ff01eed4080"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_decrypt </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>a_data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>a_data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Decrypts the given buffer <code>src</code> of given <code>length</code>, writing the result to <code>buf</code>. The function returns <code>-1</code> in case of an error, or the number of bytes written. Note that for block ciphers, <code>length</code> must be a multiple of the cipher's block size. A return value between <code>0</code> and the actual length indicates that only <code>n-1</code> block have been processed. Unlike <a class="el" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">dtls_encrypt()</a>, the source and destination of <a class="el" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">dtls_decrypt()</a> may overlap.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The cipher context to use. </td></tr>
- <tr><td class="paramname">src</td><td>The buffer to decrypt. </td></tr>
- <tr><td class="paramname">length</td><td>The length of the input buffer. </td></tr>
- <tr><td class="paramname">buf</td><td>The result buffer. </td></tr>
- <tr><td class="paramname">aad</td><td>additional authentication data for AEAD ciphers </td></tr>
- <tr><td class="paramname">aad_length</td><td>actual size of <code>aad</code> </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, the number of decrypted bytes otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00550">550</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8cefde2bc97452f889600c6b17ff04a6"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_ec_key_from_uint32 </td>
- <td>(</td>
- <td class="paramtype">const uint32_t * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00352">352</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ae24f3621f545752732e318840d7e2b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ec_key_from_uint32_asn1 </td>
- <td>(</td>
- <td class="paramtype">const uint32_t * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00362">362</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaa510b41aa69dc5f93a1bf5bdde4a9c4"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_ec_key_to_uint32 </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t * </td>
- <td class="paramname"><em>result</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00342">342</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5f9937088ea2e1d19e7d472fecae9aaa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdh_pre_master_secret </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>result_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00398">398</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afa2d9b2a195a1d8e8c56b1af8cb7bc82"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_create_sig </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>client_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>client_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>server_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>server_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>keyx_params</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keyx_params_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_r</em>[9], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_s</em>[9] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00463">463</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a49f03039780664684d110d83a228b163"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_create_sig_hash </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>sign_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>sign_hash_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_r</em>[9], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_s</em>[9] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00446">446</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a982fc9e78cd10d9323756b15b72c7970"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_generate_key </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00425">425</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a035860da45ba2586a95c8ef7f539a3c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdsa_verify_sig </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>client_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>client_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>server_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>server_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>keyx_params</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keyx_params_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00503">503</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a802b3a2b267747a76d4557c6c9a899d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdsa_verify_sig_hash </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>sign_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>sign_hash_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00483">483</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad58098f0e821f81b4f1a6672ead17ac5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_encrypt </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>aad_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Encrypts the specified <code>src</code> of given <code>length</code>, writing the result to <code>buf</code>. The cipher implementation may add more data to the result buffer such as an initialization vector or padding (e.g. for block cipers in CBC mode). The caller therefore must ensure that <code>buf</code> provides sufficient storage to hold the result. Usually this means ( 2 + <code>length</code> / blocksize ) * blocksize. The function returns a value less than zero on error or otherwise the number of bytes written.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The cipher context to use. </td></tr>
- <tr><td class="paramname">src</td><td>The data to encrypt. </td></tr>
- <tr><td class="paramname">length</td><td>The actual size of of <code>src</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>The result buffer. <code>src</code> and <code>buf</code> must not overlap. </td></tr>
- <tr><td class="paramname">aad</td><td>additional data for AEAD ciphers </td></tr>
- <tr><td class="paramname">aad_length</td><td>actual size of <code>aad</code> </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The number of encrypted bytes on success, less than zero otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00524">524</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a120f7f398e1a71a5f16e5447842bcfb3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_handshake_dealloc </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td>
- <td class="paramname"><em>handshake</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00084">84</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa17bcdc666796e52788f82ee003bb172"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_handshake_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td>
- <td class="paramname"><em>handshake</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00146">146</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa1b91000e339073fd2a9344957c22cbe"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>* dtls_handshake_malloc </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00080">80</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a25930cdb27a6ffcf05e2c2a9c95a6af8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>* dtls_handshake_new </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00123">123</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1423f8111df1533241178461c10b50e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_mac </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>hmac_ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>record</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>packet</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Calculates MAC for record + cleartext packet and places the result in <code>buf</code>. The given <code>hmac_ctx</code> must be initialized with the HMAC function to use and the proper secret. As the DTLS mac calculation requires data from the record header, <code>record</code> must point to a buffer of at least <code>sizeof(dtls_record_header_t)</code> bytes. Usually, the remaining packet will be encrypted, therefore, the cleartext is passed separately in <code>packet</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">hmac_ctx</td><td>The HMAC context to use for MAC calculation. </td></tr>
- <tr><td class="paramname">record</td><td>The record header. </td></tr>
- <tr><td class="paramname">packet</td><td>Cleartext payload to apply the MAC to. </td></tr>
- <tr><td class="paramname">length</td><td>Size of <code>packet</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>A result buffer that is large enough to hold the generated digest. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00266">266</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aea7bd0a10cf289c033216a97c0ee701e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t dtls_p_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> </td>
- <td class="paramname"><em>h</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>labellen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random1len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random2len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buflen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Expands the secret and key to a block of DTLS_HMAC_MAX size according to the algorithm specified in section 5 of RFC 4346.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">h</td><td>Identifier of the hash function to use. </td></tr>
- <tr><td class="paramname">key</td><td>The secret. </td></tr>
- <tr><td class="paramname">keylen</td><td>Length of <code>key</code>. </td></tr>
- <tr><td class="paramname">seed</td><td>The seed. </td></tr>
- <tr><td class="paramname">seedlen</td><td>Length of <code>seed</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>Output buffer where the result is XORed into The buffe must be capable to hold at least <code>buflen</code> bytes. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The actual number of bytes written to <code>buf</code> or 0 on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00183">183</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5e47576e502b5a6255f1b489a4915512"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t dtls_prf </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>labellen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random1len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random2len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buflen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This function implements the TLS PRF for DTLS_VERSION. For version 1.0, the PRF is P_MD5 ^ P_SHA1 while version 1.2 uses P_SHA256. Currently, the actual PRF is selected at compile time. </p>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00249">249</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa53dfed4868e257d2485024b5c170bae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_psk_pre_master_secret </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>result_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Generates pre_master_sercet from given PSK and fills the result according to the "plain PSK" case in section 2 of RFC 4279. Diffie-Hellman and RSA key exchange are currently not supported.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">key</td><td>The shared key. </td></tr>
- <tr><td class="paramname">keylen</td><td>Length of <code>key</code> in bytes. </td></tr>
- <tr><td class="paramname">result</td><td>The derived pre master secret. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The actual length of <code>result</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00318">318</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a444e2410b15ce27c6201204476d20497"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_security_dealloc </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00092">92</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad54069f2880b3c07185ebba736d02d17"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_security_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00174">174</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa58fc0b3953c6048834855a364432d8c"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_malloc </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00088">88</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1d568085636a04b4706b7e50df802a7b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_new </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00155">155</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="a9fd792e4bb85e55082e4bf32de0d4bdb"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> cipher_context</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00055">55</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad4a90eac1ed6a277c837d7f9dc0a923c"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">pthread_mutex_t cipher_context_mutex = PTHREAD_MUTEX_INITIALIZER</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00057">57</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: crypto.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">crypto.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="crypto_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#define assert(x)</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="numeric_8h.html">numeric.h</a>"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="dtls_8h.html">dtls.h</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="crypto_8h.html">crypto.h</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="ccm_8h.html">ccm.h</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "ecc/ecc.h"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="prng_8h.html">prng.h</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="netq_8h.html">netq.h</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#include <pthread.h></span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a"> 52</a></span> <span class="preprocessor">#define HMAC_UPDATE_SEED(Context,Seed,Length) \</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"> if (Seed) dtls_hmac_update(Context, (Seed), (Length))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb"> 55</a></span> <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> <a class="code" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">cipher_context</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c"> 57</a></span> <span class="preprocessor"></span><span class="keyword">static</span> pthread_mutex_t <a class="code" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">cipher_context_mutex</a> = PTHREAD_MUTEX_INITIALIZER;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29"> 60</a></span> <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> *<a class="code" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">dtls_cipher_context_get</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span> pthread_mutex_lock(&<a class="code" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">cipher_context_mutex</a>);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> &<a class="code" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">cipher_context</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e"> 68</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">dtls_cipher_context_release</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span> pthread_mutex_unlock(&<a class="code" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">cipher_context_mutex</a>);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c"> 76</a></span> <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a>()</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe"> 80</a></span> <span class="keyword">static</span> <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *<a class="code" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">dtls_handshake_malloc</a>() {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> malloc(<span class="keyword">sizeof</span>(<a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>));</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3"> 84</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">dtls_handshake_dealloc</a>(<a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake) {</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  free(handshake);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c"> 88</a></span> <span class="keyword">static</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">dtls_security_malloc</a>() {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> malloc(<span class="keyword">sizeof</span>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>));</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> }</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497"> 92</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">dtls_security_dealloc</a>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security) {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  free(security);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "memb.h"</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> MEMB(handshake_storage, <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>, DTLS_HANDSHAKE_MAX);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> MEMB(security_storage, <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>, DTLS_SECURITY_MAX);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a>() {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  memb_init(&handshake_storage);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  memb_init(&security_storage);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">static</span> <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *<a class="code" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">dtls_handshake_malloc</a>() {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> memb_alloc(&handshake_storage);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">dtls_handshake_dealloc</a>(<a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake) {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  memb_free(&handshake_storage, handshake);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> }</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">static</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">dtls_security_malloc</a>() {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> memb_alloc(&security_storage);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">dtls_security_dealloc</a>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security) {</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  memb_free(&security_storage, security);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8"> 123</a></span> <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *<a class="code" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>()</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  handshake = <a class="code" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">dtls_handshake_malloc</a>();</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (!handshake) {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"can not allocate a handshake struct\n"</span>);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  memset(handshake, 0, <span class="keyword">sizeof</span>(*handshake));</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (handshake) {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">/* initialize the handshake hash wrt. the hard-coded DTLS version */</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"DTLSv12: initialize HASH_SHA256\n"</span>);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">/* TLS 1.2: PRF(secret, label, seed) = P_<hash>(secret, label + seed) */</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">/* FIXME: we use the default SHA256 here, might need to support other </span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> hash functions as well */</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> handshake;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172"> 146</a></span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a>(<a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake)</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> (!handshake)</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a>(handshake->reorder_queue);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">dtls_handshake_dealloc</a>(handshake);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b"> 155</a></span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a>()</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  security = <a class="code" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">dtls_security_malloc</a>();</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (!security) {</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"can not allocate a security struct\n"</span>);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  memset(security, 0, <span class="keyword">sizeof</span>(*security));</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (security) {</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a> = <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a> = <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a>;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> security;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17"> 174</a></span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security)</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> (!security)</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">dtls_security_dealloc</a>(security);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> }</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e"> 183</a></span> <a class="code" href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a>(<a class="code" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> h,</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label, <span class="keywordtype">size_t</span> labellen,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random1, <span class="keywordtype">size_t</span> random1len,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random2, <span class="keywordtype">size_t</span> random2len,</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buflen) {</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *hmac_a, *hmac_p;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> tmp[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">size_t</span> dlen; <span class="comment">/* digest length */</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordtype">size_t</span> len = 0; <span class="comment">/* result length */</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  hmac_a = <a class="code" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a>(key, keylen);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span> (!hmac_a)</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">/* calculate A(1) from A(0) == seed */</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_a, label, labellen);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_a, random1, random1len);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_a, random2, random2len);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  dlen = <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(hmac_a, A);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  hmac_p = <a class="code" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a>(key, keylen);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (!hmac_p)</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">while</span> (len + dlen < buflen) {</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">/* FIXME: rewrite loop to avoid superflous call to dtls_hmac_init() */</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(hmac_p, key, keylen);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_p, A, dlen);</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, label, labellen);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, random1, random1len);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, random2, random2len);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  len += <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(hmac_p, tmp);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  memcpy(buf, tmp, dlen);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  buf += dlen;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">/* calculate A(i+1) */</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(hmac_a, key, keylen);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_a, A, dlen);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(hmac_a, A);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  }</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(hmac_p, key, keylen);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_p, A, dlen);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, label, labellen);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, random1, random1len);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a>(hmac_p, random2, random2len);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(hmac_p, tmp);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  memcpy(buf, tmp, buflen - len);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  error:</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a>(hmac_a);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a>(hmac_p);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> buflen;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">size_t</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512"> 249</a></span> <a class="code" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label, <span class="keywordtype">size_t</span> labellen,</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random1, <span class="keywordtype">size_t</span> random1len,</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random2, <span class="keywordtype">size_t</span> random2len,</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buflen) {</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">/* Clear the result buffer */</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  memset(buf, 0, buflen);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a>(<a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a>, </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  key, keylen, </div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  label, labellen, </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  random1, random1len,</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  random2, random2len,</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  buf, buflen);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="crypto_8h.html#a1423f8111df1533241178461c10b50e3"> 266</a></span> <a class="code" href="crypto_8c.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *hmac_ctx, </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *record,</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *packet, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf) {</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> L;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(L, length);</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  assert(hmac_ctx);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_ctx, record +3, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a>));</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_ctx, record, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>));</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_ctx, L, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>));</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(hmac_ctx, packet, length);</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(hmac_ctx, buf);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> }</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c"> 283</a></span> <a class="code" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">dtls_ccm_encrypt</a>(<a class="code" href="structaes128__ccm__t.html">aes128_ccm_t</a> *ccm_ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> srclen,</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, </div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la) {</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordtype">long</span> <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  assert(ccm_ctx);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  len = <a class="code" href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a>(&ccm_ctx-><a class="code" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a>, 8 <span class="comment">/* M */</span>, </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">max</a>(2, 15 - <a class="code" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">DTLS_CCM_NONCE_SIZE</a>),</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  nounce,</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  buf, srclen, </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  aad, la);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1"> 300</a></span> <a class="code" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">dtls_ccm_decrypt</a>(<a class="code" href="structaes128__ccm__t.html">aes128_ccm_t</a> *ccm_ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src,</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordtype">size_t</span> srclen, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf,</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la) {</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordtype">long</span> <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  assert(ccm_ctx);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  len = <a class="code" href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a>(&ccm_ctx-><a class="code" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a>, 8 <span class="comment">/* M */</span>, </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">max</a>(2, 15 - <a class="code" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">DTLS_CCM_NONCE_SIZE</a>),</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  nounce,</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  buf, srclen, </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  aad, la);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> }</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"></span><span class="keywordtype">int</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae"> 318</a></span> <a class="code" href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result, <span class="keywordtype">size_t</span> result_len) {</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *p = result;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">if</span> (result_len < (2 * (<span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + keylen))) {</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, keylen);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  memset(p, 0, keylen);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  p += keylen;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  memcpy(p, result, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>));</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  memcpy(p, key, keylen);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> 2 * (<span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + keylen);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4"> 342</a></span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  uint32_t *result) {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">for</span> (i = (key_size / <span class="keyword">sizeof</span>(uint32_t)) - 1; i >= 0 ; i--) {</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  *result = <a class="code" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">dtls_uint32_to_int</a>(&key[i * <span class="keyword">sizeof</span>(uint32_t)]);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  result++;</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> }</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6"> 352</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a>(<span class="keyword">const</span> uint32_t *key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result) {</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">for</span> (i = (key_size / <span class="keyword">sizeof</span>(uint32_t)) - 1; i >= 0 ; i--) {</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(result, key[i]);</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  result += 4;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> }</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b"> 362</a></span> <span class="keywordtype">int</span> <a class="code" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a>(<span class="keyword">const</span> uint32_t *key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf) {</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf_orig = buf;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordtype">int</span> first = 1; </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">for</span> (i = (key_size / <span class="keyword">sizeof</span>(uint32_t)) - 1; i >= 0 ; i--) {</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (key[i] == 0)</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="comment">/* the first bit has to be set to zero, to indicate a poritive integer */</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (first && key[i] & 0x80000000) {</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  *buf = 0;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  buf++;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(buf, key[i]);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  buf += 4; </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (first && !(key[i] & 0xFF800000)) {</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  buf[0] = (key[i] >> 16) & 0xff;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  buf[1] = (key[i] >> 8) & 0xff;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  buf[2] = key[i] & 0xff;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  buf += 3;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (first && !(key[i] & 0xFFFF8000)) {</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  buf[0] = (key[i] >> 8) & 0xff;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  buf[1] = key[i] & 0xff;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  buf += 2;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (first && !(key[i] & 0xFFFFFF80)) {</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  buf[0] = key[i] & 0xff;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  buf += 1;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(buf, key[i]);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  buf += 4;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  first = 0;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> buf - buf_orig;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> }</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa"> 398</a></span> <span class="keywordtype">int</span> <a class="code" href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key,</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y,</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result,</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordtype">size_t</span> result_len) {</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  uint32_t priv[8];</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  uint32_t pub_x[8];</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  uint32_t pub_y[8];</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  uint32_t result_x[8];</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  uint32_t result_y[8];</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">if</span> (result_len < key_size) {</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(priv_key, key_size, priv);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(pub_key_x, key_size, pub_x);</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(pub_key_y, key_size, pub_y);</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  ecc_ecdh(pub_x, pub_y, priv, result_x, result_y);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a>(result_x, key_size, result);</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">return</span> key_size;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> }</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970"> 425</a></span> <a class="code" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key,</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y,</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordtype">size_t</span> key_size) {</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  uint32_t priv[8];</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  uint32_t pub_x[8];</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  uint32_t pub_y[8];</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)priv, key_size);</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  } <span class="keywordflow">while</span> (!ecc_is_valid_key(priv));</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  ecc_gen_pub_key(priv, pub_x, pub_y);</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a>(priv, key_size, priv_key);</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a>(pub_x, key_size, pub_key_x);</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a>(pub_y, key_size, pub_key_y);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> }</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">/* rfc4492#section-5.4 */</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="crypto_8h.html#a49f03039780664684d110d83a228b163"> 446</a></span> <a class="code" href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sign_hash, <span class="keywordtype">size_t</span> sign_hash_size,</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  uint32_t point_r[9], uint32_t point_s[9]) {</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">int</span> ret;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  uint32_t priv[8];</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  uint32_t hash[8];</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  uint32_t rand[8];</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  </div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(priv_key, key_size, priv);</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(sign_hash, sign_hash_size, hash);</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)rand, key_size);</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  ret = ecc_ecdsa_sign(priv, hash, rand, point_r, point_s);</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  } <span class="keywordflow">while</span> (ret);</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> }</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82"> 463</a></span> <a class="code" href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *client_random, <span class="keywordtype">size_t</span> client_random_size,</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *server_random, <span class="keywordtype">size_t</span> server_random_size,</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *keyx_params, <span class="keywordtype">size_t</span> keyx_params_size,</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  uint32_t point_r[9], uint32_t point_s[9]) {</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> <a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sha256hash[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&data);</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, client_random, client_random_size);</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, server_random, server_random_size);</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, keyx_params, keyx_params_size);</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(sha256hash, &data);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a>(priv_key, key_size, sha256hash,</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keyword">sizeof</span>(sha256hash), point_r, point_s);</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> }</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="comment">/* rfc4492#section-5.4 */</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7"> 483</a></span> <a class="code" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sign_hash, <span class="keywordtype">size_t</span> sign_hash_size,</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s) {</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  uint32_t pub_x[8];</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  uint32_t pub_y[8];</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  uint32_t hash[8];</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  uint32_t point_r[8];</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  uint32_t point_s[8];</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(pub_key_x, key_size, pub_x);</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(pub_key_y, key_size, pub_y);</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(result_r, key_size, point_r);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(result_s, key_size, point_s);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a>(sign_hash, sign_hash_size, hash);</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">return</span> ecc_ecdsa_validate(pub_x, pub_y, hash, point_r, point_s);</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> }</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9"> 503</a></span> <a class="code" href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *client_random, <span class="keywordtype">size_t</span> client_random_size,</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *server_random, <span class="keywordtype">size_t</span> server_random_size,</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *keyx_params, <span class="keywordtype">size_t</span> keyx_params_size,</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s) {</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> <a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sha256hash[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  </div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&data);</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, client_random, client_random_size);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, server_random, server_random_size);</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&data, keyx_params, keyx_params_size);</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(sha256hash, &data);</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> <a class="code" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a>(pub_key_x, pub_key_y, key_size, sha256hash,</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">sizeof</span>(sha256hash), result_r, result_s);</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> }</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69"> 524</a></span> <a class="code" href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">dtls_encrypt</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf,</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la)</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> {</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordtype">int</span> ret;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keyword">struct </span><a class="code" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> *ctx = <a class="code" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">dtls_cipher_context_get</a>();</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  ret = rijndael_set_key_enc_only(&ctx-><a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>.<a class="code" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a>, key, 8 * keylen);</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="comment">/* cleanup everything in case the key has the wrong size */</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot set rijndael key\n"</span>);</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">if</span> (src != buf)</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  memmove(buf, src, length);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  ret = <a class="code" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">dtls_ccm_encrypt</a>(&ctx-><a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>, src, length, buf, nounce, aad, la);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> error:</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">dtls_cipher_context_release</a>();</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> }</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b"> 550</a></span> <a class="code" href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">dtls_decrypt</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf,</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> la)</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> {</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordtype">int</span> ret;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keyword">struct </span><a class="code" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> *ctx = <a class="code" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">dtls_cipher_context_get</a>();</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  ret = rijndael_set_key_enc_only(&ctx-><a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>.<a class="code" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a>, key, 8 * keylen);</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="comment">/* cleanup everything in case the key has the wrong size */</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot set rijndael key\n"</span>);</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  }</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">if</span> (src != buf)</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  memmove(buf, src, length);</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  ret = <a class="code" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">dtls_ccm_decrypt</a>(&ctx-><a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>, src, length, buf, nounce, aad, la);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> error:</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <a class="code" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">dtls_cipher_context_release</a>();</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> }</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
-<div class="ttc" id="crypto_8c_html_af65bc79ab89b4e162a0d30938d13109e"><div class="ttname"><a href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">dtls_cipher_context_release</a></div><div class="ttdeci">static void dtls_cipher_context_release(void)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00068">crypto.c:68</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa1b91000e339073fd2a9344957c22cbe"><div class="ttname"><a href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">dtls_handshake_malloc</a></div><div class="ttdeci">static dtls_handshake_parameters_t * dtls_handshake_malloc()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00080">crypto.c:80</a></div></div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00082">global.h:82</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa17bcdc666796e52788f82ee003bb172"><div class="ttname"><a href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a></div><div class="ttdeci">void dtls_handshake_free(dtls_handshake_parameters_t *handshake)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00146">crypto.c:146</a></div></div>
-<div class="ttc" id="numeric_8h_html_a91f840f763f90c6d88a267011edf86d0"><div class="ttname"><a href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">dtls_uint32_to_int</a></div><div class="ttdeci">static uint32_t dtls_uint32_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00112">numeric.h:112</a></div></div>
-<div class="ttc" id="structaes128__ccm__t_html"><div class="ttname"><a href="structaes128__ccm__t.html">aes128_ccm_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00070">crypto.h:70</a></div></div>
-<div class="ttc" id="numeric_8h_html_a24e753bacac6be5f30e18f8a2bdefda4"><div class="ttname"><a href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">max</a></div><div class="ttdeci">#define max(A, B)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00036">numeric.h:36</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a56e7392a649731166fc82a523b0eb027"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">dtls_handshake_parameters_t::hs_state</a></div><div class="ttdeci">dtls_hs_state_t hs_state</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00125">crypto.h:125</a></div></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="crypto_8c_html_ad4a90eac1ed6a277c837d7f9dc0a923c"><div class="ttname"><a href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">cipher_context_mutex</a></div><div class="ttdeci">static pthread_mutex_t cipher_context_mutex</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00057">crypto.c:57</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga1ef9c88a0a2053b442413a9cea3deb73"><div class="ttname"><a href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a></div><div class="ttdeci">void dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00076">hmac.c:76</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5f9937088ea2e1d19e7d472fecae9aaa"><div class="ttname"><a href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a></div><div class="ttdeci">int dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00398">crypto.c:398</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa53dfed4868e257d2485024b5c170bae"><div class="ttname"><a href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a></div><div class="ttdeci">int dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00318">crypto.c:318</a></div></div>
-<div class="ttc" id="structaes128__ccm__t_html_a5bdf410f025e4177ced456059bc8a371"><div class="ttname"><a href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">aes128_ccm_t::ctx</a></div><div class="ttdeci">rijndael_ctx ctx</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00071">crypto.h:71</a></div></div>
-<div class="ttc" id="ccm_8c_html_aa3e92bdeca1d0730d48b8a85181d5b6d"><div class="ttname"><a href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">dtls_ccm_decrypt_message</a></div><div class="ttdeci">long int dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00240">ccm.c:240</a></div></div>
-<div class="ttc" id="crypto_8c_html_aea7bd0a10cf289c033216a97c0ee701e"><div class="ttname"><a href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a></div><div class="ttdeci">size_t dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00183">crypto.c:183</a></div></div>
-<div class="ttc" id="hmac_8h_html_abb19650a510c73117da0e9b88d68f159"><div class="ttname"><a href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></div><div class="ttdeci">SHA256_CTX dtls_hash_ctx</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00038">hmac.h:38</a></div></div>
-<div class="ttc" id="crypto_8c_html_ad58098f0e821f81b4f1a6672ead17ac5"><div class="ttname"><a href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">dtls_encrypt</a></div><div class="ttdeci">int dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00524">crypto.c:524</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="crypto_8h_html"><div class="ttname"><a href="crypto_8h.html">crypto.h</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga5b1a3c1dcb5461bda44dd70f7bd33181"><div class="ttname"><a href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a></div><div class="ttdeci">void dtls_hmac_free(dtls_hmac_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00121">hmac.c:121</a></div></div>
-<div class="ttc" id="crypto_8c_html_a49f03039780664684d110d83a228b163"><div class="ttname"><a href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a></div><div class="ttdeci">void dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00446">crypto.c:446</a></div></div>
-<div class="ttc" id="structdtls__cipher__context__t_html_a02da63201e2ac7bc508e3bb54c5761dc"><div class="ttname"><a href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">dtls_cipher_context_t::data</a></div><div class="ttdeci">aes128_ccm_t data</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00076">crypto.h:76</a></div></div>
-<div class="ttc" id="crypto_8c_html_a86e6ce9d4b4afcef355836955697f52c"><div class="ttname"><a href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a></div><div class="ttdeci">void crypto_init()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00076">crypto.c:76</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="crypto_8c_html_a982fc9e78cd10d9323756b15b72c7970"><div class="ttname"><a href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a></div><div class="ttdeci">void dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00425">crypto.c:425</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5ae24f3621f545752732e318840d7e2b"><div class="ttname"><a href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a></div><div class="ttdeci">int dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00362">crypto.c:362</a></div></div>
-<div class="ttc" id="global_8h_html_a0749f1df578b26eccab986b0d8abaa56"><div class="ttname"><a href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a></div><div class="ttdeci">unsigned char uint48[6]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00051">global.h:51</a></div></div>
-<div class="ttc" id="crypto_8c_html_a035860da45ba2586a95c8ef7f539a3c9"><div class="ttname"><a href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00503">crypto.c:503</a></div></div>
-<div class="ttc" id="crypto_8c_html_a8cefde2bc97452f889600c6b17ff04a6"><div class="ttname"><a href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">dtls_ec_key_from_uint32</a></div><div class="ttdeci">static void dtls_ec_key_from_uint32(const uint32_t *key, size_t key_size, unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00352">crypto.c:352</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga060019cf2dab9903d58118fe1abe7018"><div class="ttname"><a href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a></div><div class="ttdeci">#define DTLS_HMAC_DIGEST_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00074">hmac.h:74</a></div></div>
-<div class="ttc" id="crypto_8c_html_a120f7f398e1a71a5f16e5447842bcfb3"><div class="ttname"><a href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">dtls_handshake_dealloc</a></div><div class="ttdeci">static void dtls_handshake_dealloc(dtls_handshake_parameters_t *handshake)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00084">crypto.c:84</a></div></div>
-<div class="ttc" id="debug_8h_html_a0f158325426415d9efb5a36bebf45844"><div class="ttname"><a href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a></div><div class="ttdeci">#define dtls_debug(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00139">debug.h:139</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a991b95919538531d730f74045e4fe3b1"><div class="ttname"><a href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">dtls_hs_state_t::hs_hash</a></div><div class="ttdeci">dtls_hash_ctx hs_hash</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00062">state.h:62</a></div></div>
-<div class="ttc" id="ccm_8c_html_a40f4f23b5687e18dc1bce1c19101da42"><div class="ttname"><a href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">dtls_ccm_encrypt_message</a></div><div class="ttdeci">long int dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8c_source.html#l00176">ccm.c:176</a></div></div>
-<div class="ttc" id="crypto_8c_html_a8b75c06a8e364132816aaddb81db0f2c"><div class="ttname"><a href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">dtls_ccm_encrypt</a></div><div class="ttdeci">static size_t dtls_ccm_encrypt(aes128_ccm_t *ccm_ctx, const unsigned char *src, size_t srclen, unsigned char *buf, unsigned char *nounce, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00283">crypto.c:283</a></div></div>
-<div class="ttc" id="crypto_8c_html_a25930cdb27a6ffcf05e2c2a9c95a6af8"><div class="ttname"><a href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a></div><div class="ttdeci">dtls_handshake_parameters_t * dtls_handshake_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00123">crypto.c:123</a></div></div>
-<div class="ttc" id="group__HMAC_html_gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><div class="ttname"><a href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a></div><div class="ttdeci">void dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00094">hmac.c:94</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html"><div class="ttname"><a href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00095">hmac.h:95</a></div></div>
-<div class="ttc" id="group__HMAC_html_gac3e9ef037800963783e618eafd046702"><div class="ttname"><a href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a></div><div class="ttdeci">dtls_hmac_context_t * dtls_hmac_new(const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00083">hmac.c:83</a></div></div>
-<div class="ttc" id="hmac_8h_html_afe0af64930ac5d6a51289df6d1eb4f52"><div class="ttname"><a href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a></div><div class="ttdeci">static void dtls_hash_init(dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00043">hmac.h:43</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00085">hmac.h:85</a></div></div>
-<div class="ttc" id="debug_8h_html_ad4c9c94c054579b73789fead587c8514"><div class="ttname"><a href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a></div><div class="ttdeci">#define dtls_crit(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00135">debug.h:135</a></div></div>
-<div class="ttc" id="global_8h_html_adde6aaee8457bee49c2a92621fe22b79"><div class="ttname"><a href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></div><div class="ttdeci">unsigned char uint8</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00047">global.h:47</a></div></div>
-<div class="ttc" id="crypto_8c_html_a64f692530b9bb934f8852ca27c9ca2a1"><div class="ttname"><a href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">dtls_ccm_decrypt</a></div><div class="ttdeci">static size_t dtls_ccm_decrypt(aes128_ccm_t *ccm_ctx, const unsigned char *src, size_t srclen, unsigned char *buf, unsigned char *nounce, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00300">crypto.c:300</a></div></div>
-<div class="ttc" id="numeric_8h_html_a074d352855e1ffde4c2ddb6a6fea01b9"><div class="ttname"><a href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a></div><div class="ttdeci">static int dtls_int_to_uint16(unsigned char *field, uint16_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00046">numeric.h:46</a></div></div>
-<div class="ttc" id="hmac_8h_html_adb5ad07ab9a1adcdfdc20e13aa37bee6"><div class="ttname"><a href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a></div><div class="ttdeci">static void dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00048">hmac.h:48</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00075">global.h:75</a></div></div>
-<div class="ttc" id="dtls_8h_html"><div class="ttname"><a href="dtls_8h.html">dtls.h</a></div><div class="ttdoc">High level DTLS API and visible structures. </div></div>
-<div class="ttc" id="group__HMAC_html_gab98c992f3f9cc3c2d75077ddd46049bf"><div class="ttname"><a href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a></div><div class="ttdeci">int dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00127">hmac.c:127</a></div></div>
-<div class="ttc" id="crypto_8c_html_afa2d9b2a195a1d8e8c56b1af8cb7bc82"><div class="ttname"><a href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a></div><div class="ttdeci">void dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00463">crypto.c:463</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa58fc0b3953c6048834855a364432d8c"><div class="ttname"><a href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">dtls_security_malloc</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_malloc()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00088">crypto.c:88</a></div></div>
-<div class="ttc" id="crypto_8c_html_a802b3a2b267747a76d4557c6c9a899d7"><div class="ttname"><a href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00483">crypto.c:483</a></div></div>
-<div class="ttc" id="crypto_8c_html_a9fd792e4bb85e55082e4bf32de0d4bdb"><div class="ttname"><a href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">cipher_context</a></div><div class="ttdeci">static struct dtls_cipher_context_t cipher_context</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00055">crypto.c:55</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a6a72df7ab1151f81e49d464175fcaf2a"><div class="ttname"><a href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">dtls_security_parameters_t::compression</a></div><div class="ttdeci">dtls_compression_t compression</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00100">crypto.h:100</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a21d9fac709d739535b0cbecce4c18830"><div class="ttname"><a href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">dtls_security_parameters_t::cipher</a></div><div class="ttdeci">dtls_cipher_t cipher</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00102">crypto.h:102</a></div></div>
-<div class="ttc" id="crypto_8c_html_a444e2410b15ce27c6201204476d20497"><div class="ttname"><a href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">dtls_security_dealloc</a></div><div class="ttdeci">static void dtls_security_dealloc(dtls_security_parameters_t *security)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00092">crypto.c:92</a></div></div>
-<div class="ttc" id="crypto_8c_html_ad54069f2880b3c07185ebba736d02d17"><div class="ttname"><a href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a></div><div class="ttdeci">void dtls_security_free(dtls_security_parameters_t *security)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00174">crypto.c:174</a></div></div>
-<div class="ttc" id="numeric_8h_html_a6914ee523b27539f4e441bede8c072b4"><div class="ttname"><a href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a></div><div class="ttdeci">static int dtls_int_to_uint32(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00061">numeric.h:61</a></div></div>
-<div class="ttc" id="netq_8h_html"><div class="ttname"><a href="netq_8h.html">netq.h</a></div></div>
-<div class="ttc" id="crypto_8c_html_ab7ea6d487f3c6e67106df7f4d281804a"><div class="ttname"><a href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">HMAC_UPDATE_SEED</a></div><div class="ttdeci">#define HMAC_UPDATE_SEED(Context, Seed, Length)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00052">crypto.c:52</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga698cfa036e69361a93dcdd9b19579b23"><div class="ttname"><a href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a></div><div class="ttdeci">dtls_hashfunc_t</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00083">hmac.h:83</a></div></div>
-<div class="ttc" id="debug_8h_html_ae1c22127c92fab70da7bf9cae8536e5c"><div class="ttname"><a href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a></div><div class="ttdeci">#define dtls_warn(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00136">debug.h:136</a></div></div>
-<div class="ttc" id="ccm_8h_html_a2d0e7515c26737872fe840958ed140ac"><div class="ttname"><a href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">DTLS_CCM_NONCE_SIZE</a></div><div class="ttdeci">#define DTLS_CCM_NONCE_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8h_source.html#l00035">ccm.h:35</a></div></div>
-<div class="ttc" id="crypto_8c_html_a1d568085636a04b4706b7e50df802a7b"><div class="ttname"><a href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a></div><div class="ttdeci">dtls_security_parameters_t * dtls_security_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00155">crypto.c:155</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5e6fa88c169e5d7289052600fc445c29"><div class="ttname"><a href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">dtls_cipher_context_get</a></div><div class="ttdeci">static struct dtls_cipher_context_t * dtls_cipher_context_get(void)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00060">crypto.c:60</a></div></div>
-<div class="ttc" id="group__prng_html_ga3f4036a1abfcec552ab583a2dc37be6c"><div class="ttname"><a href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a></div><div class="ttdeci">static int dtls_prng(unsigned char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="prng_8h_source.html#l00033">prng.h:33</a></div></div>
-<div class="ttc" id="hmac_8h_html_a96801bbb62f4c9c872b22cd8e438e51e"><div class="ttname"><a href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a></div><div class="ttdeci">static size_t dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00053">hmac.h:53</a></div></div>
-<div class="ttc" id="numeric_8h_html"><div class="ttname"><a href="numeric_8h.html">numeric.h</a></div></div>
-<div class="ttc" id="structdtls__cipher__context__t_html"><div class="ttname"><a href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00074">crypto.h:74</a></div></div>
-<div class="ttc" id="prng_8h_html"><div class="ttname"><a href="prng_8h.html">prng.h</a></div><div class="ttdoc">Pseudo Random Numbers. </div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html"><div class="ttname"><a href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00099">crypto.h:99</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00115">crypto.h:115</a></div></div>
-<div class="ttc" id="group__netq_html_gac72fd2ec9f1e6908c8a10705fb6555e2"><div class="ttname"><a href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a></div><div class="ttdeci">void netq_delete_all(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00133">netq.c:133</a></div></div>
-<div class="ttc" id="global_8h_html_a5e90b30856b81913af89565b55751da5"><div class="ttname"><a href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a></div><div class="ttdeci">unsigned char uint16[2]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00048">global.h:48</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5e47576e502b5a6255f1b489a4915512"><div class="ttname"><a href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a></div><div class="ttdeci">size_t dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00249">crypto.c:249</a></div></div>
-<div class="ttc" id="ccm_8h_html"><div class="ttname"><a href="ccm_8h.html">ccm.h</a></div></div>
-<div class="ttc" id="crypto_8c_html_a1423f8111df1533241178461c10b50e3"><div class="ttname"><a href="crypto_8c.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a></div><div class="ttdeci">void dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00266">crypto.c:266</a></div></div>
-<div class="ttc" id="crypto_8c_html_aac32554190e3970917a31ff01eed4080"><div class="ttname"><a href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">dtls_decrypt</a></div><div class="ttdeci">int dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00550">crypto.c:550</a></div></div>
-<div class="ttc" id="crypto_8c_html_aaa510b41aa69dc5f93a1bf5bdde4a9c4"><div class="ttname"><a href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">dtls_ec_key_to_uint32</a></div><div class="ttdeci">static void dtls_ec_key_to_uint32(const unsigned char *key, size_t key_size, uint32_t *result)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00342">crypto.c:342</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: crypto.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">crypto.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdlib.h></code><br/>
-<code>#include <stdint.h></code><br/>
-<code>#include "<a class="el" href="t__list_8h_source.html">t_list.h</a>"</code><br/>
-<code>#include "aes/rijndael.h"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="state_8h_source.html">state.h</a>"</code><br/>
-<code>#include "<a class="el" href="numeric_8h_source.html">numeric.h</a>"</code><br/>
-<code>#include "<a class="el" href="hmac_8h_source.html">hmac.h</a>"</code><br/>
-<code>#include "<a class="el" href="ccm_8h_source.html">ccm.h</a>"</code><br/>
-</div>
-<p><a href="crypto_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html">dtls_handshake_parameters_ecdsa_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a5962b0d908f9b15406ca53d27a33e08a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a>   0</td></tr>
-<tr class="separator:a5962b0d908f9b15406ca53d27a33e08a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a829b5d5e4d693fdb3de335a0e2017076"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a>   16 /* AES-128 */</td></tr>
-<tr class="separator:a829b5d5e4d693fdb3de335a0e2017076"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae86031f934f3f5f3af42dad5ff8e8757"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757">DTLS_BLK_LENGTH</a>   16 /* AES-128 */</td></tr>
-<tr class="separator:ae86031f934f3f5f3af42dad5ff8e8757"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4fa04874a476a8cc5048372b6d584dbe"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe">DTLS_MAC_LENGTH</a>   <a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a></td></tr>
-<tr class="separator:a4fa04874a476a8cc5048372b6d584dbe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8106002d0d69d8da810321c65ac71385"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a>   4 /* length of nonce_explicit */</td></tr>
-<tr class="separator:a8106002d0d69d8da810321c65ac71385"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0df6db4f8c29f2b0aa5a1363b4f9127f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>   (2 * <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a> + 2 * <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a> + 2 * <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a>)</td></tr>
-<tr class="separator:a0df6db4f8c29f2b0aa5a1363b4f9127f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2648582ddf4c82abc01d8388bd3f15db"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>   48</td></tr>
-<tr class="separator:a2648582ddf4c82abc01d8388bd3f15db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5a0bdff7c0889f35601b4935098508a0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>   32</td></tr>
-<tr class="separator:a5a0bdff7c0889f35601b4935098508a0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab96c8e0773a14d1ce1621eed1a78e2bd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>   32</td></tr>
-<tr class="separator:ab96c8e0773a14d1ce1621eed1a78e2bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a59cd7c0b8724e1f9b910611623396080"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">DTLS_PSK_MAX_KEY_LEN</a>   32</td></tr>
-<tr class="separator:a59cd7c0b8724e1f9b910611623396080"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a72899232c09d09b86326c6f234addc02"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(Param, Role)   ((Param)->key_block)</td></tr>
-<tr class="separator:a72899232c09d09b86326c6f234addc02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac8fdf3770dcd956ca10d1044a57a7a3a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(Param, Role)   (<a class="el" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(Param, Role) + <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a>)</td></tr>
-<tr class="separator:ac8fdf3770dcd956ca10d1044a57a7a3a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acf318c989f5bb90b863154abbc408b66"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#acf318c989f5bb90b863154abbc408b66">dtls_kb_remote_mac_secret</a>(Param, Role)</td></tr>
-<tr class="separator:acf318c989f5bb90b863154abbc408b66"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa60519b0e9b775ccb0bdb46762f43418"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418">dtls_kb_local_mac_secret</a>(Param, Role)</td></tr>
-<tr class="separator:aa60519b0e9b775ccb0bdb46762f43418"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1f320854c9f4e9b2105649b3624976b0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a>(Param, Role)   <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a></td></tr>
-<tr class="separator:a1f320854c9f4e9b2105649b3624976b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab5659b0737d72a2fa1b1335952f9c305"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(Param, Role)   (<a class="el" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(Param, Role) + <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a>)</td></tr>
-<tr class="separator:ab5659b0737d72a2fa1b1335952f9c305"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aea906786dcfa12acb320df731c8db7f6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(Param, Role)   (<a class="el" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(Param, Role) + <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a>)</td></tr>
-<tr class="separator:aea906786dcfa12acb320df731c8db7f6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:addc8fcbbdd80ba924d0ded2a6bae97f4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">dtls_kb_remote_write_key</a>(Param, Role)</td></tr>
-<tr class="separator:addc8fcbbdd80ba924d0ded2a6bae97f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7c9e39188a2e50eb942ce8c7cd8add36"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">dtls_kb_local_write_key</a>(Param, Role)</td></tr>
-<tr class="separator:a7c9e39188a2e50eb942ce8c7cd8add36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a726ef8efa2e072c3c5e1ea1019e716aa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(Param, Role)   <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a></td></tr>
-<tr class="separator:a726ef8efa2e072c3c5e1ea1019e716aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d3c04e5d39477a525b5255ab3240094"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(Param, Role)   (<a class="el" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(Param, Role) + <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a>)</td></tr>
-<tr class="separator:a1d3c04e5d39477a525b5255ab3240094"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acdd95c24ec6aebf14dac6ee4386a79be"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a>(Param, Role)   (<a class="el" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(Param, Role) + <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a>)</td></tr>
-<tr class="separator:acdd95c24ec6aebf14dac6ee4386a79be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7119d3239c34d7e7f219200792339541"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a7119d3239c34d7e7f219200792339541">dtls_kb_remote_iv</a>(Param, Role)</td></tr>
-<tr class="separator:a7119d3239c34d7e7f219200792339541"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae23208578ac21350cb5915d11da0a2e3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3">dtls_kb_local_iv</a>(Param, Role)</td></tr>
-<tr class="separator:ae23208578ac21350cb5915d11da0a2e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adcdadf1870e2acb2993b1a8726d26997"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(Param, Role)   <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a></td></tr>
-<tr class="separator:adcdadf1870e2acb2993b1a8726d26997"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a147bfdc558c2ec69ffdf388ae19ae01c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">dtls_kb_size</a>(Param, Role)</td></tr>
-<tr class="separator:a147bfdc558c2ec69ffdf388ae19ae01c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5c3cbd4d9e514757deda211e97c9c758"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758">dtls_kb_digest_size</a>(Param, Role)   <a class="el" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe">DTLS_MAC_LENGTH</a></td></tr>
-<tr class="separator:a5c3cbd4d9e514757deda211e97c9c758"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9b039263057e157e1427c5d316133c3d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>   32</td></tr>
-<tr class="separator:a9b039263057e157e1427c5d316133c3d"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a99482a87021e817524d15c33e89e309c"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
-<a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a99482a87021e817524d15c33e89e309c">dtls_cipher_context_t</a></td></tr>
-<tr class="separator:a99482a87021e817524d15c33e89e309c"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a41f1aa1e1380c5f51d9af32c0a53f7b1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">dtls_crypto_alg</a> { <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4">AES128</a> =0
- }</td></tr>
-<tr class="separator:a41f1aa1e1380c5f51d9af32c0a53f7b1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3710d42871d602387a5147c05bf9f1ef"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a> { <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff">DTLS_ECDH_CURVE_SECP256R1</a>
- }</td></tr>
-<tr class="separator:a3710d42871d602387a5147c05bf9f1ef"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:aea7bd0a10cf289c033216a97c0ee701e"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a> (<a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</td></tr>
-<tr class="separator:aea7bd0a10cf289c033216a97c0ee701e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5e47576e502b5a6255f1b489a4915512"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a> (const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</td></tr>
-<tr class="separator:a5e47576e502b5a6255f1b489a4915512"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1423f8111df1533241178461c10b50e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf)</td></tr>
-<tr class="separator:a1423f8111df1533241178461c10b50e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a288c4ec1a5110ab3f44ab3cb7c289e69"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">dtls_encrypt</a> (const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t aad_length)</td></tr>
-<tr class="separator:a288c4ec1a5110ab3f44ab3cb7c289e69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3a99a8753c2eb9baf1e03fe0ffbb813b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">dtls_decrypt</a> (const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *a_data, size_t a_data_length)</td></tr>
-<tr class="separator:a3a99a8753c2eb9baf1e03fe0ffbb813b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa53dfed4868e257d2485024b5c170bae"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a> (unsigned char *key, size_t keylen, unsigned char *result, size_t result_len)</td></tr>
-<tr class="separator:aa53dfed4868e257d2485024b5c170bae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5f9937088ea2e1d19e7d472fecae9aaa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a> (unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len)</td></tr>
-<tr class="separator:a5f9937088ea2e1d19e7d472fecae9aaa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a982fc9e78cd10d9323756b15b72c7970"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a> (unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size)</td></tr>
-<tr class="separator:a982fc9e78cd10d9323756b15b72c7970"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a49f03039780664684d110d83a228b163"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a> (const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9])</td></tr>
-<tr class="separator:a49f03039780664684d110d83a228b163"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afa2d9b2a195a1d8e8c56b1af8cb7bc82"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a> (const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9])</td></tr>
-<tr class="separator:afa2d9b2a195a1d8e8c56b1af8cb7bc82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a802b3a2b267747a76d4557c6c9a899d7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a> (const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s)</td></tr>
-<tr class="separator:a802b3a2b267747a76d4557c6c9a899d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a035860da45ba2586a95c8ef7f539a3c9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a> (const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s)</td></tr>
-<tr class="separator:a035860da45ba2586a95c8ef7f539a3c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ae24f3621f545752732e318840d7e2b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a> (const uint32_t *key, size_t key_size, unsigned char *buf)</td></tr>
-<tr class="separator:a5ae24f3621f545752732e318840d7e2b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a25930cdb27a6ffcf05e2c2a9c95a6af8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a> ()</td></tr>
-<tr class="separator:a25930cdb27a6ffcf05e2c2a9c95a6af8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa17bcdc666796e52788f82ee003bb172"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a> (<a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake)</td></tr>
-<tr class="separator:aa17bcdc666796e52788f82ee003bb172"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d568085636a04b4706b7e50df802a7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a> ()</td></tr>
-<tr class="separator:a1d568085636a04b4706b7e50df802a7b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad54069f2880b3c07185ebba736d02d17"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a> (<a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security)</td></tr>
-<tr class="separator:ad54069f2880b3c07185ebba736d02d17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a86e6ce9d4b4afcef355836955697f52c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a> ()</td></tr>
-<tr class="separator:a86e6ce9d4b4afcef355836955697f52c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="ae86031f934f3f5f3af42dad5ff8e8757"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_BLK_LENGTH   16 /* AES-128 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00046">46</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9b039263057e157e1427c5d316133c3d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_EC_KEY_SIZE   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00309">309</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8106002d0d69d8da810321c65ac71385"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_IV_LENGTH   4 /* length of nonce_explicit */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00048">48</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1d3c04e5d39477a525b5255ab3240094"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_client_iv</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (<a class="el" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(Param, Role) + <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00168">168</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a72899232c09d09b86326c6f234addc02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_client_mac_secret</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((Param)->key_block)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00143">143</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab5659b0737d72a2fa1b1335952f9c305"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_client_write_key</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (<a class="el" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(Param, Role) + <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00155">155</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c3cbd4d9e514757deda211e97c9c758"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_digest_size</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe">DTLS_MAC_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00187">187</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adcdadf1870e2acb2993b1a8726d26997"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_iv_size</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00180">180</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a726ef8efa2e072c3c5e1ea1019e716aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_key_size</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00167">167</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae23208578ac21350cb5915d11da0a2e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_local_iv</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a>(Param, Role))</div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1d3c04e5d39477a525b5255ab3240094"><div class="ttname"><a href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a></div><div class="ttdeci">#define dtls_kb_client_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00168">crypto.h:168</a></div></div>
-<div class="ttc" id="crypto_8h_html_acdd95c24ec6aebf14dac6ee4386a79be"><div class="ttname"><a href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a></div><div class="ttdeci">#define dtls_kb_server_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00170">crypto.h:170</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00176">176</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa60519b0e9b775ccb0bdb46762f43418"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_local_mac_secret</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(Param, Role))</div>
-<div class="ttc" id="crypto_8h_html_ac8fdf3770dcd956ca10d1044a57a7a3a"><div class="ttname"><a href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a></div><div class="ttdeci">#define dtls_kb_server_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00144">crypto.h:144</a></div></div>
-<div class="ttc" id="crypto_8h_html_a72899232c09d09b86326c6f234addc02"><div class="ttname"><a href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a></div><div class="ttdeci">#define dtls_kb_client_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00143">crypto.h:143</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00150">150</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7c9e39188a2e50eb942ce8c7cd8add36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_local_write_key</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(Param, Role))</div>
-<div class="ttc" id="crypto_8h_html_ab5659b0737d72a2fa1b1335952f9c305"><div class="ttname"><a href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a></div><div class="ttdeci">#define dtls_kb_client_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00155">crypto.h:155</a></div></div>
-<div class="ttc" id="crypto_8h_html_aea906786dcfa12acb320df731c8db7f6"><div class="ttname"><a href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a></div><div class="ttdeci">#define dtls_kb_server_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00157">crypto.h:157</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00163">163</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1f320854c9f4e9b2105649b3624976b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_mac_secret_size</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00154">154</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7119d3239c34d7e7f219200792339541"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_remote_iv</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a>(Param, Role))</div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1d3c04e5d39477a525b5255ab3240094"><div class="ttname"><a href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a></div><div class="ttdeci">#define dtls_kb_client_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00168">crypto.h:168</a></div></div>
-<div class="ttc" id="crypto_8h_html_acdd95c24ec6aebf14dac6ee4386a79be"><div class="ttname"><a href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a></div><div class="ttdeci">#define dtls_kb_server_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00170">crypto.h:170</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00172">172</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acf318c989f5bb90b863154abbc408b66"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_remote_mac_secret</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(Param, Role))</div>
-<div class="ttc" id="crypto_8h_html_ac8fdf3770dcd956ca10d1044a57a7a3a"><div class="ttname"><a href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a></div><div class="ttdeci">#define dtls_kb_server_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00144">crypto.h:144</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="crypto_8h_html_a72899232c09d09b86326c6f234addc02"><div class="ttname"><a href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a></div><div class="ttdeci">#define dtls_kb_client_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00143">crypto.h:143</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00146">146</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="addc8fcbbdd80ba924d0ded2a6bae97f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_remote_write_key</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Role) == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> \</div>
-<div class="line"> ? <a class="code" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(Param, Role) \</div>
-<div class="line"> : <a class="code" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(Param, Role))</div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="crypto_8h_html_ab5659b0737d72a2fa1b1335952f9c305"><div class="ttname"><a href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a></div><div class="ttdeci">#define dtls_kb_client_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00155">crypto.h:155</a></div></div>
-<div class="ttc" id="crypto_8h_html_aea906786dcfa12acb320df731c8db7f6"><div class="ttname"><a href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a></div><div class="ttdeci">#define dtls_kb_server_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00157">crypto.h:157</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00159">159</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acdd95c24ec6aebf14dac6ee4386a79be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_server_iv</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (<a class="el" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(Param, Role) + <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00170">170</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac8fdf3770dcd956ca10d1044a57a7a3a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_server_mac_secret</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (<a class="el" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(Param, Role) + <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00144">144</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aea906786dcfa12acb320df731c8db7f6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_server_write_key</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (<a class="el" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(Param, Role) + <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00157">157</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a147bfdc558c2ec69ffdf388ae19ae01c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_kb_size</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Param, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Role </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">(2 * (<a class="code" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a>(Param, Role) + <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">\</a></div>
-<div class="line"><a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa"> dtls_kb_key_size</a>(Param, Role) + <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(Param, Role)))</div>
-<div class="ttc" id="crypto_8h_html_adcdadf1870e2acb2993b1a8726d26997"><div class="ttname"><a href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a></div><div class="ttdeci">#define dtls_kb_iv_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00180">crypto.h:180</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1f320854c9f4e9b2105649b3624976b0"><div class="ttname"><a href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a></div><div class="ttdeci">#define dtls_kb_mac_secret_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00154">crypto.h:154</a></div></div>
-<div class="ttc" id="crypto_8h_html_a726ef8efa2e072c3c5e1ea1019e716aa"><div class="ttname"><a href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a></div><div class="ttdeci">#define dtls_kb_key_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00167">crypto.h:167</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00182">182</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a829b5d5e4d693fdb3de335a0e2017076"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_KEY_LENGTH   16 /* AES-128 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00045">45</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5962b0d908f9b15406ca53d27a33e08a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_MAC_KEY_LENGTH   0</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00044">44</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4fa04874a476a8cc5048372b6d584dbe"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_MAC_LENGTH   <a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00047">47</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2648582ddf4c82abc01d8388bd3f15db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_MASTER_SECRET_LENGTH   48</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Length of DTLS master_secret </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00059">59</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab96c8e0773a14d1ce1621eed1a78e2bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_PSK_MAX_CLIENT_IDENTITY_LEN   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00089">89</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a59cd7c0b8724e1f9b910611623396080"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_PSK_MAX_KEY_LEN   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00092">92</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5a0bdff7c0889f35601b4935098508a0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_RANDOM_LENGTH   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00060">60</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0df6db4f8c29f2b0aa5a1363b4f9127f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define MAX_KEYBLOCK_LENGTH   (2 * <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">DTLS_MAC_KEY_LENGTH</a> + 2 * <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">DTLS_KEY_LENGTH</a> + 2 * <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">DTLS_IV_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Maximum size of the generated keyblock. Note that MAX_KEYBLOCK_LENGTH must be large enough to hold the pre_master_secret, i.e. twice the length of the pre-shared key + 1. </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00055">55</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a99482a87021e817524d15c33e89e309c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> <a class="el" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="a41f1aa1e1380c5f51d9af32c0a53f7b1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">dtls_crypto_alg</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4"></a>AES128</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00062">62</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3710d42871d602387a5147c05bf9f1ef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff"></a>DTLS_ECDH_CURVE_SECP256R1</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00065">65</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a86e6ce9d4b4afcef355836955697f52c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void crypto_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00076">76</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3a99a8753c2eb9baf1e03fe0ffbb813b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_decrypt </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>a_data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>a_data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Decrypts the given buffer <code>src</code> of given <code>length</code>, writing the result to <code>buf</code>. The function returns <code>-1</code> in case of an error, or the number of bytes written. Note that for block ciphers, <code>length</code> must be a multiple of the cipher's block size. A return value between <code>0</code> and the actual length indicates that only <code>n-1</code> block have been processed. Unlike <a class="el" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">dtls_encrypt()</a>, the source and destination of <a class="el" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">dtls_decrypt()</a> may overlap.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The cipher context to use. </td></tr>
- <tr><td class="paramname">src</td><td>The buffer to decrypt. </td></tr>
- <tr><td class="paramname">length</td><td>The length of the input buffer. </td></tr>
- <tr><td class="paramname">buf</td><td>The result buffer. </td></tr>
- <tr><td class="paramname">aad</td><td>additional authentication data for AEAD ciphers </td></tr>
- <tr><td class="paramname">aad_length</td><td>actual size of <code>aad</code> </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, the number of decrypted bytes otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00550">550</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ae24f3621f545752732e318840d7e2b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ec_key_from_uint32_asn1 </td>
- <td>(</td>
- <td class="paramtype">const uint32_t * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00362">362</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5f9937088ea2e1d19e7d472fecae9aaa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdh_pre_master_secret </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>result_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00398">398</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afa2d9b2a195a1d8e8c56b1af8cb7bc82"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_create_sig </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>client_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>client_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>server_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>server_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>keyx_params</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keyx_params_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_r</em>[9], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_s</em>[9] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00463">463</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a49f03039780664684d110d83a228b163"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_create_sig_hash </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>sign_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>sign_hash_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_r</em>[9], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>point_s</em>[9] </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00446">446</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a982fc9e78cd10d9323756b15b72c7970"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ecdsa_generate_key </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>priv_key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00425">425</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a035860da45ba2586a95c8ef7f539a3c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdsa_verify_sig </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>client_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>client_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>server_random</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>server_random_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>keyx_params</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keyx_params_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00503">503</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a802b3a2b267747a76d4557c6c9a899d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_ecdsa_verify_sig_hash </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>pub_key_y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>key_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>sign_hash</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>sign_hash_size</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00483">483</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a288c4ec1a5110ab3f44ab3cb7c289e69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_encrypt </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>nounce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>aad</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>aad_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Encrypts the specified <code>src</code> of given <code>length</code>, writing the result to <code>buf</code>. The cipher implementation may add more data to the result buffer such as an initialization vector or padding (e.g. for block cipers in CBC mode). The caller therefore must ensure that <code>buf</code> provides sufficient storage to hold the result. Usually this means ( 2 + <code>length</code> / blocksize ) * blocksize. The function returns a value less than zero on error or otherwise the number of bytes written.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The cipher context to use. </td></tr>
- <tr><td class="paramname">src</td><td>The data to encrypt. </td></tr>
- <tr><td class="paramname">length</td><td>The actual size of of <code>src</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>The result buffer. <code>src</code> and <code>buf</code> must not overlap. </td></tr>
- <tr><td class="paramname">aad</td><td>additional data for AEAD ciphers </td></tr>
- <tr><td class="paramname">aad_length</td><td>actual size of <code>aad</code> </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The number of encrypted bytes on success, less than zero otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00524">524</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa17bcdc666796e52788f82ee003bb172"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_handshake_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td>
- <td class="paramname"><em>handshake</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00146">146</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a25930cdb27a6ffcf05e2c2a9c95a6af8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>* dtls_handshake_new </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00123">123</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1423f8111df1533241178461c10b50e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_mac </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>hmac_ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>record</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>packet</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Calculates MAC for record + cleartext packet and places the result in <code>buf</code>. The given <code>hmac_ctx</code> must be initialized with the HMAC function to use and the proper secret. As the DTLS mac calculation requires data from the record header, <code>record</code> must point to a buffer of at least <code>sizeof(dtls_record_header_t)</code> bytes. Usually, the remaining packet will be encrypted, therefore, the cleartext is passed separately in <code>packet</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">hmac_ctx</td><td>The HMAC context to use for MAC calculation. </td></tr>
- <tr><td class="paramname">record</td><td>The record header. </td></tr>
- <tr><td class="paramname">packet</td><td>Cleartext payload to apply the MAC to. </td></tr>
- <tr><td class="paramname">length</td><td>Size of <code>packet</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>A result buffer that is large enough to hold the generated digest. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00266">266</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aea7bd0a10cf289c033216a97c0ee701e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t dtls_p_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> </td>
- <td class="paramname"><em>h</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>labellen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random1len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random2len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buflen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Expands the secret and key to a block of DTLS_HMAC_MAX size according to the algorithm specified in section 5 of RFC 4346.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">h</td><td>Identifier of the hash function to use. </td></tr>
- <tr><td class="paramname">key</td><td>The secret. </td></tr>
- <tr><td class="paramname">keylen</td><td>Length of <code>key</code>. </td></tr>
- <tr><td class="paramname">seed</td><td>The seed. </td></tr>
- <tr><td class="paramname">seedlen</td><td>Length of <code>seed</code>. </td></tr>
- <tr><td class="paramname">buf</td><td>Output buffer where the result is XORed into The buffe must be capable to hold at least <code>buflen</code> bytes. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The actual number of bytes written to <code>buf</code> or 0 on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00183">183</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5e47576e502b5a6255f1b489a4915512"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t dtls_prf </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>labellen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random1len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>random2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>random2len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buflen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This function implements the TLS PRF for DTLS_VERSION. For version 1.0, the PRF is P_MD5 ^ P_SHA1 while version 1.2 uses P_SHA256. Currently, the actual PRF is selected at compile time. </p>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00249">249</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa53dfed4868e257d2485024b5c170bae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_psk_pre_master_secret </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>keylen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>result_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Generates pre_master_sercet from given PSK and fills the result according to the "plain PSK" case in section 2 of RFC 4279. Diffie-Hellman and RSA key exchange are currently not supported.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">key</td><td>The shared key. </td></tr>
- <tr><td class="paramname">keylen</td><td>Length of <code>key</code> in bytes. </td></tr>
- <tr><td class="paramname">result</td><td>The derived pre master secret. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The actual length of <code>result</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00318">318</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad54069f2880b3c07185ebba736d02d17"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_security_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00174">174</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1d568085636a04b4706b7e50df802a7b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_new </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8c_source.html#l00155">155</a> of file <a class="el" href="crypto_8c_source.html">crypto.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: crypto.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">crypto.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="crypto_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifndef _DTLS_CRYPTO_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_CRYPTO_H_</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <stdlib.h></span> <span class="comment">/* for rand() and srand() */</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdint.h></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="t__list_8h.html">t_list.h</a>"</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "aes/rijndael.h"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="state_8h.html">state.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="numeric_8h.html">numeric.h</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="hmac_8h.html">hmac.h</a>"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="ccm_8h.html">ccm.h</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/* TLS_PSK_WITH_AES_128_CCM_8 */</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a"> 44</a></span> <span class="preprocessor">#define DTLS_MAC_KEY_LENGTH 0</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076"> 45</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_KEY_LENGTH 16 </span><span class="comment">/* AES-128 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757"> 46</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_BLK_LENGTH 16 </span><span class="comment">/* AES-128 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe"> 47</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_MAC_LENGTH DTLS_HMAC_DIGEST_SIZE</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385"> 48</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_IV_LENGTH 4 </span><span class="comment">/* length of nonce_explicit */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f"> 55</a></span> <span class="preprocessor">#define MAX_KEYBLOCK_LENGTH \</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"> (2 * DTLS_MAC_KEY_LENGTH + 2 * DTLS_KEY_LENGTH + 2 * DTLS_IV_LENGTH)</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db"> 59</a></span> <span class="preprocessor">#define DTLS_MASTER_SECRET_LENGTH 48</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0"> 60</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_RANDOM_LENGTH 32</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1"> 62</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> { <a class="code" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4">AES128</a>=0 </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> } <a class="code" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">dtls_crypto_alg</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef"> 65</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff"> 66</a></span>  <a class="code" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff">DTLS_ECDH_CURVE_SECP256R1</a></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> } <a class="code" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structaes128__ccm__t.html"> 70</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371"> 71</a></span>  rijndael_ctx <a class="code" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a>; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <a class="code" href="structaes128__ccm__t.html">aes128_ccm_t</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structdtls__cipher__context__t.html"> 74</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a> {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc"> 76</a></span>  <a class="code" href="structaes128__ccm__t.html">aes128_ccm_t</a> <a class="code" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a>; </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> } <a class="code" href="crypto_8h.html#a99482a87021e817524d15c33e89e309c">dtls_cipher_context_t</a>;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html"> 79</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b"> 80</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> own_eph_priv[32];</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f"> 81</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> other_eph_pub_x[32];</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a"> 82</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> other_eph_pub_y[32];</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf"> 83</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> other_pub_x[32];</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0"> 84</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> other_pub_y[32];</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> } <a class="code" href="structdtls__handshake__parameters__ecdsa__t.html">dtls_handshake_parameters_ecdsa_t</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/* This is the maximal supported length of the psk client identity and psk</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> * server identity hint */</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd"> 89</a></span> <span class="preprocessor">#define DTLS_PSK_MAX_CLIENT_IDENTITY_LEN 32</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">/* This is the maximal supported length of the pre-shared key. */</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080"> 92</a></span> <span class="preprocessor">#define DTLS_PSK_MAX_KEY_LEN 32</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__psk__t.html"> 94</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b"> 95</a></span>  uint16_t <a class="code" href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b">id_length</a>;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084"> 96</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> identity[<a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>];</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> } <a class="code" href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html"> 99</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a"> 100</a></span>  <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> <a class="code" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a>; </div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830"> 102</a></span>  <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> <a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a>; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da"> 103</a></span>  uint16_t <a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a>; </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87"> 104</a></span>  uint64_t <a class="code" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a>; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d"> 112</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> key_block[<a class="code" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>];</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> } <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html"> 115</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">struct </span>random_t {</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9"> 118</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> client[<a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036"> 119</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> server[<a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]; </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  } random;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898"> 122</a></span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> master_secret[<a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>];</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  } tmp;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79">LIST_STRUCT</a>(reorder_queue); </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027"> 125</a></span>  <a class="code" href="structdtls__hs__state__t.html">dtls_hs_state_t</a> <a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>; </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125"> 127</a></span>  <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> <a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a>; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933"> 128</a></span>  <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> <a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>; </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6"> 129</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> do_client_auth:1;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"></span> <a class="code" href="structdtls__handshake__parameters__ecdsa__t.html">dtls_handshake_parameters_ecdsa_t</a> ecdsa;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"></span> <a class="code" href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a> psk;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"></span> } keyx;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> } <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">/* The following macros provide access to the components of the</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"> * key_block in the security parameters. */</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02"> 143</a></span> <span class="preprocessor">#define dtls_kb_client_mac_secret(Param, Role) ((Param)->key_block)</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a"> 144</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_server_mac_secret(Param, Role) \</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"> (dtls_kb_client_mac_secret(Param, Role) + DTLS_MAC_KEY_LENGTH)</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="crypto_8h.html#acf318c989f5bb90b863154abbc408b66"> 146</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_remote_mac_secret(Param, Role) \</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"> ((Role) == DTLS_SERVER \</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> ? dtls_kb_client_mac_secret(Param, Role) \</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> : dtls_kb_server_mac_secret(Param, Role))</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418"> 150</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_local_mac_secret(Param, Role) \</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"> ((Role) == DTLS_CLIENT \</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> ? dtls_kb_client_mac_secret(Param, Role) \</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"> : dtls_kb_server_mac_secret(Param, Role))</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0"> 154</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_mac_secret_size(Param, Role) DTLS_MAC_KEY_LENGTH</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305"> 155</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_client_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"> (dtls_kb_server_mac_secret(Param, Role) + DTLS_MAC_KEY_LENGTH)</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6"> 157</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_server_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> (dtls_kb_client_write_key(Param, Role) + DTLS_KEY_LENGTH)</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4"> 159</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_remote_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"> ((Role) == DTLS_SERVER \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"> ? dtls_kb_client_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"> : dtls_kb_server_write_key(Param, Role))</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36"> 163</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_local_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> ((Role) == DTLS_CLIENT \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> ? dtls_kb_client_write_key(Param, Role) \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> : dtls_kb_server_write_key(Param, Role))</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa"> 167</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_key_size(Param, Role) DTLS_KEY_LENGTH</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094"> 168</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_client_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"> (dtls_kb_server_write_key(Param, Role) + DTLS_KEY_LENGTH)</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be"> 170</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_server_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> (dtls_kb_client_iv(Param, Role) + DTLS_IV_LENGTH)</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="crypto_8h.html#a7119d3239c34d7e7f219200792339541"> 172</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_remote_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> ((Role) == DTLS_SERVER \</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> ? dtls_kb_client_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> : dtls_kb_server_iv(Param, Role))</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3"> 176</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_local_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> ((Role) == DTLS_CLIENT \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"> ? dtls_kb_client_iv(Param, Role) \</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"> : dtls_kb_server_iv(Param, Role))</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997"> 180</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_kb_iv_size(Param, Role) DTLS_IV_LENGTH</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c"> 182</a></span> <span class="preprocessor">#define dtls_kb_size(Param, Role) \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> (2 * (dtls_kb_mac_secret_size(Param, Role) + \</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> dtls_kb_key_size(Param, Role) + dtls_kb_iv_size(Param, Role)))</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">/* just for consistency */</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758"> 187</a></span> <span class="preprocessor">#define dtls_kb_digest_size(Param, Role) DTLS_MAC_LENGTH</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">size_t</span> <a class="code" href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a>(<a class="code" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> h, </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label, <span class="keywordtype">size_t</span> labellen,</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random1, <span class="keywordtype">size_t</span> random1len,</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random2, <span class="keywordtype">size_t</span> random2len,</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buflen);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">size_t</span> <a class="code" href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label, <span class="keywordtype">size_t</span> labellen,</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random1, <span class="keywordtype">size_t</span> random1len,</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *random2, <span class="keywordtype">size_t</span> random2len,</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buflen);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *hmac_ctx, </div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *record,</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *packet, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">dtls_encrypt</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *aad, <span class="keywordtype">size_t</span> aad_length);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">dtls_decrypt</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf,</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nounce,</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *a_data, <span class="keywordtype">size_t</span> a_data_length);</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">/* helper functions */</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> keylen,</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result, <span class="keywordtype">size_t</span> result_len);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d"> 309</a></span> <span class="preprocessor">#define DTLS_EC_KEY_SIZE 32</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key,</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y,</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result,</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordtype">size_t</span> result_len);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key,</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y,</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordtype">size_t</span> key_size);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sign_hash, <span class="keywordtype">size_t</span> sign_hash_size,</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  uint32_t point_r[9], uint32_t point_s[9]);</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *priv_key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *client_random, <span class="keywordtype">size_t</span> client_random_size,</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *server_random, <span class="keywordtype">size_t</span> server_random_size,</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *keyx_params, <span class="keywordtype">size_t</span> keyx_params_size,</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  uint32_t point_r[9], uint32_t point_s[9]);</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sign_hash, <span class="keywordtype">size_t</span> sign_hash_size,</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_x,</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pub_key_y, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *client_random, <span class="keywordtype">size_t</span> client_random_size,</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *server_random, <span class="keywordtype">size_t</span> server_random_size,</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *keyx_params, <span class="keywordtype">size_t</span> keyx_params_size,</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keywordtype">int</span> <a class="code" href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a>(<span class="keyword">const</span> uint32_t *key, <span class="keywordtype">size_t</span> key_size,</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf);</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *<a class="code" href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>();</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a>(<a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a>();</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security);</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keywordtype">void</span> <a class="code" href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a>();</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_CRYPTO_H_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"></span></div>
-<div class="ttc" id="crypto_8h_html_a5f9937088ea2e1d19e7d472fecae9aaa"><div class="ttname"><a href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a></div><div class="ttdeci">int dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00398">crypto.c:398</a></div></div>
-<div class="ttc" id="structaes128__ccm__t_html"><div class="ttname"><a href="structaes128__ccm__t.html">aes128_ccm_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00070">crypto.h:70</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a56e7392a649731166fc82a523b0eb027"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">dtls_handshake_parameters_t::hs_state</a></div><div class="ttdeci">dtls_hs_state_t hs_state</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00125">crypto.h:125</a></div></div>
-<div class="ttc" id="crypto_8h_html_ad54069f2880b3c07185ebba736d02d17"><div class="ttname"><a href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a></div><div class="ttdeci">void dtls_security_free(dtls_security_parameters_t *security)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00174">crypto.c:174</a></div></div>
-<div class="ttc" id="crypto_8h_html_a5e47576e502b5a6255f1b489a4915512"><div class="ttname"><a href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a></div><div class="ttdeci">size_t dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00249">crypto.c:249</a></div></div>
-<div class="ttc" id="structaes128__ccm__t_html_a5bdf410f025e4177ced456059bc8a371"><div class="ttname"><a href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">aes128_ccm_t::ctx</a></div><div class="ttdeci">rijndael_ctx ctx</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00071">crypto.h:71</a></div></div>
-<div class="ttc" id="t__list_8h_html"><div class="ttname"><a href="t__list_8h.html">t_list.h</a></div><div class="ttdoc">Wrappers for list structures and functions. </div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a5cc61a98763800b5b4e7617307649933"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">dtls_handshake_parameters_t::cipher</a></div><div class="ttdeci">dtls_cipher_t cipher</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00128">crypto.h:128</a></div></div>
-<div class="ttc" id="crypto_8h_html_a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff"><div class="ttname"><a href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff">DTLS_ECDH_CURVE_SECP256R1</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00066">crypto.h:66</a></div></div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a></div><div class="ttdeci">dtls_compression_t</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00081">global.h:81</a></div></div>
-<div class="ttc" id="crypto_8h_html_a288c4ec1a5110ab3f44ab3cb7c289e69"><div class="ttname"><a href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">dtls_encrypt</a></div><div class="ttdeci">int dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t aad_length)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00524">crypto.c:524</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1423f8111df1533241178461c10b50e3"><div class="ttname"><a href="crypto_8h.html#a1423f8111df1533241178461c10b50e3">dtls_mac</a></div><div class="ttdeci">void dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00266">crypto.c:266</a></div></div>
-<div class="ttc" id="crypto_8h_html_a25930cdb27a6ffcf05e2c2a9c95a6af8"><div class="ttname"><a href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a></div><div class="ttdeci">dtls_handshake_parameters_t * dtls_handshake_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00123">crypto.c:123</a></div></div>
-<div class="ttc" id="crypto_8h_html_aa53dfed4868e257d2485024b5c170bae"><div class="ttname"><a href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a></div><div class="ttdeci">int dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00318">crypto.c:318</a></div></div>
-<div class="ttc" id="crypto_8h_html_a982fc9e78cd10d9323756b15b72c7970"><div class="ttname"><a href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a></div><div class="ttdeci">void dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00425">crypto.c:425</a></div></div>
-<div class="ttc" id="crypto_8h_html_a3a99a8753c2eb9baf1e03fe0ffbb813b"><div class="ttname"><a href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">dtls_decrypt</a></div><div class="ttdeci">int dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *a_data, size_t a_data_length)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00550">crypto.c:550</a></div></div>
-<div class="ttc" id="structdtls__cipher__context__t_html_a02da63201e2ac7bc508e3bb54c5761dc"><div class="ttname"><a href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">dtls_cipher_context_t::data</a></div><div class="ttdeci">aes128_ccm_t data</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00076">crypto.h:76</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="crypto_8h_html_aea7bd0a10cf289c033216a97c0ee701e"><div class="ttname"><a href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e">dtls_p_hash</a></div><div class="ttdeci">size_t dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00183">crypto.c:183</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__ecdsa__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__ecdsa__t.html">dtls_handshake_parameters_ecdsa_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00079">crypto.h:79</a></div></div>
-<div class="ttc" id="crypto_8h_html_ab96c8e0773a14d1ce1621eed1a78e2bd"><div class="ttname"><a href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></div><div class="ttdeci">#define DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00089">crypto.h:89</a></div></div>
-<div class="ttc" id="crypto_8h_html_a0df6db4f8c29f2b0aa5a1363b4f9127f"><div class="ttname"><a href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a></div><div class="ttdeci">#define MAX_KEYBLOCK_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00055">crypto.h:55</a></div></div>
-<div class="ttc" id="hmac_8h_html"><div class="ttname"><a href="hmac_8h.html">hmac.h</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__psk__t_html_a39ae0d1ead76e8bd5a3631ae8677be1b"><div class="ttname"><a href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b">dtls_handshake_parameters_psk_t::id_length</a></div><div class="ttdeci">uint16_t id_length</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00095">crypto.h:95</a></div></div>
-<div class="ttc" id="crypto_8h_html_aa17bcdc666796e52788f82ee003bb172"><div class="ttname"><a href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a></div><div class="ttdeci">void dtls_handshake_free(dtls_handshake_parameters_t *handshake)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00146">crypto.c:146</a></div></div>
-<div class="ttc" id="crypto_8h_html_a5a0bdff7c0889f35601b4935098508a0"><div class="ttname"><a href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a></div><div class="ttdeci">#define DTLS_RANDOM_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00060">crypto.h:60</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__psk__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00094">crypto.h:94</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html"><div class="ttname"><a href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00095">hmac.h:95</a></div></div>
-<div class="ttc" id="crypto_8h_html_a3710d42871d602387a5147c05bf9f1ef"><div class="ttname"><a href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a></div><div class="ttdeci">dtls_ecdh_curve</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00065">crypto.h:65</a></div></div>
-<div class="ttc" id="global_8h_html_adde6aaee8457bee49c2a92621fe22b79"><div class="ttname"><a href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></div><div class="ttdeci">unsigned char uint8</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00047">global.h:47</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a67f85371953c8ae07ec110cb39c13125"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">dtls_handshake_parameters_t::compression</a></div><div class="ttdeci">dtls_compression_t compression</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00127">crypto.h:127</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a100dc82ee41004df1d9f211873332f87"><div class="ttname"><a href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">dtls_security_parameters_t::rseq</a></div><div class="ttdeci">uint64_t rseq</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00104">crypto.h:104</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a6a72df7ab1151f81e49d464175fcaf2a"><div class="ttname"><a href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">dtls_security_parameters_t::compression</a></div><div class="ttdeci">dtls_compression_t compression</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00100">crypto.h:100</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a21d9fac709d739535b0cbecce4c18830"><div class="ttname"><a href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">dtls_security_parameters_t::cipher</a></div><div class="ttdeci">dtls_cipher_t cipher</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00102">crypto.h:102</a></div></div>
-<div class="ttc" id="crypto_8h_html_a2648582ddf4c82abc01d8388bd3f15db"><div class="ttname"><a href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a></div><div class="ttdeci">#define DTLS_MASTER_SECRET_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00059">crypto.h:59</a></div></div>
-<div class="ttc" id="crypto_8h_html_afa2d9b2a195a1d8e8c56b1af8cb7bc82"><div class="ttname"><a href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a></div><div class="ttdeci">void dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00463">crypto.c:463</a></div></div>
-<div class="ttc" id="crypto_8h_html_a802b3a2b267747a76d4557c6c9a899d7"><div class="ttname"><a href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00483">crypto.c:483</a></div></div>
-<div class="ttc" id="state_8h_html"><div class="ttname"><a href="state_8h.html">state.h</a></div><div class="ttdoc">state information for DTLS FSM </div></div>
-<div class="ttc" id="crypto_8h_html_a5ae24f3621f545752732e318840d7e2b"><div class="ttname"><a href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a></div><div class="ttdeci">int dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00362">crypto.c:362</a></div></div>
-<div class="ttc" id="t__list_8h_html_ab5acb500a887e1957292f3dddc5c9b79"><div class="ttname"><a href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79">LIST_STRUCT</a></div><div class="ttdeci">#define LIST_STRUCT(name)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00086">t_list.h:86</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga698cfa036e69361a93dcdd9b19579b23"><div class="ttname"><a href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a></div><div class="ttdeci">dtls_hashfunc_t</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00083">hmac.h:83</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59b"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a></div><div class="ttdeci">dtls_cipher_t</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00074">global.h:74</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html"><div class="ttname"><a href="structdtls__hs__state__t.html">dtls_hs_state_t</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00054">state.h:54</a></div></div>
-<div class="ttc" id="crypto_8h_html_a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4"><div class="ttname"><a href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4">AES128</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00062">crypto.h:62</a></div></div>
-<div class="ttc" id="crypto_8h_html_a41f1aa1e1380c5f51d9af32c0a53f7b1"><div class="ttname"><a href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">dtls_crypto_alg</a></div><div class="ttdeci">dtls_crypto_alg</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00062">crypto.h:62</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1d568085636a04b4706b7e50df802a7b"><div class="ttname"><a href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a></div><div class="ttdeci">dtls_security_parameters_t * dtls_security_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00155">crypto.c:155</a></div></div>
-<div class="ttc" id="numeric_8h_html"><div class="ttname"><a href="numeric_8h.html">numeric.h</a></div></div>
-<div class="ttc" id="structdtls__cipher__context__t_html"><div class="ttname"><a href="structdtls__cipher__context__t.html">dtls_cipher_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00074">crypto.h:74</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html"><div class="ttname"><a href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00099">crypto.h:99</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a2bce1fa0bf77eeab8fadca824de602da"><div class="ttname"><a href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">dtls_security_parameters_t::epoch</a></div><div class="ttdeci">uint16_t epoch</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00103">crypto.h:103</a></div></div>
-<div class="ttc" id="crypto_8h_html_a86e6ce9d4b4afcef355836955697f52c"><div class="ttname"><a href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a></div><div class="ttdeci">void crypto_init()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00076">crypto.c:76</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00115">crypto.h:115</a></div></div>
-<div class="ttc" id="crypto_8h_html_a99482a87021e817524d15c33e89e309c"><div class="ttname"><a href="crypto_8h.html#a99482a87021e817524d15c33e89e309c">dtls_cipher_context_t</a></div><div class="ttdeci">struct dtls_cipher_context_t dtls_cipher_context_t</div></div>
-<div class="ttc" id="crypto_8h_html_a035860da45ba2586a95c8ef7f539a3c9"><div class="ttname"><a href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00503">crypto.c:503</a></div></div>
-<div class="ttc" id="ccm_8h_html"><div class="ttname"><a href="ccm_8h.html">ccm.h</a></div></div>
-<div class="ttc" id="crypto_8h_html_a49f03039780664684d110d83a228b163"><div class="ttname"><a href="crypto_8h.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a></div><div class="ttdeci">void dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00446">crypto.c:446</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: debug.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> |
-<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">debug.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-<code>#include <stdarg.h></code><br/>
-<code>#include <stdio.h></code><br/>
-<code>#include <arpa/inet.h></code><br/>
-<code>#include <time.h></code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-</div>
-<p><a href="debug_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:ac6afabdc09a49a433ee19d8a9486056d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a>(a, b)   ((a) < (b) ? (a) : (b))</td></tr>
-<tr class="separator:ac6afabdc09a49a433ee19d8a9486056d"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a6ae22adf81d9aaf0a2ed74f7f7437971"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a> ()</td></tr>
-<tr class="separator:a6ae22adf81d9aaf0a2ed74f7f7437971"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aab7b9dac4484be50856ab8b8a827d235"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a> ()</td></tr>
-<tr class="separator:aab7b9dac4484be50856ab8b8a827d235"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0af8abc8cf3864ea04954b3537c7e07f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a> ()</td></tr>
-<tr class="separator:a0af8abc8cf3864ea04954b3537c7e07f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae081a7241940f0195295cc37f39c1d02"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level)</td></tr>
-<tr class="separator:ae081a7241940f0195295cc37f39c1d02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4ac5b294de82b336108ebd436b271b17"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a> (char *s, size_t len, time_t t)</td></tr>
-<tr class="separator:a4ac5b294de82b336108ebd436b271b17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2ff663644d9ffbc6ac64b2da6cde5bfa"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">dtls_strnlen</a> (const char *s, size_t maxlen)</td></tr>
-<tr class="separator:a2ff663644d9ffbc6ac64b2da6cde5bfa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa6c8e3e1a02e7cb1567391d3a5ca8bf2"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">dsrv_print_addr</a> (const <a class="el" href="structsession__t.html">session_t</a> *addr, char *buf, size_t len)</td></tr>
-<tr class="separator:aa6c8e3e1a02e7cb1567391d3a5ca8bf2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ace8ca7929ecfc486c3ef40828c79bfe5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, char *format,...)</td></tr>
-<tr class="separator:ace8ca7929ecfc486c3ef40828c79bfe5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af5fe8134d8875eb856a4cd99313ec1b0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a> (const unsigned char *packet, int length)</td></tr>
-<tr class="separator:af5fe8134d8875eb856a4cd99313ec1b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7ee74b9f3941b0ec63f35da6b83fa240"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a> (unsigned char *buf, size_t len)</td></tr>
-<tr class="separator:a7ee74b9f3941b0ec63f35da6b83fa240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a66cb8756d40a3326315d9b5f003a5a76"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, const char *name, const <a class="el" href="structsession__t.html">session_t</a> *addr)</td></tr>
-<tr class="separator:a66cb8756d40a3326315d9b5f003a5a76"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8badc2780b90e28c6c4e1a3b410b31cc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, const char *name, const unsigned char *buf, size_t length, int extend)</td></tr>
-<tr class="separator:a8badc2780b90e28c6c4e1a3b410b31cc"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
-Variables</h2></td></tr>
-<tr class="memitem:a7a6dbd5278e0c21ff9434dc3de7b955d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> = <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a></td></tr>
-<tr class="separator:a7a6dbd5278e0c21ff9434dc3de7b955d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aea3c9cd7c28ac0ebbc7473771751ed92"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a> []</td></tr>
-<tr class="separator:aea3c9cd7c28ac0ebbc7473771751ed92"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="ac6afabdc09a49a433ee19d8a9486056d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define min</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">a, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">b </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((a) < (b) ? (a) : (b))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00114">114</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ace8ca7929ecfc486c3ef40828c79bfe5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dsrv_log </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>format</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Writes the given text to <code>stdout</code>. The text is output only when <code>level</code> is below or equal to the log level that set by set_log_level(). </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00208">208</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa6c8e3e1a02e7cb1567391d3a5ca8bf2"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t dsrv_print_addr </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>addr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00118">118</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8badc2780b90e28c6c4e1a3b410b31cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_dsrv_hexdump_log </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>extend</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00290">290</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a66cb8756d40a3326315d9b5f003a5a76"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_dsrv_log_addr </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>addr</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00277">277</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0af8abc8cf3864ea04954b3537c7e07f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> dtls_get_log_level </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns the current log level. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00058">58</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6ae22adf81d9aaf0a2ed74f7f7437971"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char* dtls_package_name </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns a zero-terminated string with the name of this library. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00049">49</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aab7b9dac4484be50856ab8b8a827d235"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char* dtls_package_version </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns a zero-terminated string with the library version. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00053">53</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae081a7241940f0195295cc37f39c1d02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_set_log_level </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Sets the log level to the specified value. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00063">63</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2ff663644d9ffbc6ac64b2da6cde5bfa"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t dtls_strnlen </td>
- <td>(</td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>maxlen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>A length-safe strlen() fake.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">s</td><td>The string to count characters != 0. </td></tr>
- <tr><td class="paramname">maxlen</td><td>The maximum length of <code>s</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The length of <code>s</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00106">106</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7ee74b9f3941b0ec63f35da6b83fa240"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dump </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>dump as narrow string of hex digits </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00272">272</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af5fe8134d8875eb856a4cd99313ec1b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void hexdump </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>packet</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>dumps packets in usual hexdump format </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00252">252</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4ac5b294de82b336108ebd436b271b17"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t print_timestamp </td>
- <td>(</td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">time_t </td>
- <td class="paramname"><em>t</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00075">75</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="aea3c9cd7c28ac0ebbc7473771751ed92"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">char* loglevels[]</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
-<div class="line"> <span class="stringliteral">"EMRG"</span>, <span class="stringliteral">"ALRT"</span>, <span class="stringliteral">"CRIT"</span>, <span class="stringliteral">"WARN"</span>, <span class="stringliteral">"NOTE"</span>, <span class="stringliteral">"INFO"</span>, <span class="stringliteral">"DEBG"</span> </div>
-<div class="line">}</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00068">68</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7a6dbd5278e0c21ff9434dc3de7b955d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">int maxlog = <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00047">47</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: debug.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">debug.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="debug_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* debug.c -- debug utilities</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#if defined(HAVE_ASSERT_H) && !defined(assert)</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <stdarg.h></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifdef HAVE_ARPA_INET_H</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#include <arpa/inet.h></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifdef HAVE_TIME_H</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span><span class="preprocessor">#include <time.h></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d"> 47</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> = <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a>; <span class="comment">/* default maximum log level */</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971"> 49</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a>() {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <a class="code" href="config_8h.html#a1c0439e4355794c09b64274849eb0279">PACKAGE_NAME</a>;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235"> 53</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="debug_8c.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a>() {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> <a class="code" href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">PACKAGE_VERSION</a>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f"> 58</a></span> <a class="code" href="debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a>() {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> <a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02"> 63</a></span> <a class="code" href="debug_8c.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level) {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> = level;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">/* this array has the same order as the type log_t */</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92"> 68</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> *<a class="code" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a>[] = {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="stringliteral">"EMRG"</span>, <span class="stringliteral">"ALRT"</span>, <span class="stringliteral">"CRIT"</span>, <span class="stringliteral">"WARN"</span>, <span class="stringliteral">"NOTE"</span>, <span class="stringliteral">"INFO"</span>, <span class="stringliteral">"DEBG"</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> };</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#ifdef HAVE_TIME_H</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17"> 75</a></span> <a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> len, time_t t) {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">struct </span>tm *tmp;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  tmp = localtime(&t);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> strftime(s, len, <span class="stringliteral">"%b %d %H:%M:%S"</span>, tmp);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#else </span><span class="comment">/* alternative implementation: just print the timestamp */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> len, <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> t) {</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#ifdef HAVE_SNPRINTF</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> snprintf(s, len, <span class="stringliteral">"%u.%03u"</span>, </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)(t / <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>), </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)(t % <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>));</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#else </span><span class="comment">/* HAVE_SNPRINTF */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span> <span class="comment">/* @todo do manual conversion of timestamp */</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#endif </span><span class="comment">/* HAVE_SNPRINTF */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif </span><span class="comment">/* HAVE_TIME_H */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa"> 106</a></span> <a class="code" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">dtls_strnlen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> maxlen) {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">size_t</span> n = 0;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">while</span>(*s++ && n < maxlen)</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  ++n;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> n;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#ifndef min</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d"> 114</a></span> <span class="preprocessor"></span><span class="preprocessor">#define min(a,b) ((a) < (b) ? (a) : (b))</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2"> 118</a></span> <a class="code" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">dsrv_print_addr</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *addr, <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#ifdef HAVE_ARPA_INET_H</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">void</span> *addrptr = NULL;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  in_port_t port;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">char</span> *p = buf;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">switch</span> (addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family) {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">case</span> AF_INET: </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (len < INET_ADDRSTRLEN)</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  addrptr = &addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_addr;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  port = ntohs(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_port);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">case</span> AF_INET6:</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (len < INET6_ADDRSTRLEN + 2)</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  *p++ = <span class="charliteral">'['</span>;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  addrptr = &addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_addr;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  port = ntohs(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_port);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  memcpy(buf, <span class="stringliteral">"(unknown address type)"</span>, <a class="code" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a>(22, len));</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <a class="code" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a>(22, len);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (inet_ntop(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family, addrptr, p, len) == 0) {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  perror(<span class="stringliteral">"dsrv_print_addr"</span>);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  p += <a class="code" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">dtls_strnlen</a>(p, len);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span> (addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family == AF_INET6) {</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (p < buf + len) {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  *p++ = <span class="charliteral">']'</span>;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  } <span class="keywordflow">else</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  p += snprintf(p, buf + len - p + 1, <span class="stringliteral">":%d"</span>, port);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> p - buf;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#else </span><span class="comment">/* HAVE_ARPA_INET_H */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"></span><span class="preprocessor"># if WITH_CONTIKI</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span> <span class="keywordtype">char</span> *p = buf;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"># ifdef UIP_CONF_IPV6</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"></span> uint8_t i;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> hex[] = <span class="stringliteral">"0123456789ABCDEF"</span>;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (len < 41)</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  *p++ = <span class="charliteral">'['</span>;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">for</span> (i=0; i < 16; i += 2) {</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (i) {</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  *p++ = <span class="charliteral">':'</span>;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  *p++ = hex[(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.u8[i] & 0xf0) >> 4];</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  *p++ = hex[(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.u8[i] & 0x0f)];</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  *p++ = hex[(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.u8[i+1] & 0xf0) >> 4];</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  *p++ = hex[(addr-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.u8[i+1] & 0x0f)];</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  *p++ = <span class="charliteral">']'</span>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"># else </span><span class="comment">/* UIP_CONF_IPV6 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"></span><span class="preprocessor"># warning "IPv4 network addresses will not be included in debug output"</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">if</span> (len < 21)</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"># endif </span><span class="comment">/* UIP_CONF_IPV6 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (buf + len - p < 6)</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  p += sprintf(p, <span class="stringliteral">":%d"</span>, uip_htons(addr->port));</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> p - buf;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"># else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"></span> <span class="comment">/* TODO: output addresses manually */</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># warning "inet_ntop() not available, network addresses will not be included in debug output"</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"></span><span class="preprocessor"># endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"></span><span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5"> 208</a></span> <a class="code" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keywordtype">char</span> *format, ...) {</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">static</span> <span class="keywordtype">char</span> timebuf[32];</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  va_list ap;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  FILE *log_fd;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> < level)</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  log_fd = level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a> ? stderr : stdout;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(timebuf,<span class="keyword">sizeof</span>(timebuf), time(NULL)))</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  fprintf(log_fd, <span class="stringliteral">"%s "</span>, timebuf);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span> (level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>) </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  fprintf(log_fd, <span class="stringliteral">"%s "</span>, <a class="code" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a>[level]);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  va_start(ap, format);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  vfprintf(log_fd, format, ap);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  va_end(ap);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  fflush(log_fd);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor">#elif defined (HAVE_VPRINTF) </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"></span><span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <a class="code" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keywordtype">char</span> *format, ...) {</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">static</span> <span class="keywordtype">char</span> timebuf[32];</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  va_list ap;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> < level)</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(timebuf,<span class="keyword">sizeof</span>(timebuf), clock_time()))</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s "</span>, timebuf);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span> (level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>) </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s "</span>, <a class="code" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a>[level]);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  va_start(ap, format);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  vprintf(format, ap);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  va_end(ap);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> }</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0"> 252</a></span> <span class="keywordtype">void</span> <a class="code" href="debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *packet, <span class="keywordtype">int</span> length) {</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordtype">int</span> n = 0;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">while</span> (length--) { </div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  printf(<span class="stringliteral">"%08X "</span>,n);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  printf(<span class="stringliteral">"%02X "</span>, *packet++);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  n++;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (n % 8 == 0) {</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  printf(<span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  printf(<span class="stringliteral">" "</span>);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> }</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240"> 272</a></span> <span class="keywordtype">void</span> <a class="code" href="debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">while</span> (len--) </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  printf(<span class="stringliteral">"%02x"</span>, *buf++);</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> }</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76"> 277</a></span> <span class="keywordtype">void</span> <a class="code" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *addr)</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordtype">char</span> addrbuf[73];</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  len = <a class="code" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">dsrv_print_addr</a>(addr, addrbuf, <span class="keyword">sizeof</span>(addrbuf));</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (!len)</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(level, <span class="stringliteral">"%s: %s\n"</span>, name, addrbuf);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> }</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"></span><span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc"> 290</a></span> <a class="code" href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> extend) {</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">static</span> <span class="keywordtype">char</span> timebuf[32];</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  FILE *log_fd;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordtype">int</span> n = 0;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> < level)</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  log_fd = level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a> ? stderr : stdout;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(timebuf, <span class="keyword">sizeof</span>(timebuf), time(NULL)))</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  fprintf(log_fd, <span class="stringliteral">"%s "</span>, timebuf);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">if</span> (level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>) </div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  fprintf(log_fd, <span class="stringliteral">"%s "</span>, <a class="code" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a>[level]);</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (extend) {</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  fprintf(log_fd, <span class="stringliteral">"%s: (%zu bytes):\n"</span>, name, length);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">while</span> (length--) {</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  fprintf(log_fd, <span class="stringliteral">"%08X "</span>, n);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  fprintf(log_fd, <span class="stringliteral">"%02X "</span>, *buf++);</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  n++;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (n % 8 == 0) {</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  fprintf(log_fd, <span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  fprintf(log_fd, <span class="stringliteral">" "</span>);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  fprintf(log_fd, <span class="stringliteral">"%s: (%zu bytes): "</span>, name, length);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">while</span> (length--) </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  fprintf(log_fd, <span class="stringliteral">"%02X"</span>, *buf++);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  fprintf(log_fd, <span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  fflush(log_fd);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> }</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"></span><span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <a class="code" href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> extend) {</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">static</span> <span class="keywordtype">char</span> timebuf[32];</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordtype">int</span> n = 0;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a> < level)</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (<a class="code" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a>(timebuf,<span class="keyword">sizeof</span>(timebuf), clock_time()))</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s "</span>, timebuf);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">if</span> (level >= 0 && level <= <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>) </div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s "</span>, <a class="code" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a>[level]);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span> (extend) {</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s: (%zu bytes):\n"</span>, name, length);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">while</span> (length--) {</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%08X "</span>, n);</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%02X "</span>, *buf++);</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  n++;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">if</span> (n % 8 == 0) {</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span> (n % 16 == 0)</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">" "</span>);</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%s: (%zu bytes): "</span>, name, length);</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">while</span> (length--) </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"%02X"</span>, *buf++);</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> }</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor">#endif </span><span class="comment">/* NDEBUG */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9d"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a></div><div class="ttdeci">log_t</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="debug_8c_html_a4ac5b294de82b336108ebd436b271b17"><div class="ttname"><a href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">print_timestamp</a></div><div class="ttdeci">static size_t print_timestamp(char *s, size_t len, time_t t)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00075">debug.c:75</a></div></div>
-<div class="ttc" id="debug_8c_html_a0af8abc8cf3864ea04954b3537c7e07f"><div class="ttname"><a href="debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a></div><div class="ttdeci">log_t dtls_get_log_level()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00058">debug.c:58</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="debug_8c_html_aea3c9cd7c28ac0ebbc7473771751ed92"><div class="ttname"><a href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">loglevels</a></div><div class="ttdeci">static char * loglevels[]</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00068">debug.c:68</a></div></div>
-<div class="ttc" id="debug_8c_html_ace8ca7929ecfc486c3ef40828c79bfe5"><div class="ttname"><a href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a></div><div class="ttdeci">void dsrv_log(log_t level, char *format,...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00208">debug.c:208</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="debug_8c_html_a8badc2780b90e28c6c4e1a3b410b31cc"><div class="ttname"><a href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a></div><div class="ttdeci">void dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00290">debug.c:290</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="debug_8c_html_ac6afabdc09a49a433ee19d8a9486056d"><div class="ttname"><a href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a></div><div class="ttdeci">#define min(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00114">debug.c:114</a></div></div>
-<div class="ttc" id="debug_8h_html_a1f464e950a4fa11e8821b5c725921a15"><div class="ttname"><a href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a></div><div class="ttdeci">#define PRINTF(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00057">debug.h:57</a></div></div>
-<div class="ttc" id="debug_8c_html_ae081a7241940f0195295cc37f39c1d02"><div class="ttname"><a href="debug_8c.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a></div><div class="ttdeci">void dtls_set_log_level(log_t level)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00063">debug.c:63</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="debug_8c_html_aa6c8e3e1a02e7cb1567391d3a5ca8bf2"><div class="ttname"><a href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">dsrv_print_addr</a></div><div class="ttdeci">static size_t dsrv_print_addr(const session_t *addr, char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00118">debug.c:118</a></div></div>
-<div class="ttc" id="debug_8c_html_aab7b9dac4484be50856ab8b8a827d235"><div class="ttname"><a href="debug_8c.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a></div><div class="ttdeci">const char * dtls_package_version()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00053">debug.c:53</a></div></div>
-<div class="ttc" id="config_8h_html_a1c0439e4355794c09b64274849eb0279"><div class="ttname"><a href="config_8h.html#a1c0439e4355794c09b64274849eb0279">PACKAGE_NAME</a></div><div class="ttdeci">#define PACKAGE_NAME</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00099">config.h:99</a></div></div>
-<div class="ttc" id="group__clock_html_gae3ced0551b26c9b99cb45a86f34d100a"><div class="ttname"><a href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a></div><div class="ttdeci">#define CLOCK_SECOND</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00052">dtls_time.h:52</a></div></div>
-<div class="ttc" id="debug_8c_html_a66cb8756d40a3326315d9b5f003a5a76"><div class="ttname"><a href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a></div><div class="ttdeci">void dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00277">debug.c:277</a></div></div>
-<div class="ttc" id="structsession__t_html_a8d0a30ccc98425675a1b0e92e96eaa6a"><div class="ttname"><a href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">session_t::sa</a></div><div class="ttdeci">struct sockaddr sa</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00052">session.h:52</a></div></div>
-<div class="ttc" id="debug_8c_html_a7a6dbd5278e0c21ff9434dc3de7b955d"><div class="ttname"><a href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">maxlog</a></div><div class="ttdeci">static int maxlog</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00047">debug.c:47</a></div></div>
-<div class="ttc" id="structsession__t_html_a0bb4423cd29b415a4cf6c32d5d9a43e4"><div class="ttname"><a href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">session_t::addr</a></div><div class="ttdeci">union session_t::@2 addr</div></div>
-<div class="ttc" id="debug_8c_html_a7ee74b9f3941b0ec63f35da6b83fa240"><div class="ttname"><a href="debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a></div><div class="ttdeci">void dump(unsigned char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00272">debug.c:272</a></div></div>
-<div class="ttc" id="debug_8c_html_af5fe8134d8875eb856a4cd99313ec1b0"><div class="ttname"><a href="debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a></div><div class="ttdeci">void hexdump(const unsigned char *packet, int length)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00252">debug.c:252</a></div></div>
-<div class="ttc" id="debug_8c_html_a2ff663644d9ffbc6ac64b2da6cde5bfa"><div class="ttname"><a href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">dtls_strnlen</a></div><div class="ttdeci">static size_t dtls_strnlen(const char *s, size_t maxlen)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00106">debug.c:106</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="config_8h_html_aa326a05d5e30f9e9a4bb0b4469d5d0c0"><div class="ttname"><a href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">PACKAGE_VERSION</a></div><div class="ttdeci">#define PACKAGE_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="config_8h_source.html#l00111">config.h:111</a></div></div>
-<div class="ttc" id="structsession__t_html_a2f337ce1989f3a9b5afeef1a95506bde"><div class="ttname"><a href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">session_t::sin6</a></div><div class="ttdeci">struct sockaddr_in6 sin6</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00055">session.h:55</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-<div class="ttc" id="debug_8c_html_a6ae22adf81d9aaf0a2ed74f7f7437971"><div class="ttname"><a href="debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a></div><div class="ttdeci">const char * dtls_package_name()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00049">debug.c:49</a></div></div>
-<div class="ttc" id="structsession__t_html_a86093095c1ab36b12180f9215fa2375e"><div class="ttname"><a href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">session_t::sin</a></div><div class="ttdeci">struct sockaddr_in sin</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00054">session.h:54</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: debug.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">debug.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdlib.h></code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="session_8h_source.html">session.h</a>"</code><br/>
-</div>
-<p><a href="debug_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a1f464e950a4fa11e8821b5c725921a15"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(...)</td></tr>
-<tr class="separator:a1f464e950a4fa11e8821b5c725921a15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a94fa8dba0861075ba507ea0417fd83c8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">dtls_emerg</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:a94fa8dba0861075ba507ea0417fd83c8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab22e3494f6186183820142ba279fe9ae"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">DTLS_LOG_ALERT</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:ab22e3494f6186183820142ba279fe9ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad4c9c94c054579b73789fead587c8514"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:ad4c9c94c054579b73789fead587c8514"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae1c22127c92fab70da7bf9cae8536e5c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:ae1c22127c92fab70da7bf9cae8536e5c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:add9bf011215b9fc36abc5c80722c876e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#add9bf011215b9fc36abc5c80722c876e">dtls_notice</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">DTLS_LOG_NOTICE</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:add9bf011215b9fc36abc5c80722c876e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afde5692e7a590b0dd016d5753284c175"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">DTLS_LOG_INFO</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:afde5692e7a590b0dd016d5753284c175"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0f158325426415d9efb5a36bebf45844"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(...)   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, __VA_ARGS__)</td></tr>
-<tr class="separator:a0f158325426415d9efb5a36bebf45844"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a24b1e8ecaa65f684d879ed9d5c37119d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(name, buf, length)   <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, name, buf, length, 1)</td></tr>
-<tr class="separator:a24b1e8ecaa65f684d879ed9d5c37119d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab27d2c7cae1e8022e93562ecda9140b6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(name, buf, length)   <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, name, buf, length, 0)</td></tr>
-<tr class="separator:ab27d2c7cae1e8022e93562ecda9140b6"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a5cae2fb7fec0dd9e63cf2d755642cd9d"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> { <br/>
-  <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a> =0,
-<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">DTLS_LOG_ALERT</a>,
-<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a>,
-<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a>,
-<br/>
-  <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">DTLS_LOG_NOTICE</a>,
-<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">DTLS_LOG_INFO</a>,
-<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>
-<br/>
- }</td></tr>
-<tr class="separator:a5cae2fb7fec0dd9e63cf2d755642cd9d"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a4a3c60a1e54594e78cd207c57ddb1378"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a> ()</td></tr>
-<tr class="separator:a4a3c60a1e54594e78cd207c57ddb1378"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6ae22adf81d9aaf0a2ed74f7f7437971"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a> ()</td></tr>
-<tr class="separator:a6ae22adf81d9aaf0a2ed74f7f7437971"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aab7b9dac4484be50856ab8b8a827d235"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a> ()</td></tr>
-<tr class="separator:aab7b9dac4484be50856ab8b8a827d235"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0af8abc8cf3864ea04954b3537c7e07f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a> ()</td></tr>
-<tr class="separator:a0af8abc8cf3864ea04954b3537c7e07f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae081a7241940f0195295cc37f39c1d02"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level)</td></tr>
-<tr class="separator:ae081a7241940f0195295cc37f39c1d02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ace8ca7929ecfc486c3ef40828c79bfe5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, char *format,...)</td></tr>
-<tr class="separator:ace8ca7929ecfc486c3ef40828c79bfe5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af5fe8134d8875eb856a4cd99313ec1b0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a> (const unsigned char *packet, int length)</td></tr>
-<tr class="separator:af5fe8134d8875eb856a4cd99313ec1b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7ee74b9f3941b0ec63f35da6b83fa240"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a> (unsigned char *buf, size_t len)</td></tr>
-<tr class="separator:a7ee74b9f3941b0ec63f35da6b83fa240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8badc2780b90e28c6c4e1a3b410b31cc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, const char *name, const unsigned char *buf, size_t length, int extend)</td></tr>
-<tr class="separator:a8badc2780b90e28c6c4e1a3b410b31cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a66cb8756d40a3326315d9b5f003a5a76"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a> (<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, const char *name, const <a class="el" href="structsession__t.html">session_t</a> *addr)</td></tr>
-<tr class="separator:a66cb8756d40a3326315d9b5f003a5a76"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="ab22e3494f6186183820142ba279fe9ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_alert</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">DTLS_LOG_ALERT</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00134">134</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad4c9c94c054579b73789fead587c8514"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_crit</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00135">135</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0f158325426415d9efb5a36bebf45844"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_debug</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00139">139</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab27d2c7cae1e8022e93562ecda9140b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_debug_dump</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">name, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">buf, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">length </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, name, buf, length, 0)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00141">141</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a24b1e8ecaa65f684d879ed9d5c37119d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_debug_hexdump</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">name, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">buf, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">length </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, name, buf, length, 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00140">140</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a94fa8dba0861075ba507ea0417fd83c8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_emerg</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00133">133</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afde5692e7a590b0dd016d5753284c175"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_info</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">DTLS_LOG_INFO</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00138">138</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="add9bf011215b9fc36abc5c80722c876e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_notice</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">DTLS_LOG_NOTICE</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00137">137</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae1c22127c92fab70da7bf9cae8536e5c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_warn</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td>   <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a>, __VA_ARGS__)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00136">136</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1f464e950a4fa11e8821b5c725921a15"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PRINTF</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00057">57</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Pre-defined log levels akin to what is used in <b>syslog</b>. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e"></a>DTLS_LOG_EMERG</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e"></a>DTLS_LOG_ALERT</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d"></a>DTLS_LOG_CRIT</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70"></a>DTLS_LOG_WARN</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09"></a>DTLS_LOG_NOTICE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7"></a>DTLS_LOG_INFO</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020"></a>DTLS_LOG_DEBUG</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00066">66</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a4a3c60a1e54594e78cd207c57ddb1378"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void check_stack </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8h_source.html#l00059">59</a> of file <a class="el" href="debug_8h_source.html">debug.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ace8ca7929ecfc486c3ef40828c79bfe5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dsrv_log </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char * </td>
- <td class="paramname"><em>format</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Writes the given text to <code>stdout</code>. The text is output only when <code>level</code> is below or equal to the log level that set by set_log_level(). </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00208">208</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8badc2780b90e28c6c4e1a3b410b31cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_dsrv_hexdump_log </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>extend</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00290">290</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a66cb8756d40a3326315d9b5f003a5a76"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_dsrv_log_addr </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const char * </td>
- <td class="paramname"><em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>addr</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00277">277</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0af8abc8cf3864ea04954b3537c7e07f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> dtls_get_log_level </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns the current log level. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00058">58</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6ae22adf81d9aaf0a2ed74f7f7437971"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char* dtls_package_name </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns a zero-terminated string with the name of this library. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00049">49</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aab7b9dac4484be50856ab8b8a827d235"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const char* dtls_package_version </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns a zero-terminated string with the library version. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00053">53</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae081a7241940f0195295cc37f39c1d02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_set_log_level </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> </td>
- <td class="paramname"><em>level</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Sets the log level to the specified value. </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00063">63</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7ee74b9f3941b0ec63f35da6b83fa240"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dump </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>dump as narrow string of hex digits </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00272">272</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af5fe8134d8875eb856a4cd99313ec1b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void hexdump </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>packet</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>dumps packets in usual hexdump format </p>
-
-<p>Definition at line <a class="el" href="debug_8c_source.html#l00252">252</a> of file <a class="el" href="debug_8c_source.html">debug.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: debug.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">debug.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="debug_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* debug.h -- debug utilities</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_DEBUG_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_DEBUG_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="session_8h.html">session.h</a>"</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor"># ifndef DEBUG</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor"># define DEBUG DEBUG_PRINT</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span><span class="preprocessor"># endif </span><span class="comment">/* DEBUG */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor">#include "net/ip/uip-debug.h"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#ifdef CONTIKI_TARGET_MBXXX</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="keywordtype">char</span> __Stack_Init, _estack;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a>() {</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *p = &__Stack_Init;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">while</span> (p < &_estack && *p == 0x38) {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  p++;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"Stack: %d bytes used (%d free)\n"</span>, &_estack - p, p - &__Stack_Init);</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#else </span><span class="comment">/* CONTIKI_TARGET_MBXXX */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a>() {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif </span><span class="comment">/* CONTIKI_TARGET_MBXXX */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* WITH_CONTKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15"> 57</a></span> <span class="preprocessor"></span><span class="preprocessor">#define PRINTF(...)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378"> 59</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a>() {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">struct </span>__session_t;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d"> 66</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> { <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a>=0, <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">DTLS_LOG_ALERT</a>, <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a>, <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a>, </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09"> 67</a></span>  <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">DTLS_LOG_NOTICE</a>, <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">DTLS_LOG_INFO</a>, <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> } <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a>;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a>();</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a>();</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> <a class="code" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a>();</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#ifdef HAVE_VPRINTF</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keywordtype">char</span> *format, ...);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span><span class="preprocessor">#define dsrv_log(level, format, ...) PRINTF(format, ##__VA_ARGS__)</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *packet, <span class="keywordtype">int</span> length);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> extend);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *addr);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#else </span><span class="comment">/* NDEBUG */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> <a class="code" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a>()</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level)</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> {}</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keywordtype">char</span> *format, ...)</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {}</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *packet, <span class="keywordtype">int</span> length)</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {}</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len)</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {}</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <a class="code" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> length, <span class="keywordtype">int</span> extend)</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {}</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <a class="code" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keyword">struct</span> __session_t *addr)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {}</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif </span><span class="comment">/* NDEBUG */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/* A set of convenience macros for common log levels. */</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8"> 133</a></span> <span class="preprocessor">#define dtls_emerg(...) dsrv_log(DTLS_LOG_EMERG, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae"> 134</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_alert(...) dsrv_log(DTLS_LOG_ALERT, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514"> 135</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_crit(...) dsrv_log(DTLS_LOG_CRIT, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c"> 136</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_warn(...) dsrv_log(DTLS_LOG_WARN, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="debug_8h.html#add9bf011215b9fc36abc5c80722c876e"> 137</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_notice(...) dsrv_log(DTLS_LOG_NOTICE, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175"> 138</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_info(...) dsrv_log(DTLS_LOG_INFO, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844"> 139</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_debug(...) dsrv_log(DTLS_LOG_DEBUG, __VA_ARGS__)</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d"> 140</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_debug_hexdump(name, buf, length) dtls_dsrv_hexdump_log(DTLS_LOG_DEBUG, name, buf, length, 1)</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6"> 141</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_debug_dump(name, buf, length) dtls_dsrv_hexdump_log(DTLS_LOG_DEBUG, name, buf, length, 0)</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_DEBUG_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">DTLS_LOG_ALERT</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="debug_8h_html_a7ee74b9f3941b0ec63f35da6b83fa240"><div class="ttname"><a href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">dump</a></div><div class="ttdeci">void dump(unsigned char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00272">debug.c:272</a></div></div>
-<div class="ttc" id="debug_8h_html_ae081a7241940f0195295cc37f39c1d02"><div class="ttname"><a href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">dtls_set_log_level</a></div><div class="ttdeci">void dtls_set_log_level(log_t level)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00063">debug.c:63</a></div></div>
-<div class="ttc" id="debug_8h_html_a66cb8756d40a3326315d9b5f003a5a76"><div class="ttname"><a href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a></div><div class="ttdeci">void dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00277">debug.c:277</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9d"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">log_t</a></div><div class="ttdeci">log_t</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">DTLS_LOG_WARN</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="session_8h_html"><div class="ttname"><a href="session_8h.html">session.h</a></div></div>
-<div class="ttc" id="debug_8h_html_a1f464e950a4fa11e8821b5c725921a15"><div class="ttname"><a href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a></div><div class="ttdeci">#define PRINTF(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00057">debug.h:57</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="debug_8h_html_a6ae22adf81d9aaf0a2ed74f7f7437971"><div class="ttname"><a href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971">dtls_package_name</a></div><div class="ttdeci">const char * dtls_package_name()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00049">debug.c:49</a></div></div>
-<div class="ttc" id="debug_8h_html_a8badc2780b90e28c6c4e1a3b410b31cc"><div class="ttname"><a href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">dtls_dsrv_hexdump_log</a></div><div class="ttdeci">void dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00290">debug.c:290</a></div></div>
-<div class="ttc" id="debug_8h_html_af5fe8134d8875eb856a4cd99313ec1b0"><div class="ttname"><a href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">hexdump</a></div><div class="ttdeci">void hexdump(const unsigned char *packet, int length)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00252">debug.c:252</a></div></div>
-<div class="ttc" id="debug_8h_html_a4a3c60a1e54594e78cd207c57ddb1378"><div class="ttname"><a href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a></div><div class="ttdeci">static void check_stack()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00059">debug.h:59</a></div></div>
-<div class="ttc" id="debug_8h_html_a0af8abc8cf3864ea04954b3537c7e07f"><div class="ttname"><a href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">dtls_get_log_level</a></div><div class="ttdeci">log_t dtls_get_log_level()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00058">debug.c:58</a></div></div>
-<div class="ttc" id="debug_8h_html_ace8ca7929ecfc486c3ef40828c79bfe5"><div class="ttname"><a href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">dsrv_log</a></div><div class="ttdeci">void dsrv_log(log_t level, char *format,...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00208">debug.c:208</a></div></div>
-<div class="ttc" id="debug_8h_html_aab7b9dac4484be50856ab8b8a827d235"><div class="ttname"><a href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235">dtls_package_version</a></div><div class="ttdeci">const char * dtls_package_version()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00053">debug.c:53</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">DTLS_LOG_CRIT</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">DTLS_LOG_NOTICE</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">DTLS_LOG_INFO</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">DTLS_LOG_EMERG</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00066">debug.h:66</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-/* The standard CSS for doxygen 1.8.6 */
-
-body, table, div, p, dl {
- font: 400 14px/22px Roboto,sans-serif;
-}
-
-/* @group Heading Levels */
-
-h1.groupheader {
- font-size: 150%;
-}
-
-.title {
- font: 400 14px/28px Roboto,sans-serif;
- font-size: 150%;
- font-weight: bold;
- margin: 10px 2px;
-}
-
-h2.groupheader {
- border-bottom: 1px solid #879ECB;
- color: #354C7B;
- font-size: 150%;
- font-weight: normal;
- margin-top: 1.75em;
- padding-top: 8px;
- padding-bottom: 4px;
- width: 100%;
-}
-
-h3.groupheader {
- font-size: 100%;
-}
-
-h1, h2, h3, h4, h5, h6 {
- -webkit-transition: text-shadow 0.5s linear;
- -moz-transition: text-shadow 0.5s linear;
- -ms-transition: text-shadow 0.5s linear;
- -o-transition: text-shadow 0.5s linear;
- transition: text-shadow 0.5s linear;
- margin-right: 15px;
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
- text-shadow: 0 0 15px cyan;
-}
-
-dt {
- font-weight: bold;
-}
-
-div.multicol {
- -moz-column-gap: 1em;
- -webkit-column-gap: 1em;
- -moz-column-count: 3;
- -webkit-column-count: 3;
-}
-
-p.startli, p.startdd {
- margin-top: 2px;
-}
-
-p.starttd {
- margin-top: 0px;
-}
-
-p.endli {
- margin-bottom: 0px;
-}
-
-p.enddd {
- margin-bottom: 4px;
-}
-
-p.endtd {
- margin-bottom: 2px;
-}
-
-/* @end */
-
-caption {
- font-weight: bold;
-}
-
-span.legend {
- font-size: 70%;
- text-align: center;
-}
-
-h3.version {
- font-size: 90%;
- text-align: center;
-}
-
-div.qindex, div.navtab{
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
-}
-
-div.qindex, div.navpath {
- width: 100%;
- line-height: 140%;
-}
-
-div.navtab {
- margin-right: 15px;
-}
-
-/* @group Link Styling */
-
-a {
- color: #3D578C;
- font-weight: normal;
- text-decoration: none;
-}
-
-.contents a:visited {
- color: #4665A2;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.qindex {
- font-weight: bold;
-}
-
-a.qindexHL {
- font-weight: bold;
- background-color: #9CAFD4;
- color: #ffffff;
- border: 1px double #869DCA;
-}
-
-.contents a.qindexHL:visited {
- color: #ffffff;
-}
-
-a.el {
- font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
- color: #4665A2;
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
- color: #4665A2;
-}
-
-/* @end */
-
-dl.el {
- margin-left: -1cm;
-}
-
-pre.fragment {
- border: 1px solid #C4CFE5;
- background-color: #FBFCFD;
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- font-size: 9pt;
- line-height: 125%;
- font-family: monospace, fixed;
- font-size: 105%;
-}
-
-div.fragment {
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- background-color: #FBFCFD;
- border: 1px solid #C4CFE5;
-}
-
-div.line {
- font-family: monospace, fixed;
- font-size: 13px;
- min-height: 13px;
- line-height: 1.0;
- text-wrap: unrestricted;
- white-space: -moz-pre-wrap; /* Moz */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- white-space: pre-wrap; /* CSS3 */
- word-wrap: break-word; /* IE 5.5+ */
- text-indent: -53px;
- padding-left: 53px;
- padding-bottom: 0px;
- margin: 0px;
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-div.line.glow {
- background-color: cyan;
- box-shadow: 0 0 10px cyan;
-}
-
-
-span.lineno {
- padding-right: 4px;
- text-align: right;
- border-right: 2px solid #0F0;
- background-color: #E8E8E8;
- white-space: pre;
-}
-span.lineno a {
- background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
- background-color: #C8C8C8;
-}
-
-div.ah {
- background-color: black;
- font-weight: bold;
- color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px;
- padding: 0.2em;
- border: solid thin #333;
- border-radius: 0.5em;
- -webkit-border-radius: .5em;
- -moz-border-radius: .5em;
- box-shadow: 2px 2px 3px #999;
- -webkit-box-shadow: 2px 2px 3px #999;
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
- background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
-}
-
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- font-weight: bold;
-}
-
-div.groupText {
- margin-left: 16px;
- font-style: italic;
-}
-
-body {
- background-color: white;
- color: black;
- margin: 0;
-}
-
-div.contents {
- margin-top: 10px;
- margin-left: 12px;
- margin-right: 8px;
-}
-
-td.indexkey {
- background-color: #EBEFF6;
- font-weight: bold;
- border: 1px solid #C4CFE5;
- margin: 2px 0px 2px 0;
- padding: 2px 10px;
- white-space: nowrap;
- vertical-align: top;
-}
-
-td.indexvalue {
- background-color: #EBEFF6;
- border: 1px solid #C4CFE5;
- padding: 2px 10px;
- margin: 2px 0px;
-}
-
-tr.memlist {
- background-color: #EEF1F7;
-}
-
-p.formulaDsp {
- text-align: center;
-}
-
-img.formulaDsp {
-
-}
-
-img.formulaInl {
- vertical-align: middle;
-}
-
-div.center {
- text-align: center;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
-}
-
-div.center img {
- border: 0px;
-}
-
-address.footer {
- text-align: right;
- padding-right: 12px;
-}
-
-img.footer {
- border: 0px;
- vertical-align: middle;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
- color: #008000
-}
-
-span.keywordtype {
- color: #604020
-}
-
-span.keywordflow {
- color: #e08000
-}
-
-span.comment {
- color: #800000
-}
-
-span.preprocessor {
- color: #806020
-}
-
-span.stringliteral {
- color: #002080
-}
-
-span.charliteral {
- color: #008080
-}
-
-span.vhdldigit {
- color: #ff00ff
-}
-
-span.vhdlchar {
- color: #000000
-}
-
-span.vhdlkeyword {
- color: #700070
-}
-
-span.vhdllogic {
- color: #ff0000
-}
-
-blockquote {
- background-color: #F7F8FB;
- border-left: 2px solid #9CAFD4;
- margin: 0 24px 0 4px;
- padding: 0 12px 0 16px;
-}
-
-/* @end */
-
-/*
-.search {
- color: #003399;
- font-weight: bold;
-}
-
-form.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-
-input.search {
- font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
-}
-*/
-
-td.tiny {
- font-size: 75%;
-}
-
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid #A3B4D7;
-}
-
-th.dirtab {
- background: #EBEFF6;
- font-weight: bold;
-}
-
-hr {
- height: 0px;
- border: none;
- border-top: 1px solid #4A6AAA;
-}
-
-hr.footer {
- height: 1px;
-}
-
-/* @group Member Descriptions */
-
-table.memberdecls {
- border-spacing: 0px;
- padding: 0px;
-}
-
-.memberdecls td, .fieldtable tr {
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
- background-color: cyan;
- box-shadow: 0 0 15px cyan;
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- background-color: #F9FAFC;
- border: none;
- margin: 4px;
- padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
- padding: 0px 8px 4px 8px;
- color: #555;
-}
-
-.memSeparator {
- border-bottom: 1px solid #DEE4F0;
- line-height: 1px;
- margin: 0px;
- padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
- white-space: nowrap;
-}
-
-.memItemRight {
- width: 100%;
-}
-
-.memTemplParams {
- color: #4665A2;
- white-space: nowrap;
- font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtemplate {
- font-size: 80%;
- color: #4665A2;
- font-weight: normal;
- margin-left: 9px;
-}
-
-.memnav {
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-
-.mempage {
- width: 100%;
-}
-
-.memitem {
- padding: 0;
- margin-bottom: 10px;
- margin-right: 5px;
- -webkit-transition: box-shadow 0.5s linear;
- -moz-transition: box-shadow 0.5s linear;
- -ms-transition: box-shadow 0.5s linear;
- -o-transition: box-shadow 0.5s linear;
- transition: box-shadow 0.5s linear;
- display: table !important;
- width: 100%;
-}
-
-.memitem.glow {
- box-shadow: 0 0 15px cyan;
-}
-
-.memname {
- font-weight: bold;
- margin-left: 6px;
-}
-
-.memname td {
- vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
- border-top: 1px solid #A8B8D9;
- border-left: 1px solid #A8B8D9;
- border-right: 1px solid #A8B8D9;
- padding: 6px 0px 6px 0px;
- color: #253555;
- font-weight: bold;
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
- background-image:url('nav_f.png');
- background-repeat:repeat-x;
- background-color: #E2E8F2;
- /* opera specific markup */
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- /* firefox specific markup */
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
- -moz-border-radius-topright: 4px;
- -moz-border-radius-topleft: 4px;
- /* webkit specific markup */
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- -webkit-border-top-right-radius: 4px;
- -webkit-border-top-left-radius: 4px;
-
-}
-
-.memdoc, dl.reflist dd {
- border-bottom: 1px solid #A8B8D9;
- border-left: 1px solid #A8B8D9;
- border-right: 1px solid #A8B8D9;
- padding: 6px 10px 2px 10px;
- background-color: #FBFCFD;
- border-top-width: 0;
- background-image:url('nav_g.png');
- background-repeat:repeat-x;
- background-color: #FFFFFF;
- /* opera specific markup */
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- /* firefox specific markup */
- -moz-border-radius-bottomleft: 4px;
- -moz-border-radius-bottomright: 4px;
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
- /* webkit specific markup */
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-dl.reflist dt {
- padding: 5px;
-}
-
-dl.reflist dd {
- margin: 0px 0px 10px 0px;
- padding: 5px;
-}
-
-.paramkey {
- text-align: right;
-}
-
-.paramtype {
- white-space: nowrap;
-}
-
-.paramname {
- color: #602020;
- white-space: nowrap;
-}
-.paramname em {
- font-style: normal;
-}
-.paramname code {
- line-height: 14px;
-}
-
-.params, .retval, .exception, .tparams {
- margin-left: 0px;
- padding-left: 0px;
-}
-
-.params .paramname, .retval .paramname {
- font-weight: bold;
- vertical-align: top;
-}
-
-.params .paramtype {
- font-style: italic;
- vertical-align: top;
-}
-
-.params .paramdir {
- font-family: "courier new",courier,monospace;
- vertical-align: top;
-}
-
-table.mlabels {
- border-spacing: 0px;
-}
-
-td.mlabels-left {
- width: 100%;
- padding: 0px;
-}
-
-td.mlabels-right {
- vertical-align: bottom;
- padding: 0px;
- white-space: nowrap;
-}
-
-span.mlabels {
- margin-left: 8px;
-}
-
-span.mlabel {
- background-color: #728DC1;
- border-top:1px solid #5373B4;
- border-left:1px solid #5373B4;
- border-right:1px solid #C4CFE5;
- border-bottom:1px solid #C4CFE5;
- text-shadow: none;
- color: white;
- margin-right: 4px;
- padding: 2px 3px;
- border-radius: 3px;
- font-size: 7pt;
- white-space: nowrap;
- vertical-align: middle;
-}
-
-
-
-/* @end */
-
-/* these are for tree view when not used as main index */
-
-div.directory {
- margin: 10px 0px;
- border-top: 1px solid #A8B8D9;
- border-bottom: 1px solid #A8B8D9;
- width: 100%;
-}
-
-.directory table {
- border-collapse:collapse;
-}
-
-.directory td {
- margin: 0px;
- padding: 0px;
- vertical-align: top;
-}
-
-.directory td.entry {
- white-space: nowrap;
- padding-right: 6px;
- padding-top: 3px;
-}
-
-.directory td.entry a {
- outline:none;
-}
-
-.directory td.entry a img {
- border: none;
-}
-
-.directory td.desc {
- width: 100%;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 3px;
- border-left: 1px solid rgba(0,0,0,0.05);
-}
-
-.directory tr.even {
- padding-left: 6px;
- background-color: #F7F8FB;
-}
-
-.directory img {
- vertical-align: -30%;
-}
-
-.directory .levels {
- white-space: nowrap;
- width: 100%;
- text-align: right;
- font-size: 9pt;
-}
-
-.directory .levels span {
- cursor: pointer;
- padding-left: 2px;
- padding-right: 2px;
- color: #3D578C;
-}
-
-div.dynheader {
- margin-top: 8px;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-address {
- font-style: normal;
- color: #2A3D61;
-}
-
-table.doxtable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-
-table.doxtable td, table.doxtable th {
- border: 1px solid #2D4068;
- padding: 3px 7px 2px;
-}
-
-table.doxtable th {
- background-color: #374F7F;
- color: #FFFFFF;
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-table.fieldtable {
- /*width: 100%;*/
- margin-bottom: 10px;
- border: 1px solid #A8B8D9;
- border-spacing: 0px;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
- -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
- box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-}
-
-.fieldtable td, .fieldtable th {
- padding: 3px 7px 2px;
-}
-
-.fieldtable td.fieldtype, .fieldtable td.fieldname {
- white-space: nowrap;
- border-right: 1px solid #A8B8D9;
- border-bottom: 1px solid #A8B8D9;
- vertical-align: top;
-}
-
-.fieldtable td.fieldname {
- padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
- border-bottom: 1px solid #A8B8D9;
- /*width: 100%;*/
-}
-
-.fieldtable td.fielddoc p:first-child {
- margin-top: 0px;
-}
-
-.fieldtable td.fielddoc p:last-child {
- margin-bottom: 2px;
-}
-
-.fieldtable tr:last-child td {
- border-bottom: none;
-}
-
-.fieldtable th {
- background-image:url('nav_f.png');
- background-repeat:repeat-x;
- background-color: #E2E8F2;
- font-size: 90%;
- color: #253555;
- padding-bottom: 4px;
- padding-top: 5px;
- text-align:left;
- -moz-border-radius-topleft: 4px;
- -moz-border-radius-topright: 4px;
- -webkit-border-top-left-radius: 4px;
- -webkit-border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom: 1px solid #A8B8D9;
-}
-
-
-.tabsearch {
- top: 0px;
- left: 10px;
- height: 36px;
- background-image: url('tab_b.png');
- z-index: 101;
- overflow: hidden;
- font-size: 13px;
-}
-
-.navpath ul
-{
- font-size: 11px;
- background-image:url('tab_b.png');
- background-repeat:repeat-x;
- background-position: 0 -5px;
- height:30px;
- line-height:30px;
- color:#8AA0CC;
- border:solid 1px #C2CDE4;
- overflow:hidden;
- margin:0px;
- padding:0px;
-}
-
-.navpath li
-{
- list-style-type:none;
- float:left;
- padding-left:10px;
- padding-right:15px;
- background-image:url('bc_s.png');
- background-repeat:no-repeat;
- background-position:right;
- color:#364D7C;
-}
-
-.navpath li.navelem a
-{
- height:32px;
- display:block;
- text-decoration: none;
- outline: none;
- color: #283A5D;
- font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
- text-decoration: none;
-}
-
-.navpath li.navelem a:hover
-{
- color:#6884BD;
-}
-
-.navpath li.footer
-{
- list-style-type:none;
- float:right;
- padding-left:10px;
- padding-right:15px;
- background-image:none;
- background-repeat:no-repeat;
- background-position:right;
- color:#364D7C;
- font-size: 8pt;
-}
-
-
-div.summary
-{
- float: right;
- font-size: 8pt;
- padding-right: 5px;
- width: 50%;
- text-align: right;
-}
-
-div.summary a
-{
- white-space: nowrap;
-}
-
-div.ingroups
-{
- font-size: 8pt;
- width: 50%;
- text-align: left;
-}
-
-div.ingroups a
-{
- white-space: nowrap;
-}
-
-div.header
-{
- background-image:url('nav_h.png');
- background-repeat:repeat-x;
- background-color: #F9FAFC;
- margin: 0px;
- border-bottom: 1px solid #C4CFE5;
-}
-
-div.headertitle
-{
- padding: 5px 5px 5px 10px;
-}
-
-dl
-{
- padding: 0 0 0 10px;
-}
-
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
-dl.section
-{
- margin-left: 0px;
- padding-left: 0px;
-}
-
-dl.note
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #D0C000;
-}
-
-dl.warning, dl.attention
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #00D000;
-}
-
-dl.deprecated
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #505050;
-}
-
-dl.todo
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #00C0E0;
-}
-
-dl.test
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #3030E0;
-}
-
-dl.bug
-{
- margin-left:-7px;
- padding-left: 3px;
- border-left:4px solid;
- border-color: #C08050;
-}
-
-dl.section dd {
- margin-bottom: 6px;
-}
-
-
-#projectlogo
-{
- text-align: center;
- vertical-align: bottom;
- border-collapse: separate;
-}
-
-#projectlogo img
-{
- border: 0px none;
-}
-
-#projectname
-{
- font: 300% Tahoma, Arial,sans-serif;
- margin: 0px;
- padding: 2px 0px;
-}
-
-#projectbrief
-{
- font: 120% Tahoma, Arial,sans-serif;
- margin: 0px;
- padding: 0px;
-}
-
-#projectnumber
-{
- font: 50% Tahoma, Arial,sans-serif;
- margin: 0px;
- padding: 0px;
-}
-
-#titlearea
-{
- padding: 0px;
- margin: 0px;
- width: 100%;
- border-bottom: 1px solid #5373B4;
-}
-
-.image
-{
- text-align: center;
-}
-
-.dotgraph
-{
- text-align: center;
-}
-
-.mscgraph
-{
- text-align: center;
-}
-
-.diagraph
-{
- text-align: center;
-}
-
-.caption
-{
- font-weight: bold;
-}
-
-div.zoom
-{
- border: 1px solid #90A5CE;
-}
-
-dl.citelist {
- margin-bottom:50px;
-}
-
-dl.citelist dt {
- color:#334975;
- float:left;
- font-weight:bold;
- margin-right:10px;
- padding:5px;
-}
-
-dl.citelist dd {
- margin:2px 0;
- padding:5px 0;
-}
-
-div.toc {
- padding: 14px 25px;
- background-color: #F4F6FA;
- border: 1px solid #D8DFEE;
- border-radius: 7px 7px 7px 7px;
- float: right;
- height: auto;
- margin: 0 20px 10px 10px;
- width: 200px;
-}
-
-div.toc li {
- background: url("bdwn.png") no-repeat scroll 0 5px transparent;
- font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
- margin-top: 5px;
- padding-left: 10px;
- padding-top: 2px;
-}
-
-div.toc h3 {
- font: bold 12px/1.2 Arial,FreeSans,sans-serif;
- color: #4665A2;
- border-bottom: 0 none;
- margin: 0;
-}
-
-div.toc ul {
- list-style: none outside none;
- border: medium none;
- padding: 0px;
-}
-
-div.toc li.level1 {
- margin-left: 0px;
-}
-
-div.toc li.level2 {
- margin-left: 15px;
-}
-
-div.toc li.level3 {
- margin-left: 30px;
-}
-
-div.toc li.level4 {
- margin-left: 45px;
-}
-
-.inherit_header {
- font-weight: bold;
- color: gray;
- cursor: pointer;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.inherit_header td {
- padding: 6px 0px 2px 5px;
-}
-
-.inherit {
- display: none;
-}
-
-tr.heading h2 {
- margin-top: 12px;
- margin-bottom: 4px;
-}
-
-/* tooltip related style info */
-
-.ttc {
- position: absolute;
- display: none;
-}
-
-#powerTip {
- cursor: default;
- white-space: nowrap;
- background-color: white;
- border: 1px solid gray;
- border-radius: 4px 4px 4px 4px;
- box-shadow: 1px 1px 7px gray;
- display: none;
- font-size: smaller;
- max-width: 80%;
- opacity: 0.9;
- padding: 1ex 1em 1em;
- position: absolute;
- z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
- color: grey;
- font-style: italic;
-}
-
-#powerTip div.ttname a {
- font-weight: bold;
-}
-
-#powerTip div.ttname {
- font-weight: bold;
-}
-
-#powerTip div.ttdeci {
- color: #006318;
-}
-
-#powerTip div {
- margin: 0px;
- padding: 0px;
- font: 12px/16px Roboto,sans-serif;
-}
-
-#powerTip:before, #powerTip:after {
- content: "";
- position: absolute;
- margin: 0px;
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.w:after, #powerTip.w:before,
-#powerTip.e:after, #powerTip.e:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.nw:after, #powerTip.nw:before,
-#powerTip.sw:after, #powerTip.sw:before {
- border: solid transparent;
- content: " ";
- height: 0;
- width: 0;
- position: absolute;
-}
-
-#powerTip.n:after, #powerTip.s:after,
-#powerTip.w:after, #powerTip.e:after,
-#powerTip.nw:after, #powerTip.ne:after,
-#powerTip.sw:after, #powerTip.se:after {
- border-color: rgba(255, 255, 255, 0);
-}
-
-#powerTip.n:before, #powerTip.s:before,
-#powerTip.w:before, #powerTip.e:before,
-#powerTip.nw:before, #powerTip.ne:before,
-#powerTip.sw:before, #powerTip.se:before {
- border-color: rgba(128, 128, 128, 0);
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.nw:after, #powerTip.nw:before {
- top: 100%;
-}
-
-#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
- border-top-color: #ffffff;
- border-width: 10px;
- margin: 0px -10px;
-}
-#powerTip.n:before {
- border-top-color: #808080;
- border-width: 11px;
- margin: 0px -11px;
-}
-#powerTip.n:after, #powerTip.n:before {
- left: 50%;
-}
-
-#powerTip.nw:after, #powerTip.nw:before {
- right: 14px;
-}
-
-#powerTip.ne:after, #powerTip.ne:before {
- left: 14px;
-}
-
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.sw:after, #powerTip.sw:before {
- bottom: 100%;
-}
-
-#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
- border-bottom-color: #ffffff;
- border-width: 10px;
- margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
- border-bottom-color: #808080;
- border-width: 11px;
- margin: 0px -11px;
-}
-
-#powerTip.s:after, #powerTip.s:before {
- left: 50%;
-}
-
-#powerTip.sw:after, #powerTip.sw:before {
- right: 14px;
-}
-
-#powerTip.se:after, #powerTip.se:before {
- left: 14px;
-}
-
-#powerTip.e:after, #powerTip.e:before {
- left: 100%;
-}
-#powerTip.e:after {
- border-left-color: #ffffff;
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.e:before {
- border-left-color: #808080;
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
- right: 100%;
-}
-#powerTip.w:after {
- border-right-color: #ffffff;
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.w:before {
- border-right-color: #808080;
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-@media print
-{
- #top { display: none; }
- #side-nav { display: none; }
- #nav-path { display: none; }
- body { overflow:visible; }
- h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
- .summary { display: none; }
- .memitem { page-break-inside: avoid; }
- #doc-content
- {
- margin-left:0 !important;
- height:auto !important;
- width:auto !important;
- overflow:inherit;
- display:inline;
- }
-}
-
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> |
-<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">dtls.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>"</code><br/>
-<code>#include <stdio.h></code><br/>
-<code>#include <stdlib.h></code><br/>
-<code>#include <assert.h></code><br/>
-<code>#include "<a class="el" href="uthash_8h_source.html">uthash.h</a>"</code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-<code>#include "<a class="el" href="numeric_8h_source.html">numeric.h</a>"</code><br/>
-<code>#include "<a class="el" href="netq_8h_source.html">netq.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls_8h_source.html">dtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="alert_8h_source.html">alert.h</a>"</code><br/>
-<code>#include "<a class="el" href="session_8h_source.html">session.h</a>"</code><br/>
-<code>#include "<a class="el" href="prng_8h_source.html">prng.h</a>"</code><br/>
-<code>#include "sha2/sha2.h"</code><br/>
-</div>
-<p><a href="dtls_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:aebefc949b2298e7de7b95b715874d407"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aebefc949b2298e7de7b95b715874d407">dtls_set_version</a>(H, V)   <a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>((H)->version, (V))</td></tr>
-<tr class="separator:aebefc949b2298e7de7b95b715874d407"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8e0ab8b3ce70468c29820cafe96cd365"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365">dtls_set_content_type</a>(H, V)   ((H)->content_type = (V) & 0xff)</td></tr>
-<tr class="separator:a8e0ab8b3ce70468c29820cafe96cd365"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9f723101896941fa44ea701c4dfd3591"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9f723101896941fa44ea701c4dfd3591">dtls_set_length</a>(H, V)   ((H)->length = (V))</td></tr>
-<tr class="separator:a9f723101896941fa44ea701c4dfd3591"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa02d6b65a8864468c2b8cfbe79084467"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467">dtls_get_content_type</a>(H)   ((H)->content_type & 0xff)</td></tr>
-<tr class="separator:aa02d6b65a8864468c2b8cfbe79084467"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a22d6bcdee257de4be562aee0be9c87fb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb">dtls_get_version</a>(H)   <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)->version)</td></tr>
-<tr class="separator:a22d6bcdee257de4be562aee0be9c87fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a175d8e65080497463d13caf20e961500"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls_get_epoch</a>(H)   <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)->epoch)</td></tr>
-<tr class="separator:a175d8e65080497463d13caf20e961500"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a41f28f63e60a1a0b45a77d62bb5380e7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7">dtls_get_sequence_number</a>(H)   dtls_uint48_to_ulong((H)->sequence_number)</td></tr>
-<tr class="separator:a41f28f63e60a1a0b45a77d62bb5380e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aad633ed0a80e25b3884d119a8d8aeaff"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls_get_fragment_length</a>(H)   <a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>((H)->fragment_length)</td></tr>
-<tr class="separator:aad633ed0a80e25b3884d119a8d8aeaff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0ce6e5416f5479558116b881d3eb1ad6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">HASH_FIND_PEER</a>(head, sess, out)   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),out)</td></tr>
-<tr class="separator:a0ce6e5416f5479558116b881d3eb1ad6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acf0d50c9f224c0677988f13e947e9523"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">HASH_ADD_PEER</a>(head, sess, add)   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),add)</td></tr>
-<tr class="separator:acf0d50c9f224c0677988f13e947e9523"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0844494b0b76acb7bcf832ae74fb25c0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">HASH_DEL_PEER</a>(head, delptr)   <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td></tr>
-<tr class="separator:a0844494b0b76acb7bcf832ae74fb25c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae97c368900c13dc7074c09e8848afa8f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>   sizeof(<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>)</td></tr>
-<tr class="separator:ae97c368900c13dc7074c09e8848afa8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a520419d1976b301c508721faed549b4f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>   sizeof(<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a>)</td></tr>
-<tr class="separator:a520419d1976b301c508721faed549b4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:affe47ee08ad0e6a54d4f0c2a7f412675"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a>   sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) /* no variable length fields! */</td></tr>
-<tr class="separator:affe47ee08ad0e6a54d4f0c2a7f412675"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abd652cf0e4512727591d3ec8ca066ace"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a>   32</td></tr>
-<tr class="separator:abd652cf0e4512727591d3ec8ca066ace"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa5a4609da11d9496490853de9c2bf6fa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">DTLS_CH_LENGTH_MAX</a>   sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) + <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a> + 12 + 26</td></tr>
-<tr class="separator:aa5a4609da11d9496490853de9c2bf6fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a85d3d5311baabdaa06b7824528eef4e5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>   sizeof(<a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a>)</td></tr>
-<tr class="separator:a85d3d5311baabdaa06b7824528eef4e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afcca5dc5ebcc9eb8141ca0b49b647676"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">DTLS_SH_LENGTH</a>   (2 + <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a> + 1 + 2 + 1)</td></tr>
-<tr class="separator:afcca5dc5ebcc9eb8141ca0b49b647676"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6570b93f9f19e6abceef85c566fe3696"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">DTLS_CE_LENGTH</a>   (3 + 3 + 27 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
-<tr class="separator:a6570b93f9f19e6abceef85c566fe3696"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad9481c39cd66eac3059df28aef1e9843"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">DTLS_SKEXEC_LENGTH</a>   (1 + 2 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + 2 + 70)</td></tr>
-<tr class="separator:ad9481c39cd66eac3059df28aef1e9843"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4c0c656efcfd0e33595914171e51ae6d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">DTLS_SKEXECPSK_LENGTH_MIN</a>   2</td></tr>
-<tr class="separator:a4c0c656efcfd0e33595914171e51ae6d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8a4dc9af457241380a01c8e38fdc4e2d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">DTLS_SKEXECPSK_LENGTH_MAX</a>   2 + <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></td></tr>
-<tr class="separator:a8a4dc9af457241380a01c8e38fdc4e2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a674da4ca826bf1206ec8053f4c9eb336"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">DTLS_CKXPSK_LENGTH_MIN</a>   2</td></tr>
-<tr class="separator:a674da4ca826bf1206ec8053f4c9eb336"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ddccf12706c8d18d80b7759454ca164"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a>   (1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
-<tr class="separator:a5ddccf12706c8d18d80b7759454ca164"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0bcce8fa79dc3187eb5f1655798ac816"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">DTLS_CV_LENGTH</a>   (1 + 1 + 2 + 1 + 1 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
-<tr class="separator:a0bcce8fa79dc3187eb5f1655798ac816"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a21644ea2de742395df1e3b3281ba4f63"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>   12</td></tr>
-<tr class="separator:a21644ea2de742395df1e3b3281ba4f63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a76388c15f1b77d3c5b9d8068e8c0a087"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>   <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a></td></tr>
-<tr class="separator:a76388c15f1b77d3c5b9d8068e8c0a087"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a07a808dc78df3141fe5caba2a3e2226b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b">HV_HDR_LENGTH</a>   <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a> + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a></td></tr>
-<tr class="separator:a07a808dc78df3141fe5caba2a3e2226b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa5a8f0d3793bb3b194ca364b596ab01d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">HIGH</a>(V)   (((V) >> 8) & 0xff)</td></tr>
-<tr class="separator:aa5a8f0d3793bb3b194ca364b596ab01d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a69edf0296cf64026686d4ff4424d4e8f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">LOW</a>(V)   ((V) & 0xff)</td></tr>
-<tr class="separator:a69edf0296cf64026686d4ff4424d4e8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a35d050593196252c1826ac2e82cbac0b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(M)   ((<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a> *)(M))</td></tr>
-<tr class="separator:a35d050593196252c1826ac2e82cbac0b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2cc930733d35ea870c7a0a131bee0d7a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(M)   ((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)(M))</td></tr>
-<tr class="separator:a2cc930733d35ea870c7a0a131bee0d7a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a354c84e6c783c5d0cdbf905c27e77dc4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4">HANDSHAKE</a>(M)   ((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)((M) + <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>))</td></tr>
-<tr class="separator:a354c84e6c783c5d0cdbf905c27e77dc4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0800e26c09602d197e929fcc8ba783d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5">CLIENTHELLO</a>(M)   ((<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a> *)((M) + <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>))</td></tr>
-<tr class="separator:a0800e26c09602d197e929fcc8ba783d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a09a0896d586ff27855ced6930cc17023"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(P, L, T)</td></tr>
-<tr class="separator:a09a0896d586ff27855ced6930cc17023"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abac8adda40bcb694e059e38f6ac115f9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)   prf_label_##Label</td></tr>
-<tr class="separator:abac8adda40bcb694e059e38f6ac115f9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a83b260e812e69f1dae18497d167770a9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(Label)   (sizeof(<a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)) - 1)</td></tr>
-<tr class="separator:a83b260e812e69f1dae18497d167770a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3e132aba78de736930255d40ef3f2d34"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(Context, which,...)</td></tr>
-<tr class="separator:a3e132aba78de736930255d40ef3f2d34"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>   13</td></tr>
-<tr class="separator:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9279d8f0e7c7b30f968ed085b5a3136f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f">MUST_HASH</a>(Type, Data, Length)</td></tr>
-<tr class="separator:a9279d8f0e7c7b30f968ed085b5a3136f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a97496e1be0f2fe54873b35ee8bf0d462"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>   (buf + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>)</td></tr>
-<tr class="separator:a97496e1be0f2fe54873b35ee8bf0d462"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab7a17e13b17da97cbef046b20cd7280f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a>   (1 + 1 + 2 + 1 + 1 + 1 + 1)</td></tr>
-<tr class="separator:ab7a17e13b17da97cbef046b20cd7280f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2cf5795397ac5779f281543fc0f44ae9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">S_KEY_OFFSET</a>(len_s)   (<a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a> + (len_s) + 1 + 1)</td></tr>
-<tr class="separator:a2cf5795397ac5779f281543fc0f44ae9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>   13</td></tr>
-<tr class="separator:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a9e02f1c6e70dab40e56d5131a259521a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a> ()</td></tr>
-<tr class="separator:a9e02f1c6e70dab40e56d5131a259521a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa2f1fb16f297640b319ff0d864139ea5"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context)</td></tr>
-<tr class="separator:aa2f1fb16f297640b319ff0d864139ea5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac203466e393ac9030d405c8f0496e9cd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a> ()</td></tr>
-<tr class="separator:ac203466e393ac9030d405c8f0496e9cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa89745c0af073102c9c350d28a84214d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, <a class="el" href="structsession__t.html">session_t</a> *session, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf_array[], size_t buf_len_array[], size_t buf_array_len)</td></tr>
-<tr class="separator:aa89745c0af073102c9c350d28a84214d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afdd0d094bfd136f65455e23fda087cd6"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t buflen)</td></tr>
-<tr class="separator:afdd0d094bfd136f65455e23fda087cd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3742f5067d1b0693d6a41e70d4ecd5b5"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a3742f5067d1b0693d6a41e70d4ecd5b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a70333bea2db35153177347b5c7700cab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a> (const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *session)</td></tr>
-<tr class="separator:a70333bea2db35153177347b5c7700cab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae4a2961a027959f907145f82ca9107c3"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ae4a2961a027959f907145f82ca9107c3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1e338587fb19c794c8d19bc2801f2eb2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls_write</a> (struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *dst, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td></tr>
-<tr class="separator:a1e338587fb19c794c8d19bc2801f2eb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8546683053c19be38b23aa9042139f4b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls_get_cookie</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cookie)</td></tr>
-<tr class="separator:a8546683053c19be38b23aa9042139f4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a45841106ebcb5b1373c0312842b90943"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls_create_cookie</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *cookie, int *clen)</td></tr>
-<tr class="separator:a45841106ebcb5b1373c0312842b90943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaafa285eb634873480c0ff429edd8064"><td class="memItemLeft" align="right" valign="top">static unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">is_record</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen)</td></tr>
-<tr class="separator:aaafa285eb634873480c0ff429edd8064"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a734cf32b1c8b99e21d57006da24fd808"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls_set_record_header</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
-<tr class="separator:a734cf32b1c8b99e21d57006da24fd808"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls_set_handshake_header</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, int length, int frag_offset, int frag_length, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
-<tr class="separator:ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8098a728e5fff33ceeb7f57ebd48a212"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a> (<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</td></tr>
-<tr class="separator:a8098a728e5fff33ceeb7f57ebd48a212"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8bb6e8bb947b943d2af4c1886a8e72ba"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a> (<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</td></tr>
-<tr class="separator:a8bb6e8bb947b943d2af4c1886a8e72ba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3bbccb275cb23e84c0a148a157955770"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
-<tr class="separator:a3bbccb275cb23e84c0a148a157955770"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abb41f4bb9b8e4218ef5115ce70ebdc21"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, int is_client)</td></tr>
-<tr class="separator:abb41f4bb9b8e4218ef5115ce70ebdc21"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a599f0d6e9134869e55b64c4f8720ebfa"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
-<tr class="separator:a599f0d6e9134869e55b64c4f8720ebfa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a37965d10b44a63ea6adbf28b9dc79b75"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> code, int is_client)</td></tr>
-<tr class="separator:a37965d10b44a63ea6adbf28b9dc79b75"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4b3eda5556d76e045b42b93055944ddd"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls_debug_keyblock</a> (<a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *config)</td></tr>
-<tr class="separator:a4b3eda5556d76e045b42b93055944ddd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00707f0f82235a2432338e77dae0911d"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a> (int type)</td></tr>
-<tr class="separator:a00707f0f82235a2432338e77dae0911d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a94199c9fa65db19e0f761e3ff973eb4b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role)</td></tr>
-<tr class="separator:a94199c9fa65db19e0f761e3ff973eb4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad699a00b7ff5a71fa5b7fbc79a4dd9a8"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">verify_ext_eliptic_curves</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:ad699a00b7ff5a71fa5b7fbc79a4dd9a8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af073bf7cefa5e49e0c939e853678d417"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:af073bf7cefa5e49e0c939e853678d417"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a04a3580764ffd4f253ce6be858806c95"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">verify_ext_ec_point_formats</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a04a3580764ffd4f253ce6be858806c95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad8c8390d0a1592207c4ea6dd0a623a9a"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, int client_hello)</td></tr>
-<tr class="separator:ad8c8390d0a1592207c4ea6dd0a623a9a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a63f2c7e75b86bb2839b8fedf3fa9c93d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls_update_parameters</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a63f2c7e75b86bb2839b8fedf3fa9c93d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab9251eac8015afc7985ff4398657ea3f"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">check_client_keyexchange</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t length)</td></tr>
-<tr class="separator:ab9251eac8015afc7985ff4398657ea3f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3db09acb5894f17f4745d7556555bea7"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t length)</td></tr>
-<tr class="separator:a3db09acb5894f17f4745d7556555bea7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a22ab7a79391c2204337237949d69dad8"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> *hs_hash)</td></tr>
-<tr class="separator:a22ab7a79391c2204337237949d69dad8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adb41bf916dc34af5cd79003a9243b727"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">finalize_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
-<tr class="separator:adb41bf916dc34af5cd79003a9243b727"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a82181208ec1e9f42896f0606e0036c1d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a82181208ec1e9f42896f0606e0036c1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a91b2653747ca1e4058ae3b350019188b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">check_finished</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a91b2653747ca1e4058ae3b350019188b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab9733484b9a23775b1bc8b3d723282e5"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data_array[], size_t data_len_array[], size_t data_array_len, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *sendbuf, size_t *rlen)</td></tr>
-<tr class="separator:ab9733484b9a23775b1bc8b3d723282e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4f06884f659f6a5120be7e0b86d29880"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, int add_hash)</td></tr>
-<tr class="separator:a4f06884f659f6a5120be7e0b86d29880"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a872c53139e76cab7ec387cc54ae1a11b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a872c53139e76cab7ec387cc54ae1a11b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4aac4fa55afe2d19342136acaaaf9641"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> description)</td></tr>
-<tr class="separator:a4aac4fa55afe2d19342136acaaaf9641"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa90f5eb6954137d5e098e29143c2586a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *remote)</td></tr>
-<tr class="separator:aa90f5eb6954137d5e098e29143c2586a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a81061928e291b6a3e7701f6a7f51b6f3"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, int unlink)</td></tr>
-<tr class="separator:a81061928e291b6a3e7701f6a7f51b6f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a604f68a801e55b884f7f7f1d2f1b9c9f"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls_verify_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a604f68a801e55b884f7f7f1d2f1b9c9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af8409ba213cb87dbf9ed16ef87995c54"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, unsigned char **result_r, unsigned char **result_s)</td></tr>
-<tr class="separator:af8409ba213cb87dbf9ed16ef87995c54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a017195b30506fbdf32fff55af9276a02"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">check_client_certificate_verify</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a017195b30506fbdf32fff55af9276a02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7730a402edfca00c35bc1c7c09eb2fb9"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls_send_server_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a7730a402edfca00c35bc1c7c09eb2fb9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6b92c487825aa888acc0b55f5adc0220"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
-<tr class="separator:a6b92c487825aa888acc0b55f5adc0220"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7d7af4d19c7abef4583c1667ec449a5d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p, uint32_t *point_r, uint32_t *point_s)</td></tr>
-<tr class="separator:a7d7af4d19c7abef4583c1667ec449a5d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a80275f06c14cbbc18095bc2f61022d15"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls_send_server_key_exchange_ecdh</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
-<tr class="separator:a80275f06c14cbbc18095bc2f61022d15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00f6591bce49f6122dab9827c8774ba3"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls_send_server_key_exchange_psk</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const unsigned char *psk_hint, size_t len)</td></tr>
-<tr class="separator:a00f6591bce49f6122dab9827c8774ba3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a51ab17e2a5ac1566ba4249b787bb98a3"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls_send_server_certificate_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a51ab17e2a5ac1566ba4249b787bb98a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad6ebff8518bb1d53ba888baf6898ee21"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls_send_server_hello_done</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ad6ebff8518bb1d53ba888baf6898ee21"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afc54bc2ed42b4b65ad8f01abca9a8772"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls_send_server_hello_msgs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:afc54bc2ed42b4b65ad8f01abca9a8772"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9cfb3c9e63f378d0d8e3d3d0c60537a5"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a9cfb3c9e63f378d0d8e3d3d0c60537a5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a12e4cab07baba9eae2a0182f4e0bf72d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls_send_client_key_exchange</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a12e4cab07baba9eae2a0182f4e0bf72d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adfe6fc0d0d66e9ffaef25c2c126b1c34"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls_send_certificate_verify_ecdh</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
-<tr class="separator:adfe6fc0d0d66e9ffaef25c2c126b1c34"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a112e0d83a0e576b5d22df60241900a67"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const unsigned char *label, size_t labellen)</td></tr>
-<tr class="separator:a112e0d83a0e576b5d22df60241900a67"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aecd3ffe8bf8a3970d3e091ce8e7c6476"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> cookie[], size_t cookie_length)</td></tr>
-<tr class="separator:aecd3ffe8bf8a3970d3e091ce8e7c6476"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afcc64c0abfd9b157b71a47e5a5a78b26"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">check_server_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:afcc64c0abfd9b157b71a47e5a5a78b26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2b598b29d3148bfc02e826d94bbc0642"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">check_server_hello_verify_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a2b598b29d3148bfc02e826d94bbc0642"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a88db0e7ffa0836761bef7b62ac3d2fb7"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">check_server_certificate</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a88db0e7ffa0836761bef7b62ac3d2fb7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3de5b3956733293d3e19d83d3cc8d9bb"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">check_server_key_exchange_ecdsa</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a3de5b3956733293d3e19d83d3cc8d9bb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a915dccbe7e71d52d2650378f3aaad054"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">check_server_key_exchange_psk</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a915dccbe7e71d52d2650378f3aaad054"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a61ddc44bfdb8a92b72911a402aa0164e"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">check_certificate_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a61ddc44bfdb8a92b72911a402aa0164e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aca393c29148080d4dfa343c8ec283928"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">check_server_hellodone</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:aca393c29148080d4dfa343c8ec283928"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adc4e7aa5066240a362341bbdb998bc71"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">decrypt_verify</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *packet, size_t length, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cleartext)</td></tr>
-<tr class="separator:adc4e7aa5066240a362341bbdb998bc71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab3af0ee4375c0da833aacec49c6fd8ad"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls_send_hello_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ab3af0ee4375c0da833aacec49c6fd8ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
-<tr class="separator:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a24e7d6ad9fc0d87b7285615123bdd43d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a24e7d6ad9fc0d87b7285615123bdd43d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab199f50f39a96464ff7b532f2635ce9d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">handle_handshake</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:ab199f50f39a96464ff7b532f2635ce9d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4d7a16c9d0cd28666a2cc8ec471aa664"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">handle_ccs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a4d7a16c9d0cd28666a2cc8ec471aa664"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a445994c602b105608f277c6fc066301d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">handle_alert</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
-<tr class="separator:a445994c602b105608f277c6fc066301d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4c7a26bc520ac2ac88b4758e0fb84f1e"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, int err)</td></tr>
-<tr class="separator:a4c7a26bc520ac2ac88b4758e0fb84f1e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae272fea7269714fe7a67d6da64961731"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, int msglen)</td></tr>
-<tr class="separator:ae272fea7269714fe7a67d6da64961731"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a> (void *app_data)</td></tr>
-<tr class="separator:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3171c099d25ed29e31326526b8e1de84"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
-<tr class="separator:a3171c099d25ed29e31326526b8e1de84"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad60bf1197fa1a074f91aed508cfefa62"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ad60bf1197fa1a074f91aed508cfefa62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a187f5e145bb869a732fbed426929a4e9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
-<tr class="separator:a187f5e145bb869a732fbed426929a4e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa57a9ccb1344c5baf8bd3adf35f3beeb"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:aa57a9ccb1344c5baf8bd3adf35f3beeb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab50d1ee589e91d07032d0a65768dee82"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *next)</td></tr>
-<tr class="separator:ab50d1ee589e91d07032d0a65768dee82"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
-Variables</h2></td></tr>
-<tr class="memitem:a784ec579660900e758a9b7de84150c9b"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">prf_label_master</a> [] = "master secret"</td></tr>
-<tr class="separator:a784ec579660900e758a9b7de84150c9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a42886cd9a1fd728f47ea40d38dfabcda"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">prf_label_key</a> [] = "key expansion"</td></tr>
-<tr class="separator:a42886cd9a1fd728f47ea40d38dfabcda"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abba2a2562813493d98b5671a4c5c082b"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">prf_label_client</a> [] = "client"</td></tr>
-<tr class="separator:abba2a2562813493d98b5671a4c5c082b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aacf8643991dec574dcb09a280357ae4f"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">prf_label_server</a> [] = "server"</td></tr>
-<tr class="separator:aacf8643991dec574dcb09a280357ae4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a45d793d73836bf96dacb1d558f81b6c7"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">prf_label_finished</a> [] = " finished"</td></tr>
-<tr class="separator:a45d793d73836bf96dacb1d558f81b6c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aecdb18ea2b899994542ec46b23528738"><td class="memItemLeft" align="right" valign="top">static const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a> []</td></tr>
-<tr class="separator:aecdb18ea2b899994542ec46b23528738"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae35671d94ccea5f335546ce409aed601"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a> []</td></tr>
-<tr class="separator:ae35671d94ccea5f335546ce409aed601"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="aee0f4f3d8541ea6ab9c204761cc6082e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define A_DATA_LEN   13</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="aee0f4f3d8541ea6ab9c204761cc6082e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define A_DATA_LEN   13</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a3e132aba78de736930255d40ef3f2d34"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CALL</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Context, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">which, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><em>...</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((Context)->h && (Context)->h->which \</div>
-<div class="line"> ? (Context)->h->which((Context), ##__VA_ARGS__) \</div>
-<div class="line"> : -1)</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00174">174</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0800e26c09602d197e929fcc8ba783d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CLIENTHELLO</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">M</td><td>)</td>
- <td>   ((<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a> *)((M) + <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00099">99</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6570b93f9f19e6abceef85c566fe3696"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CE_LENGTH   (3 + 3 + 27 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00080">80</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="affe47ee08ad0e6a54d4f0c2a7f412675"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CH_LENGTH   sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) /* no variable length fields! */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00075">75</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa5a4609da11d9496490853de9c2bf6fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CH_LENGTH_MAX   sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) + <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a> + 12 + 26</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00077">77</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ddccf12706c8d18d80b7759454ca164"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CKXEC_LENGTH   (1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00085">85</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a674da4ca826bf1206ec8053f4c9eb336"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CKXPSK_LENGTH_MIN   2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00084">84</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abd652cf0e4512727591d3ec8ca066ace"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_COOKIE_LENGTH_MAX   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00076">76</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0bcce8fa79dc3187eb5f1655798ac816"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CV_LENGTH   (1 + 1 + 2 + 1 + 1 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00086">86</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a21644ea2de742395df1e3b3281ba4f63"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_FIN_LENGTH   12</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00087">87</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa02d6b65a8864468c2b8cfbe79084467"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_content_type</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H</td><td>)</td>
- <td>   ((H)->content_type & 0xff)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00058">58</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a175d8e65080497463d13caf20e961500"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_epoch</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H</td><td>)</td>
- <td>   <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)->epoch)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00060">60</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aad633ed0a80e25b3884d119a8d8aeaff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_fragment_length</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H</td><td>)</td>
- <td>   <a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>((H)->fragment_length)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00062">62</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a41f28f63e60a1a0b45a77d62bb5380e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_sequence_number</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H</td><td>)</td>
- <td>   dtls_uint48_to_ulong((H)->sequence_number)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00061">61</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a22d6bcdee257de4be562aee0be9c87fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_version</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H</td><td>)</td>
- <td>   <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)->version)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00059">59</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2cc930733d35ea870c7a0a131bee0d7a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HANDSHAKE_HEADER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">M</td><td>)</td>
- <td>   ((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)(M))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00096">96</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a520419d1976b301c508721faed549b4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HS_LENGTH   sizeof(<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00074">74</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a85d3d5311baabdaa06b7824528eef4e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HV_LENGTH   sizeof(<a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00078">78</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a35d050593196252c1826ac2e82cbac0b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_RECORD_HEADER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">M</td><td>)</td>
- <td>   ((<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a> *)(M))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00095">95</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae97c368900c13dc7074c09e8848afa8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_RH_LENGTH   sizeof(<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00073">73</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8e0ab8b3ce70468c29820cafe96cd365"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_set_content_type</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">V </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((H)->content_type = (V) & 0xff)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00055">55</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9f723101896941fa44ea701c4dfd3591"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_set_length</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">V </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((H)->length = (V))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00056">56</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aebefc949b2298e7de7b95b715874d407"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_set_version</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">H, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">V </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>((H)->version, (V))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00054">54</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afcca5dc5ebcc9eb8141ca0b49b647676"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_SH_LENGTH   (2 + <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a> + 1 + 2 + 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00079">79</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad9481c39cd66eac3059df28aef1e9843"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_SKEXEC_LENGTH   (1 + 2 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + 2 + 70)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00081">81</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8a4dc9af457241380a01c8e38fdc4e2d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_SKEXECPSK_LENGTH_MAX   2 + <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00083">83</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4c0c656efcfd0e33595914171e51ae6d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_SKEXECPSK_LENGTH_MIN   2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00082">82</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a354c84e6c783c5d0cdbf905c27e77dc4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HANDSHAKE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">M</td><td>)</td>
- <td>   ((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)((M) + <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00098">98</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acf0d50c9f224c0677988f13e947e9523"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_PEER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">sess, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),add)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00067">67</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0844494b0b76acb7bcf832ae74fb25c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_DEL_PEER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">delptr </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00069">69</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0ce6e5416f5479558116b881d3eb1ad6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND_PEER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">sess, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),out)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00065">65</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa5a8f0d3793bb3b194ca364b596ab01d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HIGH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">V</td><td>)</td>
- <td>   (((V) >> 8) & 0xff)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00092">92</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a76388c15f1b77d3c5b9d8068e8c0a087"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HS_HDR_LENGTH   <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00089">89</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a07a808dc78df3141fe5caba2a3e2226b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HV_HDR_LENGTH   <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a> + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00090">90</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a69edf0296cf64026686d4ff4424d4e8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LOW</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">V</td><td>)</td>
- <td>   ((V) & 0xff)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00093">93</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9279d8f0e7c7b30f968ed085b5a3136f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define MUST_HASH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Type, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Data, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">Length </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns true if the message <code>Data</code> is a handshake message that must be included in the calculation of verify_data in the Finished message.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Type</td><td>The message type. Only handshake messages but the initial Client Hello and Hello Verify Request are included in the hash, </td></tr>
- <tr><td class="paramname">Data</td><td>The PDU to examine. </td></tr>
- <tr><td class="paramname">Length</td><td>The length of <code>Data</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>1</code> if <code>Data</code> must be included in hash, <code>0</code> otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01384">1384</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a97496e1be0f2fe54873b35ee8bf0d462"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define mycookie   (buf + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="abac8adda40bcb694e059e38f6ac115f9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PRF_LABEL</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Label</td><td>)</td>
- <td>   prf_label_##Label</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00114">114</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a83b260e812e69f1dae18497d167770a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PRF_LABEL_SIZE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">Label</td><td>)</td>
- <td>   (sizeof(<a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)) - 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00115">115</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab7a17e13b17da97cbef046b20cd7280f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define R_KEY_OFFSET   (1 + 1 + 2 + 1 + 1 + 1 + 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a2cf5795397ac5779f281543fc0f44ae9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define S_KEY_OFFSET</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">len_s</td><td>)</td>
- <td>   (<a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a> + (len_s) + 1 + 1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a09a0896d586ff27855ced6930cc17023"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define SKIP_VAR_FIELD</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">P, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">L, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">T </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">{ \</div>
-<div class="line"> if (L < dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T)) \</div>
-<div class="line"> goto error; \</div>
-<div class="line"> L -= dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T); \</div>
-<div class="line"> P += dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T); \</div>
-<div class="line"> }</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00106">106</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a94199c9fa65db19e0f761e3ff973eb4b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int calculate_key_block </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td>
- <td class="paramname"><em>handshake</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> </td>
- <td class="paramname"><em>role</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Calculate the pre master secret and after that calculate the master-secret. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00599">599</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a61ddc44bfdb8a92b72911a402aa0164e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_certificate_request </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02726">2726</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a017195b30506fbdf32fff55af9276a02"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_client_certificate_verify </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01691">1691</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab9251eac8015afc7985ff4398657ea3f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_client_keyexchange </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td>
- <td class="paramname"><em>handshake</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Parse the ClientKeyExchange and update the internal handshake state with the new data. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01005">1005</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a91b2653747ca1e4058ae3b350019188b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_finished </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Checks if <code>record</code> + <code>data</code> contain a Finished message with valid verify_data.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
- <tr><td class="paramname">peer</td><td>The remote peer of the security association. </td></tr>
- <tr><td class="paramname">data</td><td>The cleartext payload of the message. </td></tr>
- <tr><td class="paramname">data_length</td><td>Actual length of <code>data</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>0</code> if the Finished message is valid, <code>negative</code> number otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01104">1104</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a88db0e7ffa0836761bef7b62ac3d2fb7"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_certificate </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02552">2552</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afcc64c0abfd9b157b71a47e5a5a78b26"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_hello </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02460">2460</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2b598b29d3148bfc02e826d94bbc0642"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_hello_verify_request </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02530">2530</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aca393c29148080d4dfa343c8ec283928"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_hellodone </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02804">2804</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3de5b3956733293d3e19d83d3cc8d9bb"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_key_exchange_ecdsa </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02604">2604</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a915dccbe7e71d52d2650378f3aaad054"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int check_server_key_exchange_psk </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02687">2687</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a82181208ec1e9f42896f0606e0036c1d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void clear_hs_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01087">1087</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a22ab7a79391c2204337237949d69dad8"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void copy_hs_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> * </td>
- <td class="paramname"><em>hs_hash</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01076">1076</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adc4e7aa5066240a362341bbdb998bc71"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int decrypt_verify </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>packet</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> ** </td>
- <td class="paramname"><em>cleartext</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>length of additional_data for the AEAD cipher which consists of seq_num(2+6) + type(1) + version(2) + length(2)</p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02877">2877</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7d7af4d19c7abef4583c1667ec449a5d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_add_ecdsa_signature_elem </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>p</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t * </td>
- <td class="paramname"><em>point_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t * </td>
- <td class="paramname"><em>point_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01867">1867</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae4a2961a027959f907145f82ca9107c3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_add_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00227">227</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4c7a26bc520ac2ac88b4758e0fb84f1e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_alert_send_from_err </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>err</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03559">3559</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af8409ba213cb87dbf9ed16ef87995c54"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_check_ecdsa_signature_elem </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char ** </td>
- <td class="paramname"><em>result_r</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char ** </td>
- <td class="paramname"><em>result_s</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01611">1611</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab50d1ee589e91d07032d0a65768dee82"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_check_retransmit </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> * </td>
- <td class="paramname"><em>next</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Checks sendqueue of given DTLS context object for any outstanding packets to be transmitted.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The DTLS context object to use. </td></tr>
- <tr><td class="paramname">next</td><td>If not NULL, <code>next</code> is filled with the timestamp of the next scheduled retransmission, or <code>0</code> when no packets are waiting. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03957">3957</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad8c8390d0a1592207c4ea6dd0a623a9a"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_check_tls_extension </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>client_hello</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00777">777</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa90f5eb6954137d5e098e29143c2586a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_close </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>remote</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Closes the DTLS connection associated with <code>remote</code>. This function returns zero on success, and a value less than zero on error. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01494">1494</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a187f5e145bb869a732fbed426929a4e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_connect </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>dst</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Establishes a DTLS channel with the specified remote peer <code>dst</code>. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">dst</td><td>The remote party to connect to. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03862">3862</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad60bf1197fa1a074f91aed508cfefa62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_connect_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Establishes a DTLS channel with the specified remote peer. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">peer</td><td>The peer object that describes the session. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03826">3826</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a45841106ebcb5b1373c0312842b90943"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_create_cookie </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>msglen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>cookie</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int * </td>
- <td class="paramname"><em>clen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00286">286</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4b3eda5556d76e045b42b93055944ddd"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_debug_keyblock </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>config</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Dump out the cipher keys and IVs used for the symetric cipher. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00533">533</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a81061928e291b6a3e7701f6a7f51b6f3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_destroy_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>unlink</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01508">1508</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3171c099d25ed29e31326526b8e1de84"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_free_context </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Releases any storage that has been allocated for <code>ctx</code>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03802">3802</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8546683053c19be38b23aa9042139f4b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_get_cookie </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>msglen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> ** </td>
- <td class="paramname"><em>cookie</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00261">261</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a70333bea2db35153177347b5c7700cab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_get_peer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Check if <code>session</code> is associated with a peer object in <code>context</code>. This function returns a pointer to the peer if found, NULL otherwise.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The DTLS context to search. </td></tr>
- <tr><td class="paramname">session</td><td>The remote address and local interface </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to the peer associated with <code>session</code> or NULL if none exists. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00212">212</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae272fea7269714fe7a67d6da64961731"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_handle_message </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>msglen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Handles incoming data as DTLS message from given peer. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03591">3591</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a00707f0f82235a2432338e77dae0911d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static char* dtls_handshake_type_to_name </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>type</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>returns the name of the goven handshake type number. see IANA for a full list of types: <a href="https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-7">https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-7</a> </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00565">565</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac203466e393ac9030d405c8f0496e9cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This function initializes the tinyDTLS memory management and must be called first. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00163">163</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a11f53d301448aa8f1dbcfaf77441bd9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__context__t.html">dtls_context_t</a>* dtls_new_context </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>app_data</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Creates a new context object. The storage allocated for the new object must be released with <a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context()</a>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03740">3740</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab9733484b9a23775b1bc8b3d723282e5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_prepare_record </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data_array</em>[], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_len_array</em>[], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_array_len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>sendbuf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t * </td>
- <td class="paramname"><em>rlen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Prepares the payload given in <code>data</code> for sending with <a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send()</a>. The <code>data</code> is encrypted and compressed according to the current security parameters of <code>peer</code>. The result of this operation is put into <code>sendbuf</code> with a prepended record header of type <code>type</code> ready for sending. As some cipher suites add a MAC before encryption, <code>data</code> must be large enough to hold this data as well (usually <code><a class="el" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758">dtls_kb_digest_size(CURRENT_CONFIG(peer))</a></code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">peer</td><td>The remote peer the packet will be sent to. </td></tr>
- <tr><td class="paramname">security</td><td>The encryption paramater used to encrypt </td></tr>
- <tr><td class="paramname">type</td><td>The content type of this record. </td></tr>
- <tr><td class="paramname">data_array</td><td>Array with payloads in correct order. </td></tr>
- <tr><td class="paramname">data_len_array</td><td>sizes of the payloads in correct order. </td></tr>
- <tr><td class="paramname">data_array_len</td><td>The number of payloads given. </td></tr>
- <tr><td class="paramname">sendbuf</td><td>The output buffer where the encrypted record will be placed. </td></tr>
- <tr><td class="paramname">rlen</td><td>This parameter must be initialized with the maximum size of <code>sendbuf</code> and will be updated to hold the actual size of the stored packet on success. On error, the value of <code>rlen</code> is undefined. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, or greater than zero success. </dd></dl>
-<p>length of additional_data for the AEAD cipher which consists of seq_num(2+6) + type(1) + version(2) + length(2)</p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01180">1180</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5676a0ceeeabd1ec38d378212f7af4a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_renegotiate </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>dst</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02956">2956</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa57a9ccb1344c5baf8bd3adf35f3beeb"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_retransmit </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>node</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03890">3890</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afdd0d094bfd136f65455e23fda087cd6"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buflen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Sends the fragment of length <code>buflen</code> given in <code>buf</code> to the specified <code>peer</code>. The data will be MAC-protected and encrypted according to the selected cipher and split into one or more DTLS records of the specified <code>type</code>. This function returns the number of bytes that were sent, or <code>-1</code> if an error occurred.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">peer</td><td>The remote peer. </td></tr>
- <tr><td class="paramname">type</td><td>The content type of the record. </td></tr>
- <tr><td class="paramname">buf</td><td>The data to send. </td></tr>
- <tr><td class="paramname">buflen</td><td>The actual length of <code>buf</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, the number of bytes written otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00200">200</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4aac4fa55afe2d19342136acaaaf9641"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_alert </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> </td>
- <td class="paramname"><em>level</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> </td>
- <td class="paramname"><em>description</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01485">1485</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9cfb3c9e63f378d0d8e3d3d0c60537a5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_ccs </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02156">2156</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6b92c487825aa888acc0b55f5adc0220"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_certificate_ecdsa </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> * </td>
- <td class="paramname"><em>key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01834">1834</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adfe6fc0d0d66e9ffaef25c2c126b1c34"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_certificate_verify_ecdh </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> * </td>
- <td class="paramname"><em>key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02241">2241</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aecd3ffe8bf8a3970d3e091ce8e7c6476"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_client_hello </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td>
- <td class="paramname"><em>cookie</em>[], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>cookie_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02308">2308</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a12e4cab07baba9eae2a0182f4e0bf72d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_client_key_exchange </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02164">2164</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a112e0d83a0e576b5d22df60241900a67"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_finished </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>labellen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02277">2277</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a872c53139e76cab7ec387cc54ae1a11b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_handshake_msg </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td>
- <td class="paramname"><em>header_type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01361">1361</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4f06884f659f6a5120be7e0b86d29880"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_handshake_msg_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td>
- <td class="paramname"><em>header_type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>add_hash</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01323">1323</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab3af0ee4375c0da833aacec49c6fd8ad"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_hello_request </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02948">2948</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa89745c0af073102c9c350d28a84214d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_multi </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char </td>
- <td class="paramname"><em>type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf_array</em>[], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buf_len_array</em>[], </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>buf_array_len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Sends the data passed in <code>buf</code> as a DTLS record of type <code>type</code> to the given peer. The data will be encrypted and compressed according to the security parameters for <code>peer</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context in effect. </td></tr>
- <tr><td class="paramname">peer</td><td>The remote party where the packet is sent. </td></tr>
- <tr><td class="paramname">type</td><td>The content type of this record. </td></tr>
- <tr><td class="paramname">buf</td><td>The data to send. </td></tr>
- <tr><td class="paramname">buflen</td><td>The number of bytes to send from <code>buf</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Less than zero in case of an error or the number of bytes that have been sent otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01407">1407</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a51ab17e2a5ac1566ba4249b787bb98a3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_certificate_request </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02019">2019</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7730a402edfca00c35bc1c7c09eb2fb9"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_hello </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01736">1736</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad6ebff8518bb1d53ba888baf6898ee21"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_hello_done </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02061">2061</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afc54bc2ed42b4b65ad8f01abca9a8772"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_hello_msgs </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02073">2073</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a80275f06c14cbbc18095bc2f61022d15"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_key_exchange_ecdh </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> * </td>
- <td class="paramname"><em>key</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01924">1924</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a00f6591bce49f6122dab9827c8774ba3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_send_server_key_exchange_psk </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>psk_hint</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01989">1989</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_set_handshake_header </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td>
- <td class="paramname"><em>type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>frag_offset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>frag_length</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Initializes <code>buf</code> as handshake header. The caller must ensure that <code>buf</code> is capable of holding at least <code>sizeof(dtls_handshake_header_t)</code> bytes. Increments message sequence number counter of <code>peer</code>. </p>
-<dl class="section return"><dt>Returns</dt><dd>pointer to the next byte after <code>buf</code> </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00424">424</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a734cf32b1c8b99e21d57006da24fd808"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_set_record_header </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td>
- <td class="paramname"><em>type</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td>
- <td class="paramname"><em>security</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Initializes <code>buf</code> as record header. The caller must ensure that <code>buf</code> is capable of holding at least <code>sizeof(dtls_record_header_t)</code> bytes. Increments sequence number counter of <code>security</code>. </p>
-<dl class="section return"><dt>Returns</dt><dd>pointer to the next byte after the written header. The length will be set to 0 and has to be changed before sending. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00390">390</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3742f5067d1b0693d6a41e70d4ecd5b5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_stop_retransmission </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Stops ongoing retransmissions of handshake messages for <code>peer</code>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03941">3941</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a63f2c7e75b86bb2839b8fedf3fa9c93d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_update_parameters </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Parses the ClientHello from the client and updates the internal handshake parameters with the new data for the given <code>peer</code>. When the ClientHello handshake message in <code>data</code> does not contain a cipher suite or compression method, it is copied from the the current security parameters.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
- <tr><td class="paramname">peer</td><td>The remote peer whose security parameters are about to change. </td></tr>
- <tr><td class="paramname">data</td><td>The handshake message with a ClientHello. </td></tr>
- <tr><td class="paramname">data_length</td><td>The actual size of <code>data</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>-Something</code> if an error occurred, <code>0</code> on success. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00900">900</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a604f68a801e55b884f7f7f1d2f1b9c9f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_verify_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Checks a received Client Hello message for a valid cookie. When the Client Hello contains no cookie, the function fails and a Hello Verify Request is sent to the peer (using the write callback function registered with <code>ctx</code>). The return value is <code>-1</code> on error, <code>0</code> when undecided, and <code>1</code> if the Client Hello was good.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context. </td></tr>
- <tr><td class="paramname">peer</td><td>The remote party we are talking to, if any. </td></tr>
- <tr><td class="paramname">session</td><td>Transport address of the remote peer. </td></tr>
- <tr><td class="paramname">msg</td><td>The received datagram. </td></tr>
- <tr><td class="paramname">msglen</td><td>Length of <code>msg</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>1</code> if msg is a Client Hello with a valid cookie, <code>0</code> or <code>-1</code> otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01540">1540</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1e338587fb19c794c8d19bc2801f2eb2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_write </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Writes the application data given in <code>buf</code> to the peer specified by <code>session</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">session</td><td>The remote transport address and local interface. </td></tr>
- <tr><td class="paramname">buf</td><td>The data to write. </td></tr>
- <tr><td class="paramname">len</td><td>The actual length of <code>data</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The number of bytes written or <code>-1</code> on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00236">236</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adb41bf916dc34af5cd79003a9243b727"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t finalize_hs_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01082">1082</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa2f1fb16f297640b319ff0d864139ea5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void free_context </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00157">157</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a445994c602b105608f277c6fc066301d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int handle_alert </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>record_header</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Handles incoming Alert messages. This function returns <code>1</code> if the connection should be closed and the peer is to be invalidated. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03496">3496</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4d7a16c9d0cd28666a2cc8ec471aa664"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int handle_ccs </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>record_header</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03457">3457</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab199f50f39a96464ff7b532f2635ce9d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int handle_handshake </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> </td>
- <td class="paramname"><em>role</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> </td>
- <td class="paramname"><em>state</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03347">3347</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a24e7d6ad9fc0d87b7285615123bdd43d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int handle_handshake_msg </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> </td>
- <td class="paramname"><em>role</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> </td>
- <td class="paramname"><em>state</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02992">2992</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a599f0d6e9134869e55b64c4f8720ebfa"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int is_ecdsa_client_auth_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Returns true if the application is configured for ecdhe_ecdsa with client authentication </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00503">503</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abb41f4bb9b8e4218ef5115ce70ebdc21"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int is_ecdsa_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>is_client</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>returns true if the application is configured for ecdhe_ecdsa </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00491">491</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3bbccb275cb23e84c0a148a157955770"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int is_psk_supported </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>returns true if the application is configured for psk </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00481">481</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaafa285eb634873480c0ff429edd8064"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static unsigned int is_record </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>msglen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Checks if <code>msg</code> points to a valid DTLS record. If </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00361">361</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8098a728e5fff33ceeb7f57ebd48a212"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int is_tls_ecdhe_ecdsa_with_aes_128_ccm_8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> </td>
- <td class="paramname"><em>cipher</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>returns true if the cipher matches TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00461">461</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8bb6e8bb947b943d2af4c1886a8e72ba"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int is_tls_psk_with_aes_128_ccm_8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> </td>
- <td class="paramname"><em>cipher</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>returns true if the cipher matches TLS_PSK_WITH_AES_128_CCM_8 </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00471">471</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a37965d10b44a63ea6adbf28b9dc79b75"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int known_cipher </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> </td>
- <td class="paramname"><em>code</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>is_client</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Returns <code>1</code> if <code>code</code> is a cipher suite other than <code>TLS_NULL_WITH_NULL_NULL</code> that we recognize.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current DTLS context </td></tr>
- <tr><td class="paramname">code</td><td>The cipher suite identifier to check </td></tr>
- <tr><td class="paramname">is_client</td><td>1 for a dtls client, 0 for server </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>1</code> iff <code>code</code> is recognized, </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00522">522</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9e02f1c6e70dab40e56d5131a259521a"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__context__t.html">dtls_context_t</a>* malloc_context </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00152">152</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3db09acb5894f17f4745d7556555bea7"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void update_hs_hash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01070">1070</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af073bf7cefa5e49e0c939e853678d417"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int verify_ext_cert_type </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00725">725</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a04a3580764ffd4f253ce6be858806c95"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int verify_ext_ec_point_formats </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00749">749</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad699a00b7ff5a71fa5b7fbc79a4dd9a8"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int verify_ext_eliptic_curves </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_length</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00701">701</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="aecdb18ea2b899994542ec46b23528738"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char cert_asn1_header[]</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
-<div class="line"> 0x30, 0x59, </div>
-<div class="line"> 0x30, 0x13, </div>
-<div class="line"> 0x06, 0x07, </div>
-<div class="line"> 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,</div>
-<div class="line"> 0x06, 0x08, </div>
-<div class="line"> 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07,</div>
-<div class="line"> 0x03, 0x42, 0x00, </div>
-<div class="line"> 0x04 </div>
-<div class="line">}</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00124">124</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae35671d94ccea5f335546ce409aed601"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> compression_methods[]</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
-<div class="line"> <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div>
-<div class="line">}</div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00082">global.h:82</a></div></div>
-</div><!-- fragment --><p>only one compression method is currently defined </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00456">456</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abba2a2562813493d98b5671a4c5c082b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char prf_label_client[] = "client"</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00119">119</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a45d793d73836bf96dacb1d558f81b6c7"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char prf_label_finished[] = " finished"</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00121">121</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a42886cd9a1fd728f47ea40d38dfabcda"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char prf_label_key[] = "key expansion"</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00118">118</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a784ec579660900e758a9b7de84150c9b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char prf_label_master[] = "master secret"</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00117">117</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aacf8643991dec574dcb09a280357ae4f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char prf_label_server[] = "server"</td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00120">120</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">dtls.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="dtls_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012,2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="dtls__time_8h.html">dtls_time.h</a>"</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="uthash_8h.html">uthash.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="numeric_8h.html">numeric.h</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="netq_8h.html">netq.h</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="dtls_8h.html">dtls.h</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="alert_8h.html">alert.h</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="session_8h.html">session.h</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="prng_8h.html">prng.h</a>"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#ifdef WITH_SHA256</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span><span class="preprocessor"># include "sha2/sha2.h"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="dtls_8c.html#aebefc949b2298e7de7b95b715874d407"> 54</a></span> <span class="preprocessor">#define dtls_set_version(H,V) dtls_int_to_uint16((H)->version, (V))</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365"> 55</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_set_content_type(H,V) ((H)->content_type = (V) & 0xff)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="dtls_8c.html#a9f723101896941fa44ea701c4dfd3591"> 56</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_set_length(H,V) ((H)->length = (V))</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467"> 58</a></span> <span class="preprocessor">#define dtls_get_content_type(H) ((H)->content_type & 0xff)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb"> 59</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_get_version(H) dtls_uint16_to_int((H)->version)</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="dtls_8c.html#a175d8e65080497463d13caf20e961500"> 60</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_get_epoch(H) dtls_uint16_to_int((H)->epoch)</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7"> 61</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_get_sequence_number(H) dtls_uint48_to_ulong((H)->sequence_number)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff"> 62</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_get_fragment_length(H) dtls_uint24_to_int((H)->fragment_length)</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6"> 65</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FIND_PEER(head,sess,out) \</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"> HASH_FIND(hh,head,sess,sizeof(session_t),out)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523"> 67</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ADD_PEER(head,sess,add) \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> HASH_ADD(hh,head,sess,sizeof(session_t),add)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0"> 69</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_DEL_PEER(head,delptr) \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> HASH_DELETE(hh,head,delptr)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f"> 73</a></span> <span class="preprocessor">#define DTLS_RH_LENGTH sizeof(dtls_record_header_t)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="dtls_8c.html#a520419d1976b301c508721faed549b4f"> 74</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HS_LENGTH sizeof(dtls_handshake_header_t)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675"> 75</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CH_LENGTH sizeof(dtls_client_hello_t) </span><span class="comment">/* no variable length fields! */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace"> 76</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_COOKIE_LENGTH_MAX 32</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa"> 77</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CH_LENGTH_MAX sizeof(dtls_client_hello_t) + DTLS_COOKIE_LENGTH_MAX + 12 + 26</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5"> 78</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HV_LENGTH sizeof(dtls_hello_verify_t)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_SH_LENGTH (2 + DTLS_RANDOM_LENGTH + 1 + 2 + 1)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CE_LENGTH (3 + 3 + 27 + DTLS_EC_KEY_SIZE + DTLS_EC_KEY_SIZE)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_SKEXEC_LENGTH (1 + 2 + 1 + 1 + DTLS_EC_KEY_SIZE + DTLS_EC_KEY_SIZE + 1 + 1 + 2 + 70)</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d"> 82</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_SKEXECPSK_LENGTH_MIN 2</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d"> 83</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_SKEXECPSK_LENGTH_MAX 2 + DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336"> 84</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CKXPSK_LENGTH_MIN 2</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164"> 85</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CKXEC_LENGTH (1 + 1 + DTLS_EC_KEY_SIZE + DTLS_EC_KEY_SIZE)</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816"> 86</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CV_LENGTH (1 + 1 + 2 + 1 + 1 + 1 + 1 + DTLS_EC_KEY_SIZE + 1 + 1 + DTLS_EC_KEY_SIZE)</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_FIN_LENGTH 12</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087"> 89</a></span> <span class="preprocessor">#define HS_HDR_LENGTH DTLS_RH_LENGTH + DTLS_HS_LENGTH</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b"> 90</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HV_HDR_LENGTH HS_HDR_LENGTH + DTLS_HV_LENGTH</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d"> 92</a></span> <span class="preprocessor">#define HIGH(V) (((V) >> 8) & 0xff)</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f"> 93</a></span> <span class="preprocessor"></span><span class="preprocessor">#define LOW(V) ((V) & 0xff)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b"> 95</a></span> <span class="preprocessor">#define DTLS_RECORD_HEADER(M) ((dtls_record_header_t *)(M))</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a"> 96</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HANDSHAKE_HEADER(M) ((dtls_handshake_header_t *)(M))</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4"> 98</a></span> <span class="preprocessor">#define HANDSHAKE(M) ((dtls_handshake_header_t *)((M) + DTLS_RH_LENGTH))</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5"> 99</a></span> <span class="preprocessor"></span><span class="preprocessor">#define CLIENTHELLO(M) ((dtls_client_hello_t *)((M) + HS_HDR_LENGTH))</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/* The length check here should work because dtls_*_to_int() works on</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> * unsigned char. Otherwise, broken messages could cause severe</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> * trouble. Note that this macro jumps out of the current program flow</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> * when the message is too short. Beware!</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023"> 106</a></span> <span class="preprocessor">#define SKIP_VAR_FIELD(P,L,T) { \</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"> if (L < dtls_ ## T ## _to_int(P) + sizeof(T)) \</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> goto error; \</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> L -= dtls_ ## T ## _to_int(P) + sizeof(T); \</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"> P += dtls_ ## T ## _to_int(P) + sizeof(T); \</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">/* some constants for the PRF */</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9"> 114</a></span> <span class="preprocessor">#define PRF_LABEL(Label) prf_label_##Label</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9"> 115</a></span> <span class="preprocessor"></span><span class="preprocessor">#define PRF_LABEL_SIZE(Label) (sizeof(PRF_LABEL(Label)) - 1)</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b"> 117</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">prf_label_master</a>[] = <span class="stringliteral">"master secret"</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda"> 118</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">prf_label_key</a>[] = <span class="stringliteral">"key expansion"</span>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b"> 119</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">prf_label_client</a>[] = <span class="stringliteral">"client"</span>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f"> 120</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">prf_label_server</a>[] = <span class="stringliteral">"server"</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7"> 121</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">prf_label_finished</a>[] = <span class="stringliteral">" finished"</span>;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">/* first part of Raw public key, the is the start of the Subject Public Key */</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738"> 124</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>[] = {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  0x30, 0x59, <span class="comment">/* SEQUENCE, length 89 bytes */</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  0x30, 0x13, <span class="comment">/* SEQUENCE, length 19 bytes */</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  0x06, 0x07, <span class="comment">/* OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1) */</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  0x06, 0x08, <span class="comment">/* OBJECT IDENTIFIER prime256v1 (1 2 840 10045 3 1 7) */</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  0x03, 0x42, 0x00, <span class="comment">/* BIT STRING, length 66 bytes, 0 bits unused */</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  0x04 <span class="comment">/* uncompressed, followed by the r und s values of the public key */</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> };</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span>PROCESS(dtls_retransmit_process, <span class="stringliteral">"DTLS retransmit process"</span>);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">static</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> the_dtls_context;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <a class="code" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a>() {</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> &the_dtls_context;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <a class="code" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context) {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *</div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a"> 152</a></span> <a class="code" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a>() {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> (<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a>));</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5"> 157</a></span> <a class="code" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context) {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  free(context);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd"> 163</a></span> <a class="code" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a>() {</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a>();</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a>();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a>();</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a>();</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> }</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">/* Calls cb_alert() with given arguments if defined, otherwise an</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> * error message is logged and the result is -1. This is just an</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> * internal helper.</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34"> 174</a></span> <span class="preprocessor">#define CALL(Context, which, ...) \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> ((Context)->h && (Context)->h->which \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> ? (Context)->h->which((Context), ##__VA_ARGS__) \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> : -1)</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <a class="code" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security , <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf_array[],</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordtype">size_t</span> buf_len_array[], <span class="keywordtype">size_t</span> buf_array_len);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6"> 200</a></span> <a class="code" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type,</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, <span class="keywordtype">size_t</span> buflen) {</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a>(ctx, peer, <a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(peer), &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>,</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  type, &buf, &buflen, 1);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *</div>
-<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6"> 212</a></span> <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(<span class="keyword">const</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session) {</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *p = NULL;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"></span> <a class="code" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">HASH_FIND_PEER</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, session, p);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"></span> <span class="keywordflow">for</span> (p = <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>); p; p = <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(p))</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (<a class="code" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a>(&p-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, session))</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> p;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"></span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> p;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> }</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3"> 227</a></span> <a class="code" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"></span> <a class="code" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">HASH_ADD_PEER</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, session, peer);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"></span> <a class="code" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">list_add</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, peer);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928"> 236</a></span> <a class="code" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls_write</a>(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="structsession__t.html">session_t</a> *dst, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, dst);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">/* Check if peer connection already exists */</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span> (!peer) { <span class="comment">/* no ==> create one */</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">/* dtls_connect() returns a value greater than zero if a new</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> * connection attempt is made, 0 for session reuse. */</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  res = <a class="code" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a>(ctx, dst);</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> (res >= 0) ? 0 : res;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  } <span class="keywordflow">else</span> { <span class="comment">/* a session exists, check if it is in state connected */</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a>(ctx, peer, <a class="code" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">DTLS_CT_APPLICATION_DATA</a>, buf, len);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> }</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b"> 261</a></span> <a class="code" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls_get_cookie</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">size_t</span> msglen, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cookie) {</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">/* To access the cookie, we have to determine the session id's</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> * length and skip the whole thing. */</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (msglen < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a> + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>))</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(msg + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>) != <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>)</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a>);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  msglen -= <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a>;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  msg += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(msg, msglen, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); <span class="comment">/* skip session id */</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (msglen < (*msg & 0xff) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>))</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  *cookie = msg + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">return</span> <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(msg);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  error:</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943"> 286</a></span> <a class="code" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls_create_cookie</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">size_t</span> msglen,</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *cookie, <span class="keywordtype">int</span> *clen) {</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> buf[<a class="code" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a>];</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">size_t</span> len, e;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">/* create cookie with HMAC-SHA256 over:</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment"> * - SECRET</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"> * - session parameters (only IP address?)</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> * - client version </span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> * - random gmt and bytes</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment"> * - session id</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment"> * - cipher_suites </span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment"> * - compression method</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">/* We use our own buffer as hmac_context instead of a dynamic buffer</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment"> * created by dtls_hmac_new() to separate storage space for cookie</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> * creation from storage that is used in real sessions. Note that</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment"> * the buffer size must fit with the default hash algorithm (see</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment"> * implementation of dtls_hmac_context_new()). */</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> hmac_context;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(&hmac_context, ctx-><a class="code" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">cookie_secret</a>, <a class="code" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(&hmac_context, </div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)&session-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>, session-><a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a>);</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="comment">/* feed in the beginning of the Client Hello up to and including the</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> session id */</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  e = <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  e += (*(msg + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + e) & 0xff) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span> (e + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> > msglen)</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(&hmac_context, msg + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>, e);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">/* skip cookie bytes and length byte */</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  e += *(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *)(msg + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + e) & 0xff;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  e += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (e + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> > msglen)</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(&hmac_context, </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  msg + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + e,</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls_get_fragment_length</a>(<a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(msg)) - e);</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  len = <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(&hmac_context, buf);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">if</span> (len < *clen) {</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  memset(cookie + len, 0, *clen - len);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  *clen = len;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  memcpy(cookie, buf, *clen);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> }</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#ifdef DTLS_CHECK_CONTENTTYPE</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"></span><span class="comment">/* used to check if a received datagram contains a DTLS message */</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">static</span> <span class="keywordtype">char</span> <span class="keyword">const</span> content_types[] = { </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a>,</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">DTLS_CT_ALERT</a>,</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a>,</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">DTLS_CT_APPLICATION_DATA</a>,</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  0 <span class="comment">/* end marker */</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> };</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064"> 361</a></span> <a class="code" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">is_record</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">size_t</span> msglen) {</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rlen = 0;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span> (msglen >= <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> <span class="comment">/* FIXME allow empty records? */</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> #ifdef DTLS_CHECK_CONTENTTYPE</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  && strchr(content_types, msg[0])</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> #endif</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  && msg[1] == <a class="code" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">HIGH</a>(<a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>)</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  && msg[2] == <a class="code" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">LOW</a>(<a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>)) </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  rlen = <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + </div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(msg)->length);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">/* we do not accept wrong length field in record header */</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (rlen > msglen) </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  rlen = 0;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  } </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">return</span> rlen;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> }</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *</div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808"> 390</a></span> <a class="code" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls_set_record_header</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security,</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf) {</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  </div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(buf, type);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(buf, <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> (security) {</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(buf, security-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a>);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">dtls_int_to_uint48</a>(buf, security-><a class="code" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a>);</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a>);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="comment">/* increment record sequence counter by 1 */</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a>++;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  memset(buf, 0, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a>));</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a>);</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  memset(buf, 0, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>));</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">return</span> buf + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> }</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *</div>
-<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"> 424</a></span> <a class="code" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls_set_handshake_header</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, </div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordtype">int</span> length, </div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordtype">int</span> frag_offset, <span class="keywordtype">int</span> frag_length, </div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf) {</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  </div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(buf, type);</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(buf, length);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (peer && peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>) {</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">/* and copy the result to buf */</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(buf, peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a>);</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">/* increment handshake message sequence counter by 1 */</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a>++;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  memset(buf, 0, <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)); </div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(buf, frag_offset);</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(buf, frag_length);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  buf += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> buf;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> }</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601"> 456</a></span> <span class="keyword">static</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> <a class="code" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a>[] = {</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> };</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
-<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212"> 461</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(<a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> {</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> cipher == <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a>;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba"> 471</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(<a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> {</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> cipher == <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a>;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770"> 481</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> {</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> ctx && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a> && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>->get_psk_info;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
-<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21"> 491</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keywordtype">int</span> is_client)</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> {</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> ctx && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a> && ((!is_client && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>->get_ecdsa_key) || </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  (is_client && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>->verify_ecdsa_key));</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa"> 503</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> {</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> ctx && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a> && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>->get_ecdsa_key && ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>->verify_ecdsa_key;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75"> 522</a></span> <a class="code" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> code, <span class="keywordtype">int</span> is_client) {</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordtype">int</span> psk;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordtype">int</span> ecdsa;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  psk = <a class="code" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a>(ctx);</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  ecdsa = <a class="code" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a>(ctx, is_client);</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">return</span> (psk && <a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(code)) ||</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  (ecdsa && <a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(code));</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd"> 533</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls_debug_keyblock</a>(<a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *config)</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> {</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"key_block (%d bytes):\n"</span>, <a class="code" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">dtls_kb_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" client_MAC_secret"</span>,</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a>(config, peer->role),</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" server_MAC_secret"</span>,</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a>(config, peer->role),</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" client_write_key"</span>,</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a>(config, peer->role),</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" server_write_key"</span>,</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a>(config, peer->role),</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" client_IV"</span>,</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a>(config, peer->role),</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">" server_IV"</span>,</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a>(config, peer->role),</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(config, peer->role));</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> }</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> </div>
-<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d"> 565</a></span> <span class="keyword">static</span> <span class="keywordtype">char</span> *<a class="code" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a>(<span class="keywordtype">int</span> type)</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> {</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">switch</span> (type) {</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a>:</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">return</span> <span class="stringliteral">"hello_request"</span>;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a>:</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">return</span> <span class="stringliteral">"client_hello"</span>;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">DTLS_HT_SERVER_HELLO</a>:</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">return</span> <span class="stringliteral">"server_hello"</span>;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a>:</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">return</span> <span class="stringliteral">"hello_verify_request"</span>;</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">DTLS_HT_CERTIFICATE</a>:</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">return</span> <span class="stringliteral">"certificate"</span>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a>:</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">return</span> <span class="stringliteral">"server_key_exchange"</span>;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">DTLS_HT_CERTIFICATE_REQUEST</a>:</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">return</span> <span class="stringliteral">"certificate_request"</span>;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">DTLS_HT_SERVER_HELLO_DONE</a>:</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">return</span> <span class="stringliteral">"server_hello_done"</span>;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">DTLS_HT_CERTIFICATE_VERIFY</a>:</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> <span class="stringliteral">"certificate_verify"</span>;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">DTLS_HT_CLIENT_KEY_EXCHANGE</a>:</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">return</span> <span class="stringliteral">"client_key_exchange"</span>;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">DTLS_HT_FINISHED</a>:</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">return</span> <span class="stringliteral">"finished"</span>;</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">return</span> <span class="stringliteral">"unknown"</span>;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> }</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b"> 599</a></span> <a class="code" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake,</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role) {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pre_master_secret;</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordtype">int</span> pre_master_len = 0;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security = <a class="code" href="peer_8h.html#ab6e209f206f570eed246530ec7960943">dtls_security_params_next</a>(peer);</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> master_secret[<a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>];</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">if</span> (!security) {</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  pre_master_secret = security-><a class="code" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">key_block</a>;</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">switch</span> (handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) {</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a>: {</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> psk[<a class="code" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">DTLS_PSK_MAX_KEY_LEN</a>];</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  len = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, get_psk_info, session, <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a>,</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity,</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length,</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  psk, <a class="code" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">DTLS_PSK_MAX_KEY_LEN</a>);</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">if</span> (len < 0) {</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"no psk key for session available\n"</span>);</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="comment">/* Temporarily use the key_block storage space for the pre master secret. */</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  pre_master_len = <a class="code" href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a>(psk, len,</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  pre_master_secret,</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <a class="code" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>);</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"psk"</span>, psk, len);</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  memset(psk, 0, <a class="code" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">DTLS_PSK_MAX_KEY_LEN</a>);</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">if</span> (pre_master_len < 0) {</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"the psk was too long, for the pre master secret\n"</span>);</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  }</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  }</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a>: {</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  pre_master_len = <a class="code" href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.own_eph_priv,</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_x,</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y,</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.own_eph_priv),</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  pre_master_secret,</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>);</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keywordflow">if</span> (pre_master_len < 0) {</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"the curve was too long, for the pre master secret\n"</span>);</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"calculate_key_block: unknown cipher\n"</span>);</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"client_random"</span>, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"server_random"</span>, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"pre_master_secret"</span>, pre_master_secret, pre_master_len);</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <a class="code" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(pre_master_secret, pre_master_len,</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(master), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(master),</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  master_secret,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>);</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"master_secret"</span>, master_secret, <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>);</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="comment">/* create key_block from master_secret</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="comment"> * key_block = PRF(master_secret,</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="comment"> "key expansion" + tmp.random.server + tmp.random.client) */</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <a class="code" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(master_secret,</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>,</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(key), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(key),</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">key_block</a>,</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">dtls_kb_size</a>(security, role));</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">master_secret</a>, master_secret, <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>);</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <a class="code" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls_debug_keyblock</a>(security);</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a> = handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>;</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a> = handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a>;</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a> = 0;</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> }</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">/* TODO: add a generic method which iterates over a list and searches for a specific key */</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8"> 701</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">verify_ext_eliptic_curves</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordtype">int</span> i, curve_name;</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="comment">/* length of curve list */</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  i = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">if</span> (i + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) != data_length) {</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the list of the supported elliptic curves should be tls extension length - 2\n"</span>);</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">for</span> (i = data_length - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>); i > 0; i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)) {</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="comment">/* check if this curve is supported */</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  curve_name = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">if</span> (curve_name == <a class="code" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a>)</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"no supported elliptic curve found\n"</span>);</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> }</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div>
-<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417"> 725</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordtype">int</span> i, cert_type;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="comment">/* length of cert type list */</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">if</span> (i + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>) != data_length) {</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the list of the supported certificate types should be tls extension length - 1\n"</span>);</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">for</span> (i = data_length - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); i > 0; i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>)) {</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="comment">/* check if this cert type is supported */</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  cert_type = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> </div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">if</span> (cert_type == <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>)</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"no supported certificate type found\n"</span>);</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> }</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
-<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95"> 749</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">verify_ext_ec_point_formats</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordtype">int</span> i, cert_type;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="comment">/* length of ec_point_formats list */</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">if</span> (i + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>) != data_length) {</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the list of the supported ec_point_formats should be tls extension length - 1\n"</span>);</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">for</span> (i = data_length - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); i > 0; i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>)) {</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="comment">/* check if this ec_point_format is supported */</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  cert_type = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">if</span> (cert_type == <a class="code" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</a>)</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"no supported ec_point_format found\n"</span>);</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> }</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="comment"> * Check for some TLS Extensions used by the ECDHE_ECDSA cipher.</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a"> 777</a></span> <a class="code" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length, <span class="keywordtype">int</span> client_hello)</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> {</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  uint16_t i, j;</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordtype">int</span> ext_elliptic_curve = 0;</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordtype">int</span> ext_client_cert_type = 0;</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordtype">int</span> ext_server_cert_type = 0;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordtype">int</span> ext_ec_point_formats = 0;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> </div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">if</span> (data_length < <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)) { </div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="comment">/* no tls extensions specified */</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  }</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="comment">/* get the length of the tls extension list */</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  j = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> </div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">if</span> (data_length < j)</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="comment">/* check for TLS extensions needed for this cipher */</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">while</span> (data_length) {</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">if</span> (data_length < <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) * 2)</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> </div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="comment">/* get the tls extension type */</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  i = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="comment">/* get the length of the tls extension */</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  j = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (data_length < j)</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">switch</span> (i) {</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">case</span> <a class="code" href="global_8h.html#a7e080d630a40510f655bf6982c555063">TLS_EXT_ELLIPTIC_CURVES</a>:</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  ext_elliptic_curve = 1;</div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">verify_ext_eliptic_curves</a>(data, j))</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">case</span> <a class="code" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">TLS_EXT_CLIENT_CERTIFICATE_TYPE</a>:</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  ext_client_cert_type = 1;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">if</span> (client_hello) {</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a>(data, j))</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>)</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">TLS_EXT_SERVER_CERTIFICATE_TYPE</a>:</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  ext_server_cert_type = 1;</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">if</span> (client_hello) {</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a>(data, j))</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>)</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">case</span> <a class="code" href="global_8h.html#a5d17863db920927ef8160547541b58e3">TLS_EXT_EC_POINT_FORMATS</a>:</div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  ext_ec_point_formats = 1;</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">verify_ext_ec_point_formats</a>(data, j))</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118">TLS_EXT_ENCRYPT_THEN_MAC</a>:</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="comment">/* As only AEAD cipher suites are currently available, this</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"> * extension can be skipped. </span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"skipped encrypt-then-mac extension\n"</span>);</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"unsupported tls extension: %i\n"</span>, i);</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  }</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  data += j;</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  data_length -= j;</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) && client_hello) {</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">if</span> (!ext_elliptic_curve || !ext_client_cert_type || !ext_server_cert_type</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  || !ext_ec_point_formats) {</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"not all required tls extensions found in client hello\n"</span>);</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  }</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) && !client_hello) {</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">if</span> (!ext_client_cert_type || !ext_server_cert_type) {</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"not all required tls extensions found in server hello\n"</span>);</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  }</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> error:</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">if</span> (client_hello && peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> == <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a>(<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a>);</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> }</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d"> 900</a></span> <a class="code" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls_update_parameters</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordtype">int</span> i, j;</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordtype">int</span> ok;</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security = <a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(peer);</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  assert(config);</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  assert(data_length > <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a>);</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> </div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="comment">/* skip the handshake header and client version information */</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  data_length -= <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="comment">/* store client random in config */</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, data, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  data += <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  data_length -= <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> </div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="comment">/* Caution: SKIP_VAR_FIELD may jump to error: */</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(data, data_length, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); <span class="comment">/* skip session id */</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <a class="code" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(data, data_length, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); <span class="comment">/* skip cookie */</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  i = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">if</span> (data_length < i + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)) {</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="comment">/* Looks like we do not have a cipher nor compression. This is ok</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="comment"> * for renegotiation, but not for the initial handshake. */</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> </div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">if</span> (!security || security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a> == <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>)</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a> = security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a>;</div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a> = security-><a class="code" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a>;</div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  }</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) + i;</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> </div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  ok = 0;</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">while</span> (i && !ok) {</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a> = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  ok = <a class="code" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a>(ctx, config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>, 0);</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  }</div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> </div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="comment">/* skip remaining ciphers */</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  data += i;</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">if</span> (!ok) {</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="comment">/* reset config cipher to a well-defined value */</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a> = <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>;</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"No matching cipher found\n"</span>);</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> </div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">if</span> (data_length < <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>)) { </div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <span class="comment">/* no compression specified, take the current compression method */</span></div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">if</span> (security)</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a> = security-><a class="code" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a>;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a> = <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a>;</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  }</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> </div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">if</span> (data_length < i + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>))</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>) + i;</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  ok = 0;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">while</span> (i && !ok) {</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keywordflow">for</span> (j = 0; j < <span class="keyword">sizeof</span>(<a class="code" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a>) / <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); ++j)</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) == <a class="code" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a>[j]) {</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a> = <a class="code" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a>[j];</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  ok = 1;</div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  }</div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); </div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  }</div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> </div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="keywordflow">if</span> (!ok) {</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="comment">/* reset config cipher to a well-defined value */</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  </div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a>(peer, data, data_length, 1);</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> error:</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> == <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a>(<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a>);</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  }</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> }</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> </div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f"> 1005</a></span> <a class="code" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">check_client_keyexchange</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake,</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> length) {</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> </div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">if</span> (length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a>) {</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"The client key exchange is too short\n"</span>);</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  }</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 1 + 2 * <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>) {</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expected 65 bytes long public point\n"</span>);</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  }</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 4) {</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expected uncompressed public point\n"</span>);</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_x, data,</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_x));</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  data += <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_x);</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y, data,</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y));</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  data += <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y);</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keywordtype">int</span> id_length;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">if</span> (length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">DTLS_CKXPSK_LENGTH_MIN</a>) {</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"The client key exchange is too short\n"</span>);</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  }</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  id_length = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">DTLS_CKXPSK_LENGTH_MIN</a> + id_length != length) {</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"The identity has a wrong length\n"</span>);</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  }</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">if</span> (id_length > <a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>) {</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"please use a smaller client identity\n"</span>);</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  }</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> </div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length = id_length;</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity, data, id_length);</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  }</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> }</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"><a class="line" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7"> 1070</a></span> <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> length) {</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"add MAC data"</span>, data, length);</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>, data, length);</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> }</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"><a class="line" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8"> 1076</a></span> <a class="code" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> *hs_hash) {</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  memcpy(hs_hash, &peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>,</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">sizeof</span>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>));</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> }</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727"> 1082</a></span> <a class="code" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">finalize_hs_hash</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf) {</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">return</span> <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(buf, &peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>);</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> }</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d"> 1087</a></span> <a class="code" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  assert(peer);</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"clear MAC\n"</span>);</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>);</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> }</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> </div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"><a class="line" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b"> 1104</a></span> <a class="code" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">check_finished</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keywordtype">size_t</span> digest_length, label_size;</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label;</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> buf[<a class="code" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a>];</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>)</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> </div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="comment">/* Use a union here to ensure that sufficient stack space is</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment"> * reserved. As statebuf and verify_data are not used at the same</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"> * time, we can re-use the storage safely.</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keyword">union </span>{</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> statebuf[<a class="code" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">DTLS_HASH_CTX_SIZE</a>];</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> verify_data[<a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>];</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  } b;</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="comment">/* temporarily store hash status for roll-back after finalize */</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  memcpy(b.statebuf, &peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>, <a class="code" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">DTLS_HASH_CTX_SIZE</a>);</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> </div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  digest_length = <a class="code" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">finalize_hs_hash</a>(peer, buf);</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="comment">/* clear_hash(); */</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> </div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <span class="comment">/* restore hash status */</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  memcpy(&peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>, b.statebuf, <a class="code" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">DTLS_HASH_CTX_SIZE</a>);</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a>) {</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  label = <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(server);</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  label_size = <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(server);</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  } <span class="keywordflow">else</span> { <span class="comment">/* server */</span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  label = <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(client);</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  label_size = <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(client);</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  }</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> </div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <a class="code" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">master_secret</a>,</div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>,</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  label, label_size,</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(finished), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(finished),</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  buf, digest_length,</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  b.verify_data, <span class="keyword">sizeof</span>(b.verify_data));</div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> </div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"d:"</span>, data + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>, <span class="keyword">sizeof</span>(b.verify_data));</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"v:"</span>, b.verify_data, <span class="keyword">sizeof</span>(b.verify_data));</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> </div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  <span class="comment">/* compare verify data and create DTLS alert code when they differ */</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keywordflow">return</span> <a class="code" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a>(data + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>, b.verify_data, <span class="keyword">sizeof</span>(b.verify_data))</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  ? 0</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  : <a class="code" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a>(<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> }</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> </div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"><a class="line" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5"> 1180</a></span> <a class="code" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security,</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type,</div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data_array[], <span class="keywordtype">size_t</span> data_len_array[],</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  <span class="keywordtype">size_t</span> data_array_len,</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *sendbuf, <span class="keywordtype">size_t</span> *rlen) {</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p, *start;</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  </div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <span class="keywordflow">if</span> (*rlen < <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>) {</div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"The sendbuf (%zu bytes) is too small\n"</span>, *rlen);</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  }</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  p = <a class="code" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls_set_record_header</a>(type, security, sendbuf);</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  start = p;</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> </div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="keywordflow">if</span> (!security || security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a> == <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>) {</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="comment">/* no cipher suite */</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> </div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  res = 0;</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  <span class="keywordflow">for</span> (i = 0; i < data_array_len; i++) {</div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="comment">/* check the minimum that we need for packets that are not encrypted */</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>  <span class="keywordflow">if</span> (*rlen < res + <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + data_len_array[i]) {</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_prepare_record: send buffer too small\n"</span>);</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  }</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> </div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  memcpy(p, data_array[i], data_len_array[i]);</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  p += data_len_array[i];</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  res += data_len_array[i];</div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  }</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  } <span class="keywordflow">else</span> { <span class="comment">/* TLS_PSK_WITH_AES_128_CCM_8 or TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 */</span> </div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="preprocessor">#define A_DATA_LEN 13</span></div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>];</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A_DATA[<a class="code" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>];</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> </div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a>)) {</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_prepare_record(): encrypt using TLS_PSK_WITH_AES_128_CCM_8\n"</span>);</div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a>)) {</div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_prepare_record(): encrypt using TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8\n"</span>);</div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_prepare_record(): encrypt using unknown cipher\n"</span>);</div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  }</div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> </div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <span class="comment">/* set nonce </span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"> from RFC 6655:</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"> The "nonce" input to the AEAD algorithm is exactly that of [RFC5288]:</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"> the "nonce" SHALL be 12 bytes long and is constructed as follows:</span></div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment"> (this is an example of a "partially explicit" nonce; see Section</span></div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"> 3.2.1 in [RFC5116]).</span></div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"></span></div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"> struct {</span></div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"> opaque salt[4];</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"> opaque nonce_explicit[8];</span></div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"> } CCMNonce;</span></div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"></span></div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"> [...]</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"></span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"> In DTLS, the 64-bit seq_num is the 16-bit epoch concatenated with the</span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment"> 48-bit seq_num.</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment"> When the nonce_explicit is equal to the sequence number, the CCMNonce</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"> will have the structure of the CCMNonceExample given below.</span></div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"></span></div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"> struct {</span></div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"> uint32 client_write_IV; // low order 32-bits</span></div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"> uint64 seq_num; // TLS sequence number</span></div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"> } CCMClientNonce.</span></div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"></span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"></span></div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"> struct {</span></div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"> uint32 server_write_IV; // low order 32-bits</span></div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"> uint64 seq_num; // TLS sequence number</span></div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"> } CCMServerNonce.</span></div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment"></span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment"></span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"> struct {</span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"> case client:</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment"> CCMClientNonce;</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"> case server:</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"> CCMServerNonce:</span></div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment"> } CCMNonceExample;</span></div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> </div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  memcpy(p, &<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(sendbuf)->epoch, 8);</div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  p += 8;</div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  res = 8;</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> </div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keywordflow">for</span> (i = 0; i < data_array_len; i++) {</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="comment">/* check the minimum that we need for packets that are not encrypted */</span></div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  <span class="keywordflow">if</span> (*rlen < res + <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + data_len_array[i]) {</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_prepare_record: send buffer too small\n"</span>);</div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  }</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> </div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  memcpy(p, data_array[i], data_len_array[i]);</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  p += data_len_array[i];</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  res += data_len_array[i];</div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  }</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> </div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  memset(nonce, 0, <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>);</div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  memcpy(nonce, <a class="code" href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3">dtls_kb_local_iv</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>));</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  memcpy(nonce + <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>), start, 8); <span class="comment">/* epoch + seq_num */</span></div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> </div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"nonce:"</span>, nonce, <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>);</div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"key:"</span>, <a class="code" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">dtls_kb_local_write_key</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>));</div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  </div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <span class="comment">/* re-use N to create additional data according to RFC 5246, Section 6.2.3.3:</span></div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment"> * additional_data = seq_num + TLSCompressed.type +</span></div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment"> * TLSCompressed.version + TLSCompressed.length;</span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  memcpy(A_DATA, &<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(sendbuf)->epoch, 8); <span class="comment">/* epoch and seq_num */</span></div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  memcpy(A_DATA + 8, &<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(sendbuf)->content_type, 3); <span class="comment">/* type and version */</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(A_DATA + 11, res - 8); <span class="comment">/* length */</span></div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  </div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  res = <a class="code" href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">dtls_encrypt</a>(start + 8, res - 8, start + 8, nonce,</div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <a class="code" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">dtls_kb_local_write_key</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  A_DATA, <a class="code" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>);</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> </div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  <span class="keywordflow">if</span> (res < 0)</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> </div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  res += 8; <span class="comment">/* increment res by size of nonce_explicit */</span></div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"message:"</span>, start, res);</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  }</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> </div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="comment">/* fix length of fragment in sendbuf */</span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(sendbuf + 11, res);</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  </div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  *rlen = <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + res;</div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> }</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> </div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880"> 1323</a></span> <a class="code" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type,</div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length,</div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="keywordtype">int</span> add_hash)</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> {</div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>];</div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data_array[2];</div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keywordtype">size_t</span> data_len_array[2];</div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="keywordtype">int</span> i = 0;</div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security = peer ? <a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(peer) : NULL;</div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> </div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <a class="code" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls_set_handshake_header</a>(header_type, peer, data_length, 0,</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  data_length, buf);</div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> </div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="keywordflow">if</span> (add_hash) {</div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, buf, <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  }</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  data_array[i] = buf;</div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  data_len_array[i] = <span class="keyword">sizeof</span>(buf);</div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  i++;</div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  <span class="keywordflow">if</span> (data != NULL) {</div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  <span class="keywordflow">if</span> (add_hash) {</div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  }</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  data_array[i] = data;</div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  data_len_array[i] = data_length;</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  i++;</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  }</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"send handshake packet of type: %s (%i)\n"</span>,</div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <a class="code" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a>(header_type), header_type);</div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a>(ctx, peer, security, session, <a class="code" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a>,</div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  data_array, data_len_array, i);</div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> }</div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> </div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b"> 1361</a></span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type,</div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> {</div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a>(ctx, peer, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>,</div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  header_type, data, data_length, 1);</div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> }</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> </div>
-<div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f"> 1384</a></span> <span class="preprocessor">#define MUST_HASH(Type, Data, Length) \</span></div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="preprocessor"> ((Type) == DTLS_CT_HANDSHAKE && \</span></div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="preprocessor"> ((Data) != NULL) && ((Length) > 0) && \</span></div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="preprocessor"> ((Data)[0] != DTLS_HT_HELLO_VERIFY_REQUEST) && \</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="preprocessor"> ((Data)[0] != DTLS_HT_CLIENT_HELLO || \</span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="preprocessor"> ((Length) >= HS_HDR_LENGTH && \</span></div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="preprocessor"> (dtls_uint16_to_int(DTLS_RECORD_HEADER(Data)->epoch > 0) || \</span></div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="preprocessor"> (dtls_uint16_to_int(HANDSHAKE(Data)->message_seq) > 0)))))</span></div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d"> 1407</a></span> <a class="code" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security , <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf_array[],</div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  <span class="keywordtype">size_t</span> buf_len_array[], <span class="keywordtype">size_t</span> buf_array_len)</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> {</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  <span class="comment">/* We cannot use ctx->sendbuf here as it is reserved for collecting</span></div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment"> * the input for this function, i.e. buf == ctx->sendbuf.</span></div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment"> * TODO: check if we can use the receive buf here. This would mean</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment"> * that we might not be able to handle multiple records stuffed in</span></div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"> * one UDP datagram */</span></div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sendbuf[<a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>];</div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="keywordtype">size_t</span> len = <span class="keyword">sizeof</span>(sendbuf);</div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  <span class="keywordtype">size_t</span> overall_len = 0;</div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  res = <a class="code" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a>(peer, security, type, buf_array, buf_len_array, buf_array_len, sendbuf, &len);</div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> </div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  <span class="keywordflow">if</span> (res < 0)</div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="comment">/* if (peer && MUST_HASH(peer, type, buf, buflen)) */</span></div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <span class="comment">/* update_hs_hash(peer, buf, buflen); */</span></div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> </div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"send header"</span>, sendbuf, <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>));</div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  <span class="keywordflow">for</span> (i = 0; i < buf_array_len; i++) {</div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"send unencrypted"</span>, buf_array[i], buf_len_array[i]);</div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  overall_len += buf_len_array[i];</div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  }</div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> </div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="keywordflow">if</span> ((type == <a class="code" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a> && buf_array[0][0] != <a class="code" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a>) ||</div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  type == <a class="code" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a>) {</div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  <span class="comment">/* copy handshake messages other than HelloVerify into retransmit buffer */</span></div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <a class="code" href="structnetq__t.html">netq_t</a> *n = <a class="code" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a>(overall_len);</div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="keywordflow">if</span> (n) {</div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  n-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> = now + 2 * <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>;</div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  n-><a class="code" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a> = 0;</div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  n-><a class="code" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">timeout</a> = 2 * <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>;</div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  n-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a> = peer;</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  n-><a class="code" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">epoch</a> = (security) ? security-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> : 0;</div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  n-><a class="code" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">type</a> = type;</div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  n-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a> = 0;</div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  for (i = 0; i < buf_array_len; i++) {</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  memcpy(n-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a> + n-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a>, buf_array[i], buf_len_array[i]);</div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  n-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a> += buf_len_array[i];</div>
-<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  }</div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> </div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <span class="keywordflow">if</span> (!<a class="code" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a>(ctx->sendqueue, n)) {</div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot add packet to retransmit buffer\n"</span>);</div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(n);</div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  <span class="comment">/* must set timer within the context of the retransmit process */</span></div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  PROCESS_CONTEXT_BEGIN(&dtls_retransmit_process);</div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  etimer_set(&ctx->retransmit_timer, n-><a class="code" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">timeout</a>);</div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  PROCESS_CONTEXT_END(&dtls_retransmit_process);</div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="preprocessor"></span> <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"copied to sendqueue\n"</span>);</div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="preprocessor"></span> }</div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  } <span class="keywordflow">else</span> </div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"retransmit buffer full\n"</span>);</div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  }</div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> </div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  <span class="comment">/* FIXME: copy to peer's sendqueue (after fragmentation if</span></div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment"> * necessary) and initialize retransmit timer */</span></div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  res = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, write, session, sendbuf, len);</div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> </div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  <span class="comment">/* Guess number of bytes application data actually sent:</span></div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="comment"> * dtls_prepare_record() tells us in len the number of bytes to</span></div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment"> * send, res will contain the bytes actually sent. */</span></div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  <span class="keywordflow">return</span> res <= 0 ? res : overall_len - (len - res);</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> }</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> </div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01485"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641"> 1485</a></span> <a class="code" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level,</div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> description) {</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  uint8_t msg[] = { level, description };</div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> </div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  <a class="code" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a>(ctx, peer, <a class="code" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">DTLS_CT_ALERT</a>, msg, <span class="keyword">sizeof</span>(msg));</div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> }</div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> </div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a"> 1494</a></span> <a class="code" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *remote) {</div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="keywordtype">int</span> res = -1;</div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer;</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> </div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, remote);</div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> </div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  res = <a class="code" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a>(ctx, peer, <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a>);</div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  <span class="comment">/* indicate tear down */</span></div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>;</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  }</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> }</div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> </div>
-<div class="line"><a name="l01508"></a><span class="lineno"><a class="line" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3"> 1508</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <span class="keywordtype">int</span> unlink)</div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> {</div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a> && peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>)</div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>  <a class="code" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a>(ctx, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>);</div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>  <span class="keywordflow">if</span> (unlink) {</div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="preprocessor"></span> <a class="code" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">HASH_DEL_PEER</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, peer);</div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="preprocessor"></span> <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, peer);</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  <a class="code" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, <span class="stringliteral">"removed peer"</span>, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>);</div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  }</div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>  <a class="code" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a>(peer);</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> }</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> </div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"><a class="line" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f"> 1540</a></span> <a class="code" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls_verify_peer</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, </div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> {</div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a> + <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>];</div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p = buf;</div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  <span class="keywordtype">int</span> len = <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>;</div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *cookie = NULL;</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="preprocessor">#undef mycookie</span></div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="preprocessor"></span><span class="preprocessor">#define mycookie (buf + DTLS_HV_LENGTH)</span></div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  <span class="comment">/* Store cookie where we can reuse it for the HelloVerify request. */</span></div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  err = <a class="code" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls_create_cookie</a>(ctx, session, data, data_length, <a class="code" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>, &len);</div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  <span class="keywordflow">if</span> (err < 0)</div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> </div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"create cookie"</span>, <a class="code" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>, len);</div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> </div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  assert(len == <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>);</div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  </div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  <span class="comment">/* Perform cookie check. */</span></div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  len = <a class="code" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls_get_cookie</a>(data, data_length, &cookie);</div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  <span class="keywordflow">if</span> (len < 0) {</div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error while fetching the cookie, err: %i\n"</span>, err);</div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  }</div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> </div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"compare with cookie"</span>, cookie, len);</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> </div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  <span class="comment">/* check if cookies match */</span></div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  <span class="keywordflow">if</span> (len == <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a> && memcmp(cookie, <a class="code" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>, len) == 0) {</div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"found matching cookie\n"</span>);</div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  }</div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> </div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  <span class="keywordflow">if</span> (len > 0) {</div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"invalid cookie"</span>, cookie, len);</div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"cookie len is 0!\n"</span>);</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  }</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> </div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <span class="comment">/* ClientHello did not contain any valid cookie, hence we send a</span></div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment"> * HelloVerify request. */</span></div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> </div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>);</div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> </div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>);</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> </div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  assert(p == <a class="code" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>);</div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  p += <a class="code" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>;</div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <span class="comment">/* TODO use the same record sequence number as in the ClientHello,</span></div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment"> see 4.2.1. Denial-of-Service Countermeasures */</span></div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  err = <a class="code" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a>(ctx, peer, session,</div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  <a class="code" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a>,</div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  buf, p - buf, 0);</div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send HelloVerify request\n"</span>);</div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  }</div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  <span class="keywordflow">return</span> err; <span class="comment">/* HelloVerify is sent, now we cannot do anything but wait */</span></div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> </div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="preprocessor">#undef mycookie</span></div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> </div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01611"></a><span class="lineno"><a class="line" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54"> 1611</a></span> <a class="code" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length,</div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **result_r,</div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **result_s)</div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> {</div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data_orig = data;</div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> </div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a>) {</div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"only sha256 is supported in certificate verify\n"</span>);</div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  }</div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a>) {</div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"only ecdsa signature is supported in client verify\n"</span>);</div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  }</div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> </div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data)) {</div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"signature length wrong\n"</span>);</div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  }</div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> </div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 0x30) {</div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"wrong ASN.1 struct, expected SEQUENCE\n"</span>);</div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  }</div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> </div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data)) {</div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"signature length wrong\n"</span>);</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  }</div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> </div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 0x02) {</div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"wrong ASN.1 struct, expected Integer\n"</span>);</div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  }</div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> </div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  <span class="comment">/* Sometimes these values have a leeding 0 byte */</span></div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>  *result_r = data + i - <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> </div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  data += i;</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  data_length -= i;</div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> </div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 0x02) {</div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"wrong ASN.1 struct, expected Integer\n"</span>);</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  }</div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> </div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  <span class="comment">/* Sometimes these values have a leeding 0 byte */</span></div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  *result_s = data + i - <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> </div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  data += i;</div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  data_length -= i;</div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> </div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <span class="keywordflow">return</span> data - data_orig;</div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> }</div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> </div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01691"></a><span class="lineno"><a class="line" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02"> 1691</a></span> <a class="code" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">check_client_certificate_verify</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> {</div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  <span class="keywordtype">int</span> ret;</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r;</div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s;</div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> hs_hash;</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sha256hash[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> </div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  assert(<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>));</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> </div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> </div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">DTLS_CV_LENGTH</a>) {</div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the packet length does not match the expected\n"</span>);</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  }</div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> </div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  ret = <a class="code" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a>(data, data_length, &result_r, &result_s);</div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  }</div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  data += ret;</div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  data_length -= ret;</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> </div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <a class="code" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a>(peer, &hs_hash);</div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> </div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(sha256hash, &hs_hash);</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> </div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  ret = <a class="code" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x, config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y,</div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x),</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  sha256hash, <span class="keyword">sizeof</span>(sha256hash),</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  result_r, result_s);</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> </div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"wrong signature err: %i\n"</span>, ret);</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  }</div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> }</div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01736"></a><span class="lineno"><a class="line" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9"> 1736</a></span> <a class="code" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls_send_server_hello</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> {</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  <span class="comment">/* Ensure that the largest message to create fits in our source</span></div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="comment"> * buffer. (The size of the destination buffer is checked by the</span></div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment"> * encoding function, so we do not need to guess.) */</span></div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">DTLS_SH_LENGTH</a> + 2 + 5 + 5 + 8 + 6];</div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <span class="keywordtype">int</span> ecdsa;</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> extension_size;</div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> </div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  ecdsa = <a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>);</div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> </div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  extension_size = (ecdsa) ? 2 + 5 + 5 + 6 : 0;</div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> </div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  <span class="comment">/* Handshake header */</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  p = buf;</div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> </div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  <span class="comment">/* ServerHello */</span></div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>);</div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> </div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>  <span class="comment">/* Set server random: First 4 bytes are the server's Unix timestamp,</span></div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="comment"> * followed by 28 bytes of generate random data. */</span></div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, now / <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>);</div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>  <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server + 4, 28);</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> </div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>  memcpy(p, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>  p += <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> </div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>  *p++ = 0; <span class="comment">/* no session id */</span></div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  <span class="keywordflow">if</span> (handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a> != <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>) {</div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>  <span class="comment">/* selected cipher suite */</span></div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>);</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> </div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>  <span class="comment">/* selected compression method */</span></div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  *p++ = <a class="code" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a>[handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a>];</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>  }</div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> </div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>  <span class="keywordflow">if</span> (extension_size) {</div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <span class="comment">/* length of the extensions */</span></div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, extension_size - 2);</div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>  }</div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> </div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>  <span class="keywordflow">if</span> (ecdsa) {</div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  <span class="comment">/* client certificate type extension */</span></div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">TLS_EXT_CLIENT_CERTIFICATE_TYPE</a>);</div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 1);</div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> </div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>);</div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> </div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>  <span class="comment">/* client certificate type extension */</span></div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">TLS_EXT_SERVER_CERTIFICATE_TYPE</a>);</div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> </div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 1);</div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> </div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>);</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> </div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <span class="comment">/* ec_point_formats */</span></div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a5d17863db920927ef8160547541b58e3">TLS_EXT_EC_POINT_FORMATS</a>);</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> </div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> </div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  <span class="comment">/* number of supported formats */</span></div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> </div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</a>);</div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  }</div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> </div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> </div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  <span class="comment">/* TODO use the same record sequence number as in the ClientHello,</span></div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="comment"> see 4.2.1. Denial-of-Service Countermeasures */</span></div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">DTLS_HT_SERVER_HELLO</a>,</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>  buf, p - buf);</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> }</div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01834"></a><span class="lineno"><a class="line" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220"> 1834</a></span> <a class="code" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>  <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> {</div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">DTLS_CE_LENGTH</a>];</div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> </div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  <span class="comment">/* Certificate </span></div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> <span class="comment"> * Start message construction at beginning of buffer. */</span></div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>  p = buf;</div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> </div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(p, 94); <span class="comment">/* certificates length */</span></div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> </div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>  <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(p, 91); <span class="comment">/* length of this certificate */</span></div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>  </div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>  memcpy(p, &<a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>, <span class="keyword">sizeof</span>(<a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>));</div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>);</div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> </div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  memcpy(p, key-><a class="code" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">pub_key_x</a>, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> </div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  memcpy(p, key-><a class="code" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">pub_key_y</a>, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> </div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> </div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">DTLS_HT_CERTIFICATE</a>,</div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  buf, p - buf);</div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> }</div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> </div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="keyword">static</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *</div>
-<div class="line"><a name="l01867"></a><span class="lineno"><a class="line" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d"> 1867</a></span> <a class="code" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p, uint32_t *point_r, uint32_t *point_s)</div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> {</div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>  <span class="keywordtype">int</span> len_r;</div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  <span class="keywordtype">int</span> len_s;</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> </div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span> <span class="preprocessor">#define R_KEY_OFFSET (1 + 1 + 2 + 1 + 1 + 1 + 1)</span></div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="preprocessor"></span><span class="preprocessor">#define S_KEY_OFFSET(len_s) (R_KEY_OFFSET + (len_s) + 1 + 1)</span></div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="preprocessor"></span> <span class="comment">/* store the pointer to the r component of the signature and make space */</span></div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  len_r = <a class="code" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a>(point_r, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>, p + <a class="code" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a>);</div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  len_s = <a class="code" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a>(point_s, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>, p + <a class="code" href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">S_KEY_OFFSET</a>(len_r));</div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> </div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="preprocessor">#undef R_KEY_OFFSET</span></div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> <span class="preprocessor"></span><span class="preprocessor">#undef S_KEY_OFFSET</span></div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  <span class="comment">/* sha256 */</span></div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a>);</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> </div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>  <span class="comment">/* ecdsa */</span></div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a>);</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> </div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>  <span class="comment">/* length of signature */</span></div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, len_r + len_s + 2 + 2 + 2);</div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> </div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>  <span class="comment">/* ASN.1 SEQUENCE */</span></div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 0x30);</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> </div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, len_r + len_s + 2 + 2);</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>  <span class="comment">/* ASN.1 Integer r */</span></div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 0x02);</div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> </div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, len_r);</div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> </div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>  <span class="comment">/* the pint r was added here */</span></div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>  p += len_r;</div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> </div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>  <span class="comment">/* ASN.1 Integer s */</span></div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 0x02);</div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> </div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, len_s);</div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> </div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>  <span class="comment">/* the pint s was added here */</span></div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>  p += len_s;</div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>  <span class="keywordflow">return</span> p;</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> }</div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> </div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01924"></a><span class="lineno"><a class="line" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15"> 1924</a></span> <a class="code" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls_send_server_key_exchange_ecdh</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>  <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> {</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>  <span class="comment">/* The ASN.1 Integer representation of an 32 byte unsigned int could be</span></div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment"> * 33 bytes long add space for that */</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">DTLS_SKEXEC_LENGTH</a> + 2];</div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *key_params;</div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *ephemeral_pub_x;</div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *ephemeral_pub_y;</div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>  uint32_t point_r[9];</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>  uint32_t point_s[9];</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> </div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>  <span class="comment">/* ServerKeyExchange </span></div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment"> * Start message construction at beginning of buffer. */</span></div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>  p = buf;</div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> </div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  key_params = p;</div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>  <span class="comment">/* ECCurveType curve_type: named_curve */</span></div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 3);</div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> </div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>  <span class="comment">/* NamedCurve namedcurve: secp256r1 */</span></div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a>);</div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> </div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1 + 2 * <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> </div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>  <span class="comment">/* This should be an uncompressed point, but I do not have access to the spec. */</span></div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 4);</div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> </div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>  <span class="comment">/* store the pointer to the x component of the pub key and make space */</span></div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>  ephemeral_pub_x = p;</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> </div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  <span class="comment">/* store the pointer to the y component of the pub key and make space */</span></div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  ephemeral_pub_y = p;</div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> </div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  <a class="code" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.own_eph_priv,</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  ephemeral_pub_x, ephemeral_pub_y,</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> </div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  <span class="comment">/* sign the ephemeral and its paramaters */</span></div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  <a class="code" href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a>(key-><a class="code" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">priv_key</a>, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>,</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  key_params, p - key_params,</div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>  point_r, point_s);</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> </div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>  p = <a class="code" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a>(p, point_r, point_s);</div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> </div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> </div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a>,</div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>  buf, p - buf);</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> }</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l01989"></a><span class="lineno"><a class="line" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3"> 1989</a></span> <a class="code" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls_send_server_key_exchange_psk</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *psk_hint, <span class="keywordtype">size_t</span> len)</div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> {</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">DTLS_SKEXECPSK_LENGTH_MAX</a>];</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> </div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>  p = buf;</div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> </div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>  assert(len <= <a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>);</div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>  <span class="keywordflow">if</span> (len > <a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>) {</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>  <span class="comment">/* should never happen */</span></div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"psk identity hint is too long\n"</span>);</div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  }</div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> </div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, len);</div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> </div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>  memcpy(p, psk_hint, len);</div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>  p += len;</div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> </div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> </div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a>,</div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>  buf, p - buf);</div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> }</div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3"> 2019</a></span> <a class="code" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls_send_server_certificate_request</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> {</div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[8];</div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> </div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>  <span class="comment">/* ServerHelloDone </span></div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="comment"> * Start message construction at beginning of buffer. */</span></div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>  p = buf;</div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> </div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>  <span class="comment">/* certificate_types */</span></div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> </div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>  <span class="comment">/* ecdsa_sign */</span></div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#aaace8dce4341d910140609a96bb300db">TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</a>);</div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> </div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>  <span class="comment">/* supported_signature_algorithms */</span></div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> </div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>  <span class="comment">/* sha256 */</span></div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a>);</div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> </div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>  <span class="comment">/* ecdsa */</span></div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a>);</div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> </div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  <span class="comment">/* certificate_authoritiess */</span></div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 0);</div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> </div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> </div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">DTLS_HT_CERTIFICATE_REQUEST</a>,</div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>  buf, p - buf);</div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> }</div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"><a class="line" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21"> 2061</a></span> <a class="code" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls_send_server_hello_done</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> {</div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> </div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>  <span class="comment">/* ServerHelloDone </span></div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment"> * Start message construction at beginning of buffer. */</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> </div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">DTLS_HT_SERVER_HELLO_DONE</a>,</div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>  NULL, 0);</div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> }</div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> </div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02073"></a><span class="lineno"><a class="line" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772"> 2073</a></span> <a class="code" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls_send_server_hello_msgs</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> {</div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> </div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>  res = <a class="code" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls_send_server_hello</a>(ctx, peer);</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> </div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare ServerHello record\n"</span>);</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  }</div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> </div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *ecdsa_key;</div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> </div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  res = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, get_ecdsa_key, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, &ecdsa_key);</div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"no ecdsa certificate to send in certificate\n"</span>);</div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>  }</div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> </div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>  res = <a class="code" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a>(ctx, peer, ecdsa_key);</div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> </div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare Certificate record\n"</span>);</div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>  }</div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> </div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>  res = <a class="code" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls_send_server_key_exchange_ecdh</a>(ctx, peer, ecdsa_key);</div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> </div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare Server Key Exchange record\n"</span>);</div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>  }</div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> </div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) &&</div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>  <a class="code" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a>(ctx)) {</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>  res = <a class="code" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls_send_server_certificate_request</a>(ctx, peer);</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> </div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare certificate Request record\n"</span>);</div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>  }</div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>  }</div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>  }</div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> psk_hint[<a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>];</div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> </div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>  <span class="comment">/* The identity hint is optional, therefore we ignore the result</span></div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="comment"> * and check psk only. */</span></div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>  len = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, get_psk_info, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">DTLS_PSK_HINT</a>,</div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>  NULL, 0, psk_hint, <a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>);</div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> </div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>  <span class="keywordflow">if</span> (len < 0) {</div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot create ServerKeyExchange\n"</span>);</div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>  }</div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> </div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>  <span class="keywordflow">if</span> (len > 0) {</div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>  res = <a class="code" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls_send_server_key_exchange_psk</a>(ctx, peer, psk_hint, (<span class="keywordtype">size_t</span>)len);</div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> </div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_key_exchange_psk: cannot send server key exchange record\n"</span>);</div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>  }</div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>  }</div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>  }</div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>  res = <a class="code" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls_send_server_hello_done</a>(ctx, peer);</div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> </div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare ServerHelloDone record\n"</span>);</div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>  }</div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> }</div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> </div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l02156"></a><span class="lineno"><a class="line" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5"> 2156</a></span> <a class="code" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[1] = {1};</div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> </div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a>(ctx, peer, <a class="code" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a>, buf, 1);</div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> }</div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> </div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>  </div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02164"></a><span class="lineno"><a class="line" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d"> 2164</a></span> <a class="code" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls_send_client_key_exchange</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> {</div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a>];</div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> </div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>  p = buf;</div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> </div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>  <span class="keywordflow">switch</span> (handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) {</div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a>: {</div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>  <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> </div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>  len = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, get_psk_info, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a>,</div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length,</div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>  buf + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>),</div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>  <a class="code" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a>(<span class="keyword">sizeof</span>(buf) - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>),</div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>  <span class="keyword">sizeof</span>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity)));</div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>  <span class="keywordflow">if</span> (len < 0) {</div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"no psk identity set in kx\n"</span>);</div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>  }</div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> </div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>  <span class="keywordflow">if</span> (len + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>) > <a class="code" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a>) {</div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>  memset(&handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk, 0, <span class="keyword">sizeof</span>(<a class="code" href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a>));</div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the psk identity is too long\n"</span>);</div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>  }</div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length = (<span class="keywordtype">unsigned</span> int)len;</div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity, p + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>), len);</div>
-<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> </div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length);</div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> </div>
-<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>  memcpy(p, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length);</div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>  p += handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length;</div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> </div>
-<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>  }</div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a>: {</div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *ephemeral_pub_x;</div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *ephemeral_pub_y;</div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> </div>
-<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1 + 2 * <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> </div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>  <span class="comment">/* This should be an uncompressed point, but I do not have access to the spec. */</span></div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 4);</div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>  ephemeral_pub_x = p;</div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>  ephemeral_pub_y = p;</div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>  p += <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>;</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> </div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>  <a class="code" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.own_eph_priv,</div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>  ephemeral_pub_x, ephemeral_pub_y,</div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>  <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>);</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> </div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>  }</div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> <span class="preprocessor"></span> <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"cipher not supported\n"</span>);</div>
-<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>  }</div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> </div>
-<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> </div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">DTLS_HT_CLIENT_KEY_EXCHANGE</a>,</div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>  buf, p - buf);</div>
-<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> }</div>
-<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> </div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02241"></a><span class="lineno"><a class="line" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34"> 2241</a></span> <a class="code" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls_send_certificate_verify_ecdh</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>  <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> {</div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>  <span class="comment">/* The ASN.1 Integer representation of an 32 byte unsigned int could be</span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="comment"> * 33 bytes long add space for that */</span></div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">DTLS_CV_LENGTH</a> + 2];</div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p;</div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>  uint32_t point_r[9];</div>
-<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>  uint32_t point_s[9];</div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> hs_hash;</div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sha256hash[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> </div>
-<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>  <span class="comment">/* ServerKeyExchange </span></div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="comment"> * Start message construction at beginning of buffer. */</span></div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>  p = buf;</div>
-<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> </div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>  <a class="code" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a>(peer, &hs_hash);</div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> </div>
-<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>  <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(sha256hash, &hs_hash);</div>
-<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> </div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>  <span class="comment">/* sign the ephemeral and its paramaters */</span></div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>  <a class="code" href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a>(key-><a class="code" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">priv_key</a>, <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>,</div>
-<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>  sha256hash, <span class="keyword">sizeof</span>(sha256hash),</div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>  point_r, point_s);</div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> </div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>  p = <a class="code" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a>(p, point_r, point_s);</div>
-<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> </div>
-<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> </div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">DTLS_HT_CERTIFICATE_VERIFY</a>,</div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>  buf, p - buf);</div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> }</div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02277"></a><span class="lineno"><a class="line" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67"> 2277</a></span> <a class="code" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *label, <span class="keywordtype">size_t</span> labellen)</div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> {</div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>  <span class="keywordtype">int</span> length;</div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> hash[<a class="code" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a>];</div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>];</div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> hs_hash;</div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p = buf;</div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> </div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>  <a class="code" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a>(peer, &hs_hash);</div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> </div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>  length = <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(hash, &hs_hash);</div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> </div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>  <a class="code" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">master_secret</a>,</div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>  <a class="code" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>,</div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>  label, labellen,</div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>  <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(finished), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(finished), </div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>  hash, length,</div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>  p, <a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>);</div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> </div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"server finished MAC"</span>, p, <a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>);</div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> </div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>  p += <a class="code" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>;</div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> </div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> </div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a>(ctx, peer, <a class="code" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">DTLS_HT_FINISHED</a>,</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>  buf, p - buf);</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> }</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> </div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02308"></a><span class="lineno"><a class="line" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476"> 2308</a></span> <a class="code" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> cookie[], <span class="keywordtype">size_t</span> cookie_length) {</div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">DTLS_CH_LENGTH_MAX</a>];</div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p = buf;</div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>  uint8_t cipher_size;</div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>  uint8_t extension_size;</div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>  <span class="keywordtype">int</span> psk;</div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>  <span class="keywordtype">int</span> ecdsa;</div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> </div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>  psk = <a class="code" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a>(ctx);</div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>  ecdsa = <a class="code" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a>(ctx, 1);</div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> </div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>  cipher_size = 2 + ((ecdsa) ? 2 : 0) + ((psk) ? 2 : 0);</div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>  extension_size = (ecdsa) ? 2 + 6 + 6 + 8 + 6: 0;</div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> </div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>  <span class="keywordflow">if</span> (cipher_size == 0) {</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"no cipher callbacks implemented\n"</span>);</div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>  }</div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> </div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>);</div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> </div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>  <span class="keywordflow">if</span> (cookie_length > <a class="code" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a>) {</div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the cookie is too long\n"</span>);</div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>  }</div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> </div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>  <span class="keywordflow">if</span> (cookie_length == 0) {</div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>  <span class="comment">/* Set client random: First 4 bytes are the client's Unix timestamp,</span></div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="comment"> * followed by 28 bytes of generate random data. */</span></div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>  <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, now / <a class="code" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>);</div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>  <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client + <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a>),</div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>  <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a> - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a>));</div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>  }</div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>  <span class="comment">/* we must use the same Client Random as for the previous request */</span></div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>  memcpy(p, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>  p += <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> </div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>  <span class="comment">/* session id (length 0) */</span></div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 0);</div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> </div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>  <span class="comment">/* cookie */</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, cookie_length);</div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>  <span class="keywordflow">if</span> (cookie_length != 0) {</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>  memcpy(p, cookie, cookie_length);</div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>  p += cookie_length;</div>
-<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>  }</div>
-<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> </div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>  <span class="comment">/* add known cipher(s) */</span></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, cipher_size - 2);</div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> </div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>  <span class="keywordflow">if</span> (ecdsa) {</div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a>);</div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>  }</div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>  <span class="keywordflow">if</span> (psk) {</div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a>);</div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>  }</div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> </div>
-<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>  <span class="comment">/* compression method */</span></div>
-<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> </div>
-<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a>);</div>
-<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> </div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>  <span class="keywordflow">if</span> (extension_size) {</div>
-<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>  <span class="comment">/* length of the extensions */</span></div>
-<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, extension_size - 2);</div>
-<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>  }</div>
-<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span> </div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>  <span class="keywordflow">if</span> (ecdsa) {</div>
-<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>  <span class="comment">/* client certificate type extension */</span></div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">TLS_EXT_CLIENT_CERTIFICATE_TYPE</a>);</div>
-<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> </div>
-<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> </div>
-<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>  <span class="comment">/* length of the list */</span></div>
-<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span> </div>
-<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>);</div>
-<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span> </div>
-<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>  <span class="comment">/* client certificate type extension */</span></div>
-<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">TLS_EXT_SERVER_CERTIFICATE_TYPE</a>);</div>
-<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span> </div>
-<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span> </div>
-<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>  <span class="comment">/* length of the list */</span></div>
-<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> </div>
-<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>);</div>
-<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span> </div>
-<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>  <span class="comment">/* elliptic_curves */</span></div>
-<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a7e080d630a40510f655bf6982c555063">TLS_EXT_ELLIPTIC_CURVES</a>);</div>
-<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span> </div>
-<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 4);</div>
-<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span> </div>
-<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>  <span class="comment">/* length of the list */</span></div>
-<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span> </div>
-<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a>);</div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span> </div>
-<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>  <span class="comment">/* ec_point_formats */</span></div>
-<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, <a class="code" href="global_8h.html#a5d17863db920927ef8160547541b58e3">TLS_EXT_EC_POINT_FORMATS</a>);</div>
-<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span> </div>
-<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>  <span class="comment">/* length of this extension type */</span></div>
-<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(p, 2);</div>
-<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span> </div>
-<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>  <span class="comment">/* number of supported formats */</span></div>
-<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, 1);</div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span> </div>
-<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>  <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(p, <a class="code" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</a>);</div>
-<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>  p += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>  }</div>
-<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span> </div>
-<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>  assert(p - buf <= <span class="keyword">sizeof</span>(buf));</div>
-<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span> </div>
-<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>  <span class="keywordflow">if</span> (cookie_length != 0)</div>
-<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>  <a class="code" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a>(peer);</div>
-<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span> </div>
-<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a>(ctx, peer, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>,</div>
-<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>  <a class="code" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a>,</div>
-<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>  buf, p - buf, cookie_length != 0);</div>
-<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span> }</div>
-<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span> </div>
-<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02460"></a><span class="lineno"><a class="line" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26"> 2460</a></span> <a class="code" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">check_server_hello</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span> {</div>
-<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span> </div>
-<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>  <span class="comment">/* This function is called when we expect a ServerHello (i.e. we</span></div>
-<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span> <span class="comment"> * have sent a ClientHello). We might instead receive a HelloVerify</span></div>
-<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span> <span class="comment"> * request containing a cookie. If so, we must repeat the</span></div>
-<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span> <span class="comment"> * ClientHello with the given Cookie.</span></div>
-<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>)</div>
-<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span> </div>
-<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span> </div>
-<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>  <span class="comment">/* FIXME: check data_length before accessing fields */</span></div>
-<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span> </div>
-<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>  <span class="comment">/* Get the server's random data and store selected cipher suite</span></div>
-<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span> <span class="comment"> * and compression method (like dtls_update_parameters().</span></div>
-<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span> <span class="comment"> * Then calculate master secret and wait for ServerHelloDone. When received,</span></div>
-<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span> <span class="comment"> * send ClientKeyExchange (?) and ChangeCipherSpec + ClientFinished. */</span></div>
-<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>  </div>
-<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>  <span class="comment">/* check server version */</span></div>
-<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>  data_length -= <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>  </div>
-<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data) != <a class="code" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>) {</div>
-<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"unknown DTLS version\n"</span>);</div>
-<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a>);</div>
-<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>  }</div>
-<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> </div>
-<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>); <span class="comment">/* skip version field */</span></div>
-<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span> </div>
-<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>  <span class="comment">/* store server random data */</span></div>
-<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>  memcpy(handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, data, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>);</div>
-<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>  <span class="comment">/* skip server random */</span></div>
-<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>  data += <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>  data_length -= <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>;</div>
-<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span> </div>
-<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>  <a class="code" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(data, data_length, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>); <span class="comment">/* skip session id */</span></div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>  </div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>  <span class="comment">/* Check cipher suite. As we offer all we have, it is sufficient</span></div>
-<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span> <span class="comment"> * to check if the cipher suite selected by the server is in our</span></div>
-<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span> <span class="comment"> * list of known cipher suites. Subsets are not supported. */</span></div>
-<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>  handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a> = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>  <span class="keywordflow">if</span> (!<a class="code" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a>(ctx, handshake-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>, 1)) {</div>
-<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"unsupported cipher 0x%02x 0x%02x\n"</span>,</div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>  data[0], data[1]);</div>
-<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a>);</div>
-<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>  }</div>
-<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span> </div>
-<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>  <span class="comment">/* Check if NULL compression was selected. We do not know any other. */</span></div>
-<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a>) {</div>
-<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"unsupported compression method 0x%02x\n"</span>, data[0]);</div>
-<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a>);</div>
-<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>  }</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span> </div>
-<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a>(peer, data, data_length, 0);</div>
-<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span> </div>
-<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span> error:</div>
-<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span> }</div>
-<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span> </div>
-<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02530"></a><span class="lineno"><a class="line" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642"> 2530</a></span> <a class="code" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">check_server_hello_verify_request</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span> {</div>
-<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>  <a class="code" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a> *hv;</div>
-<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> </div>
-<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>)</div>
-<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span> </div>
-<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>  hv = (<a class="code" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a> *)(data + <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>);</div>
-<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span> </div>
-<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>  res = <a class="code" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a>(ctx, peer, hv->cookie, hv->cookie_length);</div>
-<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span> </div>
-<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>  <span class="keywordflow">if</span> (res < 0)</div>
-<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send ClientHello\n"</span>);</div>
-<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span> </div>
-<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span> }</div>
-<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span> </div>
-<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7"> 2552</a></span> <a class="code" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">check_server_certificate</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span> {</div>
-<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span> </div>
-<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span> </div>
-<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>  assert(<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>));</div>
-<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span> </div>
-<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span> </div>
-<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>(data) != 94) {</div>
-<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expect length of 94 bytes for server certificate message\n"</span>);</div>
-<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>  }</div>
-<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span> </div>
-<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>(data) != 91) {</div>
-<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expect length of 91 bytes for certificate\n"</span>);</div>
-<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>  }</div>
-<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>);</div>
-<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span> </div>
-<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>  <span class="keywordflow">if</span> (memcmp(data, <a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>, <span class="keyword">sizeof</span>(<a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>))) {</div>
-<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"got an unexpected Subject public key format\n"</span>);</div>
-<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>  }</div>
-<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a>);</div>
-<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span> </div>
-<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x, data,</div>
-<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>  <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x));</div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>  data += <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x);</div>
-<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span> </div>
-<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y, data,</div>
-<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>  <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y));</div>
-<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>  data += <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y);</div>
-<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span> </div>
-<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>  err = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, verify_ecdsa_key, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>,</div>
-<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x,</div>
-<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y,</div>
-<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>  <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x));</div>
-<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"The certificate was not accepted\n"</span>);</div>
-<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>  }</div>
-<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span> </div>
-<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span> }</div>
-<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span> </div>
-<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02604"></a><span class="lineno"><a class="line" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb"> 2604</a></span> <a class="code" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">check_server_key_exchange_ecdsa</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span> {</div>
-<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>  <span class="keywordtype">int</span> ret;</div>
-<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_r;</div>
-<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result_s;</div>
-<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key_params;</div>
-<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span> </div>
-<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span> </div>
-<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>  assert(<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>));</div>
-<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span> </div>
-<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span> </div>
-<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">DTLS_SKEXEC_LENGTH</a>) {</div>
-<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the packet length does not match the expected\n"</span>);</div>
-<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>  }</div>
-<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>  key_params = data;</div>
-<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span> </div>
-<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != <a class="code" href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6">TLS_EC_CURVE_TYPE_NAMED_CURVE</a>) {</div>
-<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"Only named curves supported\n"</span>);</div>
-<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>  }</div>
-<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span> </div>
-<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data) != <a class="code" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a>) {</div>
-<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"secp256r1 supported\n"</span>);</div>
-<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>  }</div>
-<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span> </div>
-<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 1 + 2 * <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>) {</div>
-<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expected 65 bytes long public point\n"</span>);</div>
-<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>  }</div>
-<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span> </div>
-<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) != 4) {</div>
-<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"expected uncompressed public point\n"</span>);</div>
-<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>  }</div>
-<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>  data_length -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span> </div>
-<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_x, data, <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y));</div>
-<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>  data += <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y);</div>
-<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>  data_length -= <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y);</div>
-<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span> </div>
-<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y, data, <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y));</div>
-<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>  data += <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y);</div>
-<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>  data_length -= <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_eph_pub_y);</div>
-<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span> </div>
-<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>  ret = <a class="code" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a>(data, data_length, &result_r, &result_s);</div>
-<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>  <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>  }</div>
-<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>  data += ret;</div>
-<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>  data_length -= ret;</div>
-<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span> </div>
-<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>  ret = <a class="code" href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x, config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_y,</div>
-<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>  <span class="keyword">sizeof</span>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.ecdsa.other_pub_x),</div>
-<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.client, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a>.<a class="code" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a>.server, <a class="code" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>,</div>
-<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>  key_params,</div>
-<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>  1 + 2 + 1 + 1 + (2 * <a class="code" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>),</div>
-<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>  result_r, result_s);</div>
-<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span> </div>
-<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>  <span class="keywordflow">if</span> (ret < 0) {</div>
-<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"wrong signature\n"</span>);</div>
-<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>  }</div>
-<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span> }</div>
-<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02687"></a><span class="lineno"><a class="line" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054"> 2687</a></span> <a class="code" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">check_server_key_exchange_psk</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span> {</div>
-<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *config = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>  uint16_t len;</div>
-<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span> </div>
-<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span> </div>
-<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>  assert(<a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(config-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>));</div>
-<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span> </div>
-<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span> </div>
-<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + <a class="code" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">DTLS_SKEXECPSK_LENGTH_MIN</a>) {</div>
-<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the packet length does not match the expected\n"</span>);</div>
-<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>  }</div>
-<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span> </div>
-<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>  len = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span> </div>
-<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>  <span class="keywordflow">if</span> (len != data_length - <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> - <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)) {</div>
-<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the length of the server identity hint is worng\n"</span>);</div>
-<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>  }</div>
-<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span> </div>
-<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>  <span class="keywordflow">if</span> (len > <a class="code" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>) {</div>
-<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"please use a smaller server identity hint\n"</span>);</div>
-<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>  }</div>
-<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span> </div>
-<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>  <span class="comment">/* store the psk_identity_hint in config->keyx.psk for later use */</span></div>
-<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>  config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.id_length = len;</div>
-<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>  memcpy(config-><a class="code" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a>.psk.identity, data, len);</div>
-<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span> }</div>
-<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02726"></a><span class="lineno"><a class="line" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e"> 2726</a></span> <a class="code" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">check_certificate_request</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span> {</div>
-<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>  <span class="keywordtype">int</span> auth_alg;</div>
-<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>  <span class="keywordtype">int</span> sig_alg;</div>
-<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>  <span class="keywordtype">int</span> hash_alg;</div>
-<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span> </div>
-<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span> </div>
-<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>  assert(<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>));</div>
-<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span> </div>
-<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>  data += <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>;</div>
-<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span> </div>
-<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a> + 5) {</div>
-<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the packet length does not match the expected\n"</span>);</div>
-<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>  }</div>
-<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span> </div>
-<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>  i = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>  <span class="keywordflow">if</span> (i + 1 > data_length) {</div>
-<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the cerfificate types are too long\n"</span>);</div>
-<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>  }</div>
-<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span> </div>
-<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>  auth_alg = 0;</div>
-<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>  <span class="keywordflow">for</span> (; i > 0 ; i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>)) {</div>
-<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data) == <a class="code" href="global_8h.html#aaace8dce4341d910140609a96bb300db">TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</a></div>
-<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>  && auth_alg == 0)</div>
-<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>  auth_alg = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>  }</div>
-<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span> </div>
-<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>  <span class="keywordflow">if</span> (auth_alg != <a class="code" href="global_8h.html#aaace8dce4341d910140609a96bb300db">TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</a>) {</div>
-<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the request authentication algorithm is not supproted\n"</span>);</div>
-<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>  }</div>
-<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span> </div>
-<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>  i = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(data);</div>
-<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>);</div>
-<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>  <span class="keywordflow">if</span> (i + 1 > data_length) {</div>
-<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"the signature and hash algorithm list is too long\n"</span>);</div>
-<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>  }</div>
-<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span> </div>
-<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>  hash_alg = 0;</div>
-<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>  sig_alg = 0;</div>
-<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>  <span class="keywordflow">for</span> (; i > 0 ; i -= <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>)) {</div>
-<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>  <span class="keywordtype">int</span> current_hash_alg;</div>
-<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>  <span class="keywordtype">int</span> current_sig_alg;</div>
-<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span> </div>
-<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>  current_hash_alg = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>  current_sig_alg = <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(data);</div>
-<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>  data += <span class="keyword">sizeof</span>(<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>);</div>
-<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span> </div>
-<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>  <span class="keywordflow">if</span> (current_hash_alg == <a class="code" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a> && hash_alg == 0 && </div>
-<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>  current_sig_alg == <a class="code" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a> && sig_alg == 0) {</div>
-<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>  hash_alg = current_hash_alg;</div>
-<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>  sig_alg = current_sig_alg;</div>
-<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>  }</div>
-<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>  }</div>
-<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span> </div>
-<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>  <span class="keywordflow">if</span> (hash_alg != <a class="code" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a> ||</div>
-<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>  sig_alg != <a class="code" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a>) {</div>
-<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"no supported hash and signature algorithem\n"</span>);</div>
-<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>  }</div>
-<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span> </div>
-<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>  <span class="comment">/* common names are ignored */</span></div>
-<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span> </div>
-<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">do_client_auth</a> = 1;</div>
-<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span> }</div>
-<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span> </div>
-<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02804"></a><span class="lineno"><a class="line" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928"> 2804</a></span> <a class="code" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">check_server_hellodone</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span> {</div>
-<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span> <span class="preprocessor"></span> <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *ecdsa_key;</div>
-<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span> </div>
-<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>  <span class="comment">/* calculate master key, send CCS */</span></div>
-<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span> </div>
-<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span> </div>
-<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">do_client_auth</a>) {</div>
-<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span> </div>
-<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>  res = <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, get_ecdsa_key, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, &ecdsa_key);</div>
-<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"no ecdsa certificate to send in certificate\n"</span>);</div>
-<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>  }</div>
-<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span> </div>
-<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>  res = <a class="code" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a>(ctx, peer, ecdsa_key);</div>
-<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span> </div>
-<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare Certificate record\n"</span>);</div>
-<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>  }</div>
-<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>  }</div>
-<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>  <span class="comment">/* send ClientKeyExchange */</span></div>
-<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>  res = <a class="code" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls_send_client_key_exchange</a>(ctx, peer);</div>
-<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span> </div>
-<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"cannot send KeyExchange message\n"</span>);</div>
-<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>  }</div>
-<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span> </div>
-<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (handshake-><a class="code" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">do_client_auth</a>) {</div>
-<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span> </div>
-<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>  res = <a class="code" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls_send_certificate_verify_ecdh</a>(ctx, peer, ecdsa_key);</div>
-<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span> </div>
-<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_server_hello: cannot prepare Certificate record\n"</span>);</div>
-<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>  }</div>
-<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>  }</div>
-<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>  res = <a class="code" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a>(ctx, handshake, peer,</div>
-<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>  &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>);</div>
-<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>  }</div>
-<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span> </div>
-<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>  res = <a class="code" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a>(ctx, peer);</div>
-<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"cannot send CCS message\n"</span>);</div>
-<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>  }</div>
-<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span> </div>
-<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>  <span class="comment">/* and switch cipher suite */</span></div>
-<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>  <a class="code" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a>(peer);</div>
-<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span> </div>
-<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>  <span class="comment">/* Client Finished */</span></div>
-<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a>(ctx, peer, <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(client), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(client));</div>
-<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span> }</div>
-<div class="line"><a name="l02875"></a><span class="lineno"> 2875</span> </div>
-<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02877"></a><span class="lineno"><a class="line" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71"> 2877</a></span> <a class="code" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">decrypt_verify</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *packet, <span class="keywordtype">size_t</span> length,</div>
-<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cleartext)</div>
-<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span> {</div>
-<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>  <a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a> *header = <a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(packet);</div>
-<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security = <a class="code" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a>(peer, <a class="code" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls_get_epoch</a>(header));</div>
-<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>  <span class="keywordtype">int</span> clen;</div>
-<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>  </div>
-<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>  *cleartext = (<a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *)packet + <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>);</div>
-<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>  clen = length - <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>);</div>
-<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span> </div>
-<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>  <span class="keywordflow">if</span> (!security) {</div>
-<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"No security context for epoch: %i\n"</span>, <a class="code" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls_get_epoch</a>(header));</div>
-<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>  }</div>
-<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span> </div>
-<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>  <span class="keywordflow">if</span> (security-><a class="code" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a> == <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a>) {</div>
-<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>  <span class="comment">/* no cipher suite selected */</span></div>
-<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>  <span class="keywordflow">return</span> clen;</div>
-<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>  } <span class="keywordflow">else</span> { <span class="comment">/* TLS_PSK_WITH_AES_128_CCM_8 or TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 */</span></div>
-<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span> <span class="preprocessor">#define A_DATA_LEN 13</span></div>
-<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span> <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nonce[<a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>];</div>
-<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> A_DATA[<a class="code" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>];</div>
-<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span> </div>
-<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>  <span class="keywordflow">if</span> (clen < 16) <span class="comment">/* need at least IV and MAC */</span></div>
-<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span> </div>
-<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>  memset(nonce, 0, <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>);</div>
-<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>  memcpy(nonce, <a class="code" href="crypto_8h.html#a7119d3239c34d7e7f219200792339541">dtls_kb_remote_iv</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>  <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>));</div>
-<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span> </div>
-<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>  <span class="comment">/* read epoch and seq_num from message */</span></div>
-<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>  memcpy(nonce + <a class="code" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>), *cleartext, 8);</div>
-<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>  *cleartext += 8;</div>
-<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>  clen -= 8;</div>
-<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span> </div>
-<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"nonce"</span>, nonce, <a class="code" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a>);</div>
-<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"key"</span>, <a class="code" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">dtls_kb_remote_write_key</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>));</div>
-<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"ciphertext"</span>, *cleartext, clen);</div>
-<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span> </div>
-<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>  <span class="comment">/* re-use N to create additional data according to RFC 5246, Section 6.2.3.3:</span></div>
-<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span> <span class="comment"> * additional_data = seq_num + TLSCompressed.type +</span></div>
-<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span> <span class="comment"> * TLSCompressed.version + TLSCompressed.length;</span></div>
-<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>  memcpy(A_DATA, &<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(packet)->epoch, 8); <span class="comment">/* epoch and seq_num */</span></div>
-<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>  memcpy(A_DATA + 8, &<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(packet)->content_type, 3); <span class="comment">/* type and version */</span></div>
-<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>  <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(A_DATA + 11, clen - 8); <span class="comment">/* length without nonce_explicit */</span></div>
-<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span> </div>
-<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>  clen = <a class="code" href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">dtls_decrypt</a>(*cleartext, clen, *cleartext, nonce,</div>
-<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>  <a class="code" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">dtls_kb_remote_write_key</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>  <a class="code" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a>(security, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>),</div>
-<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>  A_DATA, <a class="code" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>);</div>
-<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>  <span class="keywordflow">if</span> (clen < 0)</div>
-<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"decryption failed\n"</span>);</div>
-<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>  <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
-<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span> <span class="preprocessor"></span> printf(<span class="stringliteral">"decrypt_verify(): found %i bytes cleartext\n"</span>, clen);</div>
-<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span> <span class="preprocessor"></span> <a class="code" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">dtls_security_params_free_other</a>(peer);</div>
-<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>  <a class="code" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a>(<span class="stringliteral">"cleartext"</span>, *cleartext, clen);</div>
-<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>  }</div>
-<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>  }</div>
-<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>  <span class="keywordflow">return</span> clen;</div>
-<div class="line"><a name="l02945"></a><span class="lineno"> 2945</span> }</div>
-<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span> </div>
-<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02948"></a><span class="lineno"><a class="line" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad"> 2948</a></span> <a class="code" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls_send_hello_request</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span> {</div>
-<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a>(ctx, peer, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>,</div>
-<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>  <a class="code" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a>,</div>
-<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>  NULL, 0, 0);</div>
-<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span> }</div>
-<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span> </div>
-<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02956"></a><span class="lineno"><a class="line" href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1"> 2956</a></span> <a class="code" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *dst)</div>
-<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span> {</div>
-<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer = NULL;</div>
-<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span> </div>
-<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, dst);</div>
-<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span> </div>
-<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>  }</div>
-<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>)</div>
-<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span> </div>
-<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> = <a class="code" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>();</div>
-<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>)</div>
-<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span> </div>
-<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a> = 0;</div>
-<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a> = 0;</div>
-<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span> </div>
-<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a>) {</div>
-<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>  <span class="comment">/* send ClientHello with empty Cookie */</span></div>
-<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>  err = <a class="code" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a>(ctx, peer, NULL, 0);</div>
-<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>  <span class="keywordflow">if</span> (err < 0)</div>
-<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send ClientHello\n"</span>);</div>
-<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>;</div>
-<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>) {</div>
-<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls_send_hello_request</a>(ctx, peer);</div>
-<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>  }</div>
-<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span> </div>
-<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span> }</div>
-<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span> </div>
-<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l02992"></a><span class="lineno"><a class="line" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d"> 2992</a></span> <a class="code" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>  <span class="keyword">const</span> <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, <span class="keyword">const</span> <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state,</div>
-<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span> </div>
-<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>  <span class="keywordtype">int</span> err = 0;</div>
-<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span> </div>
-<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>  <span class="comment">/* This will clear the retransmission buffer if we get an expected</span></div>
-<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span> <span class="comment"> * handshake message. We have to make sure that no handshake message</span></div>
-<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span> <span class="comment"> * should get expected when we still should retransmit something, when</span></div>
-<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span> <span class="comment"> * we do everything accordingly to the DTLS 1.2 standard this should</span></div>
-<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span> <span class="comment"> * not be a problem. */</span></div>
-<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>  }</div>
-<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span> </div>
-<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>  <span class="comment">/* The following switch construct handles the given message with</span></div>
-<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span> <span class="comment"> * respect to the current internal state for this peer. In case of</span></div>
-<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span> <span class="comment"> * error, it is left with return 0. */</span></div>
-<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span> </div>
-<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"handle handshake packet of type: %s (%i)\n"</span>,</div>
-<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>  <a class="code" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a>(data[0]), data[0]);</div>
-<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>  <span class="keywordflow">switch</span> (data[0]) {</div>
-<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span> </div>
-<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>  <span class="comment">/************************************************************************</span></div>
-<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span> <span class="comment"> * Client states</span></div>
-<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span> <span class="comment"> ************************************************************************/</span></div>
-<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a>:</div>
-<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span> </div>
-<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>) {</div>
-<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>  }</div>
-<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span> </div>
-<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>  err = <a class="code" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">check_server_hello_verify_request</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_server_hello_verify_request err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>  }</div>
-<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span> </div>
-<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">DTLS_HT_SERVER_HELLO</a>:</div>
-<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span> </div>
-<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>) {</div>
-<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>  }</div>
-<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span> </div>
-<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>  err = <a class="code" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">check_server_hello</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_server_hello err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>  }</div>
-<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>))</div>
-<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a>;</div>
-<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>;</div>
-<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>  <span class="comment">/* update_hs_hash(peer, data, data_length); */</span></div>
-<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span> </div>
-<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span> </div>
-<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">DTLS_HT_CERTIFICATE</a>:</div>
-<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span> </div>
-<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>  <span class="keywordflow">if</span> ((role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a> && state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a>) ||</div>
-<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>  (role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> && state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a>)) {</div>
-<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>  }</div>
-<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>  err = <a class="code" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">check_server_certificate</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_server_certificate err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>  }</div>
-<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>  <span class="keywordflow">if</span> (role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a>) {</div>
-<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a>;</div>
-<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>){</div>
-<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a>;</div>
-<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>  }</div>
-<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>  <span class="comment">/* update_hs_hash(peer, data, data_length); */</span></div>
-<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span> </div>
-<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a>:</div>
-<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span> </div>
-<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a>) {</div>
-<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>  }</div>
-<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>  err = <a class="code" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">check_server_key_exchange_ecdsa</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>  }</div>
-<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>)) {</div>
-<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>) {</div>
-<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>  }</div>
-<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>  err = <a class="code" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">check_server_key_exchange_psk</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>  }</div>
-<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_server_key_exchange err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>  }</div>
-<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>;</div>
-<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>  <span class="comment">/* update_hs_hash(peer, data, data_length); */</span></div>
-<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span> </div>
-<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span> </div>
-<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">DTLS_HT_SERVER_HELLO_DONE</a>:</div>
-<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span> </div>
-<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>) {</div>
-<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>  }</div>
-<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span> </div>
-<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>  err = <a class="code" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">check_server_hellodone</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_server_hellodone err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>  }</div>
-<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>;</div>
-<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>  <span class="comment">/* update_hs_hash(peer, data, data_length); */</span></div>
-<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span> </div>
-<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span> </div>
-<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">DTLS_HT_CERTIFICATE_REQUEST</a>:</div>
-<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span> </div>
-<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>) {</div>
-<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>  }</div>
-<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span> </div>
-<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>  err = <a class="code" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">check_certificate_request</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_certificate_request err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>  }</div>
-<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span> </div>
-<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span> </div>
-<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">DTLS_HT_FINISHED</a>:</div>
-<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>  <span class="comment">/* expect a Finished message from server */</span></div>
-<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span> </div>
-<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a>) {</div>
-<div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>  }</div>
-<div class="line"><a name="l03136"></a><span class="lineno"> 3136</span> </div>
-<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>  err = <a class="code" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">check_finished</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_finished err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span>  }</div>
-<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>  <span class="keywordflow">if</span> (role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>) {</div>
-<div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>  <span class="comment">/* send ServerFinished */</span></div>
-<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span> </div>
-<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>  <span class="comment">/* send change cipher spec message and switch to new configuration */</span></div>
-<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>  err = <a class="code" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a>(ctx, peer);</div>
-<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send CCS message\n"</span>);</div>
-<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>  }</div>
-<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span> </div>
-<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>  <a class="code" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a>(peer);</div>
-<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span> </div>
-<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>  err = <a class="code" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a>(ctx, peer, <a class="code" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(server), <a class="code" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(server));</div>
-<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"sending server Finished failed\n"</span>);</div>
-<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>  }</div>
-<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>  }</div>
-<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>  <a class="code" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>);</div>
-<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> = NULL;</div>
-<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"Handshake complete\n"</span>);</div>
-<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>  <a class="code" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a>();</div>
-<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>;</div>
-<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span> </div>
-<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>  <span class="comment">/* return here to not increase the message receive counter */</span></div>
-<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span> </div>
-<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>  <span class="comment">/************************************************************************</span></div>
-<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span> <span class="comment"> * Server states</span></div>
-<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span> <span class="comment"> ************************************************************************/</span></div>
-<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span> </div>
-<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">DTLS_HT_CLIENT_KEY_EXCHANGE</a>:</div>
-<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>  <span class="comment">/* handle ClientHello, update msg and msglen and goto next if not finished */</span></div>
-<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span> </div>
-<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a>) {</div>
-<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>  }</div>
-<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span> </div>
-<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>  err = <a class="code" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">check_client_keyexchange</a>(ctx, peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>, data, data_length);</div>
-<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_client_keyexchange err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>  }</div>
-<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span> </div>
-<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) &&</div>
-<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>  <a class="code" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a>(ctx))</div>
-<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a>;</div>
-<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>;</div>
-<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span> </div>
-<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">DTLS_HT_CERTIFICATE_VERIFY</a>:</div>
-<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span> </div>
-<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a>) {</div>
-<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>  }</div>
-<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span> </div>
-<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>  err = <a class="code" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">check_client_certificate_verify</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in check_client_certificate_verify err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>  }</div>
-<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span> </div>
-<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>;</div>
-<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a>:</div>
-<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span> </div>
-<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>  <span class="keywordflow">if</span> ((peer && state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) ||</div>
-<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>  (!peer && state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a>)) {</div>
-<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>  }</div>
-<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span> </div>
-<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>  <span class="comment">/* When no DTLS state exists for this peer, we only allow a</span></div>
-<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span> <span class="comment"> Client Hello message with</span></div>
-<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span> <span class="comment"></span></div>
-<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span> <span class="comment"> a) a valid cookie, or</span></div>
-<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span> <span class="comment"> b) no cookie.</span></div>
-<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span> <span class="comment"></span></div>
-<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span> <span class="comment"> Anything else will be rejected. Fragementation is not allowed</span></div>
-<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span> <span class="comment"> here as it would require peer state as well.</span></div>
-<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>  err = <a class="code" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls_verify_peer</a>(ctx, peer, session, data, data_length);</div>
-<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error in dtls_verify_peer err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>  }</div>
-<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span> </div>
-<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>  <span class="keywordflow">if</span> (err > 0) {</div>
-<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"server hello verify was sent\n"</span>);</div>
-<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>  }</div>
-<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span> </div>
-<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>  <span class="comment">/* At this point, we have a good relationship with this peer. This</span></div>
-<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span> <span class="comment"> * state is left for re-negotiation of key material. */</span></div>
-<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security;</div>
-<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span> </div>
-<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>  <span class="comment">/* msg contains a Client Hello with a valid cookie, so we can</span></div>
-<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span> <span class="comment"> * safely create the server state machine and continue with</span></div>
-<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span> <span class="comment"> * the handshake. */</span></div>
-<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>  peer = <a class="code" href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a>(session);</div>
-<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"cannot create peer\n"</span>);</div>
-<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>  }</div>
-<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>  peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> = <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>;</div>
-<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span> </div>
-<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>  <span class="comment">/* Initialize record sequence number to 1 for new peers. The first</span></div>
-<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span> <span class="comment"> * record with sequence number 0 is a stateless Hello Verify Request.</span></div>
-<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>  security = <a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(peer);</div>
-<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>  security-><a class="code" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a> = 1;</div>
-<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>  <a class="code" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a>(ctx, peer);</div>
-<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>  }</div>
-<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>  <span class="keywordflow">if</span> (peer && !peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>) {</div>
-<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>  <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *hs_header = <a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(data);</div>
-<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span> </div>
-<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> = <a class="code" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>();</div>
-<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>)</div>
-<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span> </div>
-<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>  <a class="code" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>, reorder_queue);</div>
-<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a> = <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq);</div>
-<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a> = 1;</div>
-<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>  }</div>
-<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span> </div>
-<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>  <a class="code" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a>(peer);</div>
-<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span> </div>
-<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>  <span class="comment">/* First negotiation step: check for PSK</span></div>
-<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span> <span class="comment"> * Note that we already have checked that msg is a Handshake</span></div>
-<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span> <span class="comment"> * message containing a ClientHello. dtls_get_cipher() therefore</span></div>
-<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span> <span class="comment"> * does not check again.</span></div>
-<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>  err = <a class="code" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls_update_parameters</a>(ctx, peer, data, data_length);</div>
-<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error updating security parameters\n"</span>);</div>
-<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>  }</div>
-<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span> </div>
-<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>  <span class="comment">/* update finish MAC */</span></div>
-<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>  <a class="code" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a>(peer, data, data_length);</div>
-<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span> </div>
-<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>  err = <a class="code" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls_send_server_hello_msgs</a>(ctx, peer);</div>
-<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>  }</div>
-<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>  <span class="keywordflow">if</span> (<a class="code" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a>) &&</div>
-<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>  <a class="code" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a>(ctx))</div>
-<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a>;</div>
-<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a>;</div>
-<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span> </div>
-<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>  <span class="comment">/* after sending the ServerHelloDone, we expect the</span></div>
-<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span> <span class="comment"> * ClientKeyExchange (possibly containing the PSK id),</span></div>
-<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span> <span class="comment"> * followed by a ChangeCipherSpec and an encrypted Finished.</span></div>
-<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span> </div>
-<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span> </div>
-<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a>:</div>
-<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span> </div>
-<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>  <span class="keywordflow">if</span> (state != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>  <span class="comment">/* we should just ignore such packets when in handshake */</span></div>
-<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>  }</div>
-<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span> </div>
-<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>  <span class="keywordflow">if</span> (peer && !peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>) {</div>
-<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> = <a class="code" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>();</div>
-<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>)</div>
-<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span> </div>
-<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>  <a class="code" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>, reorder_queue);</div>
-<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a> = 0;</div>
-<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a> = 0;</div>
-<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>  }</div>
-<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span> </div>
-<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>  <span class="comment">/* send ClientHello with empty Cookie */</span></div>
-<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>  err = <a class="code" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a>(ctx, peer, NULL, 0);</div>
-<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send ClientHello\n"</span>);</div>
-<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>  }</div>
-<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>;</div>
-<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span> </div>
-<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"unhandled message %d\n"</span>, data[0]);</div>
-<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a>);</div>
-<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>  }</div>
-<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span> </div>
-<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>  <span class="keywordflow">if</span> (peer && peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> && err >= 0) {</div>
-<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>++;</div>
-<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>  }</div>
-<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span> </div>
-<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03344"></a><span class="lineno"> 3344</span> }</div>
-<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>  </div>
-<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03347"></a><span class="lineno"><a class="line" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d"> 3347</a></span> <a class="code" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">handle_handshake</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>  <span class="keyword">const</span> <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, <span class="keyword">const</span> <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state,</div>
-<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span> {</div>
-<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>  <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *hs_header;</div>
-<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span> </div>
-<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>  <span class="keywordflow">if</span> (data_length < <a class="code" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>) {</div>
-<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"handshake message too short\n"</span>);</div>
-<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>  }</div>
-<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>  hs_header = <a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(data);</div>
-<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span> </div>
-<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"received handshake packet of type: %s (%i)\n"</span>,</div>
-<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>  <a class="code" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a>(hs_header->msg_type), hs_header->msg_type);</div>
-<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span> </div>
-<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>  <span class="keywordflow">if</span> (!peer || !peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>) {</div>
-<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>  <span class="comment">/* This is the initial ClientHello */</span></div>
-<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>  <span class="keywordflow">if</span> (hs_header->msg_type != <a class="code" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a> && !peer) {</div>
-<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"If there is no peer only ClientHello is allowed\n"</span>);</div>
-<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a>);</div>
-<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>  }</div>
-<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span> </div>
-<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>  <span class="comment">/* This is a ClientHello or Hello Request send when doing TLS renegotiation */</span></div>
-<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>  <span class="keywordflow">if</span> (hs_header->msg_type == <a class="code" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a> ||</div>
-<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>  hs_header->msg_type == <a class="code" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a>) {</div>
-<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a>(ctx, peer, session, role, state, data,</div>
-<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>  data_length);</div>
-<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"ignore unexpected handshake message\n"</span>);</div>
-<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>  }</div>
-<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>  }</div>
-<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span> </div>
-<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq) < peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>) {</div>
-<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"The message sequence number is too small, expected %i, got: %i\n"</span>,</div>
-<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>, <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq));</div>
-<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq) > peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>) {</div>
-<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>  <span class="comment">/* A packet in between is missing, buffer this packet. */</span></div>
-<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>  <a class="code" href="structnetq__t.html">netq_t</a> *n;</div>
-<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span> </div>
-<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>  <span class="comment">/* TODO: only add packet that are not too new. */</span></div>
-<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>  <span class="keywordflow">if</span> (data_length > <a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>) {</div>
-<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"the packet is too big to buffer for reoder\n"</span>);</div>
-<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>  }</div>
-<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span> </div>
-<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node = <a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>->reorder_queue);</div>
-<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>  <span class="keywordflow">while</span> (node) {</div>
-<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>  <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *node_header = <a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(node-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>);</div>
-<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(node_header->message_seq) == <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq)) {</div>
-<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"a packet with this sequence number is already stored\n"</span>);</div>
-<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>  }</div>
-<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>  node = <a class="code" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a>(node);</div>
-<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>  }</div>
-<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span> </div>
-<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>  n = <a class="code" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a>(data_length);</div>
-<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>  <span class="keywordflow">if</span> (!n) {</div>
-<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"no space in reoder buffer\n"</span>);</div>
-<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>  }</div>
-<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span> </div>
-<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>  n-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a> = peer;</div>
-<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>  n-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a> = data_length;</div>
-<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>  memcpy(n-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>, data, data_length);</div>
-<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span> </div>
-<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>  <span class="keywordflow">if</span> (!<a class="code" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>->reorder_queue, n)) {</div>
-<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot add packet to reoder buffer\n"</span>);</div>
-<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>  <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(n);</div>
-<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>  }</div>
-<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"Added packet for reordering\n"</span>);</div>
-<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(hs_header->message_seq) == peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>) {</div>
-<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>  <span class="comment">/* Found the expected packet, use this and all the buffered packet */</span></div>
-<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>  <span class="keywordtype">int</span> next = 1;</div>
-<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span> </div>
-<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>  res = <a class="code" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a>(ctx, peer, session, role, state, data, data_length);</div>
-<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>  <span class="keywordflow">if</span> (res < 0)</div>
-<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span> </div>
-<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>  <span class="comment">/* We do not know in which order the packet are in the list just search the list for every packet. */</span></div>
-<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>  <span class="keywordflow">while</span> (next && peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>) {</div>
-<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>  next = 0;</div>
-<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node = <a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>->reorder_queue);</div>
-<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>  <span class="keywordflow">while</span> (node) {</div>
-<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>  <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *node_header = <a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(node-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>);</div>
-<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span> </div>
-<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>  <span class="keywordflow">if</span> (<a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(node_header->message_seq) == peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>) {</div>
-<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>  <a class="code" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>->reorder_queue, node);</div>
-<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>  next = 1;</div>
-<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>  res = <a class="code" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a>(ctx, peer, session, role, peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a>, node-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>, node-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a>);</div>
-<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>  <span class="keywordflow">if</span> (res < 0) {</div>
-<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>  }</div>
-<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span> </div>
-<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>  node = <a class="code" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a>(node);</div>
-<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>  }</div>
-<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>  }</div>
-<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>  }</div>
-<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>  }</div>
-<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>  assert(0);</div>
-<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span> }</div>
-<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span> </div>
-<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03457"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664"> 3457</a></span> <a class="code" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">handle_ccs</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, </div>
-<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length)</div>
-<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span> {</div>
-<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake = peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span> </div>
-<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>  <span class="comment">/* A CCS message is handled after a KeyExchange message was</span></div>
-<div class="line"><a name="l03464"></a><span class="lineno"> 3464</span> <span class="comment"> * received from the client. When security parameters have been</span></div>
-<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span> <span class="comment"> * updated successfully and a ChangeCipherSpec message was sent</span></div>
-<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span> <span class="comment"> * by ourself, the security context is switched and the record</span></div>
-<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span> <span class="comment"> * sequence number is reset. */</span></div>
-<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>  </div>
-<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>  <span class="keywordflow">if</span> (!peer || peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>) {</div>
-<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"expected ChangeCipherSpec during handshake\n"</span>);</div>
-<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>  }</div>
-<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span> </div>
-<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>  <span class="keywordflow">if</span> (data_length < 1 || data[0] != 1)</div>
-<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span> </div>
-<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>  <span class="comment">/* Just change the cipher when we are on the same epoch */</span></div>
-<div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>) {</div>
-<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>  err = <a class="code" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a>(ctx, handshake, peer,</div>
-<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>  &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>);</div>
-<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>  }</div>
-<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>  }</div>
-<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>  </div>
-<div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a>;</div>
-<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span> </div>
-<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span> } </div>
-<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span> </div>
-<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03496"></a><span class="lineno"><a class="line" href="dtls_8c.html#a445994c602b105608f277c6fc066301d"> 3496</a></span> <a class="code" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">handle_alert</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, </div>
-<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> data_length) {</div>
-<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>  <span class="keywordtype">int</span> free_peer = 0; <span class="comment">/* indicates whether to free peer */</span></div>
-<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span> </div>
-<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>  <span class="keywordflow">if</span> (data_length < 2)</div>
-<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>  <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a>);</div>
-<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span> </div>
-<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"** Alert: level %d, description %d\n"</span>, data[0], data[1]);</div>
-<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span> </div>
-<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"got an alert for an unknown peer, we probably already removed it, ignore it\n"</span>);</div>
-<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>  }</div>
-<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span> </div>
-<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>  <span class="comment">/* The peer object is invalidated for FATAL alerts and close</span></div>
-<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span> <span class="comment"> * notifies. This is done in two steps.: First, remove the object</span></div>
-<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span> <span class="comment"> * from our list of peers. After that, the event handler callback is</span></div>
-<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span> <span class="comment"> * invoked with the still existing peer object. Finally, the storage</span></div>
-<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span> <span class="comment"> * used by peer is released.</span></div>
-<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>  <span class="keywordflow">if</span> (data[0] == <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a> || data[1] == <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a>) {</div>
-<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"%d invalidate peer\n"</span>, data[1]);</div>
-<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>  </div>
-<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span> <span class="preprocessor"></span> <a class="code" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">HASH_DEL_PEER</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, peer);</div>
-<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span> <span class="preprocessor"></span> <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, peer);</div>
-<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span> </div>
-<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
-<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span> <span class="preprocessor"></span> <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"removed peer ["</span>);</div>
-<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>  PRINT6ADDR(&peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>.<a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>);</div>
-<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>  <a class="code" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a>(<span class="stringliteral">"]:%d\n"</span>, uip_ntohs(peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>.port));</div>
-<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>  free_peer = 1;</div>
-<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span> </div>
-<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>  }</div>
-<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span> </div>
-<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>  (void)<a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, event, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, </div>
-<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>  (<a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a>)data[0], (<span class="keywordtype">unsigned</span> short)data[1]);</div>
-<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>  <span class="keywordflow">switch</span> (data[1]) {</div>
-<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>  <span class="keywordflow">case</span> <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a>:</div>
-<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>  <span class="comment">/* If state is DTLS_STATE_CLOSING, we have already sent a</span></div>
-<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span> <span class="comment"> * close_notify so, do not send that again. */</span></div>
-<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> != <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>) {</div>
-<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>;</div>
-<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>  <a class="code" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a>(ctx, peer, <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a>);</div>
-<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>  } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a>;</div>
-<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>  ;</div>
-<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>  }</div>
-<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>  </div>
-<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>  <span class="keywordflow">if</span> (free_peer) {</div>
-<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>  <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(ctx, peer, 0);</div>
-<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>  }</div>
-<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span> </div>
-<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>  <span class="keywordflow">return</span> free_peer;</div>
-<div class="line"><a name="l03557"></a><span class="lineno"> 3557</span> }</div>
-<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span> </div>
-<div class="line"><a name="l03559"></a><span class="lineno"><a class="line" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e"> 3559</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer,</div>
-<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>  <a class="code" href="structsession__t.html">session_t</a> *session, <span class="keywordtype">int</span> err)</div>
-<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span> {</div>
-<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>  <span class="keywordtype">int</span> level;</div>
-<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>  <span class="keywordtype">int</span> desc;</div>
-<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span> </div>
-<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>  <span class="keywordflow">if</span> (err < -(1 << 8) && err > -(3 << 8)) {</div>
-<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>  level = ((-err) & 0xff00) >> 8;</div>
-<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>  desc = (-err) & 0xff;</div>
-<div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, session);</div>
-<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>  }</div>
-<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>;</div>
-<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a>(ctx, peer, level, desc);</div>
-<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>  }</div>
-<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (err == -1) {</div>
-<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, session);</div>
-<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>  }</div>
-<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>;</div>
-<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a>(ctx, peer, <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a>, <a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>  }</div>
-<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>  }</div>
-<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span> }</div>
-<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span> </div>
-<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03591"></a><span class="lineno"><a class="line" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731"> 3591</a></span> <a class="code" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>  <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">int</span> msglen) {</div>
-<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer = NULL;</div>
-<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rlen; <span class="comment">/* record length */</span></div>
-<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data; <span class="comment">/* (decrypted) payload */</span></div>
-<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>  <span class="keywordtype">int</span> data_length; <span class="comment">/* length of decrypted payload </span></div>
-<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span> <span class="comment"> (without MAC and padding) */</span></div>
-<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span> </div>
-<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>  <span class="comment">/* check if we have DTLS state for addr/port/ifindex */</span></div>
-<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, session);</div>
-<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span> </div>
-<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_handle_message: PEER NOT FOUND\n"</span>);</div>
-<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>  <a class="code" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, <span class="stringliteral">"peer addr"</span>, session);</div>
-<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"dtls_handle_message: FOUND PEER\n"</span>);</div>
-<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>  }</div>
-<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span> </div>
-<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>  <span class="keywordflow">while</span> ((rlen = <a class="code" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">is_record</a>(msg,msglen))) {</div>
-<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>  <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role;</div>
-<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state;</div>
-<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span> </div>
-<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"got packet %d (%d bytes)\n"</span>, msg[0], rlen);</div>
-<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>  data_length = <a class="code" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">decrypt_verify</a>(peer, msg, rlen, &data);</div>
-<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>  <span class="keywordflow">if</span> (data_length < 0) {</div>
-<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>  <span class="keywordtype">int</span> err = <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">DTLS_ALERT_DECRYPT_ERROR</a>);</div>
-<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"decrypt_verify() failed\n"</span>);</div>
-<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> < <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>  <a class="code" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a>(ctx, peer, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, err);</div>
-<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a>;</div>
-<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>  <span class="comment">/* dtls_stop_retransmission(ctx, peer); */</span></div>
-<div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>  <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(ctx, peer, 1);</div>
-<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>  }</div>
-<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>  }</div>
-<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>  role = peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>;</div>
-<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>  state = peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a>;</div>
-<div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>  <span class="comment">/* is_record() ensures that msg contains at least a record header */</span></div>
-<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>  data = msg + <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>;</div>
-<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>  data_length = rlen - <a class="code" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>;</div>
-<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>  state = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a>;</div>
-<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>  role = <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>;</div>
-<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>  }</div>
-<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span> </div>
-<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"receive header"</span>, msg, <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>));</div>
-<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"receive unencrypted"</span>, data, data_length);</div>
-<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span> </div>
-<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>  <span class="comment">/* Handle received record according to the first byte of the</span></div>
-<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span> <span class="comment"> * message, i.e. the subprotocol. We currently do not support</span></div>
-<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span> <span class="comment"> * combining multiple fragments of one type into a single</span></div>
-<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span> <span class="comment"> * record. */</span></div>
-<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span> </div>
-<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>  <span class="keywordflow">switch</span> (msg[0]) {</div>
-<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span> </div>
-<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a>:</div>
-<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>  }</div>
-<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>  err = <a class="code" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">handle_ccs</a>(ctx, peer, msg, data, data_length);</div>
-<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error while handling ChangeCipherSpec message\n"</span>);</div>
-<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>  <a class="code" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a>(ctx, peer, session, err);</div>
-<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span> </div>
-<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>  <span class="comment">/* invalidate peer */</span></div>
-<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>  <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(ctx, peer, 1);</div>
-<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>  peer = NULL;</div>
-<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span> </div>
-<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>  }</div>
-<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span> </div>
-<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">DTLS_CT_ALERT</a>:</div>
-<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>  }</div>
-<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>  err = <a class="code" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">handle_alert</a>(ctx, peer, msg, data, data_length);</div>
-<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>  <span class="keywordflow">if</span> (err < 0 || err == 1) {</div>
-<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"received alert, peer has been invalidated\n"</span>);</div>
-<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>  <span class="comment">/* handle alert has invalidated peer */</span></div>
-<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>  peer = NULL;</div>
-<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>  <span class="keywordflow">return</span> err < 0 ?err:-1;</div>
-<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>  }</div>
-<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span> </div>
-<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a>:</div>
-<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>  <span class="comment">/* Handshake messages other than Finish must use the current</span></div>
-<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span> <span class="comment"> * epoch, Finish has epoch + 1. */</span></div>
-<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span> </div>
-<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>  uint16_t expected_epoch = <a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(peer)-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a>;</div>
-<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>  uint16_t msg_epoch = </div>
-<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>  <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(<a class="code" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(msg)->epoch);</div>
-<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span> </div>
-<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>  <span class="comment">/* The new security parameters must be used for all messages</span></div>
-<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span> <span class="comment"> * that are sent after the ChangeCipherSpec message. This</span></div>
-<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span> <span class="comment"> * means that the client's Finished message uses epoch + 1</span></div>
-<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span> <span class="comment"> * while the server is still in the old epoch.</span></div>
-<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>  <span class="keywordflow">if</span> (role == <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> && state == <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a>) {</div>
-<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>  expected_epoch++;</div>
-<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>  }</div>
-<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span> </div>
-<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>  <span class="keywordflow">if</span> (expected_epoch != msg_epoch) {</div>
-<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"Wrong epoch, expected %i, got: %i\n"</span>,</div>
-<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>  expected_epoch, msg_epoch);</div>
-<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>  }</div>
-<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>  }</div>
-<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span> </div>
-<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>  err = <a class="code" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">handle_handshake</a>(ctx, peer, session, role, state, data, data_length);</div>
-<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"error while handling handshake packet\n"</span>);</div>
-<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>  <a class="code" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a>(ctx, peer, session, err);</div>
-<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>  <span class="keywordflow">return</span> err;</div>
-<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>  }</div>
-<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>  <span class="keywordflow">if</span> (peer && peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> == <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>) {</div>
-<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>  <span class="comment">/* stop retransmissions */</span></div>
-<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>  <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, event, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, 0, <a class="code" href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22">DTLS_EVENT_CONNECTED</a>);</div>
-<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>  }</div>
-<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span> </div>
-<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>  <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">DTLS_CT_APPLICATION_DATA</a>:</div>
-<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"** application data:\n"</span>);</div>
-<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"no peer available, send an alert\n"</span>);</div>
-<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>  <span class="comment">// TODO: should we send a alert here?</span></div>
-<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>  }</div>
-<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>  <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(ctx, peer);</div>
-<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>  <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, read, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, data, data_length);</div>
-<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>  <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>  <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>  <a class="code" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a>(<span class="stringliteral">"dropped unknown message of type %d\n"</span>,msg[0]);</div>
-<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>  }</div>
-<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span> </div>
-<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>  <span class="comment">/* advance msg by length of ciphertext */</span></div>
-<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>  msg += rlen;</div>
-<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>  msglen -= rlen;</div>
-<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>  }</div>
-<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span> </div>
-<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span> }</div>
-<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span> </div>
-<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *</div>
-<div class="line"><a name="l03740"></a><span class="lineno"><a class="line" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c"> 3740</a></span> <a class="code" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a>(<span class="keywordtype">void</span> *app_data) {</div>
-<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>  <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *c;</div>
-<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span> <span class="preprocessor"></span> FILE *urandom = fopen(<span class="stringliteral">"/dev/urandom"</span>, <span class="stringliteral">"r"</span>);</div>
-<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> buf[<span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> long)];</div>
-<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span> <span class="preprocessor"></span> <span class="comment">/* FIXME: need something better to init PRNG here */</span></div>
-<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>  <a class="code" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a>(now);</div>
-<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (!urandom) {</div>
-<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>  <a class="code" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">dtls_emerg</a>(<span class="stringliteral">"cannot initialize PRNG\n"</span>);</div>
-<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>  }</div>
-<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span> </div>
-<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>  <span class="keywordflow">if</span> (fread(buf, 1, <span class="keyword">sizeof</span>(buf), urandom) != <span class="keyword">sizeof</span>(buf)) {</div>
-<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>  <a class="code" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">dtls_emerg</a>(<span class="stringliteral">"cannot initialize PRNG\n"</span>);</div>
-<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>  }</div>
-<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span> </div>
-<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>  fclose(urandom);</div>
-<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>  <a class="code" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a>((<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)*buf);</div>
-<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>  c = <a class="code" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a>();</div>
-<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>  <span class="keywordflow">if</span> (!c)</div>
-<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span> </div>
-<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>  memset(c, 0, <span class="keyword">sizeof</span>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a>));</div>
-<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>  c-><a class="code" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">app</a> = app_data;</div>
-<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>  </div>
-<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>  <a class="code" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(c, sendqueue);</div>
-<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span> </div>
-<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span> <span class="preprocessor"></span> <a class="code" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(c, peers);</div>
-<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>  <span class="comment">/* LIST_STRUCT_INIT(c, key_store); */</span></div>
-<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>  </div>
-<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>  process_start(&dtls_retransmit_process, (<span class="keywordtype">char</span> *)c);</div>
-<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>  PROCESS_CONTEXT_BEGIN(&dtls_retransmit_process);</div>
-<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>  <span class="comment">/* the retransmit timer must be initialized to some large value */</span></div>
-<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>  etimer_set(&c->retransmit_timer, 0xFFFF);</div>
-<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>  PROCESS_CONTEXT_END(&coap_retransmit_process);</div>
-<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>  <span class="keywordflow">if</span> (<a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(c-><a class="code" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">cookie_secret</a>, <a class="code" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>))</div>
-<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>  c-><a class="code" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">cookie_secret_age</a> = now;</div>
-<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>  <span class="keywordflow">else</span> </div>
-<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>  <span class="keywordflow">goto</span> error;</div>
-<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>  </div>
-<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>  <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span> </div>
-<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>  error:</div>
-<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>  <a class="code" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a>(<span class="stringliteral">"cannot create DTLS context\n"</span>);</div>
-<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>  <span class="keywordflow">if</span> (c)</div>
-<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>  <a class="code" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a>(c);</div>
-<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span> }</div>
-<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span> </div>
-<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l03802"></a><span class="lineno"><a class="line" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84"> 3802</a></span> <a class="code" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx) {</div>
-<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *p;</div>
-<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span> </div>
-<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>  <span class="keywordflow">if</span> (!ctx) {</div>
-<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>  }</div>
-<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span> </div>
-<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span> <span class="preprocessor"></span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *tmp;</div>
-<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span> </div>
-<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>  <span class="keywordflow">if</span> (ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>) {</div>
-<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>  <a class="code" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">HASH_ITER</a>(hh, ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>, p, tmp) {</div>
-<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>  <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(ctx, p, 1);</div>
-<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>  }</div>
-<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>  }</div>
-<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span> <span class="preprocessor"></span> <span class="keywordflow">for</span> (p = <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(ctx-><a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>); p; p = <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(p))</div>
-<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>  <a class="code" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a>(ctx, p, 1);</div>
-<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>  <a class="code" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a>(ctx);</div>
-<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span> }</div>
-<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span> </div>
-<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03826"></a><span class="lineno"><a class="line" href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62"> 3826</a></span> <a class="code" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span> </div>
-<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>  assert(peer);</div>
-<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>  <span class="keywordflow">if</span> (!peer)</div>
-<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span> </div>
-<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>  <span class="comment">/* check if the same peer is already in our list */</span></div>
-<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>  <span class="keywordflow">if</span> (peer == <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>)) {</div>
-<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"found peer, try to re-connect\n"</span>);</div>
-<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>  <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a>(ctx, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>);</div>
-<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>  }</div>
-<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>  </div>
-<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>  <span class="comment">/* set local peer role to client, remote is server */</span></div>
-<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>  peer-><a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a> = <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a>;</div>
-<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span> </div>
-<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>  <a class="code" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a>(ctx, peer);</div>
-<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span> </div>
-<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>  <span class="comment">/* send ClientHello with empty Cookie */</span></div>
-<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a> = <a class="code" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a>();</div>
-<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>)</div>
-<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span> </div>
-<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a> = 0;</div>
-<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>  peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>-><a class="code" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a>.<a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a> = 0;</div>
-<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>  <a class="code" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>, reorder_queue);</div>
-<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>  res = <a class="code" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a>(ctx, peer, NULL, 0);</div>
-<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>  <span class="keywordflow">if</span> (res < 0)</div>
-<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot send ClientHello\n"</span>);</div>
-<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>  <span class="keywordflow">else</span> </div>
-<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>  peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> = <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>;</div>
-<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span> </div>
-<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span> }</div>
-<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span> </div>
-<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l03862"></a><span class="lineno"><a class="line" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9"> 3862</a></span> <a class="code" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *dst) {</div>
-<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer;</div>
-<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>  <span class="keywordtype">int</span> res;</div>
-<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span> </div>
-<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>  peer = <a class="code" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a>(ctx, dst);</div>
-<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>  </div>
-<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>  <span class="keywordflow">if</span> (!peer)</div>
-<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>  peer = <a class="code" href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a>(dst);</div>
-<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span> </div>
-<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>  <span class="keywordflow">if</span> (!peer) {</div>
-<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>  <a class="code" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a>(<span class="stringliteral">"cannot create new peer\n"</span>);</div>
-<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>  }</div>
-<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span> </div>
-<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>  res = <a class="code" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a>(ctx, peer);</div>
-<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span> </div>
-<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>  <span class="comment">/* Invoke event callback to indicate connection attempt or</span></div>
-<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span> <span class="comment"> * re-negotiation. */</span></div>
-<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>  <span class="keywordflow">if</span> (res > 0) {</div>
-<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>  <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, event, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, 0, <a class="code" href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844">DTLS_EVENT_CONNECT</a>);</div>
-<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (res == 0) {</div>
-<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>  <a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(ctx, event, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, 0, <a class="code" href="alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124">DTLS_EVENT_RENEGOTIATE</a>);</div>
-<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>  }</div>
-<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>  </div>
-<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>  <span class="keywordflow">return</span> res;</div>
-<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span> }</div>
-<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span> </div>
-<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l03890"></a><span class="lineno"><a class="line" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb"> 3890</a></span> <a class="code" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="code" href="structnetq__t.html">netq_t</a> *node) {</div>
-<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>  <span class="keywordflow">if</span> (!context || !node)</div>
-<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span> </div>
-<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>  <span class="comment">/* re-initialize timeout when maximum number of retransmissions are not reached yet */</span></div>
-<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>  <span class="keywordflow">if</span> (node-><a class="code" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a> < <a class="code" href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080">DTLS_DEFAULT_MAX_RETRANSMIT</a>) {</div>
-<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sendbuf[<a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>];</div>
-<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>  <span class="keywordtype">size_t</span> len = <span class="keyword">sizeof</span>(sendbuf);</div>
-<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>  <span class="keywordtype">int</span> err;</div>
-<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data = node-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>;</div>
-<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>  <span class="keywordtype">size_t</span> length = node-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a>;</div>
-<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security = <a class="code" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a>(node-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>, node-><a class="code" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">epoch</a>);</div>
-<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span> </div>
-<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>  node-><a class="code" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a>++;</div>
-<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>  node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> = now + (node-><a class="code" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">timeout</a> << node-><a class="code" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a>);</div>
-<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>  <a class="code" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a>(context->sendqueue, node);</div>
-<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>  </div>
-<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>  <span class="keywordflow">if</span> (node-><a class="code" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">type</a> == <a class="code" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a>) {</div>
-<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>  <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *hs_header = <a class="code" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(data);</div>
-<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span> </div>
-<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"** retransmit handshake packet of type: %s (%i)\n"</span>,</div>
-<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>  <a class="code" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a>(hs_header->msg_type), hs_header->msg_type);</div>
-<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"** retransmit packet\n"</span>);</div>
-<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>  }</div>
-<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>  </div>
-<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>  err = <a class="code" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a>(node-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>, security, node-><a class="code" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">type</a>, &data, &length,</div>
-<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>  1, sendbuf, &len);</div>
-<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>  <span class="keywordflow">if</span> (err < 0) {</div>
-<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"can not retransmit packet, err: %i\n"</span>, err);</div>
-<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>  }</div>
-<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"retransmit header"</span>, sendbuf,</div>
-<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>  <span class="keyword">sizeof</span>(<a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>));</div>
-<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>  <a class="code" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a>(<span class="stringliteral">"retransmit unencrypted"</span>, node-><a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>, node-><a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a>);</div>
-<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span> </div>
-<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>  (void)<a class="code" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(context, write, &node-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, sendbuf, len);</div>
-<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>  }</div>
-<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span> </div>
-<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>  <span class="comment">/* no more retransmissions, remove node from system */</span></div>
-<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>  </div>
-<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"** removed transaction\n"</span>);</div>
-<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span> </div>
-<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>  <span class="comment">/* And finally delete the node */</span></div>
-<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>  <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(node);</div>
-<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span> }</div>
-<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span> </div>
-<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l03941"></a><span class="lineno"><a class="line" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5"> 3941</a></span> <a class="code" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node;</div>
-<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>  node = <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(context->sendqueue); </div>
-<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span> </div>
-<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>  <span class="keywordflow">while</span> (node) {</div>
-<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>  <span class="keywordflow">if</span> (<a class="code" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a>(&node-><a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, &peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>)) {</div>
-<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>  <a class="code" href="structnetq__t.html">netq_t</a> *tmp = node;</div>
-<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>  node = <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(node);</div>
-<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>  <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(context->sendqueue, tmp);</div>
-<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>  <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(tmp);</div>
-<div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>  } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>  node = <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(node); </div>
-<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>  }</div>
-<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span> }</div>
-<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span> </div>
-<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l03957"></a><span class="lineno"><a class="line" href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82"> 3957</a></span> <a class="code" href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *next) {</div>
-<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>  <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> now;</div>
-<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node = <a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(context->sendqueue);</div>
-<div class="line"><a name="l03960"></a><span class="lineno"> 3960</span> </div>
-<div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>  <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(&now);</div>
-<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>  <span class="keywordflow">while</span> (node && node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> <= now) {</div>
-<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>  <a class="code" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a>(context->sendqueue);</div>
-<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>  <a class="code" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a>(context, node);</div>
-<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>  node = <a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(context->sendqueue);</div>
-<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>  }</div>
-<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span> </div>
-<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>  <span class="keywordflow">if</span> (next && node)</div>
-<div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>  *next = node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a>;</div>
-<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span> }</div>
-<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span> </div>
-<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span> <span class="preprocessor"></span><span class="comment">/*---------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span> <span class="comment">/* message retransmission */</span></div>
-<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span> <span class="comment">/*---------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span> PROCESS_THREAD(dtls_retransmit_process, ev, data)</div>
-<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span> {</div>
-<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>  <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> now;</div>
-<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node;</div>
-<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span> </div>
-<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>  PROCESS_BEGIN();</div>
-<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span> </div>
-<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>  <a class="code" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a>(<span class="stringliteral">"Started DTLS retransmit process\r\n"</span>);</div>
-<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span> </div>
-<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>  <span class="keywordflow">while</span>(1) {</div>
-<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>  PROCESS_YIELD();</div>
-<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>  <span class="keywordflow">if</span> (ev == PROCESS_EVENT_TIMER) {</div>
-<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>  <span class="keywordflow">if</span> (etimer_expired(&the_dtls_context.retransmit_timer)) {</div>
-<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>  </div>
-<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>  node = <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(the_dtls_context.sendqueue);</div>
-<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>  </div>
-<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>  now = clock_time();</div>
-<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>  <span class="keywordflow">if</span> (node && node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> <= now) {</div>
-<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>  <a class="code" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a>(&the_dtls_context, <a class="code" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a>(the_dtls_context.sendqueue));</div>
-<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>  node = <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(the_dtls_context.sendqueue);</div>
-<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>  }</div>
-<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span> </div>
-<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>  <span class="comment">/* need to set timer to some value even if no nextpdu is available */</span></div>
-<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>  <span class="keywordflow">if</span> (node) {</div>
-<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>  etimer_set(&the_dtls_context.retransmit_timer, </div>
-<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>  node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> <= now ? 1 : node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> - now);</div>
-<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>  etimer_set(&the_dtls_context.retransmit_timer, 0xFFFF);</div>
-<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>  }</div>
-<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>  } </div>
-<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>  }</div>
-<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>  }</div>
-<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>  </div>
-<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>  PROCESS_END();</div>
-<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span> }</div>
-<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00047">state.h:47</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3e132aba78de736930255d40ef3f2d34"><div class="ttname"><a href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a></div><div class="ttdeci">#define CALL(Context, which,...)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00174">dtls.c:174</a></div></div>
-<div class="ttc" id="dtls_8c_html_afcca5dc5ebcc9eb8141ca0b49b647676"><div class="ttname"><a href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">DTLS_SH_LENGTH</a></div><div class="ttdeci">#define DTLS_SH_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00079">dtls.c:79</a></div></div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00082">global.h:82</a></div></div>
-<div class="ttc" id="dtls_8c_html_a22ab7a79391c2204337237949d69dad8"><div class="ttname"><a href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a></div><div class="ttdeci">static void copy_hs_hash(dtls_peer_t *peer, dtls_hash_ctx *hs_hash)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01076">dtls.c:1076</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3bbccb275cb23e84c0a148a157955770"><div class="ttname"><a href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a></div><div class="ttdeci">static int is_psk_supported(dtls_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00481">dtls.c:481</a></div></div>
-<div class="ttc" id="structnetq__t_html_aacd03017f40248c2f48c2b7b9cd92dc8"><div class="ttname"><a href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">netq_t::retransmit_cnt</a></div><div class="ttdeci">unsigned char retransmit_cnt</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00047">netq.h:47</a></div></div>
-<div class="ttc" id="dtls_8c_html_a187f5e145bb869a732fbed426929a4e9"><div class="ttname"><a href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a></div><div class="ttdeci">int dtls_connect(dtls_context_t *ctx, const session_t *dst)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03862">dtls.c:3862</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa17bcdc666796e52788f82ee003bb172"><div class="ttname"><a href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a></div><div class="ttdeci">void dtls_handshake_free(dtls_handshake_parameters_t *handshake)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00146">crypto.c:146</a></div></div>
-<div class="ttc" id="dtls_8c_html_afcc64c0abfd9b157b71a47e5a5a78b26"><div class="ttname"><a href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">check_server_hello</a></div><div class="ttdeci">static int check_server_hello(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02460">dtls.c:2460</a></div></div>
-<div class="ttc" id="session_8c_html_a96f4d60f388d56d37b3e69261bea2417"><div class="ttname"><a href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a></div><div class="ttdeci">int dtls_session_equals(const session_t *a, const session_t *b)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00080">session.c:80</a></div></div>
-<div class="ttc" id="dtls_8c_html_ae272fea7269714fe7a67d6da64961731"><div class="ttname"><a href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a></div><div class="ttdeci">int dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03591">dtls.c:3591</a></div></div>
-<div class="ttc" id="dtls_8h_html_ad5882a5ff4073ffefa266bb2c4a1ee3c"><div class="ttname"><a href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">DTLS_HT_SERVER_HELLO</a></div><div class="ttdeci">#define DTLS_HT_SERVER_HELLO</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00344">dtls.h:344</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_adb7dc6a53a7e00f2c4bbf726973e002f"><div class="ttname"><a href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">dtls_context_t::cookie_secret</a></div><div class="ttdeci">unsigned char cookie_secret[DTLS_COOKIE_SECRET_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00224">dtls.h:224</a></div></div>
-<div class="ttc" id="dtls_8c_html_a82181208ec1e9f42896f0606e0036c1d"><div class="ttname"><a href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a></div><div class="ttdeci">static void clear_hs_hash(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01087">dtls.c:1087</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a56e7392a649731166fc82a523b0eb027"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">dtls_handshake_parameters_t::hs_state</a></div><div class="ttdeci">dtls_hs_state_t hs_state</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00125">crypto.h:125</a></div></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00042">state.h:42</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab7a17e13b17da97cbef046b20cd7280f"><div class="ttname"><a href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a></div><div class="ttdeci">#define R_KEY_OFFSET</div></div>
-<div class="ttc" id="dtls_8h_html_a76965db5ec449b3c8a9a54c24a4d45dc"><div class="ttname"><a href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a></div><div class="ttdeci">#define DTLS_CT_HANDSHAKE</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00327">dtls.h:327</a></div></div>
-<div class="ttc" id="dtls_8c_html_af8409ba213cb87dbf9ed16ef87995c54"><div class="ttname"><a href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a></div><div class="ttdeci">static int dtls_check_ecdsa_signature_elem(uint8 *data, size_t data_length, unsigned char **result_r, unsigned char **result_s)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01611">dtls.c:1611</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">DTLS_ALERT_HANDSHAKE_FAILURE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00045">alert.h:45</a></div></div>
-<div class="ttc" id="dtls_8c_html_a63f2c7e75b86bb2839b8fedf3fa9c93d"><div class="ttname"><a href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls_update_parameters</a></div><div class="ttdeci">static int dtls_update_parameters(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00900">dtls.c:900</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00041">state.h:41</a></div></div>
-<div class="ttc" id="crypto_8h_html_a7119d3239c34d7e7f219200792339541"><div class="ttname"><a href="crypto_8h.html#a7119d3239c34d7e7f219200792339541">dtls_kb_remote_iv</a></div><div class="ttdeci">#define dtls_kb_remote_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00172">crypto.h:172</a></div></div>
-<div class="ttc" id="dtls_8c_html_aca393c29148080d4dfa343c8ec283928"><div class="ttname"><a href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">check_server_hellodone</a></div><div class="ttdeci">static int check_server_hellodone(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02804">dtls.c:2804</a></div></div>
-<div class="ttc" id="crypto_8h_html_ae23208578ac21350cb5915d11da0a2e3"><div class="ttname"><a href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3">dtls_kb_local_iv</a></div><div class="ttdeci">#define dtls_kb_local_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00176">crypto.h:176</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga1ef9c88a0a2053b442413a9cea3deb73"><div class="ttname"><a href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a></div><div class="ttdeci">void dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00076">hmac.c:76</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5f9937088ea2e1d19e7d472fecae9aaa"><div class="ttname"><a href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">dtls_ecdh_pre_master_secret</a></div><div class="ttdeci">int dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00398">crypto.c:398</a></div></div>
-<div class="ttc" id="t__list_8h_html_adcb86fe4485a0f8ea79541117641f730"><div class="ttname"><a href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a></div><div class="ttdeci">#define LIST_STRUCT_INIT(struct_ptr, name)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00090">t_list.h:90</a></div></div>
-<div class="ttc" id="alert_8h_html_a9b9a52e7d4bb621be12878c7dfc8f5df"><div class="ttname"><a href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a></div><div class="ttdeci">static int dtls_alert_fatal_create(dtls_alert_t desc)</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00077">alert.h:77</a></div></div>
-<div class="ttc" id="dtls_8c_html_afdd0d094bfd136f65455e23fda087cd6"><div class="ttname"><a href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a></div><div class="ttdeci">static int dtls_send(dtls_context_t *ctx, dtls_peer_t *peer, unsigned char type, uint8 *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00200">dtls.c:200</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_a91769609f44590f193d726187ab366de"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">dtls_ecdsa_key_t::priv_key</a></div><div class="ttdeci">const unsigned char * priv_key</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00065">dtls.h:65</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="crypto_8c_html_aa53dfed4868e257d2485024b5c170bae"><div class="ttname"><a href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">dtls_psk_pre_master_secret</a></div><div class="ttdeci">int dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00318">crypto.c:318</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00044">state.h:44</a></div></div>
-<div class="ttc" id="structdtls__context__t_html"><div class="ttname"><a href="structdtls__context__t.html">dtls_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00223">dtls.h:223</a></div></div>
-<div class="ttc" id="crypto_8h_html_ac8fdf3770dcd956ca10d1044a57a7a3a"><div class="ttname"><a href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">dtls_kb_server_mac_secret</a></div><div class="ttdeci">#define dtls_kb_server_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00144">crypto.h:144</a></div></div>
-<div class="ttc" id="t__list_8h_html_a5ba6a8506e0226ab945349e25ef65d56"><div class="ttname"><a href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a></div><div class="ttdeci">static void * list_pop(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00117">t_list.h:117</a></div></div>
-<div class="ttc" id="hmac_8h_html_abb19650a510c73117da0e9b88d68f159"><div class="ttname"><a href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></div><div class="ttdeci">SHA256_CTX dtls_hash_ctx</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00038">hmac.h:38</a></div></div>
-<div class="ttc" id="crypto_8c_html_ad58098f0e821f81b4f1a6672ead17ac5"><div class="ttname"><a href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">dtls_encrypt</a></div><div class="ttdeci">int dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00524">crypto.c:524</a></div></div>
-<div class="ttc" id="dtls_8c_html_a112e0d83a0e576b5d22df60241900a67"><div class="ttname"><a href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a></div><div class="ttdeci">static int dtls_send_finished(dtls_context_t *ctx, dtls_peer_t *peer, const unsigned char *label, size_t labellen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02277">dtls.c:2277</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a5cc61a98763800b5b4e7617307649933"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">dtls_handshake_parameters_t::cipher</a></div><div class="ttdeci">dtls_cipher_t cipher</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00128">crypto.h:128</a></div></div>
-<div class="ttc" id="global_8h_html_af086ed2d0aea096be56bf7e46f8f72a6"><div class="ttname"><a href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</a></div><div class="ttdeci">#define TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00096">global.h:96</a></div></div>
-<div class="ttc" id="global_8h_html_ad465b86d1841ddd6c2209ff304895a95"><div class="ttname"><a href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">TLS_EXT_SERVER_CERTIFICATE_TYPE</a></div><div class="ttdeci">#define TLS_EXT_SERVER_CERTIFICATE_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00089">global.h:89</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a></div><div class="ttdeci">dtls_state_t</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00040">state.h:40</a></div></div>
-<div class="ttc" id="dtls_8h_html_a09e4f571633bdb724236ac68459715b6"><div class="ttname"><a href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a></div><div class="ttdeci">#define DTLS_COOKIE_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00323">dtls.h:323</a></div></div>
-<div class="ttc" id="dtls_8h_html_a2e3ff1e96b8b7db8a3648beba35bfd0c"><div class="ttname"><a href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">DTLS_CT_APPLICATION_DATA</a></div><div class="ttdeci">#define DTLS_CT_APPLICATION_DATA</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00328">dtls.h:328</a></div></div>
-<div class="ttc" id="dtls_8c_html_a21644ea2de742395df1e3b3281ba4f63"><div class="ttname"><a href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a></div><div class="ttdeci">#define DTLS_FIN_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00087">dtls.c:87</a></div></div>
-<div class="ttc" id="dtls_8c_html_a7d7af4d19c7abef4583c1667ec449a5d"><div class="ttname"><a href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a></div><div class="ttdeci">static uint8 * dtls_add_ecdsa_signature_elem(uint8 *p, uint32_t *point_r, uint32_t *point_s)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01867">dtls.c:1867</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="dtls_8c_html_a61ddc44bfdb8a92b72911a402aa0164e"><div class="ttname"><a href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">check_certificate_request</a></div><div class="ttdeci">static int check_certificate_request(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02726">dtls.c:2726</a></div></div>
-<div class="ttc" id="uthash_8h_html_a4d524042f1fcb976d8bccae9e4cc63d6"><div class="ttname"><a href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">HASH_ITER</a></div><div class="ttdeci">#define HASH_ITER(hh, head, el, tmp)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00895">uthash.h:895</a></div></div>
-<div class="ttc" id="group__netq_html_gab4c90c003808a784ae1ee9322e75627d"><div class="ttname"><a href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a></div><div class="ttdeci">netq_t * netq_next(netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00088">netq.c:88</a></div></div>
-<div class="ttc" id="dtls_8h_html_a16b49d03e041d43b60e1b7bacf35daad"><div class="ttname"><a href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">DTLS_HT_FINISHED</a></div><div class="ttdeci">#define DTLS_HT_FINISHED</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00352">dtls.h:352</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">DTLS_ALERT_LEVEL_FATAL</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00036">alert.h:36</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a5c4e7bb5d4d890200a176cfe13c6fb9a"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">dtls_handshake_parameters_t::random</a></div><div class="ttdeci">struct dtls_handshake_parameters_t::@0::random_t random</div></div>
-<div class="ttc" id="dtls_8h_html_af0c44db3bf3a6a52e9ed271218daeaa6"><div class="ttname"><a href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a></div><div class="ttdeci">#define DTLS_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00056">dtls.h:56</a></div></div>
-<div class="ttc" id="dtls_8c_html_abba2a2562813493d98b5671a4c5c082b"><div class="ttname"><a href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">prf_label_client</a></div><div class="ttdeci">static const unsigned char prf_label_client[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00119">dtls.c:119</a></div></div>
-<div class="ttc" id="dtls_8c_html_a70333bea2db35153177347b5c7700cab"><div class="ttname"><a href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a></div><div class="ttdeci">dtls_peer_t * dtls_get_peer(const dtls_context_t *ctx, const session_t *session)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00212">dtls.c:212</a></div></div>
-<div class="ttc" id="session_8h_html"><div class="ttname"><a href="session_8h.html">session.h</a></div></div>
-<div class="ttc" id="debug_8c_html_ac6afabdc09a49a433ee19d8a9486056d"><div class="ttname"><a href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">min</a></div><div class="ttdeci">#define min(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00114">debug.c:114</a></div></div>
-<div class="ttc" id="numeric_8h_html_abe324cc4e62d03bdecf457382ba213c8"><div class="ttname"><a href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">dtls_int_to_uint48</a></div><div class="ttdeci">static int dtls_int_to_uint48(unsigned char *field, uint64_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00070">numeric.h:70</a></div></div>
-<div class="ttc" id="dtls_8c_html_a8a4dc9af457241380a01c8e38fdc4e2d"><div class="ttname"><a href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">DTLS_SKEXECPSK_LENGTH_MAX</a></div><div class="ttdeci">#define DTLS_SKEXECPSK_LENGTH_MAX</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00083">dtls.c:83</a></div></div>
-<div class="ttc" id="crypto_8h_html_a147bfdc558c2ec69ffdf388ae19ae01c"><div class="ttname"><a href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">dtls_kb_size</a></div><div class="ttdeci">#define dtls_kb_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00182">crypto.h:182</a></div></div>
-<div class="ttc" id="dtls_8h_html_aab327e17614cf2902c5fc6169466613f"><div class="ttname"><a href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a></div><div class="ttdeci">#define DTLS_HT_SERVER_KEY_EXCHANGE</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00347">dtls.h:347</a></div></div>
-<div class="ttc" id="dtls_8c_html_a00f6591bce49f6122dab9827c8774ba3"><div class="ttname"><a href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls_send_server_key_exchange_psk</a></div><div class="ttdeci">static int dtls_send_server_key_exchange_psk(dtls_context_t *ctx, dtls_peer_t *peer, const unsigned char *psk_hint, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01989">dtls.c:1989</a></div></div>
-<div class="ttc" id="group__clock_html_ga8b340ad858b708dbc7bf40f784935c90"><div class="ttname"><a href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a></div><div class="ttdeci">void dtls_clock_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00054">dtls_time.c:54</a></div></div>
-<div class="ttc" id="crypto_8c_html_a49f03039780664684d110d83a228b163"><div class="ttname"><a href="crypto_8c.html#a49f03039780664684d110d83a228b163">dtls_ecdsa_create_sig_hash</a></div><div class="ttdeci">void dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00446">crypto.c:446</a></div></div>
-<div class="ttc" id="group__clock_html_gaded617551180951f4841969e396a8012"><div class="ttname"><a href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></div><div class="ttdeci">clock_time_t dtls_tick_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00058">dtls_time.h:58</a></div></div>
-<div class="ttc" id="structsession__t_html_aed21682e9f971221d9f35f1266dea125"><div class="ttname"><a href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">session_t::size</a></div><div class="ttdeci">socklen_t size</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00050">session.h:50</a></div></div>
-<div class="ttc" id="structnetq__t_html_a5b4d387623df43fe25a3b11e9d4fb02c"><div class="ttname"><a href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">netq_t::data</a></div><div class="ttdeci">unsigned char data[]</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00051">netq.h:51</a></div></div>
-<div class="ttc" id="dtls_8c_html_a04a3580764ffd4f253ce6be858806c95"><div class="ttname"><a href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">verify_ext_ec_point_formats</a></div><div class="ttdeci">static int verify_ext_ec_point_formats(uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00749">dtls.c:749</a></div></div>
-<div class="ttc" id="structnetq__t_html"><div class="ttname"><a href="structnetq__t.html">netq_t</a></div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00038">netq.h:38</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">DTLS_ALERT_LEVEL_WARNING</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00035">alert.h:35</a></div></div>
-<div class="ttc" id="dtls_8c_html_abb41f4bb9b8e4218ef5115ce70ebdc21"><div class="ttname"><a href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a></div><div class="ttdeci">static int is_ecdsa_supported(dtls_context_t *ctx, int is_client)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00491">dtls.c:491</a></div></div>
-<div class="ttc" id="dtls_8c_html_aad633ed0a80e25b3884d119a8d8aeaff"><div class="ttname"><a href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls_get_fragment_length</a></div><div class="ttdeci">#define dtls_get_fragment_length(H)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00062">dtls.c:62</a></div></div>
-<div class="ttc" id="numeric_8h_html_aff276cdd846cd194a21e9c61549292f6"><div class="ttname"><a href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a></div><div class="ttdeci">static int dtls_int_to_uint24(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00053">numeric.h:53</a></div></div>
-<div class="ttc" id="dtls_8c_html_a4f06884f659f6a5120be7e0b86d29880"><div class="ttname"><a href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a></div><div class="ttdeci">static int dtls_send_handshake_msg_hash(dtls_context_t *ctx, dtls_peer_t *peer, session_t *session, uint8 header_type, uint8 *data, size_t data_length, int add_hash)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01323">dtls.c:1323</a></div></div>
-<div class="ttc" id="dtls_8h_html_a81936df7abb2c16aa897e3018aa24399"><div class="ttname"><a href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a></div><div class="ttdeci">dtls_record_header_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00338">dtls.h:338</a></div></div>
-<div class="ttc" id="dtls_8c_html_a445994c602b105608f277c6fc066301d"><div class="ttname"><a href="dtls_8c.html#a445994c602b105608f277c6fc066301d">handle_alert</a></div><div class="ttdeci">static int handle_alert(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *record_header, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03496">dtls.c:3496</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="dtls_8c_html_a674da4ca826bf1206ec8053f4c9eb336"><div class="ttname"><a href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">DTLS_CKXPSK_LENGTH_MIN</a></div><div class="ttdeci">#define DTLS_CKXPSK_LENGTH_MIN</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00084">dtls.c:84</a></div></div>
-<div class="ttc" id="group__netq_html_gafcf245cd934e9b8f0909a7ca8940e9cb"><div class="ttname"><a href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a></div><div class="ttdeci">netq_t * netq_node_new(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00111">netq.c:111</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871f"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a></div><div class="ttdeci">dtls_alert_level_t</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00034">alert.h:34</a></div></div>
-<div class="ttc" id="debug_8h_html_a1f464e950a4fa11e8821b5c725921a15"><div class="ttname"><a href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">PRINTF</a></div><div class="ttdeci">#define PRINTF(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00057">debug.h:57</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"><div class="ttname"><a href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls_set_handshake_header</a></div><div class="ttdeci">static uint8 * dtls_set_handshake_header(uint8 type, dtls_peer_t *peer, int length, int frag_offset, int frag_length, uint8 *buf)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00424">dtls.c:424</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="global_8h_html_a8095691f33c0ce6b22d205640ccc9417"><div class="ttname"><a href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a></div><div class="ttdeci">#define TLS_EXT_ELLIPTIC_CURVES_SECP256R1</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00094">global.h:94</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a4e23cc3b273813744524c3db1fda9c83"><div class="ttname"><a href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">dtls_peer_t::state</a></div><div class="ttdeci">dtls_state_t state</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00062">peer.h:62</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00043">state.h:43</a></div></div>
-<div class="ttc" id="dtls_8c_html_a8098a728e5fff33ceeb7f57ebd48a212"><div class="ttname"><a href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a></div><div class="ttdeci">static int is_tls_ecdhe_ecdsa_with_aes_128_ccm_8(dtls_cipher_t cipher)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00461">dtls.c:461</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_a3f26099dbb3588ae9a86d26f69ec08f8"><div class="ttname"><a href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">dtls_context_t::cookie_secret_age</a></div><div class="ttdeci">clock_time_t cookie_secret_age</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00225">dtls.h:225</a></div></div>
-<div class="ttc" id="alert_8h_html"><div class="ttname"><a href="alert_8h.html">alert.h</a></div><div class="ttdoc">DTLS alert protocol. </div></div>
-<div class="ttc" id="alert_8h_html_aec2aa0683b1a39b4b1abba357b06f844"><div class="ttname"><a href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844">DTLS_EVENT_CONNECT</a></div><div class="ttdeci">#define DTLS_EVENT_CONNECT</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00064">alert.h:64</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3742f5067d1b0693d6a41e70d4ecd5b5"><div class="ttname"><a href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a></div><div class="ttdeci">static void dtls_stop_retransmission(dtls_context_t *context, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03941">dtls.c:3941</a></div></div>
-<div class="ttc" id="debug_8h_html_afde5692e7a590b0dd016d5753284c175"><div class="ttname"><a href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">dtls_info</a></div><div class="ttdeci">#define dtls_info(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00138">debug.h:138</a></div></div>
-<div class="ttc" id="t__list_8h_html_aee4e6fc5d9a6133555e7373c654b2120"><div class="ttname"><a href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">list_add</a></div><div class="ttdeci">static void list_add(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00106">t_list.h:106</a></div></div>
-<div class="ttc" id="peer_8h_html_af5de0315efd7e8c6b1aecf60078b2dd7"><div class="ttname"><a href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params_epoch(dtls_peer_t *peer, uint16_t epoch)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00068">peer.h:68</a></div></div>
-<div class="ttc" id="crypto_8c_html_a86e6ce9d4b4afcef355836955697f52c"><div class="ttname"><a href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto_init</a></div><div class="ttdeci">void crypto_init()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00076">crypto.c:76</a></div></div>
-<div class="ttc" id="dtls_8c_html_a2cc930733d35ea870c7a0a131bee0d7a"><div class="ttname"><a href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a></div><div class="ttdeci">#define DTLS_HANDSHAKE_HEADER(M)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00096">dtls.c:96</a></div></div>
-<div class="ttc" id="dtls_8c_html_a4aac4fa55afe2d19342136acaaaf9641"><div class="ttname"><a href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a></div><div class="ttdeci">static int dtls_send_alert(dtls_context_t *ctx, dtls_peer_t *peer, dtls_alert_level_t level, dtls_alert_t description)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01485">dtls.c:1485</a></div></div>
-<div class="ttc" id="global_8h_html_ac97469cc46ceeb148ee92f47a26ebcf6"><div class="ttname"><a href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6">TLS_EC_CURVE_TYPE_NAMED_CURVE</a></div><div class="ttdeci">#define TLS_EC_CURVE_TYPE_NAMED_CURVE</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00098">global.h:98</a></div></div>
-<div class="ttc" id="dtls_8c_html_adfe6fc0d0d66e9ffaef25c2c126b1c34"><div class="ttname"><a href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls_send_certificate_verify_ecdh</a></div><div class="ttdeci">static int dtls_send_certificate_verify_ecdh(dtls_context_t *ctx, dtls_peer_t *peer, const dtls_ecdsa_key_t *key)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02241">dtls.c:2241</a></div></div>
-<div class="ttc" id="dtls_8c_html_a017195b30506fbdf32fff55af9276a02"><div class="ttname"><a href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">check_client_certificate_verify</a></div><div class="ttdeci">static int check_client_certificate_verify(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01691">dtls.c:1691</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_a417fa8ac04478292f0539d2da0fec088"><div class="ttname"><a href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">dtls_context_t::peers</a></div><div class="ttdeci">dtls_peer_t * peers</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00228">dtls.h:228</a></div></div>
-<div class="ttc" id="crypto_8h_html_ab5659b0737d72a2fa1b1335952f9c305"><div class="ttname"><a href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">dtls_kb_client_write_key</a></div><div class="ttdeci">#define dtls_kb_client_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00155">crypto.h:155</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00076">global.h:76</a></div></div>
-<div class="ttc" id="crypto_8c_html_a982fc9e78cd10d9323756b15b72c7970"><div class="ttname"><a href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">dtls_ecdsa_generate_key</a></div><div class="ttdeci">void dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00425">crypto.c:425</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a44ebb2ba643269c7e6943f3a9040febe"><div class="ttname"><a href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">dtls_peer_t::session</a></div><div class="ttdeci">session_t session</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00059">peer.h:59</a></div></div>
-<div class="ttc" id="t__list_8h_html_ae7f0bdad2409695760ffd8de55b6a99b"><div class="ttname"><a href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a></div><div class="ttdeci">static void * list_item_next(void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00137">t_list.h:137</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5ae24f3621f545752732e318840d7e2b"><div class="ttname"><a href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">dtls_ec_key_from_uint32_asn1</a></div><div class="ttdeci">int dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00362">crypto.c:362</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">DTLS_ALERT_CLOSE_NOTIFY</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00040">alert.h:40</a></div></div>
-<div class="ttc" id="global_8h_html_a0749f1df578b26eccab986b0d8abaa56"><div class="ttname"><a href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a></div><div class="ttdeci">unsigned char uint48[6]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00051">global.h:51</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00050">state.h:50</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a483b158f8fc86e45e7c0fc603a66925f"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">dtls_handshake_parameters_t::keyx</a></div><div class="ttdeci">union dtls_handshake_parameters_t::@1 keyx</div></div>
-<div class="ttc" id="crypto_8c_html_a035860da45ba2586a95c8ef7f539a3c9"><div class="ttname"><a href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">dtls_ecdsa_verify_sig</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00503">crypto.c:503</a></div></div>
-<div class="ttc" id="global_8h_html_aa347771eab2eabd24c4b9311fa61c4c9"><div class="ttname"><a href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a></div><div class="ttdeci">#define TLS_EXT_SIG_HASH_ALGO_SHA256</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00102">global.h:102</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_ab17efe8550600d945ced029e43ca86d6"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">dtls_handshake_parameters_t::do_client_auth</a></div><div class="ttdeci">unsigned int do_client_auth</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00129">crypto.h:129</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">DTLS_ALERT_NO_RENEGOTIATION</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00060">alert.h:60</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_ac27a2063a8136615971f8d591afdd01f"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">dtls_handshake_parameters_t::tmp</a></div><div class="ttdeci">union dtls_handshake_parameters_t::@0 tmp</div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">DTLS_ALERT_UNEXPECTED_MESSAGE</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00041">alert.h:41</a></div></div>
-<div class="ttc" id="crypto_8h_html_adcdadf1870e2acb2993b1a8726d26997"><div class="ttname"><a href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">dtls_kb_iv_size</a></div><div class="ttdeci">#define dtls_kb_iv_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00180">crypto.h:180</a></div></div>
-<div class="ttc" id="dtls_8c_html_a37965d10b44a63ea6adbf28b9dc79b75"><div class="ttname"><a href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a></div><div class="ttdeci">static int known_cipher(dtls_context_t *ctx, dtls_cipher_t code, int is_client)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00522">dtls.c:522</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga060019cf2dab9903d58118fe1abe7018"><div class="ttname"><a href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a></div><div class="ttdeci">#define DTLS_HMAC_DIGEST_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00074">hmac.h:74</a></div></div>
-<div class="ttc" id="dtls_8c_html_a80275f06c14cbbc18095bc2f61022d15"><div class="ttname"><a href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls_send_server_key_exchange_ecdh</a></div><div class="ttdeci">static int dtls_send_server_key_exchange_ecdh(dtls_context_t *ctx, dtls_peer_t *peer, const dtls_ecdsa_key_t *key)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01924">dtls.c:1924</a></div></div>
-<div class="ttc" id="numeric_8h_html_a7293cc28604d896cfef802b53b0ad99f"><div class="ttname"><a href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a></div><div class="ttdeci">static uint8_t dtls_uint8_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00094">numeric.h:94</a></div></div>
-<div class="ttc" id="dtls_8c_html_a604f68a801e55b884f7f7f1d2f1b9c9f"><div class="ttname"><a href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls_verify_peer</a></div><div class="ttdeci">static int dtls_verify_peer(dtls_context_t *ctx, dtls_peer_t *peer, session_t *session, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01540">dtls.c:1540</a></div></div>
-<div class="ttc" id="global_8h_html_af126227a026a7af436a4323db6d02ecc"><div class="ttname"><a href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a></div><div class="ttdeci">#define TLS_EXT_SIG_HASH_ALGO_ECDSA</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00103">global.h:103</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_a460737bda0d200538c00ef7877b339cd"><div class="ttname"><a href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">dtls_context_t::h</a></div><div class="ttdeci">dtls_handler_t * h</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00239">dtls.h:239</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00058">alert.h:58</a></div></div>
-<div class="ttc" id="global_8h_html_aabc56baaf04f922a1ea0dda7691fec0a"><div class="ttname"><a href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a></div><div class="ttdeci">unsigned char uint24[3]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00049">global.h:49</a></div></div>
-<div class="ttc" id="crypto_8h_html_addc8fcbbdd80ba924d0ded2a6bae97f4"><div class="ttname"><a href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">dtls_kb_remote_write_key</a></div><div class="ttdeci">#define dtls_kb_remote_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00159">crypto.h:159</a></div></div>
-<div class="ttc" id="dtls_8c_html_a0844494b0b76acb7bcf832ae74fb25c0"><div class="ttname"><a href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">HASH_DEL_PEER</a></div><div class="ttdeci">#define HASH_DEL_PEER(head, delptr)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00069">dtls.c:69</a></div></div>
-<div class="ttc" id="peer_8h_html_a9d0ec25ba319a38b17f30cf156e85c51"><div class="ttname"><a href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">dtls_security_params_free_other</a></div><div class="ttdeci">static void dtls_security_params_free_other(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00097">peer.h:97</a></div></div>
-<div class="ttc" id="global_8h_html_aaace8dce4341d910140609a96bb300db"><div class="ttname"><a href="global_8h.html#aaace8dce4341d910140609a96bb300db">TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</a></div><div class="ttdeci">#define TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00100">global.h:100</a></div></div>
-<div class="ttc" id="alert_8h_html_a4242f419ffdd4b83bfaa2a0935ed2b6d"><div class="ttname"><a href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">dtls_alert_create</a></div><div class="ttdeci">static int dtls_alert_create(dtls_alert_level_t level, dtls_alert_t desc)</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00071">alert.h:71</a></div></div>
-<div class="ttc" id="dtls_8c_html_ad6ebff8518bb1d53ba888baf6898ee21"><div class="ttname"><a href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls_send_server_hello_done</a></div><div class="ttdeci">static int dtls_send_server_hello_done(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02061">dtls.c:2061</a></div></div>
-<div class="ttc" id="debug_8h_html_a0f158325426415d9efb5a36bebf45844"><div class="ttname"><a href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">dtls_debug</a></div><div class="ttdeci">#define dtls_debug(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00139">debug.h:139</a></div></div>
-<div class="ttc" id="dtls_8h_html_a44399f223a3e1c8a8bf3fc638a06a4d7"><div class="ttname"><a href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">DTLS_HT_SERVER_HELLO_DONE</a></div><div class="ttdeci">#define DTLS_HT_SERVER_HELLO_DONE</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00349">dtls.h:349</a></div></div>
-<div class="ttc" id="dtls_8c_html_a7730a402edfca00c35bc1c7c09eb2fb9"><div class="ttname"><a href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls_send_server_hello</a></div><div class="ttdeci">static int dtls_send_server_hello(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01736">dtls.c:1736</a></div></div>
-<div class="ttc" id="crypto_8h_html_ab96c8e0773a14d1ce1621eed1a78e2bd"><div class="ttname"><a href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></div><div class="ttdeci">#define DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00089">crypto.h:89</a></div></div>
-<div class="ttc" id="global_8h_html_a7e080d630a40510f655bf6982c555063"><div class="ttname"><a href="global_8h.html#a7e080d630a40510f655bf6982c555063">TLS_EXT_ELLIPTIC_CURVES</a></div><div class="ttdeci">#define TLS_EXT_ELLIPTIC_CURVES</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00085">global.h:85</a></div></div>
-<div class="ttc" id="dtls_8c_html_aa5a4609da11d9496490853de9c2bf6fa"><div class="ttname"><a href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">DTLS_CH_LENGTH_MAX</a></div><div class="ttdeci">#define DTLS_CH_LENGTH_MAX</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00077">dtls.c:77</a></div></div>
-<div class="ttc" id="dtls__time_8h_html"><div class="ttname"><a href="dtls__time_8h.html">dtls_time.h</a></div><div class="ttdoc">Clock Handling. </div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a991b95919538531d730f74045e4fe3b1"><div class="ttname"><a href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">dtls_hs_state_t::hs_hash</a></div><div class="ttdeci">dtls_hash_ctx hs_hash</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00062">state.h:62</a></div></div>
-<div class="ttc" id="dtls_8c_html_a4c0c656efcfd0e33595914171e51ae6d"><div class="ttname"><a href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">DTLS_SKEXECPSK_LENGTH_MIN</a></div><div class="ttdeci">#define DTLS_SKEXECPSK_LENGTH_MIN</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00082">dtls.c:82</a></div></div>
-<div class="ttc" id="dtls_8c_html_abd652cf0e4512727591d3ec8ca066ace"><div class="ttname"><a href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a></div><div class="ttdeci">#define DTLS_COOKIE_LENGTH_MAX</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00076">dtls.c:76</a></div></div>
-<div class="ttc" id="structnetq__t_html_afe91256ff5267fc680b96efd3bd8635a"><div class="ttname"><a href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">netq_t::t</a></div><div class="ttdeci">clock_time_t t</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00041">netq.h:41</a></div></div>
-<div class="ttc" id="dtls_8c_html_a915dccbe7e71d52d2650378f3aaad054"><div class="ttname"><a href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">check_server_key_exchange_psk</a></div><div class="ttdeci">static int check_server_key_exchange_psk(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02687">dtls.c:2687</a></div></div>
-<div class="ttc" id="dtls_8c_html_a85d3d5311baabdaa06b7824528eef4e5"><div class="ttname"><a href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a></div><div class="ttdeci">#define DTLS_HV_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00078">dtls.c:78</a></div></div>
-<div class="ttc" id="dtls_8h_html_af8ce2230240b6d3c36b216ef459baff1"><div class="ttname"><a href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">DTLS_CT_ALERT</a></div><div class="ttdeci">#define DTLS_CT_ALERT</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00326">dtls.h:326</a></div></div>
-<div class="ttc" id="crypto_8h_html_a0df6db4f8c29f2b0aa5a1363b4f9127f"><div class="ttname"><a href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a></div><div class="ttdeci">#define MAX_KEYBLOCK_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00055">crypto.h:55</a></div></div>
-<div class="ttc" id="group__netq_html_ga9eba9e66570dcdfc933c6cf843694444"><div class="ttname"><a href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a></div><div class="ttdeci">static void netq_init()</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00058">netq.h:58</a></div></div>
-<div class="ttc" id="dtls_8c_html_a45d793d73836bf96dacb1d558f81b6c7"><div class="ttname"><a href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">prf_label_finished</a></div><div class="ttdeci">static const unsigned char prf_label_finished[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00121">dtls.c:121</a></div></div>
-<div class="ttc" id="dtls_8h_html_a5c6625ffcf61189392768253e8919a45"><div class="ttname"><a href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a></div><div class="ttdeci">dtls_handshake_header_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00362">dtls.h:362</a></div></div>
-<div class="ttc" id="dtls_8c_html_a0ce6e5416f5479558116b881d3eb1ad6"><div class="ttname"><a href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">HASH_FIND_PEER</a></div><div class="ttdeci">#define HASH_FIND_PEER(head, sess, out)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00065">dtls.c:65</a></div></div>
-<div class="ttc" id="dtls_8c_html_a12e4cab07baba9eae2a0182f4e0bf72d"><div class="ttname"><a href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls_send_client_key_exchange</a></div><div class="ttdeci">static int dtls_send_client_key_exchange(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02164">dtls.c:2164</a></div></div>
-<div class="ttc" id="global_8h_html_ae136afe82bd9031a4c1c604de0cb0118"><div class="ttname"><a href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118">TLS_EXT_ENCRYPT_THEN_MAC</a></div><div class="ttdeci">#define TLS_EXT_ENCRYPT_THEN_MAC</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00090">global.h:90</a></div></div>
-<div class="ttc" id="dtls_8c_html_ad8c8390d0a1592207c4ea6dd0a623a9a"><div class="ttname"><a href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a></div><div class="ttdeci">static int dtls_check_tls_extension(dtls_peer_t *peer, uint8 *data, size_t data_length, int client_hello)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00777">dtls.c:777</a></div></div>
-<div class="ttc" id="crypto_8c_html_a25930cdb27a6ffcf05e2c2a9c95a6af8"><div class="ttname"><a href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">dtls_handshake_new</a></div><div class="ttdeci">dtls_handshake_parameters_t * dtls_handshake_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00123">crypto.c:123</a></div></div>
-<div class="ttc" id="debug_8h_html_ab22e3494f6186183820142ba279fe9ae"><div class="ttname"><a href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">dtls_alert</a></div><div class="ttdeci">#define dtls_alert(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00134">debug.h:134</a></div></div>
-<div class="ttc" id="group__netq_html_gac769de2e30bcf2c2db89ff10822219d4"><div class="ttname"><a href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a></div><div class="ttdeci">netq_t * netq_head(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00080">netq.c:80</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3de5b3956733293d3e19d83d3cc8d9bb"><div class="ttname"><a href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">check_server_key_exchange_ecdsa</a></div><div class="ttdeci">static int check_server_key_exchange_ecdsa(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02604">dtls.c:2604</a></div></div>
-<div class="ttc" id="group__clock_html_gae3ced0551b26c9b99cb45a86f34d100a"><div class="ttname"><a href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a></div><div class="ttdeci">#define CLOCK_SECOND</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00052">dtls_time.h:52</a></div></div>
-<div class="ttc" id="debug_8c_html_a66cb8756d40a3326315d9b5f003a5a76"><div class="ttname"><a href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a></div><div class="ttdeci">void dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00277">debug.c:277</a></div></div>
-<div class="ttc" id="crypto_8h_html_a5a0bdff7c0889f35601b4935098508a0"><div class="ttname"><a href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a></div><div class="ttdeci">#define DTLS_RANDOM_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00060">crypto.h:60</a></div></div>
-<div class="ttc" id="group__HMAC_html_gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><div class="ttname"><a href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a></div><div class="ttdeci">void dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00094">hmac.c:94</a></div></div>
-<div class="ttc" id="debug_8h_html_a4a3c60a1e54594e78cd207c57ddb1378"><div class="ttname"><a href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">check_stack</a></div><div class="ttdeci">static void check_stack()</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00059">debug.h:59</a></div></div>
-<div class="ttc" id="global_8h_html_a5d17863db920927ef8160547541b58e3"><div class="ttname"><a href="global_8h.html#a5d17863db920927ef8160547541b58e3">TLS_EXT_EC_POINT_FORMATS</a></div><div class="ttdeci">#define TLS_EXT_EC_POINT_FORMATS</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00086">global.h:86</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__psk__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__psk__t.html">dtls_handshake_parameters_psk_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00094">crypto.h:94</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html"><div class="ttname"><a href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00095">hmac.h:95</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab3af0ee4375c0da833aacec49c6fd8ad"><div class="ttname"><a href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls_send_hello_request</a></div><div class="ttdeci">static int dtls_send_hello_request(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02948">dtls.c:2948</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_aa176a7ffe3a780dc97a716dfffb54992"><div class="ttname"><a href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">dtls_peer_t::handshake_params</a></div><div class="ttdeci">dtls_handshake_parameters_t * handshake_params</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00065">peer.h:65</a></div></div>
-<div class="ttc" id="hmac_8h_html_afe0af64930ac5d6a51289df6d1eb4f52"><div class="ttname"><a href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a></div><div class="ttdeci">static void dtls_hash_init(dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00043">hmac.h:43</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_aaceb7ea4b4f9e74fb2ec85c49746132f"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">dtls_ecdsa_key_t::pub_key_y</a></div><div class="ttdeci">const unsigned char * pub_key_y</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00067">dtls.h:67</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1f320854c9f4e9b2105649b3624976b0"><div class="ttname"><a href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">dtls_kb_mac_secret_size</a></div><div class="ttdeci">#define dtls_kb_mac_secret_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00154">crypto.h:154</a></div></div>
-<div class="ttc" id="structnetq__t_html_aaca5f6407bd7b3162d9ee7e7e7b8f0ff"><div class="ttname"><a href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">netq_t::peer</a></div><div class="ttdeci">dtls_peer_t * peer</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00044">netq.h:44</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab9251eac8015afc7985ff4398657ea3f"><div class="ttname"><a href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">check_client_keyexchange</a></div><div class="ttdeci">static int check_client_keyexchange(dtls_context_t *ctx, dtls_handshake_parameters_t *handshake, uint8 *data, size_t length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01005">dtls.c:1005</a></div></div>
-<div class="ttc" id="dtls_8c_html_aa90f5eb6954137d5e098e29143c2586a"><div class="ttname"><a href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a></div><div class="ttdeci">int dtls_close(dtls_context_t *ctx, const session_t *remote)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01494">dtls.c:1494</a></div></div>
-<div class="ttc" id="structnetq__t_html_a9998944e43a39a2e5700156876a312e0"><div class="ttname"><a href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">netq_t::epoch</a></div><div class="ttdeci">uint16_t epoch</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00045">netq.h:45</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">DTLS_ALERT_DECODE_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00054">alert.h:54</a></div></div>
-<div class="ttc" id="dtls_8c_html_a91b2653747ca1e4058ae3b350019188b"><div class="ttname"><a href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">check_finished</a></div><div class="ttdeci">static int check_finished(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01104">dtls.c:1104</a></div></div>
-<div class="ttc" id="debug_8h_html_ad4c9c94c054579b73789fead587c8514"><div class="ttname"><a href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">dtls_crit</a></div><div class="ttdeci">#define dtls_crit(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00135">debug.h:135</a></div></div>
-<div class="ttc" id="dtls_8c_html_ad699a00b7ff5a71fa5b7fbc79a4dd9a8"><div class="ttname"><a href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">verify_ext_eliptic_curves</a></div><div class="ttdeci">static int verify_ext_eliptic_curves(uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00701">dtls.c:701</a></div></div>
-<div class="ttc" id="dtls_8c_html_a09a0896d586ff27855ced6930cc17023"><div class="ttname"><a href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a></div><div class="ttdeci">#define SKIP_VAR_FIELD(P, L, T)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00106">dtls.c:106</a></div></div>
-<div class="ttc" id="dtls_8c_html_a6570b93f9f19e6abceef85c566fe3696"><div class="ttname"><a href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">DTLS_CE_LENGTH</a></div><div class="ttdeci">#define DTLS_CE_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00080">dtls.c:80</a></div></div>
-<div class="ttc" id="dtls_8c_html_a94199c9fa65db19e0f761e3ff973eb4b"><div class="ttname"><a href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a></div><div class="ttdeci">static int calculate_key_block(dtls_context_t *ctx, dtls_handshake_parameters_t *handshake, dtls_peer_t *peer, session_t *session, dtls_peer_type role)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00599">dtls.c:599</a></div></div>
-<div class="ttc" id="global_8h_html_a9fc59fb51c2e3cb4da6fb19bc8cad080"><div class="ttname"><a href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080">DTLS_DEFAULT_MAX_RETRANSMIT</a></div><div class="ttdeci">#define DTLS_DEFAULT_MAX_RETRANSMIT</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00070">global.h:70</a></div></div>
-<div class="ttc" id="dtls_8c_html_a83b260e812e69f1dae18497d167770a9"><div class="ttname"><a href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a></div><div class="ttdeci">#define PRF_LABEL_SIZE(Label)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00115">dtls.c:115</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab199f50f39a96464ff7b532f2635ce9d"><div class="ttname"><a href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">handle_handshake</a></div><div class="ttdeci">static int handle_handshake(dtls_context_t *ctx, dtls_peer_t *peer, session_t *session, const dtls_peer_type role, const dtls_state_t state, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03347">dtls.c:3347</a></div></div>
-<div class="ttc" id="dtls_8h_html_a25f0afef67a1fd8d9e3e61074d11e2f5"><div class="ttname"><a href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a></div><div class="ttdeci">#define DTLS_HT_CLIENT_HELLO</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00343">dtls.h:343</a></div></div>
-<div class="ttc" id="dtls_8c_html_acf0d50c9f224c0677988f13e947e9523"><div class="ttname"><a href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">HASH_ADD_PEER</a></div><div class="ttdeci">#define HASH_ADD_PEER(head, sess, add)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00067">dtls.c:67</a></div></div>
-<div class="ttc" id="global_8h_html_adde6aaee8457bee49c2a92621fe22b79"><div class="ttname"><a href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></div><div class="ttdeci">unsigned char uint8</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00047">global.h:47</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a67f85371953c8ae07ec110cb39c13125"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">dtls_handshake_parameters_t::compression</a></div><div class="ttdeci">dtls_compression_t compression</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00127">crypto.h:127</a></div></div>
-<div class="ttc" id="dtls_8c_html_a734cf32b1c8b99e21d57006da24fd808"><div class="ttname"><a href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls_set_record_header</a></div><div class="ttdeci">static uint8 * dtls_set_record_header(uint8 type, dtls_security_parameters_t *security, uint8 *buf)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00390">dtls.c:390</a></div></div>
-<div class="ttc" id="dtls_8c_html_aa57a9ccb1344c5baf8bd3adf35f3beeb"><div class="ttname"><a href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a></div><div class="ttdeci">static void dtls_retransmit(dtls_context_t *context, netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03890">dtls.c:3890</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a100dc82ee41004df1d9f211873332f87"><div class="ttname"><a href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">dtls_security_parameters_t::rseq</a></div><div class="ttdeci">uint64_t rseq</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00104">crypto.h:104</a></div></div>
-<div class="ttc" id="dtls_8c_html_a42886cd9a1fd728f47ea40d38dfabcda"><div class="ttname"><a href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">prf_label_key</a></div><div class="ttdeci">static const unsigned char prf_label_key[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00118">dtls.c:118</a></div></div>
-<div class="ttc" id="dtls_8c_html_ad60bf1197fa1a074f91aed508cfefa62"><div class="ttname"><a href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a></div><div class="ttdeci">int dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03826">dtls.c:3826</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00077">global.h:77</a></div></div>
-<div class="ttc" id="dtls_8c_html_afc54bc2ed42b4b65ad8f01abca9a8772"><div class="ttname"><a href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls_send_server_hello_msgs</a></div><div class="ttdeci">static int dtls_send_server_hello_msgs(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02073">dtls.c:2073</a></div></div>
-<div class="ttc" id="dtls_8h_html_a9abc650dd8339a227ddd165ede9350d0"><div class="ttname"><a href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">DTLS_HT_CERTIFICATE_VERIFY</a></div><div class="ttdeci">#define DTLS_HT_CERTIFICATE_VERIFY</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00350">dtls.h:350</a></div></div>
-<div class="ttc" id="crypto_8h_html_a9b039263057e157e1427c5d316133c3d"><div class="ttname"><a href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a></div><div class="ttdeci">#define DTLS_EC_KEY_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00309">crypto.h:309</a></div></div>
-<div class="ttc" id="numeric_8h_html_a074d352855e1ffde4c2ddb6a6fea01b9"><div class="ttname"><a href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a></div><div class="ttdeci">static int dtls_int_to_uint16(unsigned char *field, uint16_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00046">numeric.h:46</a></div></div>
-<div class="ttc" id="hmac_8h_html_adb5ad07ab9a1adcdfdc20e13aa37bee6"><div class="ttname"><a href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a></div><div class="ttdeci">static void dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00048">hmac.h:48</a></div></div>
-<div class="ttc" id="structsession__t_html_a0bb4423cd29b415a4cf6c32d5d9a43e4"><div class="ttname"><a href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">session_t::addr</a></div><div class="ttdeci">union session_t::@2 addr</div></div>
-<div class="ttc" id="hmac_8h_html_a7fb242dc4ddd717e5eb67d4bf89618d5"><div class="ttname"><a href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">DTLS_HASH_CTX_SIZE</a></div><div class="ttdeci">#define DTLS_HASH_CTX_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00040">hmac.h:40</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html"><div class="ttname"><a href="structdtls__peer__t.html">dtls_peer_t</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00052">peer.h:52</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00075">global.h:75</a></div></div>
-<div class="ttc" id="dtls_8h_html"><div class="ttname"><a href="dtls_8h.html">dtls.h</a></div><div class="ttdoc">High level DTLS API and visible structures. </div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbd"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a></div><div class="ttdeci">dtls_alert_t</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00039">alert.h:39</a></div></div>
-<div class="ttc" id="dtls_8h_html_a6f49d7b0a6e9190d71d51b1ee9ff3bd5"><div class="ttname"><a href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">DTLS_HT_CERTIFICATE_REQUEST</a></div><div class="ttdeci">#define DTLS_HT_CERTIFICATE_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00348">dtls.h:348</a></div></div>
-<div class="ttc" id="debug_8h_html_ab27d2c7cae1e8022e93562ecda9140b6"><div class="ttname"><a href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">dtls_debug_dump</a></div><div class="ttdeci">#define dtls_debug_dump(name, buf, length)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00141">debug.h:141</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-<div class="ttc" id="dtls_8c_html_a97496e1be0f2fe54873b35ee8bf0d462"><div class="ttname"><a href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a></div><div class="ttdeci">#define mycookie</div></div>
-<div class="ttc" id="dtls_8c_html_ae97c368900c13dc7074c09e8848afa8f"><div class="ttname"><a href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a></div><div class="ttdeci">#define DTLS_RH_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00073">dtls.c:73</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00051">state.h:51</a></div></div>
-<div class="ttc" id="group__HMAC_html_gab98c992f3f9cc3c2d75077ddd46049bf"><div class="ttname"><a href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a></div><div class="ttdeci">int dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00127">hmac.c:127</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_aa54efc762737c1b94eaebae1262d4221"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">dtls_ecdsa_key_t::pub_key_x</a></div><div class="ttdeci">const unsigned char * pub_key_x</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00066">dtls.h:66</a></div></div>
-<div class="ttc" id="numeric_8h_html_ae32dd0743658f1aa5a723d5a8357521f"><div class="ttname"><a href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a></div><div class="ttdeci">static uint16_t dtls_uint16_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00099">numeric.h:99</a></div></div>
-<div class="ttc" id="dtls_8c_html_a784ec579660900e758a9b7de84150c9b"><div class="ttname"><a href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">prf_label_master</a></div><div class="ttdeci">static const unsigned char prf_label_master[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00117">dtls.c:117</a></div></div>
-<div class="ttc" id="dtls_8c_html_a175d8e65080497463d13caf20e961500"><div class="ttname"><a href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls_get_epoch</a></div><div class="ttdeci">#define dtls_get_epoch(H)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00060">dtls.c:60</a></div></div>
-<div class="ttc" id="peer_8h_html_a48abcad7383e1db957af9b4fed030d52"><div class="ttname"><a href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00079">peer.h:79</a></div></div>
-<div class="ttc" id="crypto_8c_html_afa2d9b2a195a1d8e8c56b1af8cb7bc82"><div class="ttname"><a href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">dtls_ecdsa_create_sig</a></div><div class="ttdeci">void dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9])</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00463">crypto.c:463</a></div></div>
-<div class="ttc" id="structnetq__t_html_ae0c2648acf87d1e6f2566bc3600771b6"><div class="ttname"><a href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">netq_t::timeout</a></div><div class="ttdeci">unsigned int timeout</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00042">netq.h:42</a></div></div>
-<div class="ttc" id="crypto_8h_html_aea906786dcfa12acb320df731c8db7f6"><div class="ttname"><a href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">dtls_kb_server_write_key</a></div><div class="ttdeci">#define dtls_kb_server_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00157">crypto.h:157</a></div></div>
-<div class="ttc" id="crypto_8c_html_a802b3a2b267747a76d4557c6c9a899d7"><div class="ttname"><a href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">dtls_ecdsa_verify_sig_hash</a></div><div class="ttdeci">int dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00483">crypto.c:483</a></div></div>
-<div class="ttc" id="group__netq_html_ga108e6c43e524fd4b23a5d4731631fae3"><div class="ttname"><a href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a></div><div class="ttdeci">netq_t * netq_pop_first(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00103">netq.c:103</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a4e2184c917d1ad46d308e8770193f542"><div class="ttname"><a href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">dtls_hs_state_t::mseq_r</a></div><div class="ttdeci">uint16_t mseq_r</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00056">state.h:56</a></div></div>
-<div class="ttc" id="structnetq__t_html_a13d74bc65c8879b894698935fbbe2246"><div class="ttname"><a href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">netq_t::type</a></div><div class="ttdeci">uint8_t type</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00046">netq.h:46</a></div></div>
-<div class="ttc" id="crypto_8h_html_a72899232c09d09b86326c6f234addc02"><div class="ttname"><a href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">dtls_kb_client_mac_secret</a></div><div class="ttdeci">#define dtls_kb_client_mac_secret(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00143">crypto.h:143</a></div></div>
-<div class="ttc" id="dtls_8c_html_aacf8643991dec574dcb09a280357ae4f"><div class="ttname"><a href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">prf_label_server</a></div><div class="ttdeci">static const unsigned char prf_label_server[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00120">dtls.c:120</a></div></div>
-<div class="ttc" id="dtls_8c_html_a5676a0ceeeabd1ec38d378212f7af4a1"><div class="ttname"><a href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a></div><div class="ttdeci">int dtls_renegotiate(dtls_context_t *ctx, const session_t *dst)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02956">dtls.c:2956</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a6a72df7ab1151f81e49d464175fcaf2a"><div class="ttname"><a href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">dtls_security_parameters_t::compression</a></div><div class="ttdeci">dtls_compression_t compression</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00100">crypto.h:100</a></div></div>
-<div class="ttc" id="t__list_8h_html_adb42e31bb4fe0df6ec1aa3494902968d"><div class="ttname"><a href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a></div><div class="ttdeci">static void * list_head(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00096">t_list.h:96</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a21d9fac709d739535b0cbecce4c18830"><div class="ttname"><a href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">dtls_security_parameters_t::cipher</a></div><div class="ttdeci">dtls_cipher_t cipher</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00102">crypto.h:102</a></div></div>
-<div class="ttc" id="crypto_8h_html_a2648582ddf4c82abc01d8388bd3f15db"><div class="ttname"><a href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a></div><div class="ttdeci">#define DTLS_MASTER_SECRET_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00059">crypto.h:59</a></div></div>
-<div class="ttc" id="peer_8c_html_a037178c201b2e6b7361570ff700f059d"><div class="ttname"><a href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a></div><div class="ttdeci">void dtls_free_peer(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00041">peer.c:41</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a1c3a56ea4af8ff71e1ffe77221541f4d"><div class="ttname"><a href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">dtls_security_parameters_t::key_block</a></div><div class="ttdeci">uint8 key_block[MAX_KEYBLOCK_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00112">crypto.h:112</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="peer_8h_html_a9c37ce3fd7539154289dd17215179e2d"><div class="ttname"><a href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a></div><div class="ttdeci">static void dtls_security_params_switch(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00109">peer.h:109</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3171c099d25ed29e31326526b8e1de84"><div class="ttname"><a href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a></div><div class="ttdeci">void dtls_free_context(dtls_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03802">dtls.c:3802</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a></div><div class="ttdeci">dtls_peer_type</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html"><div class="ttname"><a href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00063">dtls.h:63</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga3e84ddbef6bf0084252e16e6c547e332"><div class="ttname"><a href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a></div><div class="ttdeci">#define DTLS_HMAC_MAX</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00075">hmac.h:75</a></div></div>
-<div class="ttc" id="numeric_8h_html_a6914ee523b27539f4e441bede8c072b4"><div class="ttname"><a href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a></div><div class="ttdeci">static int dtls_int_to_uint32(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00061">numeric.h:61</a></div></div>
-<div class="ttc" id="dtls_8c_html_a3db09acb5894f17f4745d7556555bea7"><div class="ttname"><a href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a></div><div class="ttdeci">static void update_hs_hash(dtls_peer_t *peer, uint8 *data, size_t length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01070">dtls.c:1070</a></div></div>
-<div class="ttc" id="dtls_8c_html_a5ddccf12706c8d18d80b7759454ca164"><div class="ttname"><a href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a></div><div class="ttdeci">#define DTLS_CKXEC_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00085">dtls.c:85</a></div></div>
-<div class="ttc" id="dtls_8c_html_aecdb18ea2b899994542ec46b23528738"><div class="ttname"><a href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a></div><div class="ttdeci">static const unsigned char cert_asn1_header[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00124">dtls.c:124</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">DTLS_ALERT_DECRYPT_ERROR</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00055">alert.h:55</a></div></div>
-<div class="ttc" id="dtls_8c_html_a11f53d301448aa8f1dbcfaf77441bd9c"><div class="ttname"><a href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a></div><div class="ttdeci">dtls_context_t * dtls_new_context(void *app_data)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03740">dtls.c:3740</a></div></div>
-<div class="ttc" id="t__list_8h_html_a10de2120be61f445c5989c983c1e133b"><div class="ttname"><a href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a></div><div class="ttdeci">static void list_remove(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00101">t_list.h:101</a></div></div>
-<div class="ttc" id="netq_8h_html"><div class="ttname"><a href="netq_8h.html">netq.h</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html_a21ba88c7b062772beb75c5570d257898"><div class="ttname"><a href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">dtls_handshake_parameters_t::master_secret</a></div><div class="ttdeci">uint8 master_secret[DTLS_MASTER_SECRET_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00122">crypto.h:122</a></div></div>
-<div class="ttc" id="dtls_8c_html_aee0f4f3d8541ea6ab9c204761cc6082e"><div class="ttname"><a href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a></div><div class="ttdeci">#define A_DATA_LEN</div></div>
-<div class="ttc" id="dtls_8c_html_aaafa285eb634873480c0ff429edd8064"><div class="ttname"><a href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">is_record</a></div><div class="ttdeci">static unsigned int is_record(uint8 *msg, size_t msglen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00361">dtls.c:361</a></div></div>
-<div class="ttc" id="dtls_8c_html_a0bcce8fa79dc3187eb5f1655798ac816"><div class="ttname"><a href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">DTLS_CV_LENGTH</a></div><div class="ttdeci">#define DTLS_CV_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00086">dtls.c:86</a></div></div>
-<div class="ttc" id="dtls_8c_html_a9e02f1c6e70dab40e56d5131a259521a"><div class="ttname"><a href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a></div><div class="ttdeci">static dtls_context_t * malloc_context()</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00152">dtls.c:152</a></div></div>
-<div class="ttc" id="alert_8h_html_a5bed06f27f571d7c7d9b9f212c3a0b22"><div class="ttname"><a href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22">DTLS_EVENT_CONNECTED</a></div><div class="ttdeci">#define DTLS_EVENT_CONNECTED</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00065">alert.h:65</a></div></div>
-<div class="ttc" id="debug_8h_html_ae1c22127c92fab70da7bf9cae8536e5c"><div class="ttname"><a href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a></div><div class="ttdeci">#define dtls_warn(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00136">debug.h:136</a></div></div>
-<div class="ttc" id="group__netq_html_gace12cd802d76d5bd98b2eaedc591fd22"><div class="ttname"><a href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a></div><div class="ttdeci">void netq_remove(list_t queue, netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00096">netq.c:96</a></div></div>
-<div class="ttc" id="dtls_8c_html_a872c53139e76cab7ec387cc54ae1a11b"><div class="ttname"><a href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a></div><div class="ttdeci">static int dtls_send_handshake_msg(dtls_context_t *ctx, dtls_peer_t *peer, uint8 header_type, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01361">dtls.c:1361</a></div></div>
-<div class="ttc" id="dtls_8c_html_abac8adda40bcb694e059e38f6ac115f9"><div class="ttname"><a href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a></div><div class="ttdeci">#define PRF_LABEL(Label)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00114">dtls.c:114</a></div></div>
-<div class="ttc" id="dtls_8c_html_a45841106ebcb5b1373c0312842b90943"><div class="ttname"><a href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls_create_cookie</a></div><div class="ttdeci">static int dtls_create_cookie(dtls_context_t *ctx, session_t *session, uint8 *msg, size_t msglen, uint8 *cookie, int *clen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00286">dtls.c:286</a></div></div>
-<div class="ttc" id="dtls_8c_html_a35d050593196252c1826ac2e82cbac0b"><div class="ttname"><a href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a></div><div class="ttdeci">#define DTLS_RECORD_HEADER(M)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00095">dtls.c:95</a></div></div>
-<div class="ttc" id="dtls_8h_html_a66566dfd30b8ab388c08b4cde6c667cc"><div class="ttname"><a href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a></div><div class="ttdeci">#define DTLS_HT_HELLO_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00342">dtls.h:342</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59b"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a></div><div class="ttdeci">dtls_cipher_t</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00074">global.h:74</a></div></div>
-<div class="ttc" id="dtls_8h_html_ab04f98f1863c785fabd97925c9746f7d"><div class="ttname"><a href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a></div><div class="ttdeci">#define DTLS_HT_HELLO_VERIFY_REQUEST</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00345">dtls.h:345</a></div></div>
-<div class="ttc" id="group__prng_html_gac68680277206146d06c9e5468f260ee0"><div class="ttname"><a href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a></div><div class="ttdeci">static void dtls_prng_init(unsigned short seed)</div><div class="ttdef"><b>Definition:</b> <a href="prng_8h_source.html#l00040">prng.h:40</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">DTLS_ALERT_PROTOCOL_VERSION</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00056">alert.h:56</a></div></div>
-<div class="ttc" id="dtls_8c_html_a599f0d6e9134869e55b64c4f8720ebfa"><div class="ttname"><a href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a></div><div class="ttdeci">static int is_ecdsa_client_auth_supported(dtls_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00503">dtls.c:503</a></div></div>
-<div class="ttc" id="crypto_8h_html_a59cd7c0b8724e1f9b910611623396080"><div class="ttname"><a href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">DTLS_PSK_MAX_KEY_LEN</a></div><div class="ttdeci">#define DTLS_PSK_MAX_KEY_LEN</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00092">crypto.h:92</a></div></div>
-<div class="ttc" id="ccm_8h_html_a5c46c97c6c3ef5d4e5bd616dbd064859"><div class="ttname"><a href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">DTLS_CCM_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_CCM_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="ccm_8h_source.html#l00033">ccm.h:33</a></div></div>
-<div class="ttc" id="alert_8h_html_a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e"><div class="ttname"><a href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">DTLS_ALERT_INSUFFICIENT_SECURITY</a></div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00057">alert.h:57</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00049">state.h:49</a></div></div>
-<div class="ttc" id="dtls_8c_html_a2b598b29d3148bfc02e826d94bbc0642"><div class="ttname"><a href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">check_server_hello_verify_request</a></div><div class="ttdeci">static int check_server_hello_verify_request(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02530">dtls.c:2530</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">DTLS_PSK_HINT</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="dtls_8c_html_a88db0e7ffa0836761bef7b62ac3d2fb7"><div class="ttname"><a href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">check_server_certificate</a></div><div class="ttdeci">static int check_server_certificate(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02552">dtls.c:2552</a></div></div>
-<div class="ttc" id="dtls_8c_html_a6b92c487825aa888acc0b55f5adc0220"><div class="ttname"><a href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a></div><div class="ttdeci">static int dtls_send_certificate_ecdsa(dtls_context_t *ctx, dtls_peer_t *peer, const dtls_ecdsa_key_t *key)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01834">dtls.c:1834</a></div></div>
-<div class="ttc" id="dtls_8c_html_a8bb6e8bb947b943d2af4c1886a8e72ba"><div class="ttname"><a href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a></div><div class="ttdeci">static int is_tls_psk_with_aes_128_ccm_8(dtls_cipher_t cipher)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00471">dtls.c:471</a></div></div>
-<div class="ttc" id="crypto_8h_html_a1d3c04e5d39477a525b5255ab3240094"><div class="ttname"><a href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">dtls_kb_client_iv</a></div><div class="ttdeci">#define dtls_kb_client_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00168">crypto.h:168</a></div></div>
-<div class="ttc" id="dtls_8c_html_ac203466e393ac9030d405c8f0496e9cd"><div class="ttname"><a href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a></div><div class="ttdeci">void dtls_init()</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00163">dtls.c:163</a></div></div>
-<div class="ttc" id="group__prng_html_ga3f4036a1abfcec552ab583a2dc37be6c"><div class="ttname"><a href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a></div><div class="ttdeci">static int dtls_prng(unsigned char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="prng_8h_source.html#l00033">prng.h:33</a></div></div>
-<div class="ttc" id="group__netq_html_ga9ef9da1a2af266dadef83ddf6c8524d7"><div class="ttname"><a href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a></div><div class="ttdeci">void netq_node_free(netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00127">netq.c:127</a></div></div>
-<div class="ttc" id="global_8h_html_acdbfba15eb1a5692e177d582b4ca1583"><div class="ttname"><a href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a></div><div class="ttdeci">#define DTLS_MAX_BUF</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00064">global.h:64</a></div></div>
-<div class="ttc" id="global_8h_html_a8277c276ecd5cd2f998f08fd344d90ef"><div class="ttname"><a href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a></div><div class="ttdeci">static int equals(unsigned char *a, unsigned char *b, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00127">global.h:127</a></div></div>
-<div class="ttc" id="debug_8h_html_a24b1e8ecaa65f684d879ed9d5c37119d"><div class="ttname"><a href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">dtls_debug_hexdump</a></div><div class="ttdeci">#define dtls_debug_hexdump(name, buf, length)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00140">debug.h:140</a></div></div>
-<div class="ttc" id="crypto_8h_html_a726ef8efa2e072c3c5e1ea1019e716aa"><div class="ttname"><a href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">dtls_kb_key_size</a></div><div class="ttdeci">#define dtls_kb_key_size(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00167">crypto.h:167</a></div></div>
-<div class="ttc" id="hmac_8h_html_a96801bbb62f4c9c872b22cd8e438e51e"><div class="ttname"><a href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a></div><div class="ttdeci">static size_t dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00053">hmac.h:53</a></div></div>
-<div class="ttc" id="structnetq__t_html_ac72c9378282becab5a273f612f58c124"><div class="ttname"><a href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">netq_t::length</a></div><div class="ttdeci">size_t length</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00049">netq.h:49</a></div></div>
-<div class="ttc" id="dtls_8c_html_af073bf7cefa5e49e0c939e853678d417"><div class="ttname"><a href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a></div><div class="ttdeci">static int verify_ext_cert_type(uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00725">dtls.c:725</a></div></div>
-<div class="ttc" id="dtls_8c_html_ad9481c39cd66eac3059df28aef1e9843"><div class="ttname"><a href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">DTLS_SKEXEC_LENGTH</a></div><div class="ttdeci">#define DTLS_SKEXEC_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00081">dtls.c:81</a></div></div>
-<div class="ttc" id="peer_8h_html_ab6e209f206f570eed246530ec7960943"><div class="ttname"><a href="peer_8h.html#ab6e209f206f570eed246530ec7960943">dtls_security_params_next</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params_next(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00084">peer.h:84</a></div></div>
-<div class="ttc" id="numeric_8h_html_a7b602967e2fc28b0be02bd4585e255d0"><div class="ttname"><a href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a></div><div class="ttdeci">static int dtls_int_to_uint8(unsigned char *field, uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00040">numeric.h:40</a></div></div>
-<div class="ttc" id="peer_8c_html_a0297e9d772bfca004a98462d9c7d2828"><div class="ttname"><a href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a></div><div class="ttdeci">void peer_init()</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00031">peer.c:31</a></div></div>
-<div class="ttc" id="numeric_8h_html"><div class="ttname"><a href="numeric_8h.html">numeric.h</a></div></div>
-<div class="ttc" id="global_8h_html_ab27072920285996a3e16d2e5e3d366be"><div class="ttname"><a href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a></div><div class="ttdeci">unsigned char uint32[4]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00050">global.h:50</a></div></div>
-<div class="ttc" id="prng_8h_html"><div class="ttname"><a href="prng_8h.html">prng.h</a></div><div class="ttdoc">Pseudo Random Numbers. </div></div>
-<div class="ttc" id="dtls_8c_html_aa89745c0af073102c9c350d28a84214d"><div class="ttname"><a href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a></div><div class="ttdeci">static int dtls_send_multi(dtls_context_t *ctx, dtls_peer_t *peer, dtls_security_parameters_t *security, session_t *session, unsigned char type, uint8 *buf_array[], size_t buf_len_array[], size_t buf_array_len)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01407">dtls.c:1407</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html"><div class="ttname"><a href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00099">crypto.h:99</a></div></div>
-<div class="ttc" id="dtls_8c_html_aecd3ffe8bf8a3970d3e091ce8e7c6476"><div class="ttname"><a href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a></div><div class="ttdeci">static int dtls_send_client_hello(dtls_context_t *ctx, dtls_peer_t *peer, uint8 cookie[], size_t cookie_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02308">dtls.c:2308</a></div></div>
-<div class="ttc" id="dtls_8h_html_aa9ebc35a08295c2ae09d4248ba8e6456"><div class="ttname"><a href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a></div><div class="ttdeci">dtls_client_hello_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00373">dtls.h:373</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a2bce1fa0bf77eeab8fadca824de602da"><div class="ttname"><a href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">dtls_security_parameters_t::epoch</a></div><div class="ttdeci">uint16_t epoch</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00103">crypto.h:103</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-<div class="ttc" id="dtls_8c_html_a81061928e291b6a3e7701f6a7f51b6f3"><div class="ttname"><a href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a></div><div class="ttdeci">static void dtls_destroy_peer(dtls_context_t *ctx, dtls_peer_t *peer, int unlink)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01508">dtls.c:1508</a></div></div>
-<div class="ttc" id="dtls_8c_html_a51ab17e2a5ac1566ba4249b787bb98a3"><div class="ttname"><a href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls_send_server_certificate_request</a></div><div class="ttdeci">static int dtls_send_server_certificate_request(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02019">dtls.c:2019</a></div></div>
-<div class="ttc" id="dtls_8c_html_a2cf5795397ac5779f281543fc0f44ae9"><div class="ttname"><a href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">S_KEY_OFFSET</a></div><div class="ttdeci">#define S_KEY_OFFSET(len_s)</div></div>
-<div class="ttc" id="dtls_8c_html_a4b3eda5556d76e045b42b93055944ddd"><div class="ttname"><a href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls_debug_keyblock</a></div><div class="ttdeci">static void dtls_debug_keyblock(dtls_security_parameters_t *config)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00533">dtls.c:533</a></div></div>
-<div class="ttc" id="peer_8c_html_a209e22be64be13e116711829d21d864c"><div class="ttname"><a href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a></div><div class="ttdeci">dtls_peer_t * dtls_new_peer(const session_t *session)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00072">peer.c:72</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_ab37722ec6b82dd3120827812f212a51e"><div class="ttname"><a href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">dtls_context_t::app</a></div><div class="ttdeci">void * app</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00237">dtls.h:237</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00041">state.h:41</a></div></div>
-<div class="ttc" id="alert_8h_html_a06e52ce3a2909c8f5a3d47d2c0346124"><div class="ttname"><a href="alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124">DTLS_EVENT_RENEGOTIATE</a></div><div class="ttdeci">#define DTLS_EVENT_RENEGOTIATE</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00068">alert.h:68</a></div></div>
-<div class="ttc" id="dtls_8h_html_a55a0a899d7f151e7f53b76fe8a82c10e"><div class="ttname"><a href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">DTLS_HT_CERTIFICATE</a></div><div class="ttdeci">#define DTLS_HT_CERTIFICATE</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00346">dtls.h:346</a></div></div>
-<div class="ttc" id="dtls_8h_html_abd61d526ef995e63a6debfd8ddda9e98"><div class="ttname"><a href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a></div><div class="ttdeci">dtls_hello_verify_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00380">dtls.h:380</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00115">crypto.h:115</a></div></div>
-<div class="ttc" id="dtls_8c_html_a1e338587fb19c794c8d19bc2801f2eb2"><div class="ttname"><a href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls_write</a></div><div class="ttdeci">int dtls_write(struct dtls_context_t *ctx, session_t *dst, uint8 *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00236">dtls.c:236</a></div></div>
-<div class="ttc" id="global_8h_html_af36d51830256b7d1bf4dbaa8590c19e4"><div class="ttname"><a href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a></div><div class="ttdeci">#define TLS_CERT_TYPE_RAW_PUBLIC_KEY</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00092">global.h:92</a></div></div>
-<div class="ttc" id="dtls_8c_html_affe47ee08ad0e6a54d4f0c2a7f412675"><div class="ttname"><a href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a></div><div class="ttdeci">#define DTLS_CH_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00075">dtls.c:75</a></div></div>
-<div class="ttc" id="dtls_8c_html_a8546683053c19be38b23aa9042139f4b"><div class="ttname"><a href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls_get_cookie</a></div><div class="ttdeci">static int dtls_get_cookie(uint8 *msg, size_t msglen, uint8 **cookie)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00261">dtls.c:261</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00042">state.h:42</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab9733484b9a23775b1bc8b3d723282e5"><div class="ttname"><a href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a></div><div class="ttdeci">static int dtls_prepare_record(dtls_peer_t *peer, dtls_security_parameters_t *security, unsigned char type, uint8 *data_array[], size_t data_len_array[], size_t data_array_len, uint8 *sendbuf, size_t *rlen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01180">dtls.c:1180</a></div></div>
-<div class="ttc" id="dtls_8h_html_a577885c74492a460729a451f33a894c4"><div class="ttname"><a href="dtls_8h.html#a577885c74492a460729a451f33a894c4">DTLS_HT_CLIENT_KEY_EXCHANGE</a></div><div class="ttdeci">#define DTLS_HT_CLIENT_KEY_EXCHANGE</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00351">dtls.h:351</a></div></div>
-<div class="ttc" id="dtls_8c_html_ab50d1ee589e91d07032d0a65768dee82"><div class="ttname"><a href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a></div><div class="ttdeci">void dtls_check_retransmit(dtls_context_t *context, clock_time_t *next)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03957">dtls.c:3957</a></div></div>
-<div class="ttc" id="dtls_8c_html_a24e7d6ad9fc0d87b7285615123bdd43d"><div class="ttname"><a href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a></div><div class="ttdeci">static int handle_handshake_msg(dtls_context_t *ctx, dtls_peer_t *peer, session_t *session, const dtls_peer_type role, const dtls_state_t state, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02992">dtls.c:2992</a></div></div>
-<div class="ttc" id="dtls_8h_html_a44ec206b1d84aa3d83281a92ed7cc238"><div class="ttname"><a href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a></div><div class="ttdeci">#define DTLS_COOKIE_SECRET_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00071">dtls.h:71</a></div></div>
-<div class="ttc" id="crypto_8h_html_acdd95c24ec6aebf14dac6ee4386a79be"><div class="ttname"><a href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">dtls_kb_server_iv</a></div><div class="ttdeci">#define dtls_kb_server_iv(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00170">crypto.h:170</a></div></div>
-<div class="ttc" id="dtls_8c_html_a520419d1976b301c508721faed549b4f"><div class="ttname"><a href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a></div><div class="ttdeci">#define DTLS_HS_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00074">dtls.c:74</a></div></div>
-<div class="ttc" id="dtls_8c_html_a69edf0296cf64026686d4ff4424d4e8f"><div class="ttname"><a href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">LOW</a></div><div class="ttdeci">#define LOW(V)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00093">dtls.c:93</a></div></div>
-<div class="ttc" id="dtls_8c_html_adb41bf916dc34af5cd79003a9243b727"><div class="ttname"><a href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">finalize_hs_hash</a></div><div class="ttdeci">static size_t finalize_hs_hash(dtls_peer_t *peer, uint8 *buf)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01082">dtls.c:1082</a></div></div>
-<div class="ttc" id="dtls_8c_html_ae4a2961a027959f907145f82ca9107c3"><div class="ttname"><a href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a></div><div class="ttdeci">static void dtls_add_peer(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00227">dtls.c:227</a></div></div>
-<div class="ttc" id="crypto_8h_html_a7c9e39188a2e50eb942ce8c7cd8add36"><div class="ttname"><a href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">dtls_kb_local_write_key</a></div><div class="ttdeci">#define dtls_kb_local_write_key(Param, Role)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00163">crypto.h:163</a></div></div>
-<div class="ttc" id="dtls_8c_html_aa5a8f0d3793bb3b194ca364b596ab01d"><div class="ttname"><a href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">HIGH</a></div><div class="ttdeci">#define HIGH(V)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00092">dtls.c:92</a></div></div>
-<div class="ttc" id="dtls_8c_html_a00707f0f82235a2432338e77dae0911d"><div class="ttname"><a href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a></div><div class="ttdeci">static char * dtls_handshake_type_to_name(int type)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00565">dtls.c:565</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-<div class="ttc" id="global_8h_html_a5e90b30856b81913af89565b55751da5"><div class="ttname"><a href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a></div><div class="ttdeci">unsigned char uint16[2]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00048">global.h:48</a></div></div>
-<div class="ttc" id="crypto_8c_html_a5e47576e502b5a6255f1b489a4915512"><div class="ttname"><a href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">dtls_prf</a></div><div class="ttdeci">size_t dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00249">crypto.c:249</a></div></div>
-<div class="ttc" id="group__netq_html_ga142c8e39fe2cd55250e3c1f0370dfe6b"><div class="ttname"><a href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a></div><div class="ttdeci">int netq_insert_node(list_t queue, netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00061">netq.c:61</a></div></div>
-<div class="ttc" id="dtls_8h_html_a3114c327a12e3850e97c4cf8a0cc5c9d"><div class="ttname"><a href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a></div><div class="ttdeci">#define DTLS_CT_CHANGE_CIPHER_SPEC</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00325">dtls.h:325</a></div></div>
-<div class="ttc" id="numeric_8h_html_a238931e9197ce422acfba569deb2af71"><div class="ttname"><a href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a></div><div class="ttdeci">static uint32_t dtls_uint24_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00105">numeric.h:105</a></div></div>
-<div class="ttc" id="group__clock_html_ga1834985745ba5d3dd03f7e7498e3a304"><div class="ttname"><a href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a></div><div class="ttdeci">void dtls_ticks(dtls_tick_t *t)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00067">dtls_time.c:67</a></div></div>
-<div class="ttc" id="dtls_8c_html_aa2f1fb16f297640b319ff0d864139ea5"><div class="ttname"><a href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a></div><div class="ttdeci">static void free_context(dtls_context_t *context)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00157">dtls.c:157</a></div></div>
-<div class="ttc" id="dtls_8c_html_ae35671d94ccea5f335546ce409aed601"><div class="ttname"><a href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a></div><div class="ttdeci">static uint8 compression_methods[]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00456">dtls.c:456</a></div></div>
-<div class="ttc" id="dtls_8c_html_a9cfb3c9e63f378d0d8e3d3d0c60537a5"><div class="ttname"><a href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a></div><div class="ttdeci">static int dtls_send_ccs(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02156">dtls.c:2156</a></div></div>
-<div class="ttc" id="dtls_8c_html_a4d7a16c9d0cd28666a2cc8ec471aa664"><div class="ttname"><a href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">handle_ccs</a></div><div class="ttdeci">static int handle_ccs(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *record_header, uint8 *data, size_t data_length)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03457">dtls.c:3457</a></div></div>
-<div class="ttc" id="dtls_8c_html_a4c7a26bc520ac2ac88b4758e0fb84f1e"><div class="ttname"><a href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a></div><div class="ttdeci">static int dtls_alert_send_from_err(dtls_context_t *ctx, dtls_peer_t *peer, session_t *session, int err)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03559">dtls.c:3559</a></div></div>
-<div class="ttc" id="crypto_8c_html_aac32554190e3970917a31ff01eed4080"><div class="ttname"><a href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">dtls_decrypt</a></div><div class="ttdeci">int dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00550">crypto.c:550</a></div></div>
-<div class="ttc" id="debug_8h_html_a94fa8dba0861075ba507ea0417fd83c8"><div class="ttname"><a href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">dtls_emerg</a></div><div class="ttdeci">#define dtls_emerg(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00133">debug.h:133</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_aeca80f1bcbcfdba89a2ab08e4bc48120"><div class="ttname"><a href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">dtls_peer_t::role</a></div><div class="ttdeci">dtls_peer_type role</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00061">peer.h:61</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a694ce15382e7504a750a1b102ad8ec32"><div class="ttname"><a href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">dtls_hs_state_t::mseq_s</a></div><div class="ttdeci">uint16_t mseq_s</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00055">state.h:55</a></div></div>
-<div class="ttc" id="dtls_8c_html_adc4e7aa5066240a362341bbdb998bc71"><div class="ttname"><a href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">decrypt_verify</a></div><div class="ttdeci">static int decrypt_verify(dtls_peer_t *peer, uint8 *packet, size_t length, uint8 **cleartext)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02877">dtls.c:2877</a></div></div>
-<div class="ttc" id="uthash_8h_html"><div class="ttname"><a href="uthash_8h.html">uthash.h</a></div></div>
-<div class="ttc" id="global_8h_html_a0074adc0b2543a913a597e510caf27b0"><div class="ttname"><a href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">TLS_EXT_CLIENT_CERTIFICATE_TYPE</a></div><div class="ttdeci">#define TLS_EXT_CLIENT_CERTIFICATE_TYPE</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00088">global.h:88</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> |
-<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">dtls.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>High level DTLS API and visible structures.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include <stdint.h></code><br/>
-<code>#include "<a class="el" href="t__list_8h_source.html">t_list.h</a>"</code><br/>
-<code>#include "<a class="el" href="state_8h_source.html">state.h</a>"</code><br/>
-<code>#include "<a class="el" href="peer_8h_source.html">peer.h</a>"</code><br/>
-<code>#include "<a class="el" href="uthash_8h_source.html">uthash.h</a>"</code><br/>
-<code>#include "<a class="el" href="alert_8h_source.html">alert.h</a>"</code><br/>
-<code>#include "<a class="el" href="crypto_8h_source.html">crypto.h</a>"</code><br/>
-<code>#include "<a class="el" href="hmac_8h_source.html">hmac.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>"</code><br/>
-</div>
-<p><a href="dtls_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handler__t.html">dtls_handler_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html">dtls_context_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:af0c44db3bf3a6a52e9ed271218daeaa6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">DTLS_VERSION</a>   0xfefd /* DTLS v1.2 */</td></tr>
-<tr class="separator:af0c44db3bf3a6a52e9ed271218daeaa6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a44ec206b1d84aa3d83281a92ed7cc238"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>   12</td></tr>
-<tr class="separator:a44ec206b1d84aa3d83281a92ed7cc238"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a89611ebcb02bb3bbf56dfb583937586e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e">dtls_set_app_data</a>(CTX, DATA)   ((CTX)->app = (DATA))</td></tr>
-<tr class="separator:a89611ebcb02bb3bbf56dfb583937586e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a95f7eb485bb814aa308e2612681176d9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls_get_app_data</a>(CTX)   ((CTX)->app)</td></tr>
-<tr class="separator:a95f7eb485bb814aa308e2612681176d9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a09e4f571633bdb724236ac68459715b6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">DTLS_COOKIE_LENGTH</a>   16</td></tr>
-<tr class="separator:a09e4f571633bdb724236ac68459715b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3114c327a12e3850e97c4cf8a0cc5c9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">DTLS_CT_CHANGE_CIPHER_SPEC</a>   20</td></tr>
-<tr class="separator:a3114c327a12e3850e97c4cf8a0cc5c9d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af8ce2230240b6d3c36b216ef459baff1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">DTLS_CT_ALERT</a>   21</td></tr>
-<tr class="separator:af8ce2230240b6d3c36b216ef459baff1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a76965db5ec449b3c8a9a54c24a4d45dc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">DTLS_CT_HANDSHAKE</a>   22</td></tr>
-<tr class="separator:a76965db5ec449b3c8a9a54c24a4d45dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2e3ff1e96b8b7db8a3648beba35bfd0c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">DTLS_CT_APPLICATION_DATA</a>   23</td></tr>
-<tr class="separator:a2e3ff1e96b8b7db8a3648beba35bfd0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a66566dfd30b8ab388c08b4cde6c667cc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">DTLS_HT_HELLO_REQUEST</a>   0</td></tr>
-<tr class="separator:a66566dfd30b8ab388c08b4cde6c667cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a25f0afef67a1fd8d9e3e61074d11e2f5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">DTLS_HT_CLIENT_HELLO</a>   1</td></tr>
-<tr class="separator:a25f0afef67a1fd8d9e3e61074d11e2f5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad5882a5ff4073ffefa266bb2c4a1ee3c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">DTLS_HT_SERVER_HELLO</a>   2</td></tr>
-<tr class="separator:ad5882a5ff4073ffefa266bb2c4a1ee3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab04f98f1863c785fabd97925c9746f7d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">DTLS_HT_HELLO_VERIFY_REQUEST</a>   3</td></tr>
-<tr class="separator:ab04f98f1863c785fabd97925c9746f7d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a55a0a899d7f151e7f53b76fe8a82c10e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">DTLS_HT_CERTIFICATE</a>   11</td></tr>
-<tr class="separator:a55a0a899d7f151e7f53b76fe8a82c10e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aab327e17614cf2902c5fc6169466613f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">DTLS_HT_SERVER_KEY_EXCHANGE</a>   12</td></tr>
-<tr class="separator:aab327e17614cf2902c5fc6169466613f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6f49d7b0a6e9190d71d51b1ee9ff3bd5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">DTLS_HT_CERTIFICATE_REQUEST</a>   13</td></tr>
-<tr class="separator:a6f49d7b0a6e9190d71d51b1ee9ff3bd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a44399f223a3e1c8a8bf3fc638a06a4d7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">DTLS_HT_SERVER_HELLO_DONE</a>   14</td></tr>
-<tr class="separator:a44399f223a3e1c8a8bf3fc638a06a4d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9abc650dd8339a227ddd165ede9350d0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">DTLS_HT_CERTIFICATE_VERIFY</a>   15</td></tr>
-<tr class="separator:a9abc650dd8339a227ddd165ede9350d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a577885c74492a460729a451f33a894c4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">DTLS_HT_CLIENT_KEY_EXCHANGE</a>   16</td></tr>
-<tr class="separator:a577885c74492a460729a451f33a894c4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a16b49d03e041d43b60e1b7bacf35daad"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">DTLS_HT_FINISHED</a>   20</td></tr>
-<tr class="separator:a16b49d03e041d43b60e1b7bacf35daad"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:adb4c778ddcbf9ac28ef277b20adbfa33"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/>
-<a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#adb4c778ddcbf9ac28ef277b20adbfa33">dtls_credentials_type_t</a></td></tr>
-<tr class="separator:adb4c778ddcbf9ac28ef277b20adbfa33"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a472601639fcded4630fbd087f986ad10"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a472601639fcded4630fbd087f986ad10">dtls_ecdsa_key_t</a></td></tr>
-<tr class="separator:a472601639fcded4630fbd087f986ad10"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a407c66c58bfc87651714de4103bee135"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a407c66c58bfc87651714de4103bee135">dtls_context_t</a></td></tr>
-<tr class="separator:a407c66c58bfc87651714de4103bee135"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:a36eda3add5e2d12a3b5e2b6fe7038e01"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> { <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">DTLS_PSK_HINT</a>,
-<a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a>,
-<a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a>
- }</td></tr>
-<tr class="separator:a36eda3add5e2d12a3b5e2b6fe7038e01"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ac203466e393ac9030d405c8f0496e9cd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a> ()</td></tr>
-<tr class="separator:ac203466e393ac9030d405c8f0496e9cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a> (void *app_data)</td></tr>
-<tr class="separator:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3171c099d25ed29e31326526b8e1de84"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
-<tr class="separator:a3171c099d25ed29e31326526b8e1de84"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab0e3223c87b79e4946b19538b24634da"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls_set_handler</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__handler__t.html">dtls_handler_t</a> *h)</td></tr>
-<tr class="separator:ab0e3223c87b79e4946b19538b24634da"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a187f5e145bb869a732fbed426929a4e9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
-<tr class="separator:a187f5e145bb869a732fbed426929a4e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad60bf1197fa1a074f91aed508cfefa62"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ad60bf1197fa1a074f91aed508cfefa62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa90f5eb6954137d5e098e29143c2586a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *remote)</td></tr>
-<tr class="separator:aa90f5eb6954137d5e098e29143c2586a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
-<tr class="separator:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4743f51c3197d290fc9a88e1f3a64928"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928">dtls_write</a> (struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td></tr>
-<tr class="separator:a4743f51c3197d290fc9a88e1f3a64928"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab50d1ee589e91d07032d0a65768dee82"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *next)</td></tr>
-<tr class="separator:ab50d1ee589e91d07032d0a65768dee82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad09246453a4dabd919c7541484046a87"><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a> ((__packed__))</td></tr>
-<tr class="separator:ad09246453a4dabd919c7541484046a87"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae272fea7269714fe7a67d6da64961731"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, int msglen)</td></tr>
-<tr class="separator:ae272fea7269714fe7a67d6da64961731"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3fd062108e5d0f48627ae644546824a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6">dtls_get_peer</a> (const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, const <a class="el" href="structsession__t.html">session_t</a> *session)</td></tr>
-<tr class="separator:a3fd062108e5d0f48627ae644546824a6"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
-Variables</h2></td></tr>
-<tr class="memitem:a81936df7abb2c16aa897e3018aa24399"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a></td></tr>
-<tr class="separator:a81936df7abb2c16aa897e3018aa24399"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5c6625ffcf61189392768253e8919a45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a></td></tr>
-<tr class="separator:a5c6625ffcf61189392768253e8919a45"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa9ebc35a08295c2ae09d4248ba8e6456"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a></td></tr>
-<tr class="separator:aa9ebc35a08295c2ae09d4248ba8e6456"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abd61d526ef995e63a6debfd8ddda9e98"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a></td></tr>
-<tr class="separator:abd61d526ef995e63a6debfd8ddda9e98"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>High level DTLS API and visible structures. </p>
-
-<p>Definition in file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a09e4f571633bdb724236ac68459715b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_COOKIE_LENGTH   16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00323">323</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a44ec206b1d84aa3d83281a92ed7cc238"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_COOKIE_SECRET_LENGTH   12</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Length of the secret that is used for generating Hello Verify cookies. </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00071">71</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af8ce2230240b6d3c36b216ef459baff1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CT_ALERT   21</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00326">326</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2e3ff1e96b8b7db8a3648beba35bfd0c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CT_APPLICATION_DATA   23</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00328">328</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3114c327a12e3850e97c4cf8a0cc5c9d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CT_CHANGE_CIPHER_SPEC   20</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00325">325</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a76965db5ec449b3c8a9a54c24a4d45dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_CT_HANDSHAKE   22</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00327">327</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a95f7eb485bb814aa308e2612681176d9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_get_app_data</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">CTX</td><td>)</td>
- <td>   ((CTX)->app)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00259">259</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a55a0a899d7f151e7f53b76fe8a82c10e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_CERTIFICATE   11</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00346">346</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6f49d7b0a6e9190d71d51b1ee9ff3bd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_CERTIFICATE_REQUEST   13</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00348">348</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9abc650dd8339a227ddd165ede9350d0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_CERTIFICATE_VERIFY   15</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00350">350</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a25f0afef67a1fd8d9e3e61074d11e2f5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_CLIENT_HELLO   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00343">343</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a577885c74492a460729a451f33a894c4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_CLIENT_KEY_EXCHANGE   16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00351">351</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a16b49d03e041d43b60e1b7bacf35daad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_FINISHED   20</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00352">352</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a66566dfd30b8ab388c08b4cde6c667cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_HELLO_REQUEST   0</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00342">342</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab04f98f1863c785fabd97925c9746f7d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_HELLO_VERIFY_REQUEST   3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00345">345</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad5882a5ff4073ffefa266bb2c4a1ee3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_SERVER_HELLO   2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00344">344</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a44399f223a3e1c8a8bf3fc638a06a4d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_SERVER_HELLO_DONE   14</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00349">349</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aab327e17614cf2902c5fc6169466613f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HT_SERVER_KEY_EXCHANGE   12</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00347">347</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a89611ebcb02bb3bbf56dfb583937586e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define dtls_set_app_data</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">CTX, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">DATA </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((CTX)->app = (DATA))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00258">258</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af0c44db3bf3a6a52e9ed271218daeaa6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_VERSION   0xfefd /* DTLS v1.2 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00056">56</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a407c66c58bfc87651714de4103bee135"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> <a class="el" href="structdtls__context__t.html">dtls_context_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Holds global information of the DTLS engine. </p>
-
-</div>
-</div>
-<a class="anchor" id="adb4c778ddcbf9ac28ef277b20adbfa33"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef enum <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a472601639fcded4630fbd087f986ad10"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="a36eda3add5e2d12a3b5e2b6fe7038e01"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c"></a>DTLS_PSK_HINT</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2"></a>DTLS_PSK_IDENTITY</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4"></a>DTLS_PSK_KEY</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00059">59</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ad09246453a4dabd919c7541484046a87"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct __attribute__ </td>
- <td>(</td>
- <td class="paramtype">(__packed__) </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Generic header structure of the DTLS record layer.</p>
-<p>Header structure for the DTLS handshake protocol.</p>
-<p>Structure of the Client Hello message.</p>
-<p>Structure of the Hello Verify Request. </p>
-<p>< content type of the included message</p>
-<p>< Protocol version</p>
-<p>< counter for cipher state changes</p>
-<p>< sequence number</p>
-<p>< length of the following fragment</p>
-<p>< Type of handshake message (one of DTLS_HT_)</p>
-<p>< length of this message</p>
-<p>< Message sequence number</p>
-<p>< Fragment offset.</p>
-<p>< Fragment length.</p>
-<p>< Client version</p>
-<p>< GMT time of the random byte creation</p>
-<p>< Client random bytes</p>
-<p>< Server version</p>
-<p>< Length of the included cookie</p>
-<p>< up to 32 bytes making up the cookie </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00331">331</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab50d1ee589e91d07032d0a65768dee82"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_check_retransmit </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> * </td>
- <td class="paramname"><em>next</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Checks sendqueue of given DTLS context object for any outstanding packets to be transmitted.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The DTLS context object to use. </td></tr>
- <tr><td class="paramname">next</td><td>If not NULL, <code>next</code> is filled with the timestamp of the next scheduled retransmission, or <code>0</code> when no packets are waiting. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03957">3957</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa90f5eb6954137d5e098e29143c2586a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_close </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>remote</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Closes the DTLS connection associated with <code>remote</code>. This function returns zero on success, and a value less than zero on error. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l01494">1494</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a187f5e145bb869a732fbed426929a4e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_connect </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>dst</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Establishes a DTLS channel with the specified remote peer <code>dst</code>. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">dst</td><td>The remote party to connect to. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03862">3862</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad60bf1197fa1a074f91aed508cfefa62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_connect_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Establishes a DTLS channel with the specified remote peer. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">peer</td><td>The peer object that describes the session. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03826">3826</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3171c099d25ed29e31326526b8e1de84"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_free_context </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Releases any storage that has been allocated for <code>ctx</code>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03802">3802</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3fd062108e5d0f48627ae644546824a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_get_peer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>context</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Check if <code>session</code> is associated with a peer object in <code>context</code>. This function returns a pointer to the peer if found, NULL otherwise.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The DTLS context to search. </td></tr>
- <tr><td class="paramname">session</td><td>The remote address and local interface </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to the peer associated with <code>session</code> or NULL if none exists. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00212">212</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae272fea7269714fe7a67d6da64961731"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_handle_message </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>msglen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Handles incoming data as DTLS message from given peer.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The dtls context to use. </td></tr>
- <tr><td class="paramname">session</td><td>The current session </td></tr>
- <tr><td class="paramname">msg</td><td>The received data </td></tr>
- <tr><td class="paramname">msglen</td><td>The actual length of <code>msg</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, zero on success.</dd></dl>
-<p>Handles incoming data as DTLS message from given peer. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03591">3591</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac203466e393ac9030d405c8f0496e9cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>This function initializes the tinyDTLS memory management and must be called first. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00163">163</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a11f53d301448aa8f1dbcfaf77441bd9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__context__t.html">dtls_context_t</a>* dtls_new_context </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>app_data</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Creates a new context object. The storage allocated for the new object must be released with <a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context()</a>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l03740">3740</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5676a0ceeeabd1ec38d378212f7af4a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_renegotiate </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>dst</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l02956">2956</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab0e3223c87b79e4946b19538b24634da"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_set_handler </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structdtls__handler__t.html">dtls_handler_t</a> * </td>
- <td class="paramname"><em>h</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Sets the callback handler object for <code>ctx</code> to <code>h</code>. </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00262">262</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4743f51c3197d290fc9a88e1f3a64928"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_write </td>
- <td>(</td>
- <td class="paramtype">struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Writes the application data given in <code>buf</code> to the peer specified by <code>session</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
- <tr><td class="paramname">session</td><td>The remote transport address and local interface. </td></tr>
- <tr><td class="paramname">buf</td><td>The data to write. </td></tr>
- <tr><td class="paramname">len</td><td>The actual length of <code>data</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The number of bytes written or <code>-1</code> on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8c_source.html#l00236">236</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="aa9ebc35a08295c2ae09d4248ba8e6456"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_client_hello_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00373">373</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c6625ffcf61189392768253e8919a45"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_handshake_header_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00362">362</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abd61d526ef995e63a6debfd8ddda9e98"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_hello_verify_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00380">380</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a81936df7abb2c16aa897e3018aa24399"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_record_header_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00338">338</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">dtls.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="dtls_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#ifndef _DTLS_DTLS_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_DTLS_H_</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <stdint.h></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="t__list_8h.html">t_list.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="state_8h.html">state.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="peer_8h.html">peer.h</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="uthash_8h.html">uthash.h</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="t__list_8h.html">t_list.h</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="alert_8h.html">alert.h</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="crypto_8h.html">crypto.h</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="hmac_8h.html">hmac.h</a>"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "<a class="code" href="dtls__time_8h.html">dtls_time.h</a>"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#ifndef DTLSv12</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_VERSION 0xfeff </span><span class="comment">/* DTLS v1.1 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6"> 56</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_VERSION 0xfefd </span><span class="comment">/* DTLS v1.2 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01"> 59</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4"> 60</a></span>  <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">DTLS_PSK_HINT</a>, <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a>, <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> } <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a>;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structdtls__ecdsa__key__t.html"> 63</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548"> 64</a></span>  <a class="code" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a> <a class="code" href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548">curve</a>;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de"> 65</a></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">priv_key</a>; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221"> 66</a></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">pub_key_x</a>; </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f"> 67</a></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">pub_key_y</a>; </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> } <a class="code" href="dtls_8h.html#a472601639fcded4630fbd087f986ad10">dtls_ecdsa_key_t</a>;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238"> 71</a></span> <span class="preprocessor">#define DTLS_COOKIE_SECRET_LENGTH 12</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structdtls__handler__t.html"> 84</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2"> 99</a></span>  int (*write)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="structsession__t.html">session_t</a> *session, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88"> 114</a></span>  int (*read)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="structsession__t.html">session_t</a> *session, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59"> 129</a></span>  int (*event)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> code);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#ifdef DTLS_PSK</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  int (*get_psk_info)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx,</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> type,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *desc, <span class="keywordtype">size_t</span> desc_len,</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result, <span class="keywordtype">size_t</span> result_length);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_PSK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  int (*get_ecdsa_key)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const</span> <a class="code" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> **result);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  int (*verify_ecdsa_key)(<span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *other_pub_x,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *other_pub_y,</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordtype">size_t</span> key_size);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"></span>} <a class="code" href="structdtls__handler__t.html">dtls_handler_t</a>;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structdtls__context__t.html"> 223</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structdtls__context__t.html">dtls_context_t</a> {</div>
-<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f"> 224</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">cookie_secret</a>[<a class="code" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>];</div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8"> 225</a></span>  <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> <a class="code" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">cookie_secret_age</a>; </div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088"> 228</a></span> <span class="preprocessor"></span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>; </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"></span> <a class="code" href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">LIST_STRUCT</a>(<a class="code" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a>);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">struct </span>etimer retransmit_timer; </div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">LIST_STRUCT</a>(sendqueue); </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e"> 237</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">app</a>; </div>
-<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd"> 239</a></span>  <a class="code" href="structdtls__handler__t.html">dtls_handler_t</a> *<a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a>; </div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434"> 241</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434">readbuf</a>[<a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>];</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> } <a class="code" href="dtls_8h.html#a407c66c58bfc87651714de4103bee135">dtls_context_t</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a>();</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *<a class="code" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a>(<span class="keywordtype">void</span> *app_data);</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e"> 258</a></span> <span class="preprocessor">#define dtls_set_app_data(CTX,DATA) ((CTX)->app = (DATA))</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9"> 259</a></span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_get_app_data(CTX) ((CTX)->app)</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da"> 262</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls_set_handler</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__handler__t.html">dtls_handler_t</a> *h) {</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  ctx-><a class="code" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a> = h;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *dst);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *remote);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *dst);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928">dtls_write</a>(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, <span class="keywordtype">size_t</span> len);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">void</span> <a class="code" href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *next);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6"> 323</a></span> <span class="preprocessor">#define DTLS_COOKIE_LENGTH 16</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d"> 325</a></span> <span class="preprocessor">#define DTLS_CT_CHANGE_CIPHER_SPEC 20</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1"> 326</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CT_ALERT 21</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc"> 327</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CT_HANDSHAKE 22</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c"> 328</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_CT_APPLICATION_DATA 23</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87"> 331</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a>((__packed__)) {</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> content_type; </div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> version; </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> epoch; </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a> sequence_number; </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> length; </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="comment">/* fragment */</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399"> 338</a></span> } <a class="code" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">/* Handshake types */</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc"> 342</a></span> <span class="preprocessor">#define DTLS_HT_HELLO_REQUEST 0</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5"> 343</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_CLIENT_HELLO 1</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c"> 344</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_SERVER_HELLO 2</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d"> 345</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_HELLO_VERIFY_REQUEST 3</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e"> 346</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_CERTIFICATE 11</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f"> 347</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_SERVER_KEY_EXCHANGE 12</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5"> 348</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_CERTIFICATE_REQUEST 13</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7"> 349</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_SERVER_HELLO_DONE 14</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0"> 350</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_CERTIFICATE_VERIFY 15</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="dtls_8h.html#a577885c74492a460729a451f33a894c4"> 351</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_CLIENT_KEY_EXCHANGE 16</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad"> 352</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_HT_FINISHED 20</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a>((__packed__)) {</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> msg_type; </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a> length; </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> message_seq; </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a> fragment_offset; </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a> fragment_length; </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">/* body */</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45"> 362</a></span> } <a class="code" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a>;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a>((__packed__)) {</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> version; </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a> gmt_random; </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> random[28]; </div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="comment">/* session id (up to 32 bytes) */</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="comment">/* cookie (up to 32 bytes) */</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="comment">/* cipher suite (2 to 2^16 -1 bytes) */</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">/* compression method */</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456"> 373</a></span> } <a class="code" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a>((__packed__)) {</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> version; </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> cookie_length; </div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> cookie[]; </div>
-<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98"> 380</a></span> } <a class="code" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a>; </div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor">#if 0</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keywordtype">int</span> dtls_record_read(<a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> *state, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">int</span> msglen);</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keywordtype">int</span> <a class="code" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a>(<a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session,</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, <span class="keywordtype">int</span> msglen);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6">dtls_get_peer</a>(<span class="keyword">const</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *context,</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session);</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_DTLS_H_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"></span></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_ad78834cca7158114bd78d3d0acb4a548"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548">dtls_ecdsa_key_t::curve</a></div><div class="ttdeci">dtls_ecdh_curve curve</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00064">dtls.h:64</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_adb7dc6a53a7e00f2c4bbf726973e002f"><div class="ttname"><a href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">dtls_context_t::cookie_secret</a></div><div class="ttdeci">unsigned char cookie_secret[DTLS_COOKIE_SECRET_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00224">dtls.h:224</a></div></div>
-<div class="ttc" id="dtls_8h_html_a3171c099d25ed29e31326526b8e1de84"><div class="ttname"><a href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a></div><div class="ttdeci">void dtls_free_context(dtls_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03802">dtls.c:3802</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_a91769609f44590f193d726187ab366de"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">dtls_ecdsa_key_t::priv_key</a></div><div class="ttdeci">const unsigned char * priv_key</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00065">dtls.h:65</a></div></div>
-<div class="ttc" id="t__list_8h_html"><div class="ttname"><a href="t__list_8h.html">t_list.h</a></div><div class="ttdoc">Wrappers for list structures and functions. </div></div>
-<div class="ttc" id="structdtls__context__t_html"><div class="ttname"><a href="structdtls__context__t.html">dtls_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00223">dtls.h:223</a></div></div>
-<div class="ttc" id="dtls_8h_html_a11f53d301448aa8f1dbcfaf77441bd9c"><div class="ttname"><a href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a></div><div class="ttdeci">dtls_context_t * dtls_new_context(void *app_data)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03740">dtls.c:3740</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_adf4e86be64bd4a07936ddbba5f6fa6af"><div class="ttname"><a href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">dtls_context_t::LIST_STRUCT</a></div><div class="ttdeci">LIST_STRUCT(sendqueue)</div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a></div><div class="ttdeci">dtls_state_t</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00040">state.h:40</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="crypto_8h_html"><div class="ttname"><a href="crypto_8h.html">crypto.h</a></div></div>
-<div class="ttc" id="dtls_8h_html_a3fd062108e5d0f48627ae644546824a6"><div class="ttname"><a href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6">dtls_get_peer</a></div><div class="ttdeci">dtls_peer_t * dtls_get_peer(const dtls_context_t *context, const session_t *session)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00212">dtls.c:212</a></div></div>
-<div class="ttc" id="dtls_8h_html_a81936df7abb2c16aa897e3018aa24399"><div class="ttname"><a href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a></div><div class="ttdeci">dtls_record_header_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00338">dtls.h:338</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="alert_8h_html_ab6264d1b950719f1c2e00b122cad871f"><div class="ttname"><a href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a></div><div class="ttdeci">dtls_alert_level_t</div><div class="ttdef"><b>Definition:</b> <a href="alert_8h_source.html#l00034">alert.h:34</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_a3f26099dbb3588ae9a86d26f69ec08f8"><div class="ttname"><a href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">dtls_context_t::cookie_secret_age</a></div><div class="ttdeci">clock_time_t cookie_secret_age</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00225">dtls.h:225</a></div></div>
-<div class="ttc" id="alert_8h_html"><div class="ttname"><a href="alert_8h.html">alert.h</a></div><div class="ttdoc">DTLS alert protocol. </div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a></div><div class="ttdeci">dtls_credentials_type_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00059">dtls.h:59</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_a417fa8ac04478292f0539d2da0fec088"><div class="ttname"><a href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">dtls_context_t::peers</a></div><div class="ttdeci">dtls_peer_t * peers</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00228">dtls.h:228</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="global_8h_html_a0749f1df578b26eccab986b0d8abaa56"><div class="ttname"><a href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a></div><div class="ttdeci">unsigned char uint48[6]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00051">global.h:51</a></div></div>
-<div class="ttc" id="dtls_8h_html_ab0e3223c87b79e4946b19538b24634da"><div class="ttname"><a href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls_set_handler</a></div><div class="ttdeci">static void dtls_set_handler(dtls_context_t *ctx, dtls_handler_t *h)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00262">dtls.h:262</a></div></div>
-<div class="ttc" id="peer_8h_html"><div class="ttname"><a href="peer_8h.html">peer.h</a></div><div class="ttdoc">information about peers in a DTLS session </div></div>
-<div class="ttc" id="structdtls__context__t_html_a460737bda0d200538c00ef7877b339cd"><div class="ttname"><a href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">dtls_context_t::h</a></div><div class="ttdeci">dtls_handler_t * h</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00239">dtls.h:239</a></div></div>
-<div class="ttc" id="dtls_8h_html_ad09246453a4dabd919c7541484046a87"><div class="ttname"><a href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">__attribute__</a></div><div class="ttdeci">struct __attribute__((__packed__))</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00331">dtls.h:331</a></div></div>
-<div class="ttc" id="global_8h_html_aabc56baaf04f922a1ea0dda7691fec0a"><div class="ttname"><a href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a></div><div class="ttdeci">unsigned char uint24[3]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00049">global.h:49</a></div></div>
-<div class="ttc" id="dtls_8h_html_a472601639fcded4630fbd087f986ad10"><div class="ttname"><a href="dtls_8h.html#a472601639fcded4630fbd087f986ad10">dtls_ecdsa_key_t</a></div><div class="ttdeci">struct dtls_ecdsa_key_t dtls_ecdsa_key_t</div></div>
-<div class="ttc" id="dtls__time_8h_html"><div class="ttname"><a href="dtls__time_8h.html">dtls_time.h</a></div><div class="ttdoc">Clock Handling. </div></div>
-<div class="ttc" id="hmac_8h_html"><div class="ttname"><a href="hmac_8h.html">hmac.h</a></div></div>
-<div class="ttc" id="dtls_8h_html_a5c6625ffcf61189392768253e8919a45"><div class="ttname"><a href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a></div><div class="ttdeci">dtls_handshake_header_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00362">dtls.h:362</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_ad6facbcd3c19ac8e1c79b1664dcf2434"><div class="ttname"><a href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434">dtls_context_t::readbuf</a></div><div class="ttdeci">unsigned char readbuf[DTLS_MAX_BUF]</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00241">dtls.h:241</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_aaceb7ea4b4f9e74fb2ec85c49746132f"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">dtls_ecdsa_key_t::pub_key_y</a></div><div class="ttdeci">const unsigned char * pub_key_y</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00067">dtls.h:67</a></div></div>
-<div class="ttc" id="crypto_8h_html_a3710d42871d602387a5147c05bf9f1ef"><div class="ttname"><a href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a></div><div class="ttdeci">dtls_ecdh_curve</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00065">crypto.h:65</a></div></div>
-<div class="ttc" id="dtls_8h_html_a407c66c58bfc87651714de4103bee135"><div class="ttname"><a href="dtls_8h.html#a407c66c58bfc87651714de4103bee135">dtls_context_t</a></div><div class="ttdeci">struct dtls_context_t dtls_context_t</div></div>
-<div class="ttc" id="global_8h_html_adde6aaee8457bee49c2a92621fe22b79"><div class="ttname"><a href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></div><div class="ttdeci">unsigned char uint8</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00047">global.h:47</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html"><div class="ttname"><a href="structdtls__peer__t.html">dtls_peer_t</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00052">peer.h:52</a></div></div>
-<div class="ttc" id="dtls_8h_html_ac203466e393ac9030d405c8f0496e9cd"><div class="ttname"><a href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a></div><div class="ttdeci">void dtls_init()</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00163">dtls.c:163</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html_aa54efc762737c1b94eaebae1262d4221"><div class="ttname"><a href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">dtls_ecdsa_key_t::pub_key_x</a></div><div class="ttdeci">const unsigned char * pub_key_x</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00066">dtls.h:66</a></div></div>
-<div class="ttc" id="dtls_8h_html_a187f5e145bb869a732fbed426929a4e9"><div class="ttname"><a href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a></div><div class="ttdeci">int dtls_connect(dtls_context_t *ctx, const session_t *dst)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03862">dtls.c:3862</a></div></div>
-<div class="ttc" id="dtls_8h_html_ae272fea7269714fe7a67d6da64961731"><div class="ttname"><a href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a></div><div class="ttdeci">int dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03591">dtls.c:3591</a></div></div>
-<div class="ttc" id="structdtls__ecdsa__key__t_html"><div class="ttname"><a href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00063">dtls.h:63</a></div></div>
-<div class="ttc" id="dtls_8h_html_ab50d1ee589e91d07032d0a65768dee82"><div class="ttname"><a href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a></div><div class="ttdeci">void dtls_check_retransmit(dtls_context_t *context, clock_time_t *next)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03957">dtls.c:3957</a></div></div>
-<div class="ttc" id="state_8h_html"><div class="ttname"><a href="state_8h.html">state.h</a></div><div class="ttdoc">state information for DTLS FSM </div></div>
-<div class="ttc" id="dtls_8h_html_a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c"><div class="ttname"><a href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">DTLS_PSK_HINT</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00060">dtls.h:60</a></div></div>
-<div class="ttc" id="global_8h_html_acdbfba15eb1a5692e177d582b4ca1583"><div class="ttname"><a href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a></div><div class="ttdeci">#define DTLS_MAX_BUF</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00064">global.h:64</a></div></div>
-<div class="ttc" id="global_8h_html_ab27072920285996a3e16d2e5e3d366be"><div class="ttname"><a href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a></div><div class="ttdeci">unsigned char uint32[4]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00050">global.h:50</a></div></div>
-<div class="ttc" id="dtls_8h_html_aa9ebc35a08295c2ae09d4248ba8e6456"><div class="ttname"><a href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a></div><div class="ttdeci">dtls_client_hello_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00373">dtls.h:373</a></div></div>
-<div class="ttc" id="structdtls__handler__t_html"><div class="ttname"><a href="structdtls__handler__t.html">dtls_handler_t</a></div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00084">dtls.h:84</a></div></div>
-<div class="ttc" id="structdtls__context__t_html_ab37722ec6b82dd3120827812f212a51e"><div class="ttname"><a href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">dtls_context_t::app</a></div><div class="ttdeci">void * app</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00237">dtls.h:237</a></div></div>
-<div class="ttc" id="dtls_8h_html_a5676a0ceeeabd1ec38d378212f7af4a1"><div class="ttname"><a href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a></div><div class="ttdeci">int dtls_renegotiate(dtls_context_t *ctx, const session_t *dst)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l02956">dtls.c:2956</a></div></div>
-<div class="ttc" id="dtls_8h_html_abd61d526ef995e63a6debfd8ddda9e98"><div class="ttname"><a href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a></div><div class="ttdeci">dtls_hello_verify_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00380">dtls.h:380</a></div></div>
-<div class="ttc" id="dtls_8h_html_aa90f5eb6954137d5e098e29143c2586a"><div class="ttname"><a href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a></div><div class="ttdeci">int dtls_close(dtls_context_t *ctx, const session_t *remote)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l01494">dtls.c:1494</a></div></div>
-<div class="ttc" id="dtls_8h_html_a44ec206b1d84aa3d83281a92ed7cc238"><div class="ttname"><a href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a></div><div class="ttdeci">#define DTLS_COOKIE_SECRET_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8h_source.html#l00071">dtls.h:71</a></div></div>
-<div class="ttc" id="global_8h_html_a5e90b30856b81913af89565b55751da5"><div class="ttname"><a href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a></div><div class="ttdeci">unsigned char uint16[2]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00048">global.h:48</a></div></div>
-<div class="ttc" id="dtls_8h_html_ad60bf1197fa1a074f91aed508cfefa62"><div class="ttname"><a href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a></div><div class="ttdeci">int dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l03826">dtls.c:3826</a></div></div>
-<div class="ttc" id="uthash_8h_html"><div class="ttname"><a href="uthash_8h.html">uthash.h</a></div></div>
-<div class="ttc" id="dtls_8h_html_a4743f51c3197d290fc9a88e1f3a64928"><div class="ttname"><a href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928">dtls_write</a></div><div class="ttdeci">int dtls_write(struct dtls_context_t *ctx, session_t *session, uint8 *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="dtls_8c_source.html#l00236">dtls.c:236</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_config.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle">
-<div class="title">dtls_config.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="dtls__config_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a1b77fedd334a66611747922038c930d6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a1b77fedd334a66611747922038c930d6">DTLS_ECC</a>   1</td></tr>
-<tr class="separator:a1b77fedd334a66611747922038c930d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ce72e9d11801559b799b999f50c49cf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf">DTLS_PSK</a>   1</td></tr>
-<tr class="separator:a5ce72e9d11801559b799b999f50c49cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7d1a71461e07569d0c9003da24c30a59"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59">HAVE_ARPA_INET_H</a>   1</td></tr>
-<tr class="separator:a7d1a71461e07569d0c9003da24c30a59"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad0eabe2e5407bc73450eb15b657983cd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">HAVE_ASSERT_H</a>   1</td></tr>
-<tr class="separator:ad0eabe2e5407bc73450eb15b657983cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a765d75020849aa0a9b6becd9a5b7a193"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">HAVE_FCNTL_H</a>   1</td></tr>
-<tr class="separator:a765d75020849aa0a9b6becd9a5b7a193"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab90a030ff2790ebdc176660a6dd2a478"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">HAVE_INTTYPES_H</a>   1</td></tr>
-<tr class="separator:ab90a030ff2790ebdc176660a6dd2a478"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a14503280ca0cb757db915eea09282bfc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc">HAVE_MALLOC</a>   1</td></tr>
-<tr class="separator:a14503280ca0cb757db915eea09282bfc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae93a78f9d076138897af441c9f86f285"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285">HAVE_MEMORY_H</a>   1</td></tr>
-<tr class="separator:ae93a78f9d076138897af441c9f86f285"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3df52e9809253860c385be6f3a160607"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a3df52e9809253860c385be6f3a160607">HAVE_MEMSET</a>   1</td></tr>
-<tr class="separator:a3df52e9809253860c385be6f3a160607"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9fe2d1d4726a6b846483a2276866dc6e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">HAVE_NETDB_H</a>   1</td></tr>
-<tr class="separator:a9fe2d1d4726a6b846483a2276866dc6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0938658b988a082864efcee2d1b2bfd2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2">HAVE_NETINET_IN_H</a>   1</td></tr>
-<tr class="separator:a0938658b988a082864efcee2d1b2bfd2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aee3a7313d861afa18971031528fd0cd5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5">HAVE_SELECT</a>   1</td></tr>
-<tr class="separator:aee3a7313d861afa18971031528fd0cd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4cd6234bfe3f7c10968a1151f43ce280"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">HAVE_SOCKET</a>   1</td></tr>
-<tr class="separator:a4cd6234bfe3f7c10968a1151f43ce280"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0e6b9a04ae66b7846715e51a0a2dccff"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">HAVE_STDDEF_H</a>   1</td></tr>
-<tr class="separator:a0e6b9a04ae66b7846715e51a0a2dccff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab6cd6d1c63c1e26ea2d4537b77148354"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">HAVE_STDINT_H</a>   1</td></tr>
-<tr class="separator:ab6cd6d1c63c1e26ea2d4537b77148354"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9e0e434ec1a6ddbd97db12b5a32905e0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">HAVE_STDLIB_H</a>   1</td></tr>
-<tr class="separator:a9e0e434ec1a6ddbd97db12b5a32905e0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a41b838eb3b86a0ebbd0981e92a759c0f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">HAVE_STRDUP</a>   1</td></tr>
-<tr class="separator:a41b838eb3b86a0ebbd0981e92a759c0f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a992653625041edef146772df96f7bca9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a992653625041edef146772df96f7bca9">HAVE_STRERROR</a>   1</td></tr>
-<tr class="separator:a992653625041edef146772df96f7bca9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a405d10d46190bcb0320524c54eafc850"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850">HAVE_STRINGS_H</a>   1</td></tr>
-<tr class="separator:a405d10d46190bcb0320524c54eafc850"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad4c234dd1625255dc626a15886306e7d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d">HAVE_STRING_H</a>   1</td></tr>
-<tr class="separator:ad4c234dd1625255dc626a15886306e7d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9bee6d8db098b2230690f8e8db9ffb74"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">HAVE_STRNLEN</a>   1</td></tr>
-<tr class="separator:a9bee6d8db098b2230690f8e8db9ffb74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a05aa9fc25e1231d8eb347390558e4e22"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">HAVE_SYS_PARAM_H</a>   1</td></tr>
-<tr class="separator:a05aa9fc25e1231d8eb347390558e4e22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afb96c2bc08ebf33cca68c714f624a58d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">HAVE_SYS_SOCKET_H</a>   1</td></tr>
-<tr class="separator:afb96c2bc08ebf33cca68c714f624a58d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ace156430ba007d19b4348a950d0c692b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b">HAVE_SYS_STAT_H</a>   1</td></tr>
-<tr class="separator:ace156430ba007d19b4348a950d0c692b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2aae46056558e9d6fef6380f9678ffe3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">HAVE_SYS_TIME_H</a>   1</td></tr>
-<tr class="separator:a2aae46056558e9d6fef6380f9678ffe3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a69dc70bea5d1f8bd2be9740e974fa666"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">HAVE_SYS_TYPES_H</a>   1</td></tr>
-<tr class="separator:a69dc70bea5d1f8bd2be9740e974fa666"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2397007ae170bf57faa808bacaaa2499"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499">HAVE_TIME_H</a>   1</td></tr>
-<tr class="separator:a2397007ae170bf57faa808bacaaa2499"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a219b06937831d0da94d801ab13987639"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a219b06937831d0da94d801ab13987639">HAVE_UNISTD_H</a>   1</td></tr>
-<tr class="separator:a219b06937831d0da94d801ab13987639"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a11e8ffa0e0ee1d52812402f2eac05fa7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">HAVE_VPRINTF</a>   1</td></tr>
-<tr class="separator:a11e8ffa0e0ee1d52812402f2eac05fa7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d1d2d7f8d2f95b376954d649ab03233"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">PACKAGE_BUGREPORT</a>   ""</td></tr>
-<tr class="separator:a1d1d2d7f8d2f95b376954d649ab03233"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1c0439e4355794c09b64274849eb0279"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279">PACKAGE_NAME</a>   "tinydtls"</td></tr>
-<tr class="separator:a1c0439e4355794c09b64274849eb0279"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac73e6f903c16eca7710f92e36e1c6fbf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">PACKAGE_STRING</a>   "tinydtls 0.8.2"</td></tr>
-<tr class="separator:ac73e6f903c16eca7710f92e36e1c6fbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af415af6bfede0e8d5453708afe68651c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c">PACKAGE_TARNAME</a>   "tinydtls"</td></tr>
-<tr class="separator:af415af6bfede0e8d5453708afe68651c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5c93853116d5a50307b6744f147840aa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa">PACKAGE_URL</a>   ""</td></tr>
-<tr class="separator:a5c93853116d5a50307b6744f147840aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa326a05d5e30f9e9a4bb0b4469d5d0c0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">PACKAGE_VERSION</a>   "0.8.2"</td></tr>
-<tr class="separator:aa326a05d5e30f9e9a4bb0b4469d5d0c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a550e5c272cc3cf3814651721167dcd23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23">STDC_HEADERS</a>   1</td></tr>
-<tr class="separator:a550e5c272cc3cf3814651721167dcd23"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a1b77fedd334a66611747922038c930d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_ECC   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00008">8</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ce72e9d11801559b799b999f50c49cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_PSK   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00011">11</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7d1a71461e07569d0c9003da24c30a59"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_ARPA_INET_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00014">14</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad0eabe2e5407bc73450eb15b657983cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_ASSERT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00017">17</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a765d75020849aa0a9b6becd9a5b7a193"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_FCNTL_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00020">20</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab90a030ff2790ebdc176660a6dd2a478"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_INTTYPES_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00026">26</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a14503280ca0cb757db915eea09282bfc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MALLOC   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00030">30</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae93a78f9d076138897af441c9f86f285"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MEMORY_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00033">33</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3df52e9809253860c385be6f3a160607"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_MEMSET   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00036">36</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9fe2d1d4726a6b846483a2276866dc6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_NETDB_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00039">39</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0938658b988a082864efcee2d1b2bfd2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_NETINET_IN_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00042">42</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aee3a7313d861afa18971031528fd0cd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SELECT   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00045">45</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4cd6234bfe3f7c10968a1151f43ce280"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SOCKET   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00051">51</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0e6b9a04ae66b7846715e51a0a2dccff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDDEF_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00054">54</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab6cd6d1c63c1e26ea2d4537b77148354"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDINT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00057">57</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9e0e434ec1a6ddbd97db12b5a32905e0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STDLIB_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00060">60</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a41b838eb3b86a0ebbd0981e92a759c0f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRDUP   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00063">63</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a992653625041edef146772df96f7bca9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRERROR   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00066">66</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad4c234dd1625255dc626a15886306e7d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRING_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00072">72</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a405d10d46190bcb0320524c54eafc850"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRINGS_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00069">69</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9bee6d8db098b2230690f8e8db9ffb74"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_STRNLEN   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00075">75</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a05aa9fc25e1231d8eb347390558e4e22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_PARAM_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00078">78</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afb96c2bc08ebf33cca68c714f624a58d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_SOCKET_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00081">81</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ace156430ba007d19b4348a950d0c692b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_STAT_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00084">84</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2aae46056558e9d6fef6380f9678ffe3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_TIME_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00087">87</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a69dc70bea5d1f8bd2be9740e974fa666"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_SYS_TYPES_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00090">90</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2397007ae170bf57faa808bacaaa2499"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_TIME_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00093">93</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a219b06937831d0da94d801ab13987639"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_UNISTD_H   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00096">96</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a11e8ffa0e0ee1d52812402f2eac05fa7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HAVE_VPRINTF   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00099">99</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1d1d2d7f8d2f95b376954d649ab03233"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_BUGREPORT   ""</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00102">102</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1c0439e4355794c09b64274849eb0279"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_NAME   "tinydtls"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00105">105</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac73e6f903c16eca7710f92e36e1c6fbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_STRING   "tinydtls 0.8.2"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00108">108</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af415af6bfede0e8d5453708afe68651c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_TARNAME   "tinydtls"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00111">111</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c93853116d5a50307b6744f147840aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_URL   ""</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00114">114</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa326a05d5e30f9e9a4bb0b4469d5d0c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define PACKAGE_VERSION   "0.8.2"</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00117">117</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a550e5c272cc3cf3814651721167dcd23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define STDC_HEADERS   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__config_8h_source.html#l00120">120</a> of file <a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_config.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">dtls_config.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="dtls__config_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls_config.h. Generated from dtls_config.h.in by configure. */</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/* dtls_config.h.in. Generated from configure.in by autoheader. */</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/* Define if building universal (internal helper macro) */</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">/* #undef AC_APPLE_UNIVERSAL_BUILD */</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/* Define to 1 if building with ECC support. */</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a1b77fedd334a66611747922038c930d6"> 8</a></span> <span class="preprocessor">#define DTLS_ECC 1</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">/* Define to 1 if building with PSK support */</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf"> 11</a></span> <span class="preprocessor">#define DTLS_PSK 1</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">/* Define to 1 if you have the <arpa/inet.h> header file. */</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59"> 14</a></span> <span class="preprocessor">#define HAVE_ARPA_INET_H 1</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">/* Define to 1 if you have the <assert.h> header file. */</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd"> 17</a></span> <span class="preprocessor">#define HAVE_ASSERT_H 1</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/* Define to 1 if you have the <fcntl.h> header file. */</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193"> 20</a></span> <span class="preprocessor">#define HAVE_FCNTL_H 1</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/* Define to 1 if you have the `fls' function. */</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/* #undef HAVE_FLS */</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">/* Define to 1 if you have the <inttypes.h> header file. */</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478"> 26</a></span> <span class="preprocessor">#define HAVE_INTTYPES_H 1</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">/* Define to 1 if your system has a GNU libc compatible `malloc' function, and</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> to 0 otherwise. */</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc"> 30</a></span> <span class="preprocessor">#define HAVE_MALLOC 1</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/* Define to 1 if you have the <memory.h> header file. */</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285"> 33</a></span> <span class="preprocessor">#define HAVE_MEMORY_H 1</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/* Define to 1 if you have the `memset' function. */</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a3df52e9809253860c385be6f3a160607"> 36</a></span> <span class="preprocessor">#define HAVE_MEMSET 1</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/* Define to 1 if you have the <netdb.h> header file. */</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e"> 39</a></span> <span class="preprocessor">#define HAVE_NETDB_H 1</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* Define to 1 if you have the <netinet/in.h> header file. */</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2"> 42</a></span> <span class="preprocessor">#define HAVE_NETINET_IN_H 1</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/* Define to 1 if you have the `select' function. */</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5"> 45</a></span> <span class="preprocessor">#define HAVE_SELECT 1</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/* Define to 1 if struct sockaddr_in6 has a member sin6_len. */</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/* #undef HAVE_SOCKADDR_IN6_SIN6_LEN */</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/* Define to 1 if you have the `socket' function. */</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280"> 51</a></span> <span class="preprocessor">#define HAVE_SOCKET 1</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">/* Define to 1 if you have the <stddef.h> header file. */</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff"> 54</a></span> <span class="preprocessor">#define HAVE_STDDEF_H 1</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">/* Define to 1 if you have the <stdint.h> header file. */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354"> 57</a></span> <span class="preprocessor">#define HAVE_STDINT_H 1</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">/* Define to 1 if you have the <stdlib.h> header file. */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0"> 60</a></span> <span class="preprocessor">#define HAVE_STDLIB_H 1</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/* Define to 1 if you have the `strdup' function. */</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f"> 63</a></span> <span class="preprocessor">#define HAVE_STRDUP 1</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* Define to 1 if you have the `strerror' function. */</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a992653625041edef146772df96f7bca9"> 66</a></span> <span class="preprocessor">#define HAVE_STRERROR 1</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/* Define to 1 if you have the <strings.h> header file. */</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850"> 69</a></span> <span class="preprocessor">#define HAVE_STRINGS_H 1</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">/* Define to 1 if you have the <string.h> header file. */</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d"> 72</a></span> <span class="preprocessor">#define HAVE_STRING_H 1</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* Define to 1 if you have the `strnlen' function. */</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74"> 75</a></span> <span class="preprocessor">#define HAVE_STRNLEN 1</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">/* Define to 1 if you have the <sys/param.h> header file. */</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22"> 78</a></span> <span class="preprocessor">#define HAVE_SYS_PARAM_H 1</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">/* Define to 1 if you have the <sys/socket.h> header file. */</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d"> 81</a></span> <span class="preprocessor">#define HAVE_SYS_SOCKET_H 1</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">/* Define to 1 if you have the <sys/stat.h> header file. */</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b"> 84</a></span> <span class="preprocessor">#define HAVE_SYS_STAT_H 1</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/* Define to 1 if you have the <sys/time.h> header file. */</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3"> 87</a></span> <span class="preprocessor">#define HAVE_SYS_TIME_H 1</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/* Define to 1 if you have the <sys/types.h> header file. */</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666"> 90</a></span> <span class="preprocessor">#define HAVE_SYS_TYPES_H 1</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">/* Define to 1 if you have the <time.h> header file. */</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499"> 93</a></span> <span class="preprocessor">#define HAVE_TIME_H 1</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/* Define to 1 if you have the <unistd.h> header file. */</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a219b06937831d0da94d801ab13987639"> 96</a></span> <span class="preprocessor">#define HAVE_UNISTD_H 1</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/* Define to 1 if you have the `vprintf' function. */</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7"> 99</a></span> <span class="preprocessor">#define HAVE_VPRINTF 1</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/* Define to the address where bug reports for this package should be sent. */</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233"> 102</a></span> <span class="preprocessor">#define PACKAGE_BUGREPORT ""</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/* Define to the full name of this package. */</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279"> 105</a></span> <span class="preprocessor">#define PACKAGE_NAME "tinydtls"</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">/* Define to the full name and version of this package. */</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf"> 108</a></span> <span class="preprocessor">#define PACKAGE_STRING "tinydtls 0.8.2"</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">/* Define to the one symbol short name of this package. */</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c"> 111</a></span> <span class="preprocessor">#define PACKAGE_TARNAME "tinydtls"</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">/* Define to the home page for this package. */</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa"> 114</a></span> <span class="preprocessor">#define PACKAGE_URL ""</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">/* Define to the version of this package. */</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0"> 117</a></span> <span class="preprocessor">#define PACKAGE_VERSION "0.8.2"</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">/* Define to 1 if you have the ANSI C header files. */</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23"> 120</a></span> <span class="preprocessor">#define STDC_HEADERS 1</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">/* Define to 1 if building for Contiki. */</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">/* #undef WITH_CONTIKI */</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> significant byte first (like Motorola and SPARC, unlike Intel). */</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#if defined AC_APPLE_UNIVERSAL_BUILD</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"></span><span class="preprocessor"># if defined __BIG_ENDIAN__</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"></span><span class="preprocessor"># define WORDS_BIGENDIAN 1</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"></span><span class="preprocessor"># ifndef WORDS_BIGENDIAN</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span><span class="comment">/* # undef WORDS_BIGENDIAN */</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">/* Define to `__inline__' or `__inline' if that's what the C compiler</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> calls it, or to nothing if 'inline' is not supported under any name. */</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"></span><span class="comment">/* #undef inline */</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/* Define to rpl_malloc if the replacement function should be used. */</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">/* #undef malloc */</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">/* Define to `unsigned int' if <sys/types.h> does not define. */</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">/* #undef size_t */</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"></span><span class="preprocessor">#include "platform-specific/platform.h"</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#endif</span></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_time.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> |
-<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">dtls_time.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>Clock Handling.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>"</code><br/>
-</div>
-<p><a href="dtls__time_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8b340ad858b708dbc7bf40f784935c90"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a> (void)</td></tr>
-<tr class="separator:ga8b340ad858b708dbc7bf40f784935c90"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a> (<a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t)</td></tr>
-<tr class="separator:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
-Variables</h2></td></tr>
-<tr class="memitem:adaab7b20ee4eea0874f480b262c4a2e1"><td class="memItemLeft" align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a></td></tr>
-<tr class="separator:adaab7b20ee4eea0874f480b262c4a2e1"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Clock Handling. </p>
-
-<p>Definition in file <a class="el" href="dtls__time_8c_source.html">dtls_time.c</a>.</p>
-</div><h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="adaab7b20ee4eea0874f480b262c4a2e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">time_t dtls_clock_offset</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8c_source.html#l00051">51</a> of file <a class="el" href="dtls__time_8c_source.html">dtls_time.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_time.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">dtls_time.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="dtls__time_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="dtls__time_8h.html">dtls_time.h</a>"</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a>;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <a class="code" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a>(<span class="keywordtype">void</span>) {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  clock_init();</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a> = clock_time();</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(<a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t) {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  *t = clock_time();</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1"> 51</a></span> time_t <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90"> 54</a></span> <a class="code" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a>(<span class="keywordtype">void</span>) {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#ifdef HAVE_TIME_H</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span> <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a> = time(NULL);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span><span class="preprocessor"># ifdef __GNUC__</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span> <span class="comment">/* Issue a warning when using gcc. Other prepropressors do </span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * not seem to have a similar feature. */</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># warning "cannot initialize clock"</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span> <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a> = 0;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304"> 67</a></span> <span class="keywordtype">void</span> <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(<a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t) {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#ifdef HAVE_SYS_TIME_H</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span> <span class="keyword">struct </span>timeval tv;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  gettimeofday(&tv, NULL);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  *t = (tv.tv_sec - <a class="code" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a>) * <a class="code" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">DTLS_TICKS_PER_SECOND</a> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  + (tv.tv_usec * <a class="code" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">DTLS_TICKS_PER_SECOND</a> / 1000000);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span><span class="preprocessor">#error "clock not implemented"</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="group__clock_html_ga8b340ad858b708dbc7bf40f784935c90"><div class="ttname"><a href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a></div><div class="ttdeci">void dtls_clock_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00054">dtls_time.c:54</a></div></div>
-<div class="ttc" id="group__clock_html_gaded617551180951f4841969e396a8012"><div class="ttname"><a href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></div><div class="ttdeci">clock_time_t dtls_tick_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00058">dtls_time.h:58</a></div></div>
-<div class="ttc" id="group__clock_html_gae8610d63d209a8bf7858afc427db6168"><div class="ttname"><a href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">DTLS_TICKS_PER_SECOND</a></div><div class="ttdeci">#define DTLS_TICKS_PER_SECOND</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00061">dtls_time.h:61</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="dtls__time_8h_html"><div class="ttname"><a href="dtls__time_8h.html">dtls_time.h</a></div><div class="ttdoc">Clock Handling. </div></div>
-<div class="ttc" id="dtls__time_8c_html_adaab7b20ee4eea0874f480b262c4a2e1"><div class="ttname"><a href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_clock_offset</a></div><div class="ttdeci">time_t dtls_clock_offset</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00051">dtls_time.c:51</a></div></div>
-<div class="ttc" id="group__clock_html_ga1834985745ba5d3dd03f7e7498e3a304"><div class="ttname"><a href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a></div><div class="ttdeci">void dtls_ticks(dtls_tick_t *t)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00067">dtls_time.c:67</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_time.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">dtls_time.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>Clock Handling.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include <stdint.h></code><br/>
-<code>#include <sys/time.h></code><br/>
-<code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include <time.h></code><br/>
-</div>
-<p><a href="dtls__time_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:gae3ced0551b26c9b99cb45a86f34d100a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>   1000</td></tr>
-<tr class="separator:gae3ced0551b26c9b99cb45a86f34d100a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8610d63d209a8bf7858afc427db6168"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">DTLS_TICKS_PER_SECOND</a>   <a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a></td></tr>
-<tr class="separator:gae8610d63d209a8bf7858afc427db6168"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga6e6c13e871b82d881a01d1bc8df69d23"><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></td></tr>
-<tr class="separator:ga6e6c13e871b82d881a01d1bc8df69d23"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaded617551180951f4841969e396a8012"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></td></tr>
-<tr class="separator:gaded617551180951f4841969e396a8012"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8b340ad858b708dbc7bf40f784935c90"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a> (void)</td></tr>
-<tr class="separator:ga8b340ad858b708dbc7bf40f784935c90"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a> (<a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t)</td></tr>
-<tr class="separator:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Clock Handling. </p>
-
-<p>Definition in file <a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_time.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">dtls_time.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="dtls__time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef _DTLS_DTLS_TIME_H_</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_DTLS_TIME_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <stdint.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <sys/time.h></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span><span class="preprocessor">#include "clock.h"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#include <time.h></span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifndef CLOCK_SECOND</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a"> 52</a></span> <span class="preprocessor"></span><span class="preprocessor"># define CLOCK_SECOND 1000</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23"> 55</a></span> <span class="keyword">typedef</span> uint32_t <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="group__clock.html#gaded617551180951f4841969e396a8012"> 58</a></span> <span class="keyword">typedef</span> <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> <a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#ifndef DTLS_TICKS_PER_SECOND</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168"> 61</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_TICKS_PER_SECOND CLOCK_SECOND</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* DTLS_TICKS_PER_SECOND */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">void</span> <a class="code" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keywordtype">void</span> <a class="code" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a>(<a class="code" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_DTLS_TIME_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="group__clock_html_ga8b340ad858b708dbc7bf40f784935c90"><div class="ttname"><a href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a></div><div class="ttdeci">void dtls_clock_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00054">dtls_time.c:54</a></div></div>
-<div class="ttc" id="group__clock_html_gaded617551180951f4841969e396a8012"><div class="ttname"><a href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></div><div class="ttdeci">clock_time_t dtls_tick_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00058">dtls_time.h:58</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="group__clock_html_ga1834985745ba5d3dd03f7e7498e3a304"><div class="ttname"><a href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a></div><div class="ttdeci">void dtls_ticks(dtls_tick_t *t)</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8c_source.html#l00067">dtls_time.c:67</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-function toggleVisibility(linkObj)
-{
- var base = $(linkObj).attr('id');
- var summary = $('#'+base+'-summary');
- var content = $('#'+base+'-content');
- var trigger = $('#'+base+'-trigger');
- var src=$(trigger).attr('src');
- if (content.is(':visible')===true) {
- content.hide();
- summary.show();
- $(linkObj).addClass('closed').removeClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
- } else {
- content.show();
- summary.hide();
- $(linkObj).removeClass('closed').addClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
- }
- return false;
-}
-
-function updateStripes()
-{
- $('table.directory tr').
- removeClass('even').filter(':visible:even').addClass('even');
-}
-function toggleLevel(level)
-{
- $('table.directory tr').each(function(){
- var l = this.id.split('_').length-1;
- var i = $('#img'+this.id.substring(3));
- var a = $('#arr'+this.id.substring(3));
- if (l<level+1) {
- i.attr('src','ftv2folderopen.png');
- a.attr('src','ftv2mnode.png');
- $(this).show();
- } else if (l==level+1) {
- i.attr('src','ftv2folderclosed.png');
- a.attr('src','ftv2pnode.png');
- $(this).show();
- } else {
- $(this).hide();
- }
- });
- updateStripes();
-}
-
-function toggleFolder(id)
-{
- //The clicked row
- var currentRow = $('#row_'+id);
- var currentRowImages = currentRow.find("img");
-
- //All rows after the clicked row
- var rows = currentRow.nextAll("tr");
-
- //Only match elements AFTER this one (can't hide elements before)
- var childRows = rows.filter(function() {
- var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
- return this.id.match(re);
- });
-
- //First row is visible we are HIDING
- if (childRows.filter(':first').is(':visible')===true) {
- currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
- currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
- rows.filter("[id^=row_"+id+"]").hide();
- } else { //We are SHOWING
- //All sub images
- var childImages = childRows.find("img");
- var childImg = childImages.filter("[id^=img]");
- var childArr = childImages.filter("[id^=arr]");
-
- currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
- currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
- childImg.attr('src','ftv2folderclosed.png'); //children closed
- childArr.attr('src','ftv2pnode.png'); //children closed
- childRows.show(); //show all children
- }
- updateStripes();
-}
-
-
-function toggleInherit(id)
-{
- var rows = $('tr.inherit.'+id);
- var img = $('tr.inherit_header.'+id+' img');
- var src = $(img).attr('src');
- if (rows.filter(':first').is(':visible')===true) {
- rows.css('display','none');
- $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
- } else {
- rows.css('display','table-row'); // using show() causes jump in firefox
- $(img).attr('src',src.substring(0,src.length-10)+'open.png');
- }
-}
-
-
-$(document).ready(function() {
- $('.code,.codeRef').each(function() {
- $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
- $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
- });
-});
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: File List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">File List</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="alert_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="alert_8h.html" target="_self">alert.h</a></td><td class="desc">DTLS alert protocol </td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ccm_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ccm_8c.html" target="_self">ccm.c</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ccm_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ccm_8h.html" target="_self">ccm.h</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="config_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="config_8h.html" target="_self">config.h</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="contiki-config_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="contiki-config_8h.html" target="_self">contiki-config.h</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="crypto_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="crypto_8c.html" target="_self">crypto.c</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="crypto_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="crypto_8h.html" target="_self">crypto.h</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="debug_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="debug_8c.html" target="_self">debug.c</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="debug_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="debug_8h.html" target="_self">debug.h</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="dtls_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="dtls_8c.html" target="_self">dtls.c</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="dtls_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="dtls_8h.html" target="_self">dtls.h</a></td><td class="desc">High level DTLS API and visible structures </td></tr>
-<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="dtls__config_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="dtls__config_8h.html" target="_self">dtls_config.h</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="dtls__time_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="dtls__time_8c.html" target="_self">dtls_time.c</a></td><td class="desc">Clock Handling </td></tr>
-<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="dtls__time_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="dtls__time_8h.html" target="_self">dtls_time.h</a></td><td class="desc">Clock Handling </td></tr>
-<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="global_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="global_8h.html" target="_self">global.h</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="hmac_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="hmac_8c.html" target="_self">hmac.c</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="hmac_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="hmac_8h.html" target="_self">hmac.h</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="netq_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="netq_8c.html" target="_self">netq.c</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="netq_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="netq_8h.html" target="_self">netq.h</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="numeric_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="numeric_8h.html" target="_self">numeric.h</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="peer_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="peer_8c.html" target="_self">peer.c</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="peer_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="peer_8h.html" target="_self">peer.h</a></td><td class="desc">Information about peers in a DTLS session </td></tr>
-<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="prng_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="prng_8h.html" target="_self">prng.h</a></td><td class="desc">Pseudo Random Numbers </td></tr>
-<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="session_8c_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="session_8c.html" target="_self">session.c</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="session_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="session_8h.html" target="_self">session.h</a></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="state_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="state_8h.html" target="_self">state.h</a></td><td class="desc">State information for DTLS FSM </td></tr>
-<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="t__list_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="t__list_8h.html" target="_self">t_list.h</a></td><td class="desc">Wrappers for list structures and functions </td></tr>
-<tr id="row_27_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="tinydtls_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="tinydtls_8h.html" target="_self">tinydtls.h</a></td><td class="desc">Public tinydtls API </td></tr>
-<tr id="row_28_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="uthash_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="uthash_8h.html" target="_self">uthash.h</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="utlist_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="utlist_8h.html" target="_self">utlist.h</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Data Fields</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_func.html"><span>Functions</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_b"><span>b</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_k"><span>k</span></a></li>
- <li><a href="#index_l"><span>l</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li class="current"><a href="#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>addr
-: <a class="el" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">session_t</a>
-</li>
-<li>app
-: <a class="el" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">dtls_context_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
-<li>buckets
-: <a class="el" href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>cipher
-: <a class="el" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">dtls_handshake_parameters_t</a>
-, <a class="el" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">dtls_security_parameters_t</a>
-</li>
-<li>client
-: <a class="el" href="structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9">dtls_handshake_parameters_t</a>
-</li>
-<li>compression
-: <a class="el" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">dtls_handshake_parameters_t</a>
-, <a class="el" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">dtls_security_parameters_t</a>
-</li>
-<li>cookie_secret
-: <a class="el" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">dtls_context_t</a>
-</li>
-<li>cookie_secret_age
-: <a class="el" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">dtls_context_t</a>
-</li>
-<li>count
-: <a class="el" href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634">UT_hash_bucket</a>
-</li>
-<li>ctx
-: <a class="el" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">aes128_ccm_t</a>
-</li>
-<li>curve
-: <a class="el" href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548">dtls_ecdsa_key_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>data
-: <a class="el" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">dtls_cipher_context_t</a>
-, <a class="el" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">dtls_hmac_context_t</a>
-, <a class="el" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">netq_t</a>
-</li>
-<li>do_client_auth
-: <a class="el" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>epoch
-: <a class="el" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">dtls_security_parameters_t</a>
-, <a class="el" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">netq_t</a>
-</li>
-<li>event
-: <a class="el" href="structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59">dtls_handler_t</a>
-</li>
-<li>expand_mult
-: <a class="el" href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b">UT_hash_bucket</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>h
-: <a class="el" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">dtls_context_t</a>
-</li>
-<li>handshake_params
-: <a class="el" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">dtls_peer_t</a>
-</li>
-<li>hashv
-: <a class="el" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle</a>
-</li>
-<li>hh
-: <a class="el" href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5">dtls_peer_t</a>
-</li>
-<li>hh_head
-: <a class="el" href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf">UT_hash_bucket</a>
-</li>
-<li>hh_next
-: <a class="el" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">UT_hash_handle</a>
-</li>
-<li>hh_prev
-: <a class="el" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">UT_hash_handle</a>
-</li>
-<li>hho
-: <a class="el" href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6">UT_hash_table</a>
-</li>
-<li>hs_hash
-: <a class="el" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">dtls_hs_state_t</a>
-</li>
-<li>hs_state
-: <a class="el" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>id_length
-: <a class="el" href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b">dtls_handshake_parameters_psk_t</a>
-</li>
-<li>ideal_chain_maxlen
-: <a class="el" href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad">UT_hash_table</a>
-</li>
-<li>identity
-: <a class="el" href="structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084">dtls_handshake_parameters_psk_t</a>
-</li>
-<li>ifindex
-: <a class="el" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">session_t</a>
-</li>
-<li>ineff_expands
-: <a class="el" href="structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
-<li>key
-: <a class="el" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle</a>
-</li>
-<li>key_block
-: <a class="el" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">dtls_security_parameters_t</a>
-</li>
-<li>keylen
-: <a class="el" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle</a>
-</li>
-<li>keyx
-: <a class="el" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
-<li>length
-: <a class="el" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">netq_t</a>
-</li>
-<li>LIST_STRUCT()
-: <a class="el" href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">dtls_context_t</a>
-, <a class="el" href="structdtls__handshake__parameters__t.html#a44c54027bff617597d51f4fc862a1dc4">dtls_handshake_parameters_t</a>
-</li>
-<li>log2_num_buckets
-: <a class="el" href="structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
-<li>master_secret
-: <a class="el" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">dtls_handshake_parameters_t</a>
-</li>
-<li>mseq_r
-: <a class="el" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">dtls_hs_state_t</a>
-</li>
-<li>mseq_s
-: <a class="el" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">dtls_hs_state_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
-<li>next
-: <a class="el" href="structlist.html#a1900fe79e875e2838625b2eb60837f8f">list</a>
-, <a class="el" href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb">netq_t</a>
-, <a class="el" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle</a>
-</li>
-<li>noexpand
-: <a class="el" href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1">UT_hash_table</a>
-</li>
-<li>nonideal_items
-: <a class="el" href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f">UT_hash_table</a>
-</li>
-<li>num_buckets
-: <a class="el" href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339">UT_hash_table</a>
-</li>
-<li>num_items
-: <a class="el" href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
-<li>other_eph_pub_x
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_eph_pub_y
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_pub_x
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_pub_y
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>own_eph_priv
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>pad
-: <a class="el" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">dtls_hmac_context_t</a>
-</li>
-<li>peer
-: <a class="el" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">netq_t</a>
-</li>
-<li>peers
-: <a class="el" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">dtls_context_t</a>
-</li>
-<li>prev
-: <a class="el" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle</a>
-</li>
-<li>priv_key
-: <a class="el" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">dtls_ecdsa_key_t</a>
-</li>
-<li>pub_key_x
-: <a class="el" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">dtls_ecdsa_key_t</a>
-</li>
-<li>pub_key_y
-: <a class="el" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">dtls_ecdsa_key_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
-<li>random
-: <a class="el" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">dtls_handshake_parameters_t</a>
-</li>
-<li>read
-: <a class="el" href="structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88">dtls_handler_t</a>
-</li>
-<li>readbuf
-: <a class="el" href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434">dtls_context_t</a>
-</li>
-<li>retransmit_cnt
-: <a class="el" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">netq_t</a>
-</li>
-<li>role
-: <a class="el" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">dtls_peer_t</a>
-</li>
-<li>rseq
-: <a class="el" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">dtls_security_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
-<li>sa
-: <a class="el" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">session_t</a>
-</li>
-<li>security_params
-: <a class="el" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">dtls_peer_t</a>
-</li>
-<li>server
-: <a class="el" href="structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036">dtls_handshake_parameters_t</a>
-</li>
-<li>session
-: <a class="el" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">dtls_peer_t</a>
-</li>
-<li>signature
-: <a class="el" href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f">UT_hash_table</a>
-</li>
-<li>sin
-: <a class="el" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">session_t</a>
-</li>
-<li>sin6
-: <a class="el" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">session_t</a>
-</li>
-<li>size
-: <a class="el" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">session_t</a>
-</li>
-<li>st
-: <a class="el" href="structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d">session_t</a>
-</li>
-<li>state
-: <a class="el" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">dtls_peer_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
-<li>t
-: <a class="el" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">netq_t</a>
-</li>
-<li>tail
-: <a class="el" href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992">UT_hash_table</a>
-</li>
-<li>tbl
-: <a class="el" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">UT_hash_handle</a>
-</li>
-<li>timeout
-: <a class="el" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">netq_t</a>
-</li>
-<li>tmp
-: <a class="el" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">dtls_handshake_parameters_t</a>
-</li>
-<li>type
-: <a class="el" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">netq_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
-<li>write
-: <a class="el" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2">dtls_handler_t</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Data Fields - Functions</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="functions.html"><span>All</span></a></li>
- <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
- <li><a href="functions_vars.html"><span>Variables</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- <ul>
-<li>LIST_STRUCT()
-: <a class="el" href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">dtls_context_t</a>
-, <a class="el" href="structdtls__handshake__parameters__t.html#a44c54027bff617597d51f4fc862a1dc4">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Data Fields - Variables</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="functions.html"><span>All</span></a></li>
- <li><a href="functions_func.html"><span>Functions</span></a></li>
- <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_b"><span>b</span></a></li>
- <li><a href="#index_c"><span>c</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li><a href="#index_i"><span>i</span></a></li>
- <li><a href="#index_k"><span>k</span></a></li>
- <li><a href="#index_l"><span>l</span></a></li>
- <li><a href="#index_m"><span>m</span></a></li>
- <li><a href="#index_n"><span>n</span></a></li>
- <li><a href="#index_o"><span>o</span></a></li>
- <li><a href="#index_p"><span>p</span></a></li>
- <li><a href="#index_r"><span>r</span></a></li>
- <li><a href="#index_s"><span>s</span></a></li>
- <li><a href="#index_t"><span>t</span></a></li>
- <li class="current"><a href="#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>addr
-: <a class="el" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">session_t</a>
-</li>
-<li>app
-: <a class="el" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">dtls_context_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
-<li>buckets
-: <a class="el" href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>cipher
-: <a class="el" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">dtls_handshake_parameters_t</a>
-, <a class="el" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">dtls_security_parameters_t</a>
-</li>
-<li>client
-: <a class="el" href="structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9">dtls_handshake_parameters_t</a>
-</li>
-<li>compression
-: <a class="el" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">dtls_handshake_parameters_t</a>
-, <a class="el" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">dtls_security_parameters_t</a>
-</li>
-<li>cookie_secret
-: <a class="el" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">dtls_context_t</a>
-</li>
-<li>cookie_secret_age
-: <a class="el" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">dtls_context_t</a>
-</li>
-<li>count
-: <a class="el" href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634">UT_hash_bucket</a>
-</li>
-<li>ctx
-: <a class="el" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">aes128_ccm_t</a>
-</li>
-<li>curve
-: <a class="el" href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548">dtls_ecdsa_key_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>data
-: <a class="el" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">dtls_cipher_context_t</a>
-, <a class="el" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">dtls_hmac_context_t</a>
-, <a class="el" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">netq_t</a>
-</li>
-<li>do_client_auth
-: <a class="el" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>epoch
-: <a class="el" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">dtls_security_parameters_t</a>
-, <a class="el" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">netq_t</a>
-</li>
-<li>event
-: <a class="el" href="structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59">dtls_handler_t</a>
-</li>
-<li>expand_mult
-: <a class="el" href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b">UT_hash_bucket</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>h
-: <a class="el" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">dtls_context_t</a>
-</li>
-<li>handshake_params
-: <a class="el" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">dtls_peer_t</a>
-</li>
-<li>hashv
-: <a class="el" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle</a>
-</li>
-<li>hh
-: <a class="el" href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5">dtls_peer_t</a>
-</li>
-<li>hh_head
-: <a class="el" href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf">UT_hash_bucket</a>
-</li>
-<li>hh_next
-: <a class="el" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">UT_hash_handle</a>
-</li>
-<li>hh_prev
-: <a class="el" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">UT_hash_handle</a>
-</li>
-<li>hho
-: <a class="el" href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6">UT_hash_table</a>
-</li>
-<li>hs_hash
-: <a class="el" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">dtls_hs_state_t</a>
-</li>
-<li>hs_state
-: <a class="el" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>id_length
-: <a class="el" href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b">dtls_handshake_parameters_psk_t</a>
-</li>
-<li>ideal_chain_maxlen
-: <a class="el" href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad">UT_hash_table</a>
-</li>
-<li>identity
-: <a class="el" href="structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084">dtls_handshake_parameters_psk_t</a>
-</li>
-<li>ifindex
-: <a class="el" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">session_t</a>
-</li>
-<li>ineff_expands
-: <a class="el" href="structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
-<li>key
-: <a class="el" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle</a>
-</li>
-<li>key_block
-: <a class="el" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">dtls_security_parameters_t</a>
-</li>
-<li>keylen
-: <a class="el" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle</a>
-</li>
-<li>keyx
-: <a class="el" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">dtls_handshake_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
-<li>length
-: <a class="el" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">netq_t</a>
-</li>
-<li>log2_num_buckets
-: <a class="el" href="structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
-<li>master_secret
-: <a class="el" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">dtls_handshake_parameters_t</a>
-</li>
-<li>mseq_r
-: <a class="el" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">dtls_hs_state_t</a>
-</li>
-<li>mseq_s
-: <a class="el" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">dtls_hs_state_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
-<li>next
-: <a class="el" href="structlist.html#a1900fe79e875e2838625b2eb60837f8f">list</a>
-, <a class="el" href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb">netq_t</a>
-, <a class="el" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle</a>
-</li>
-<li>noexpand
-: <a class="el" href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1">UT_hash_table</a>
-</li>
-<li>nonideal_items
-: <a class="el" href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f">UT_hash_table</a>
-</li>
-<li>num_buckets
-: <a class="el" href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339">UT_hash_table</a>
-</li>
-<li>num_items
-: <a class="el" href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76">UT_hash_table</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
-<li>other_eph_pub_x
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_eph_pub_y
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_pub_x
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>other_pub_y
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-<li>own_eph_priv
-: <a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b">dtls_handshake_parameters_ecdsa_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>pad
-: <a class="el" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">dtls_hmac_context_t</a>
-</li>
-<li>peer
-: <a class="el" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">netq_t</a>
-</li>
-<li>peers
-: <a class="el" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">dtls_context_t</a>
-</li>
-<li>prev
-: <a class="el" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle</a>
-</li>
-<li>priv_key
-: <a class="el" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">dtls_ecdsa_key_t</a>
-</li>
-<li>pub_key_x
-: <a class="el" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">dtls_ecdsa_key_t</a>
-</li>
-<li>pub_key_y
-: <a class="el" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">dtls_ecdsa_key_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
-<li>random
-: <a class="el" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">dtls_handshake_parameters_t</a>
-</li>
-<li>read
-: <a class="el" href="structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88">dtls_handler_t</a>
-</li>
-<li>readbuf
-: <a class="el" href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434">dtls_context_t</a>
-</li>
-<li>retransmit_cnt
-: <a class="el" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">netq_t</a>
-</li>
-<li>role
-: <a class="el" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">dtls_peer_t</a>
-</li>
-<li>rseq
-: <a class="el" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">dtls_security_parameters_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
-<li>sa
-: <a class="el" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">session_t</a>
-</li>
-<li>security_params
-: <a class="el" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">dtls_peer_t</a>
-</li>
-<li>server
-: <a class="el" href="structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036">dtls_handshake_parameters_t</a>
-</li>
-<li>session
-: <a class="el" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">dtls_peer_t</a>
-</li>
-<li>signature
-: <a class="el" href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f">UT_hash_table</a>
-</li>
-<li>sin
-: <a class="el" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">session_t</a>
-</li>
-<li>sin6
-: <a class="el" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">session_t</a>
-</li>
-<li>size
-: <a class="el" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">session_t</a>
-</li>
-<li>st
-: <a class="el" href="structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d">session_t</a>
-</li>
-<li>state
-: <a class="el" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">dtls_peer_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
-<li>t
-: <a class="el" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">netq_t</a>
-</li>
-<li>tail
-: <a class="el" href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992">UT_hash_table</a>
-</li>
-<li>tbl
-: <a class="el" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">UT_hash_handle</a>
-</li>
-<li>timeout
-: <a class="el" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">netq_t</a>
-</li>
-<li>tmp
-: <a class="el" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">dtls_handshake_parameters_t</a>
-</li>
-<li>type
-: <a class="el" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">netq_t</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
-<li>write
-: <a class="el" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2">dtls_handler_t</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: global.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">global.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdlib.h></code><br/>
-<code>#include <sys/types.h></code><br/>
-<code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-</div>
-<p><a href="global_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a6b9b983a346a3e94eff205f8eab2bce0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0">DTLSv12</a>   1</td></tr>
-<tr class="separator:a6b9b983a346a3e94eff205f8eab2bce0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4da6212f220f78c713aa5e91f989e7d7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a4da6212f220f78c713aa5e91f989e7d7">WITH_SHA256</a>   1</td></tr>
-<tr class="separator:a4da6212f220f78c713aa5e91f989e7d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acdbfba15eb1a5692e177d582b4ca1583"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>   1400</td></tr>
-<tr class="separator:acdbfba15eb1a5692e177d582b4ca1583"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9fc59fb51c2e3cb4da6fb19bc8cad080"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080">DTLS_DEFAULT_MAX_RETRANSMIT</a>   7</td></tr>
-<tr class="separator:a9fc59fb51c2e3cb4da6fb19bc8cad080"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7e080d630a40510f655bf6982c555063"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a7e080d630a40510f655bf6982c555063">TLS_EXT_ELLIPTIC_CURVES</a>   10 /* see RFC 4492 */</td></tr>
-<tr class="separator:a7e080d630a40510f655bf6982c555063"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5d17863db920927ef8160547541b58e3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a5d17863db920927ef8160547541b58e3">TLS_EXT_EC_POINT_FORMATS</a>   11 /* see RFC 4492 */</td></tr>
-<tr class="separator:a5d17863db920927ef8160547541b58e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0249393d6894a15ac56962b2335add24"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a0249393d6894a15ac56962b2335add24">TLS_EXT_SIG_HASH_ALGO</a>   13 /* see RFC 5246 */</td></tr>
-<tr class="separator:a0249393d6894a15ac56962b2335add24"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0074adc0b2543a913a597e510caf27b0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">TLS_EXT_CLIENT_CERTIFICATE_TYPE</a>   19 /* see RFC 7250 */</td></tr>
-<tr class="separator:a0074adc0b2543a913a597e510caf27b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad465b86d1841ddd6c2209ff304895a95"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">TLS_EXT_SERVER_CERTIFICATE_TYPE</a>   20 /* see RFC 7250 */</td></tr>
-<tr class="separator:ad465b86d1841ddd6c2209ff304895a95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae136afe82bd9031a4c1c604de0cb0118"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118">TLS_EXT_ENCRYPT_THEN_MAC</a>   22 /* see RFC 7366 */</td></tr>
-<tr class="separator:ae136afe82bd9031a4c1c604de0cb0118"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af36d51830256b7d1bf4dbaa8590c19e4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">TLS_CERT_TYPE_RAW_PUBLIC_KEY</a>   2 /* see RFC 7250 */</td></tr>
-<tr class="separator:af36d51830256b7d1bf4dbaa8590c19e4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8095691f33c0ce6b22d205640ccc9417"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">TLS_EXT_ELLIPTIC_CURVES_SECP256R1</a>   23 /* see RFC 4492 */</td></tr>
-<tr class="separator:a8095691f33c0ce6b22d205640ccc9417"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af086ed2d0aea096be56bf7e46f8f72a6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED</a>   0 /* see RFC 4492 */</td></tr>
-<tr class="separator:af086ed2d0aea096be56bf7e46f8f72a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac97469cc46ceeb148ee92f47a26ebcf6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6">TLS_EC_CURVE_TYPE_NAMED_CURVE</a>   3 /* see RFC 4492 */</td></tr>
-<tr class="separator:ac97469cc46ceeb148ee92f47a26ebcf6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaace8dce4341d910140609a96bb300db"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#aaace8dce4341d910140609a96bb300db">TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN</a>   64 /* see RFC 4492 */</td></tr>
-<tr class="separator:aaace8dce4341d910140609a96bb300db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa347771eab2eabd24c4b9311fa61c4c9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">TLS_EXT_SIG_HASH_ALGO_SHA256</a>   4 /* see RFC 5246 */</td></tr>
-<tr class="separator:aa347771eab2eabd24c4b9311fa61c4c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af126227a026a7af436a4323db6d02ecc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">TLS_EXT_SIG_HASH_ALGO_ECDSA</a>   3 /* see RFC 5246 */</td></tr>
-<tr class="separator:af126227a026a7af436a4323db6d02ecc"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:adde6aaee8457bee49c2a92621fe22b79"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></td></tr>
-<tr class="separator:adde6aaee8457bee49c2a92621fe22b79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5e90b30856b81913af89565b55751da5"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a> [2]</td></tr>
-<tr class="separator:a5e90b30856b81913af89565b55751da5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aabc56baaf04f922a1ea0dda7691fec0a"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a> [3]</td></tr>
-<tr class="separator:aabc56baaf04f922a1ea0dda7691fec0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab27072920285996a3e16d2e5e3d366be"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a> [4]</td></tr>
-<tr class="separator:ab27072920285996a3e16d2e5e3d366be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0749f1df578b26eccab986b0d8abaa56"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a> [6]</td></tr>
-<tr class="separator:a0749f1df578b26eccab986b0d8abaa56"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ada7e71454d685b693df45b2c1ea0c59b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> { <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a> = 0x0000,
-<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a> = 0xC0A8,
-<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a> = 0xC0AE
- }</td></tr>
-<tr class="separator:ada7e71454d685b693df45b2c1ea0c59b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1ff555e0b1443c4cb4d17ac2161d89b2"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> { <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a> = 0x0000
- }</td></tr>
-<tr class="separator:a1ff555e0b1443c4cb4d17ac2161d89b2"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a6c31c5d8a0fe09547a192100d2a00dc5"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a> (unsigned char *x, const unsigned char *y, size_t n)</td></tr>
-<tr class="separator:a6c31c5d8a0fe09547a192100d2a00dc5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8277c276ecd5cd2f998f08fd344d90ef"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a> (unsigned char *a, unsigned char *b, size_t len)</td></tr>
-<tr class="separator:a8277c276ecd5cd2f998f08fd344d90ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae10dcc6b71efe025c990ac2f3d8a48b8"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8">dtls_fls</a> (unsigned int i)</td></tr>
-<tr class="separator:ae10dcc6b71efe025c990ac2f3d8a48b8"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a9fc59fb51c2e3cb4da6fb19bc8cad080"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_DEFAULT_MAX_RETRANSMIT   7</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Number of message retransmissions. </p>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00070">70</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acdbfba15eb1a5692e177d582b4ca1583"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_MAX_BUF   1400</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Maximum size of DTLS message. When Peers are sending bigger messages this causes problems. Californium with ECDSA needs at least 220 </p>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00064">64</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6b9b983a346a3e94eff205f8eab2bce0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLSv12   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00036">36</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af36d51830256b7d1bf4dbaa8590c19e4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_CERT_TYPE_RAW_PUBLIC_KEY   2 /* see RFC 7250 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00092">92</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaace8dce4341d910140609a96bb300db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN   64 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00100">100</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac97469cc46ceeb148ee92f47a26ebcf6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EC_CURVE_TYPE_NAMED_CURVE   3 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00098">98</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0074adc0b2543a913a597e510caf27b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_CLIENT_CERTIFICATE_TYPE   19 /* see RFC 7250 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00088">88</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5d17863db920927ef8160547541b58e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_EC_POINT_FORMATS   11 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00086">86</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af086ed2d0aea096be56bf7e46f8f72a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED   0 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00096">96</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7e080d630a40510f655bf6982c555063"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_ELLIPTIC_CURVES   10 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00085">85</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8095691f33c0ce6b22d205640ccc9417"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_ELLIPTIC_CURVES_SECP256R1   23 /* see RFC 4492 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00094">94</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae136afe82bd9031a4c1c604de0cb0118"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_ENCRYPT_THEN_MAC   22 /* see RFC 7366 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00090">90</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad465b86d1841ddd6c2209ff304895a95"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_SERVER_CERTIFICATE_TYPE   20 /* see RFC 7250 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00089">89</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0249393d6894a15ac56962b2335add24"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_SIG_HASH_ALGO   13 /* see RFC 5246 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00087">87</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af126227a026a7af436a4323db6d02ecc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_SIG_HASH_ALGO_ECDSA   3 /* see RFC 5246 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00103">103</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa347771eab2eabd24c4b9311fa61c4c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define TLS_EXT_SIG_HASH_ALGO_SHA256   4 /* see RFC 5246 */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00102">102</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4da6212f220f78c713aa5e91f989e7d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define WITH_SHA256   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00042">42</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a5e90b30856b81913af89565b55751da5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char uint16[2]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00048">48</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aabc56baaf04f922a1ea0dda7691fec0a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char uint24[3]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00049">49</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab27072920285996a3e16d2e5e3d366be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char uint32[4]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00050">50</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0749f1df578b26eccab986b0d8abaa56"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char uint48[6]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00051">51</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adde6aaee8457bee49c2a92621fe22b79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00047">47</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="ada7e71454d685b693df45b2c1ea0c59b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Known cipher suites. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd"></a>TLS_NULL_WITH_NULL_NULL</em> </td><td class="fielddoc">
-<p>NULL cipher </p>
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8"></a>TLS_PSK_WITH_AES_128_CCM_8</em> </td><td class="fielddoc">
-<p>see RFC 6655 </p>
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e"></a>TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</em> </td><td class="fielddoc">
-<p>see RFC 7251 </p>
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00074">74</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1ff555e0b1443c4cb4d17ac2161d89b2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Known compression suites. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"></a>TLS_COMPRESSION_NULL</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00081">81</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ae10dcc6b71efe025c990ac2f3d8a48b8"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_fls </td>
- <td>(</td>
- <td class="paramtype">unsigned int </td>
- <td class="paramname"><em>i</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00139">139</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8277c276ecd5cd2f998f08fd344d90ef"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int equals </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Compares <code>len</code> bytes from <code>a</code> with <code>b</code> in constant time. This functions always traverses the entire length to prevent timing attacks.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">a</td><td>Byte sequence to compare </td></tr>
- <tr><td class="paramname">b</td><td>Byte sequence to compare </td></tr>
- <tr><td class="paramname">len</td><td>Number of bytes to compare. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>1</code> if <code>a</code> and <code>b</code> are equal, <code>0</code> otherwise. </dd></dl>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00127">127</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6c31c5d8a0fe09547a192100d2a00dc5"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void memxor </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>n</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>XORs <code>n</code> bytes byte-by-byte starting at <code>y</code> to the memory area starting at <code>x</code>. </p>
-
-<p>Definition at line <a class="el" href="global_8h_source.html#l00109">109</a> of file <a class="el" href="global_8h_source.html">global.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: global.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">global.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="global_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_GLOBAL_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_GLOBAL_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifndef DTLSv12</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="comment">/* The current version of tinyDTLS supports DTLSv1.2 only. */</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0"> 36</a></span> <span class="preprocessor">#define DTLSv12 1</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#ifndef WITH_SHA256</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="comment">/* The current version of tinyDTLS supports DTLSv1.2 with SHA256 PRF</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> only. */</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="global_8h.html#a4da6212f220f78c713aa5e91f989e7d7"> 42</a></span> <span class="preprocessor">#define WITH_SHA256 1</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/* Define our own types as at least uint32_t does not work on my amd64. */</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79"> 47</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="global_8h.html#a5e90b30856b81913af89565b55751da5"> 48</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a>[2];</div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a"> 49</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a>[3];</div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be"> 50</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a>[4];</div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56"> 51</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a>[6];</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#ifndef DTLS_MAX_BUF</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_MAX_BUF 200</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_MAX_BUF 100</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* DTLS_ECC */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583"> 64</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DTLS_MAX_BUF 1400</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#ifndef DTLS_DEFAULT_MAX_RETRANSMIT</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080"> 70</a></span> <span class="preprocessor">#define DTLS_DEFAULT_MAX_RETRANSMIT 7</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b"> 74</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> { </div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd"> 75</a></span>  <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a> = 0x0000, </div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8"> 76</a></span>  <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a> = 0xC0A8, </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e"> 77</a></span>  <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a> = 0xC0AE </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> } <a class="code" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a>;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2"> 81</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"> 82</a></span>  <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a> = 0x0000 <span class="comment">/* NULL compression */</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> } <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="global_8h.html#a7e080d630a40510f655bf6982c555063"> 85</a></span> <span class="preprocessor">#define TLS_EXT_ELLIPTIC_CURVES 10 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="global_8h.html#a5d17863db920927ef8160547541b58e3"> 86</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_EC_POINT_FORMATS 11 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="global_8h.html#a0249393d6894a15ac56962b2335add24"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_SIG_HASH_ALGO 13 </span><span class="comment">/* see RFC 5246 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0"> 88</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_CLIENT_CERTIFICATE_TYPE 19 </span><span class="comment">/* see RFC 7250 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95"> 89</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_SERVER_CERTIFICATE_TYPE 20 </span><span class="comment">/* see RFC 7250 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118"> 90</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_ENCRYPT_THEN_MAC 22 </span><span class="comment">/* see RFC 7366 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4"> 92</a></span> <span class="preprocessor">#define TLS_CERT_TYPE_RAW_PUBLIC_KEY 2 </span><span class="comment">/* see RFC 7250 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417"> 94</a></span> <span class="preprocessor">#define TLS_EXT_ELLIPTIC_CURVES_SECP256R1 23 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6"> 96</a></span> <span class="preprocessor">#define TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED 0 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6"> 98</a></span> <span class="preprocessor">#define TLS_EC_CURVE_TYPE_NAMED_CURVE 3 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="global_8h.html#aaace8dce4341d910140609a96bb300db"> 100</a></span> <span class="preprocessor">#define TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN 64 </span><span class="comment">/* see RFC 4492 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9"> 102</a></span> <span class="preprocessor">#define TLS_EXT_SIG_HASH_ALGO_SHA256 4 </span><span class="comment">/* see RFC 5246 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="global_8h.html#af126227a026a7af436a4323db6d02ecc"> 103</a></span> <span class="preprocessor"></span><span class="preprocessor">#define TLS_EXT_SIG_HASH_ALGO_ECDSA 3 </span><span class="comment">/* see RFC 5246 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5"> 109</a></span> <a class="code" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *x, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *y, <span class="keywordtype">size_t</span> n) {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">while</span>(n--) {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  *x ^= *y;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  x++; y++;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef"> 127</a></span> <a class="code" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *a, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *b, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">int</span> result = 1;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">while</span> (len--) {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  result &= (*a++ == *b++);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#ifdef HAVE_FLS</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span><span class="preprocessor">#define dtls_fls(i) fls(i)</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8"> 139</a></span> <a class="code" href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8">dtls_fls</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i) {</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordtype">int</span> n;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">for</span> (n = 0; i; n++)</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  i >>= 1;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> n;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#endif </span><span class="comment">/* HAVE_FLS */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_GLOBAL_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00082">global.h:82</a></div></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a></div><div class="ttdeci">dtls_compression_t</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00081">global.h:81</a></div></div>
-<div class="ttc" id="global_8h_html_a6c31c5d8a0fe09547a192100d2a00dc5"><div class="ttname"><a href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">memxor</a></div><div class="ttdeci">static void memxor(unsigned char *x, const unsigned char *y, size_t n)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00109">global.h:109</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">TLS_PSK_WITH_AES_128_CCM_8</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00076">global.h:76</a></div></div>
-<div class="ttc" id="global_8h_html_a0749f1df578b26eccab986b0d8abaa56"><div class="ttname"><a href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">uint48</a></div><div class="ttdeci">unsigned char uint48[6]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00051">global.h:51</a></div></div>
-<div class="ttc" id="global_8h_html_aabc56baaf04f922a1ea0dda7691fec0a"><div class="ttname"><a href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">uint24</a></div><div class="ttdeci">unsigned char uint24[3]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00049">global.h:49</a></div></div>
-<div class="ttc" id="global_8h_html_adde6aaee8457bee49c2a92621fe22b79"><div class="ttname"><a href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></div><div class="ttdeci">unsigned char uint8</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00047">global.h:47</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00077">global.h:77</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">TLS_NULL_WITH_NULL_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00075">global.h:75</a></div></div>
-<div class="ttc" id="global_8h_html_ada7e71454d685b693df45b2c1ea0c59b"><div class="ttname"><a href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a></div><div class="ttdeci">dtls_cipher_t</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00074">global.h:74</a></div></div>
-<div class="ttc" id="global_8h_html_a8277c276ecd5cd2f998f08fd344d90ef"><div class="ttname"><a href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">equals</a></div><div class="ttdeci">static int equals(unsigned char *a, unsigned char *b, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00127">global.h:127</a></div></div>
-<div class="ttc" id="global_8h_html_ab27072920285996a3e16d2e5e3d366be"><div class="ttname"><a href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">uint32</a></div><div class="ttdeci">unsigned char uint32[4]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00050">global.h:50</a></div></div>
-<div class="ttc" id="global_8h_html_ae10dcc6b71efe025c990ac2f3d8a48b8"><div class="ttname"><a href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8">dtls_fls</a></div><div class="ttdeci">static int dtls_fls(unsigned int i)</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00139">global.h:139</a></div></div>
-<div class="ttc" id="global_8h_html_a5e90b30856b81913af89565b55751da5"><div class="ttname"><a href="global_8h.html#a5e90b30856b81913af89565b55751da5">uint16</a></div><div class="ttdeci">unsigned char uint16[2]</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00048">global.h:48</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
-<li>__attribute__()
-: <a class="el" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">dtls.h</a>
-</li>
-<li>_CASTASGN
-: <a class="el" href="utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3">utlist.h</a>
-</li>
-<li>_dtls_address_equals_impl()
-: <a class="el" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">session.c</a>
-</li>
-<li>_NEXT
-: <a class="el" href="utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe">utlist.h</a>
-</li>
-<li>_NEXTASGN
-: <a class="el" href="utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058">utlist.h</a>
-</li>
-<li>_PREV
-: <a class="el" href="utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5">utlist.h</a>
-</li>
-<li>_PREVASGN
-: <a class="el" href="utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a">utlist.h</a>
-</li>
-<li>_RS
-: <a class="el" href="utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315">utlist.h</a>
-</li>
-<li>_SV
-: <a class="el" href="utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4">utlist.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li class="current"><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>A_DATA_LEN
-: <a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">dtls.c</a>
-</li>
-<li>add_auth_data()
-: <a class="el" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">ccm.c</a>
-</li>
-<li>AES128
-: <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4">crypto.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li class="current"><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
-<li>block0()
-: <a class="el" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">ccm.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li class="current"><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>calculate_key_block()
-: <a class="el" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">dtls.c</a>
-</li>
-<li>CALL
-: <a class="el" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">dtls.c</a>
-</li>
-<li>CCM_FLAGS
-: <a class="el" href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb">ccm.c</a>
-</li>
-<li>CDL_DELETE
-: <a class="el" href="utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235">utlist.h</a>
-</li>
-<li>CDL_FOREACH
-: <a class="el" href="utlist_8h.html#a795df7857792d7e811709a060c911a36">utlist.h</a>
-</li>
-<li>CDL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd">utlist.h</a>
-</li>
-<li>CDL_PREPEND
-: <a class="el" href="utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd">utlist.h</a>
-</li>
-<li>CDL_SEARCH
-: <a class="el" href="utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e">utlist.h</a>
-</li>
-<li>CDL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#ad064cddb894b478b3c3cd23719f58651">utlist.h</a>
-</li>
-<li>CDL_SORT
-: <a class="el" href="utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17">utlist.h</a>
-</li>
-<li>cert_asn1_header
-: <a class="el" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">dtls.c</a>
-</li>
-<li>check_certificate_request()
-: <a class="el" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">dtls.c</a>
-</li>
-<li>check_client_certificate_verify()
-: <a class="el" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">dtls.c</a>
-</li>
-<li>check_client_keyexchange()
-: <a class="el" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">dtls.c</a>
-</li>
-<li>check_finished()
-: <a class="el" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">dtls.c</a>
-</li>
-<li>check_server_certificate()
-: <a class="el" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">dtls.c</a>
-</li>
-<li>check_server_hello()
-: <a class="el" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">dtls.c</a>
-</li>
-<li>check_server_hello_verify_request()
-: <a class="el" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">dtls.c</a>
-</li>
-<li>check_server_hellodone()
-: <a class="el" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">dtls.c</a>
-</li>
-<li>check_server_key_exchange_ecdsa()
-: <a class="el" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">dtls.c</a>
-</li>
-<li>check_server_key_exchange_psk()
-: <a class="el" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">dtls.c</a>
-</li>
-<li>check_stack()
-: <a class="el" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">debug.h</a>
-</li>
-<li>cipher_context
-: <a class="el" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">crypto.c</a>
-</li>
-<li>cipher_context_mutex
-: <a class="el" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">crypto.c</a>
-</li>
-<li>clear_hs_hash()
-: <a class="el" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">dtls.c</a>
-</li>
-<li>CLIENTHELLO
-: <a class="el" href="dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5">dtls.c</a>
-</li>
-<li>CLOCK_SECOND
-: <a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">dtls_time.h</a>
-</li>
-<li>clock_time_t
-: <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">dtls_time.h</a>
-</li>
-<li>compression_methods
-: <a class="el" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">dtls.c</a>
-</li>
-<li>copy_hs_hash()
-: <a class="el" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">dtls.c</a>
-</li>
-<li>crypto_init()
-: <a class="el" href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c">crypto.h</a>
-, <a class="el" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li class="current"><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>DECLTYPE
-: <a class="el" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">uthash.h</a>
-</li>
-<li>DECLTYPE_ASSIGN
-: <a class="el" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">uthash.h</a>
-</li>
-<li>decrypt_verify()
-: <a class="el" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">dtls.c</a>
-</li>
-<li>DL_APPEND
-: <a class="el" href="utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8">utlist.h</a>
-</li>
-<li>DL_DELETE
-: <a class="el" href="utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc">utlist.h</a>
-</li>
-<li>DL_FOREACH
-: <a class="el" href="utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7">utlist.h</a>
-</li>
-<li>DL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa">utlist.h</a>
-</li>
-<li>DL_PREPEND
-: <a class="el" href="utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa">utlist.h</a>
-</li>
-<li>DL_SEARCH
-: <a class="el" href="utlist_8h.html#a819373d14278b52c313b743acc292ba0">utlist.h</a>
-</li>
-<li>DL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b">utlist.h</a>
-</li>
-<li>DL_SORT
-: <a class="el" href="utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3">utlist.h</a>
-</li>
-<li>dsrv_log()
-: <a class="el" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">debug.c</a>
-, <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">debug.h</a>
-</li>
-<li>dsrv_print_addr()
-: <a class="el" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">debug.c</a>
-</li>
-<li>dtls_add_ecdsa_signature_elem()
-: <a class="el" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls.c</a>
-</li>
-<li>dtls_add_peer()
-: <a class="el" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls.c</a>
-</li>
-<li>dtls_alert
-: <a class="el" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">debug.h</a>
-</li>
-<li>DTLS_ALERT_ACCESS_DENIED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11">alert.h</a>
-</li>
-<li>DTLS_ALERT_BAD_CERTIFICATE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c">alert.h</a>
-</li>
-<li>DTLS_ALERT_BAD_RECORD_MAC
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_EXPIRED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_REVOKED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_UNKNOWN
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d">alert.h</a>
-</li>
-<li>DTLS_ALERT_CLOSE_NOTIFY
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">alert.h</a>
-</li>
-<li>dtls_alert_create()
-: <a class="el" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECODE_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECOMPRESSION_FAILURE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECRYPT_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">alert.h</a>
-</li>
-<li>dtls_alert_fatal_create()
-: <a class="el" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">alert.h</a>
-</li>
-<li>DTLS_ALERT_HANDSHAKE_FAILURE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">alert.h</a>
-</li>
-<li>DTLS_ALERT_ILLEGAL_PARAMETER
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">alert.h</a>
-</li>
-<li>DTLS_ALERT_INSUFFICIENT_SECURITY
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">alert.h</a>
-</li>
-<li>DTLS_ALERT_INTERNAL_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">alert.h</a>
-</li>
-<li>DTLS_ALERT_LEVEL_FATAL
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">alert.h</a>
-</li>
-<li>dtls_alert_level_t
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">alert.h</a>
-</li>
-<li>DTLS_ALERT_LEVEL_WARNING
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">alert.h</a>
-</li>
-<li>DTLS_ALERT_NO_RENEGOTIATION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">alert.h</a>
-</li>
-<li>DTLS_ALERT_PROTOCOL_VERSION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">alert.h</a>
-</li>
-<li>DTLS_ALERT_RECORD_OVERFLOW
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12">alert.h</a>
-</li>
-<li>dtls_alert_send_from_err()
-: <a class="el" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls.c</a>
-</li>
-<li>dtls_alert_t
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNEXPECTED_MESSAGE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNKNOWN_CA
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNSUPPORTED_CERTIFICATE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNSUPPORTED_EXTENSION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc">alert.h</a>
-</li>
-<li>DTLS_ALERT_USER_CANCELED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638">alert.h</a>
-</li>
-<li>DTLS_BLK_LENGTH
-: <a class="el" href="crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757">crypto.h</a>
-</li>
-<li>DTLS_CCM_BLOCKSIZE
-: <a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">ccm.h</a>
-</li>
-<li>dtls_ccm_decrypt()
-: <a class="el" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">crypto.c</a>
-</li>
-<li>dtls_ccm_decrypt_message()
-: <a class="el" href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">ccm.c</a>
-, <a class="el" href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d">ccm.h</a>
-</li>
-<li>dtls_ccm_encrypt()
-: <a class="el" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">crypto.c</a>
-</li>
-<li>dtls_ccm_encrypt_message()
-: <a class="el" href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">ccm.c</a>
-, <a class="el" href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42">ccm.h</a>
-</li>
-<li>DTLS_CCM_MAX
-: <a class="el" href="ccm_8h.html#a84305b079fda12bfa1323b41b3c50849">ccm.h</a>
-</li>
-<li>DTLS_CCM_NONCE_SIZE
-: <a class="el" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">ccm.h</a>
-</li>
-<li>DTLS_CE_LENGTH
-: <a class="el" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">dtls.c</a>
-</li>
-<li>DTLS_CH_LENGTH
-: <a class="el" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">dtls.c</a>
-</li>
-<li>DTLS_CH_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">dtls.c</a>
-</li>
-<li>dtls_check_ecdsa_signature_elem()
-: <a class="el" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls.c</a>
-</li>
-<li>dtls_check_retransmit()
-: <a class="el" href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82">dtls.h</a>
-</li>
-<li>dtls_check_tls_extension()
-: <a class="el" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls.c</a>
-</li>
-<li>dtls_cipher_context_get()
-: <a class="el" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">crypto.c</a>
-</li>
-<li>dtls_cipher_context_release()
-: <a class="el" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">crypto.c</a>
-</li>
-<li>dtls_cipher_context_t
-: <a class="el" href="crypto_8h.html#a99482a87021e817524d15c33e89e309c">crypto.h</a>
-</li>
-<li>dtls_cipher_t
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">global.h</a>
-</li>
-<li>DTLS_CKXEC_LENGTH
-: <a class="el" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">dtls.c</a>
-</li>
-<li>DTLS_CKXPSK_LENGTH_MIN
-: <a class="el" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">dtls.c</a>
-</li>
-<li>DTLS_CLIENT
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">peer.h</a>
-</li>
-<li>dtls_client_hello_t
-: <a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls.h</a>
-</li>
-<li>dtls_clock_init()
-: <a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_time.c</a>
-, <a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_time.h</a>
-</li>
-<li>dtls_clock_offset
-: <a class="el" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_time.c</a>
-</li>
-<li>dtls_close()
-: <a class="el" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls.c</a>
-, <a class="el" href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a">dtls.h</a>
-</li>
-<li>dtls_compression_t
-: <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">global.h</a>
-</li>
-<li>dtls_connect()
-: <a class="el" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls.h</a>
-</li>
-<li>dtls_connect_peer()
-: <a class="el" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62">dtls.h</a>
-</li>
-<li>dtls_context_t
-: <a class="el" href="dtls_8h.html#a407c66c58bfc87651714de4103bee135">dtls.h</a>
-</li>
-<li>DTLS_COOKIE_LENGTH
-: <a class="el" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">dtls.h</a>
-</li>
-<li>DTLS_COOKIE_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">dtls.c</a>
-</li>
-<li>DTLS_COOKIE_SECRET_LENGTH
-: <a class="el" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">dtls.h</a>
-</li>
-<li>dtls_create_cookie()
-: <a class="el" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls.c</a>
-</li>
-<li>dtls_credentials_type_t
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls.h</a>
-</li>
-<li>dtls_crit
-: <a class="el" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">debug.h</a>
-</li>
-<li>dtls_crypto_alg
-: <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">crypto.h</a>
-</li>
-<li>DTLS_CT_ALERT
-: <a class="el" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">dtls.h</a>
-</li>
-<li>DTLS_CT_APPLICATION_DATA
-: <a class="el" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">dtls.h</a>
-</li>
-<li>DTLS_CT_CHANGE_CIPHER_SPEC
-: <a class="el" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">dtls.h</a>
-</li>
-<li>DTLS_CT_HANDSHAKE
-: <a class="el" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">dtls.h</a>
-</li>
-<li>DTLS_CV_LENGTH
-: <a class="el" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">dtls.c</a>
-</li>
-<li>dtls_debug
-: <a class="el" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">debug.h</a>
-</li>
-<li>dtls_debug_dump
-: <a class="el" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">debug.h</a>
-</li>
-<li>dtls_debug_hexdump
-: <a class="el" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">debug.h</a>
-</li>
-<li>dtls_debug_keyblock()
-: <a class="el" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls.c</a>
-</li>
-<li>dtls_decrypt()
-: <a class="el" href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">crypto.h</a>
-</li>
-<li>DTLS_DEFAULT_MAX_RETRANSMIT
-: <a class="el" href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080">global.h</a>
-</li>
-<li>dtls_destroy_peer()
-: <a class="el" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls.c</a>
-</li>
-<li>dtls_dsrv_hexdump_log()
-: <a class="el" href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">debug.c</a>
-, <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">debug.h</a>
-</li>
-<li>dtls_dsrv_log_addr()
-: <a class="el" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">debug.c</a>
-, <a class="el" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">debug.h</a>
-</li>
-<li>dtls_ec_key_from_uint32()
-: <a class="el" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">crypto.c</a>
-</li>
-<li>dtls_ec_key_from_uint32_asn1()
-: <a class="el" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b">crypto.h</a>
-</li>
-<li>DTLS_EC_KEY_SIZE
-: <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">crypto.h</a>
-</li>
-<li>dtls_ec_key_to_uint32()
-: <a class="el" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">crypto.c</a>
-</li>
-<li>DTLS_ECC
-: <a class="el" href="dtls__config_8h.html#a1b77fedd334a66611747922038c930d6">dtls_config.h</a>
-, <a class="el" href="tinydtls_8h.html#a1b77fedd334a66611747922038c930d6">tinydtls.h</a>
-</li>
-<li>dtls_ecdh_curve
-: <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">crypto.h</a>
-</li>
-<li>DTLS_ECDH_CURVE_SECP256R1
-: <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff">crypto.h</a>
-</li>
-<li>dtls_ecdh_pre_master_secret()
-: <a class="el" href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa">crypto.h</a>
-</li>
-<li>dtls_ecdsa_create_sig()
-: <a class="el" href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">crypto.c</a>
-, <a class="el" href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">crypto.h</a>
-</li>
-<li>dtls_ecdsa_create_sig_hash()
-: <a class="el" href="crypto_8c.html#a49f03039780664684d110d83a228b163">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a49f03039780664684d110d83a228b163">crypto.h</a>
-</li>
-<li>dtls_ecdsa_generate_key()
-: <a class="el" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970">crypto.h</a>
-</li>
-<li>dtls_ecdsa_key_t
-: <a class="el" href="dtls_8h.html#a472601639fcded4630fbd087f986ad10">dtls.h</a>
-</li>
-<li>dtls_ecdsa_verify_sig()
-: <a class="el" href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9">crypto.h</a>
-</li>
-<li>dtls_ecdsa_verify_sig_hash()
-: <a class="el" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7">crypto.h</a>
-</li>
-<li>dtls_emerg
-: <a class="el" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">debug.h</a>
-</li>
-<li>dtls_encrypt()
-: <a class="el" href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">crypto.h</a>
-</li>
-<li>DTLS_EVENT_CONNECT
-: <a class="el" href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844">alert.h</a>
-</li>
-<li>DTLS_EVENT_CONNECTED
-: <a class="el" href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22">alert.h</a>
-</li>
-<li>DTLS_EVENT_RENEGOTIATE
-: <a class="el" href="alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124">alert.h</a>
-</li>
-<li>DTLS_FIN_LENGTH
-: <a class="el" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">dtls.c</a>
-</li>
-<li>dtls_fls()
-: <a class="el" href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8">global.h</a>
-</li>
-<li>dtls_free_context()
-: <a class="el" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls.h</a>
-</li>
-<li>dtls_free_peer()
-: <a class="el" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">peer.c</a>
-, <a class="el" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">peer.h</a>
-</li>
-<li>dtls_get_app_data
-: <a class="el" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls.h</a>
-</li>
-<li>dtls_get_content_type
-: <a class="el" href="dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467">dtls.c</a>
-</li>
-<li>dtls_get_cookie()
-: <a class="el" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls.c</a>
-</li>
-<li>dtls_get_epoch
-: <a class="el" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls.c</a>
-</li>
-<li>dtls_get_fragment_length
-: <a class="el" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls.c</a>
-</li>
-<li>dtls_get_log_level()
-: <a class="el" href="debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f">debug.c</a>
-, <a class="el" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">debug.h</a>
-</li>
-<li>dtls_get_peer()
-: <a class="el" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6">dtls.h</a>
-</li>
-<li>dtls_get_sequence_number
-: <a class="el" href="dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7">dtls.c</a>
-</li>
-<li>dtls_get_version
-: <a class="el" href="dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb">dtls.c</a>
-</li>
-<li>dtls_handle_message()
-: <a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls.h</a>
-</li>
-<li>dtls_handshake_dealloc()
-: <a class="el" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">crypto.c</a>
-</li>
-<li>dtls_handshake_free()
-: <a class="el" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">crypto.c</a>
-, <a class="el" href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172">crypto.h</a>
-</li>
-<li>DTLS_HANDSHAKE_HEADER
-: <a class="el" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">dtls.c</a>
-</li>
-<li>dtls_handshake_header_t
-: <a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls.h</a>
-</li>
-<li>dtls_handshake_malloc()
-: <a class="el" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">crypto.c</a>
-</li>
-<li>dtls_handshake_new()
-: <a class="el" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">crypto.h</a>
-</li>
-<li>dtls_handshake_type_to_name()
-: <a class="el" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls.c</a>
-</li>
-<li>dtls_hash_ctx
-: <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">hmac.h</a>
-</li>
-<li>DTLS_HASH_CTX_SIZE
-: <a class="el" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">hmac.h</a>
-</li>
-<li>dtls_hash_finalize()
-: <a class="el" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">hmac.h</a>
-</li>
-<li>dtls_hash_init()
-: <a class="el" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">hmac.h</a>
-</li>
-<li>dtls_hash_t
-: <a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">hmac.h</a>
-</li>
-<li>dtls_hash_update()
-: <a class="el" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">hmac.h</a>
-</li>
-<li>dtls_hashfunc_t
-: <a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">hmac.h</a>
-</li>
-<li>dtls_hello_verify_t
-: <a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls.h</a>
-</li>
-<li>DTLS_HMAC_BLOCKSIZE
-: <a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">hmac.h</a>
-</li>
-<li>dtls_hmac_context_free()
-: <a class="el" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">hmac.c</a>
-</li>
-<li>dtls_hmac_context_new()
-: <a class="el" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">hmac.c</a>
-</li>
-<li>DTLS_HMAC_DIGEST_SIZE
-: <a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">hmac.h</a>
-</li>
-<li>dtls_hmac_finalize()
-: <a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">hmac.h</a>
-</li>
-<li>dtls_hmac_free()
-: <a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">hmac.c</a>
-, <a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">hmac.h</a>
-</li>
-<li>dtls_hmac_init()
-: <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">hmac.h</a>
-</li>
-<li>DTLS_HMAC_MAX
-: <a class="el" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">hmac.h</a>
-</li>
-<li>dtls_hmac_new()
-: <a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">hmac.h</a>
-</li>
-<li>dtls_hmac_storage_init()
-: <a class="el" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">hmac.h</a>
-</li>
-<li>dtls_hmac_update()
-: <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">hmac.h</a>
-, <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">hmac.c</a>
-</li>
-<li>DTLS_HS_LENGTH
-: <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">dtls.c</a>
-</li>
-<li>DTLS_HT_CERTIFICATE
-: <a class="el" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">dtls.h</a>
-</li>
-<li>DTLS_HT_CERTIFICATE_REQUEST
-: <a class="el" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">dtls.h</a>
-</li>
-<li>DTLS_HT_CERTIFICATE_VERIFY
-: <a class="el" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">dtls.h</a>
-</li>
-<li>DTLS_HT_CLIENT_HELLO
-: <a class="el" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">dtls.h</a>
-</li>
-<li>DTLS_HT_CLIENT_KEY_EXCHANGE
-: <a class="el" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">dtls.h</a>
-</li>
-<li>DTLS_HT_FINISHED
-: <a class="el" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">dtls.h</a>
-</li>
-<li>DTLS_HT_HELLO_REQUEST
-: <a class="el" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">dtls.h</a>
-</li>
-<li>DTLS_HT_HELLO_VERIFY_REQUEST
-: <a class="el" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_HELLO
-: <a class="el" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_HELLO_DONE
-: <a class="el" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_KEY_EXCHANGE
-: <a class="el" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">dtls.h</a>
-</li>
-<li>DTLS_HV_LENGTH
-: <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">dtls.c</a>
-</li>
-<li>dtls_info
-: <a class="el" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">debug.h</a>
-</li>
-<li>dtls_init()
-: <a class="el" href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd">dtls.h</a>
-, <a class="el" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls.c</a>
-</li>
-<li>dtls_int_to_uint16()
-: <a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">numeric.h</a>
-</li>
-<li>dtls_int_to_uint24()
-: <a class="el" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">numeric.h</a>
-</li>
-<li>dtls_int_to_uint32()
-: <a class="el" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">numeric.h</a>
-</li>
-<li>dtls_int_to_uint48()
-: <a class="el" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">numeric.h</a>
-</li>
-<li>dtls_int_to_uint64()
-: <a class="el" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">numeric.h</a>
-</li>
-<li>dtls_int_to_uint8()
-: <a class="el" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">numeric.h</a>
-</li>
-<li>DTLS_IV_LENGTH
-: <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">crypto.h</a>
-</li>
-<li>dtls_kb_client_iv
-: <a class="el" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">crypto.h</a>
-</li>
-<li>dtls_kb_client_mac_secret
-: <a class="el" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">crypto.h</a>
-</li>
-<li>dtls_kb_client_write_key
-: <a class="el" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">crypto.h</a>
-</li>
-<li>dtls_kb_digest_size
-: <a class="el" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758">crypto.h</a>
-</li>
-<li>dtls_kb_iv_size
-: <a class="el" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">crypto.h</a>
-</li>
-<li>dtls_kb_key_size
-: <a class="el" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">crypto.h</a>
-</li>
-<li>dtls_kb_local_iv
-: <a class="el" href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3">crypto.h</a>
-</li>
-<li>dtls_kb_local_mac_secret
-: <a class="el" href="crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418">crypto.h</a>
-</li>
-<li>dtls_kb_local_write_key
-: <a class="el" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">crypto.h</a>
-</li>
-<li>dtls_kb_mac_secret_size
-: <a class="el" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">crypto.h</a>
-</li>
-<li>dtls_kb_remote_iv
-: <a class="el" href="crypto_8h.html#a7119d3239c34d7e7f219200792339541">crypto.h</a>
-</li>
-<li>dtls_kb_remote_mac_secret
-: <a class="el" href="crypto_8h.html#acf318c989f5bb90b863154abbc408b66">crypto.h</a>
-</li>
-<li>dtls_kb_remote_write_key
-: <a class="el" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">crypto.h</a>
-</li>
-<li>dtls_kb_server_iv
-: <a class="el" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">crypto.h</a>
-</li>
-<li>dtls_kb_server_mac_secret
-: <a class="el" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">crypto.h</a>
-</li>
-<li>dtls_kb_server_write_key
-: <a class="el" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">crypto.h</a>
-</li>
-<li>dtls_kb_size
-: <a class="el" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">crypto.h</a>
-</li>
-<li>DTLS_KEY_LENGTH
-: <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">crypto.h</a>
-</li>
-<li>DTLS_LOG_ALERT
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">debug.h</a>
-</li>
-<li>DTLS_LOG_CRIT
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">debug.h</a>
-</li>
-<li>DTLS_LOG_DEBUG
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">debug.h</a>
-</li>
-<li>DTLS_LOG_EMERG
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">debug.h</a>
-</li>
-<li>DTLS_LOG_INFO
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">debug.h</a>
-</li>
-<li>DTLS_LOG_NOTICE
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">debug.h</a>
-</li>
-<li>DTLS_LOG_WARN
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">debug.h</a>
-</li>
-<li>dtls_mac()
-: <a class="el" href="crypto_8c.html#a1423f8111df1533241178461c10b50e3">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a1423f8111df1533241178461c10b50e3">crypto.h</a>
-</li>
-<li>DTLS_MAC_KEY_LENGTH
-: <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">crypto.h</a>
-</li>
-<li>DTLS_MAC_LENGTH
-: <a class="el" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe">crypto.h</a>
-</li>
-<li>dtls_malloc_peer()
-: <a class="el" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">peer.c</a>
-</li>
-<li>DTLS_MASTER_SECRET_LENGTH
-: <a class="el" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">crypto.h</a>
-</li>
-<li>DTLS_MAX_BUF
-: <a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">global.h</a>
-</li>
-<li>dtls_new_context()
-: <a class="el" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls.h</a>
-, <a class="el" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls.c</a>
-</li>
-<li>dtls_new_peer()
-: <a class="el" href="peer_8c.html#a209e22be64be13e116711829d21d864c">peer.c</a>
-, <a class="el" href="peer_8h.html#a209e22be64be13e116711829d21d864c">peer.h</a>
-</li>
-<li>dtls_notice
-: <a class="el" href="debug_8h.html#add9bf011215b9fc36abc5c80722c876e">debug.h</a>
-</li>
-<li>dtls_p_hash()
-: <a class="el" href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e">crypto.h</a>
-, <a class="el" href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">crypto.c</a>
-</li>
-<li>dtls_package_name()
-: <a class="el" href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971">debug.h</a>
-, <a class="el" href="debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971">debug.c</a>
-</li>
-<li>dtls_package_version()
-: <a class="el" href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235">debug.h</a>
-, <a class="el" href="debug_8c.html#aab7b9dac4484be50856ab8b8a827d235">debug.c</a>
-</li>
-<li>dtls_peer_is_connected()
-: <a class="el" href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48">peer.h</a>
-</li>
-<li>dtls_peer_state()
-: <a class="el" href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614">peer.h</a>
-</li>
-<li>dtls_peer_t
-: <a class="el" href="peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055">peer.h</a>
-</li>
-<li>dtls_peer_type
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">peer.h</a>
-</li>
-<li>dtls_prepare_record()
-: <a class="el" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls.c</a>
-</li>
-<li>dtls_prf()
-: <a class="el" href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512">crypto.h</a>
-, <a class="el" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">crypto.c</a>
-</li>
-<li>dtls_prng()
-: <a class="el" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">prng.h</a>
-</li>
-<li>dtls_prng_init()
-: <a class="el" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">prng.h</a>
-</li>
-<li>DTLS_PSK
-: <a class="el" href="tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf">tinydtls.h</a>
-, <a class="el" href="dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf">dtls_config.h</a>
-</li>
-<li>DTLS_PSK_HINT
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">dtls.h</a>
-</li>
-<li>DTLS_PSK_IDENTITY
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">dtls.h</a>
-</li>
-<li>DTLS_PSK_KEY
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">dtls.h</a>
-</li>
-<li>DTLS_PSK_MAX_CLIENT_IDENTITY_LEN
-: <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">crypto.h</a>
-</li>
-<li>DTLS_PSK_MAX_KEY_LEN
-: <a class="el" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">crypto.h</a>
-</li>
-<li>dtls_psk_pre_master_secret()
-: <a class="el" href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">crypto.c</a>
-, <a class="el" href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae">crypto.h</a>
-</li>
-<li>DTLS_RANDOM_LENGTH
-: <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">crypto.h</a>
-</li>
-<li>DTLS_RECORD_HEADER
-: <a class="el" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">dtls.c</a>
-</li>
-<li>dtls_record_header_t
-: <a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls.h</a>
-</li>
-<li>dtls_renegotiate()
-: <a class="el" href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls.h</a>
-, <a class="el" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls.c</a>
-</li>
-<li>dtls_retransmit()
-: <a class="el" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls.c</a>
-</li>
-<li>DTLS_RH_LENGTH
-: <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">dtls.c</a>
-</li>
-<li>dtls_security_dealloc()
-: <a class="el" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">crypto.c</a>
-</li>
-<li>dtls_security_free()
-: <a class="el" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">crypto.c</a>
-, <a class="el" href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17">crypto.h</a>
-</li>
-<li>dtls_security_malloc()
-: <a class="el" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">crypto.c</a>
-</li>
-<li>dtls_security_new()
-: <a class="el" href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b">crypto.h</a>
-, <a class="el" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">crypto.c</a>
-</li>
-<li>dtls_security_params()
-: <a class="el" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">peer.h</a>
-</li>
-<li>dtls_security_params_epoch()
-: <a class="el" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">peer.h</a>
-</li>
-<li>dtls_security_params_free_other()
-: <a class="el" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">peer.h</a>
-</li>
-<li>dtls_security_params_next()
-: <a class="el" href="peer_8h.html#ab6e209f206f570eed246530ec7960943">peer.h</a>
-</li>
-<li>dtls_security_params_switch()
-: <a class="el" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">peer.h</a>
-</li>
-<li>dtls_send()
-: <a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls.c</a>
-</li>
-<li>dtls_send_alert()
-: <a class="el" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls.c</a>
-</li>
-<li>dtls_send_ccs()
-: <a class="el" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls.c</a>
-</li>
-<li>dtls_send_certificate_ecdsa()
-: <a class="el" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls.c</a>
-</li>
-<li>dtls_send_certificate_verify_ecdh()
-: <a class="el" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls.c</a>
-</li>
-<li>dtls_send_client_hello()
-: <a class="el" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls.c</a>
-</li>
-<li>dtls_send_client_key_exchange()
-: <a class="el" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls.c</a>
-</li>
-<li>dtls_send_finished()
-: <a class="el" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls.c</a>
-</li>
-<li>dtls_send_handshake_msg()
-: <a class="el" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls.c</a>
-</li>
-<li>dtls_send_handshake_msg_hash()
-: <a class="el" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls.c</a>
-</li>
-<li>dtls_send_hello_request()
-: <a class="el" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls.c</a>
-</li>
-<li>dtls_send_multi()
-: <a class="el" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls.c</a>
-</li>
-<li>dtls_send_server_certificate_request()
-: <a class="el" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls.c</a>
-</li>
-<li>dtls_send_server_hello()
-: <a class="el" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls.c</a>
-</li>
-<li>dtls_send_server_hello_done()
-: <a class="el" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls.c</a>
-</li>
-<li>dtls_send_server_hello_msgs()
-: <a class="el" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls.c</a>
-</li>
-<li>dtls_send_server_key_exchange_ecdh()
-: <a class="el" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls.c</a>
-</li>
-<li>dtls_send_server_key_exchange_psk()
-: <a class="el" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls.c</a>
-</li>
-<li>DTLS_SERVER
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">peer.h</a>
-</li>
-<li>dtls_session_equals()
-: <a class="el" href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417">session.h</a>
-, <a class="el" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">session.c</a>
-</li>
-<li>dtls_session_init()
-: <a class="el" href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501">session.h</a>
-, <a class="el" href="session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501">session.c</a>
-</li>
-<li>dtls_set_app_data
-: <a class="el" href="dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e">dtls.h</a>
-</li>
-<li>dtls_set_content_type
-: <a class="el" href="dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365">dtls.c</a>
-</li>
-<li>dtls_set_handler()
-: <a class="el" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls.h</a>
-</li>
-<li>dtls_set_handshake_header()
-: <a class="el" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls.c</a>
-</li>
-<li>dtls_set_length
-: <a class="el" href="dtls_8c.html#a9f723101896941fa44ea701c4dfd3591">dtls.c</a>
-</li>
-<li>dtls_set_log_level()
-: <a class="el" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">debug.h</a>
-, <a class="el" href="debug_8c.html#ae081a7241940f0195295cc37f39c1d02">debug.c</a>
-</li>
-<li>dtls_set_record_header()
-: <a class="el" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls.c</a>
-</li>
-<li>dtls_set_version
-: <a class="el" href="dtls_8c.html#aebefc949b2298e7de7b95b715874d407">dtls.c</a>
-</li>
-<li>DTLS_SH_LENGTH
-: <a class="el" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">dtls.c</a>
-</li>
-<li>DTLS_SKEXEC_LENGTH
-: <a class="el" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">dtls.c</a>
-</li>
-<li>DTLS_SKEXECPSK_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">dtls.c</a>
-</li>
-<li>DTLS_SKEXECPSK_LENGTH_MIN
-: <a class="el" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">dtls.c</a>
-</li>
-<li>DTLS_STATE_CLIENTHELLO
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">state.h</a>
-</li>
-<li>DTLS_STATE_CLOSED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">state.h</a>
-</li>
-<li>DTLS_STATE_CLOSING
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">state.h</a>
-</li>
-<li>DTLS_STATE_CONNECTED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">state.h</a>
-</li>
-<li>DTLS_STATE_FINISHED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b">state.h</a>
-</li>
-<li>DTLS_STATE_INIT
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8">state.h</a>
-</li>
-<li>dtls_state_t
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CERTIFICATEVERIFY
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CHANGECIPHERSPEC
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTCERTIFICATE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTHELLO
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTKEYEXCHANGE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_FINISHED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERCERTIFICATE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERHELLODONE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERKEYEXCHANGE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">state.h</a>
-</li>
-<li>dtls_stop_retransmission()
-: <a class="el" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls.c</a>
-</li>
-<li>dtls_strnlen()
-: <a class="el" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">debug.c</a>
-</li>
-<li>dtls_tick_t
-: <a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_time.h</a>
-</li>
-<li>dtls_ticks()
-: <a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_time.c</a>
-, <a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_time.h</a>
-</li>
-<li>DTLS_TICKS_PER_SECOND
-: <a class="el" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">dtls_time.h</a>
-</li>
-<li>dtls_uint16_to_int()
-: <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">numeric.h</a>
-</li>
-<li>dtls_uint24_to_int()
-: <a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">numeric.h</a>
-</li>
-<li>dtls_uint32_to_int()
-: <a class="el" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">numeric.h</a>
-</li>
-<li>dtls_uint48_to_int()
-: <a class="el" href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af">numeric.h</a>
-</li>
-<li>dtls_uint64_to_int()
-: <a class="el" href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae">numeric.h</a>
-</li>
-<li>dtls_uint8_to_int()
-: <a class="el" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">numeric.h</a>
-</li>
-<li>dtls_update_parameters()
-: <a class="el" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls.c</a>
-</li>
-<li>dtls_verify_peer()
-: <a class="el" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls.c</a>
-</li>
-<li>DTLS_VERSION
-: <a class="el" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">dtls.h</a>
-</li>
-<li>dtls_warn
-: <a class="el" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">debug.h</a>
-</li>
-<li>dtls_write()
-: <a class="el" href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928">dtls.h</a>
-, <a class="el" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls.c</a>
-</li>
-<li>DTLSv12
-: <a class="el" href="global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0">global.h</a>
-</li>
-<li>dump()
-: <a class="el" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">debug.h</a>
-, <a class="el" href="debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240">debug.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
-<li>_CASTASGN
-: <a class="el" href="utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3">utlist.h</a>
-</li>
-<li>_NEXT
-: <a class="el" href="utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe">utlist.h</a>
-</li>
-<li>_NEXTASGN
-: <a class="el" href="utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058">utlist.h</a>
-</li>
-<li>_PREV
-: <a class="el" href="utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5">utlist.h</a>
-</li>
-<li>_PREVASGN
-: <a class="el" href="utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a">utlist.h</a>
-</li>
-<li>_RS
-: <a class="el" href="utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315">utlist.h</a>
-</li>
-<li>_SV
-: <a class="el" href="utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4">utlist.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li class="current"><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>A_DATA_LEN
-: <a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li class="current"><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>CALL
-: <a class="el" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">dtls.c</a>
-</li>
-<li>CCM_FLAGS
-: <a class="el" href="ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb">ccm.c</a>
-</li>
-<li>CDL_DELETE
-: <a class="el" href="utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235">utlist.h</a>
-</li>
-<li>CDL_FOREACH
-: <a class="el" href="utlist_8h.html#a795df7857792d7e811709a060c911a36">utlist.h</a>
-</li>
-<li>CDL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd">utlist.h</a>
-</li>
-<li>CDL_PREPEND
-: <a class="el" href="utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd">utlist.h</a>
-</li>
-<li>CDL_SEARCH
-: <a class="el" href="utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e">utlist.h</a>
-</li>
-<li>CDL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#ad064cddb894b478b3c3cd23719f58651">utlist.h</a>
-</li>
-<li>CDL_SORT
-: <a class="el" href="utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17">utlist.h</a>
-</li>
-<li>CLIENTHELLO
-: <a class="el" href="dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5">dtls.c</a>
-</li>
-<li>CLOCK_SECOND
-: <a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">dtls_time.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li class="current"><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>DECLTYPE
-: <a class="el" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">uthash.h</a>
-</li>
-<li>DECLTYPE_ASSIGN
-: <a class="el" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">uthash.h</a>
-</li>
-<li>DL_APPEND
-: <a class="el" href="utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8">utlist.h</a>
-</li>
-<li>DL_DELETE
-: <a class="el" href="utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc">utlist.h</a>
-</li>
-<li>DL_FOREACH
-: <a class="el" href="utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7">utlist.h</a>
-</li>
-<li>DL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa">utlist.h</a>
-</li>
-<li>DL_PREPEND
-: <a class="el" href="utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa">utlist.h</a>
-</li>
-<li>DL_SEARCH
-: <a class="el" href="utlist_8h.html#a819373d14278b52c313b743acc292ba0">utlist.h</a>
-</li>
-<li>DL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b">utlist.h</a>
-</li>
-<li>DL_SORT
-: <a class="el" href="utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3">utlist.h</a>
-</li>
-<li>dtls_alert
-: <a class="el" href="debug_8h.html#ab22e3494f6186183820142ba279fe9ae">debug.h</a>
-</li>
-<li>DTLS_BLK_LENGTH
-: <a class="el" href="crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757">crypto.h</a>
-</li>
-<li>DTLS_CCM_BLOCKSIZE
-: <a class="el" href="ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859">ccm.h</a>
-</li>
-<li>DTLS_CCM_MAX
-: <a class="el" href="ccm_8h.html#a84305b079fda12bfa1323b41b3c50849">ccm.h</a>
-</li>
-<li>DTLS_CCM_NONCE_SIZE
-: <a class="el" href="ccm_8h.html#a2d0e7515c26737872fe840958ed140ac">ccm.h</a>
-</li>
-<li>DTLS_CE_LENGTH
-: <a class="el" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">dtls.c</a>
-</li>
-<li>DTLS_CH_LENGTH
-: <a class="el" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">dtls.c</a>
-</li>
-<li>DTLS_CH_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">dtls.c</a>
-</li>
-<li>DTLS_CKXEC_LENGTH
-: <a class="el" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">dtls.c</a>
-</li>
-<li>DTLS_CKXPSK_LENGTH_MIN
-: <a class="el" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">dtls.c</a>
-</li>
-<li>DTLS_COOKIE_LENGTH
-: <a class="el" href="dtls_8h.html#a09e4f571633bdb724236ac68459715b6">dtls.h</a>
-</li>
-<li>DTLS_COOKIE_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">dtls.c</a>
-</li>
-<li>DTLS_COOKIE_SECRET_LENGTH
-: <a class="el" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">dtls.h</a>
-</li>
-<li>dtls_crit
-: <a class="el" href="debug_8h.html#ad4c9c94c054579b73789fead587c8514">debug.h</a>
-</li>
-<li>DTLS_CT_ALERT
-: <a class="el" href="dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1">dtls.h</a>
-</li>
-<li>DTLS_CT_APPLICATION_DATA
-: <a class="el" href="dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c">dtls.h</a>
-</li>
-<li>DTLS_CT_CHANGE_CIPHER_SPEC
-: <a class="el" href="dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d">dtls.h</a>
-</li>
-<li>DTLS_CT_HANDSHAKE
-: <a class="el" href="dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc">dtls.h</a>
-</li>
-<li>DTLS_CV_LENGTH
-: <a class="el" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">dtls.c</a>
-</li>
-<li>dtls_debug
-: <a class="el" href="debug_8h.html#a0f158325426415d9efb5a36bebf45844">debug.h</a>
-</li>
-<li>dtls_debug_dump
-: <a class="el" href="debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6">debug.h</a>
-</li>
-<li>dtls_debug_hexdump
-: <a class="el" href="debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d">debug.h</a>
-</li>
-<li>DTLS_DEFAULT_MAX_RETRANSMIT
-: <a class="el" href="global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080">global.h</a>
-</li>
-<li>DTLS_EC_KEY_SIZE
-: <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">crypto.h</a>
-</li>
-<li>DTLS_ECC
-: <a class="el" href="dtls__config_8h.html#a1b77fedd334a66611747922038c930d6">dtls_config.h</a>
-, <a class="el" href="tinydtls_8h.html#a1b77fedd334a66611747922038c930d6">tinydtls.h</a>
-</li>
-<li>dtls_emerg
-: <a class="el" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">debug.h</a>
-</li>
-<li>DTLS_EVENT_CONNECT
-: <a class="el" href="alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844">alert.h</a>
-</li>
-<li>DTLS_EVENT_CONNECTED
-: <a class="el" href="alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22">alert.h</a>
-</li>
-<li>DTLS_EVENT_RENEGOTIATE
-: <a class="el" href="alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124">alert.h</a>
-</li>
-<li>DTLS_FIN_LENGTH
-: <a class="el" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">dtls.c</a>
-</li>
-<li>dtls_get_app_data
-: <a class="el" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls.h</a>
-</li>
-<li>dtls_get_content_type
-: <a class="el" href="dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467">dtls.c</a>
-</li>
-<li>dtls_get_epoch
-: <a class="el" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls.c</a>
-</li>
-<li>dtls_get_fragment_length
-: <a class="el" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls.c</a>
-</li>
-<li>dtls_get_sequence_number
-: <a class="el" href="dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7">dtls.c</a>
-</li>
-<li>dtls_get_version
-: <a class="el" href="dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb">dtls.c</a>
-</li>
-<li>DTLS_HANDSHAKE_HEADER
-: <a class="el" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">dtls.c</a>
-</li>
-<li>DTLS_HASH_CTX_SIZE
-: <a class="el" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">hmac.h</a>
-</li>
-<li>DTLS_HMAC_BLOCKSIZE
-: <a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">hmac.h</a>
-</li>
-<li>DTLS_HMAC_DIGEST_SIZE
-: <a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">hmac.h</a>
-</li>
-<li>DTLS_HMAC_MAX
-: <a class="el" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">hmac.h</a>
-</li>
-<li>DTLS_HS_LENGTH
-: <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">dtls.c</a>
-</li>
-<li>DTLS_HT_CERTIFICATE
-: <a class="el" href="dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e">dtls.h</a>
-</li>
-<li>DTLS_HT_CERTIFICATE_REQUEST
-: <a class="el" href="dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5">dtls.h</a>
-</li>
-<li>DTLS_HT_CERTIFICATE_VERIFY
-: <a class="el" href="dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0">dtls.h</a>
-</li>
-<li>DTLS_HT_CLIENT_HELLO
-: <a class="el" href="dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5">dtls.h</a>
-</li>
-<li>DTLS_HT_CLIENT_KEY_EXCHANGE
-: <a class="el" href="dtls_8h.html#a577885c74492a460729a451f33a894c4">dtls.h</a>
-</li>
-<li>DTLS_HT_FINISHED
-: <a class="el" href="dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad">dtls.h</a>
-</li>
-<li>DTLS_HT_HELLO_REQUEST
-: <a class="el" href="dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc">dtls.h</a>
-</li>
-<li>DTLS_HT_HELLO_VERIFY_REQUEST
-: <a class="el" href="dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_HELLO
-: <a class="el" href="dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_HELLO_DONE
-: <a class="el" href="dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7">dtls.h</a>
-</li>
-<li>DTLS_HT_SERVER_KEY_EXCHANGE
-: <a class="el" href="dtls_8h.html#aab327e17614cf2902c5fc6169466613f">dtls.h</a>
-</li>
-<li>DTLS_HV_LENGTH
-: <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">dtls.c</a>
-</li>
-<li>dtls_info
-: <a class="el" href="debug_8h.html#afde5692e7a590b0dd016d5753284c175">debug.h</a>
-</li>
-<li>DTLS_IV_LENGTH
-: <a class="el" href="crypto_8h.html#a8106002d0d69d8da810321c65ac71385">crypto.h</a>
-</li>
-<li>dtls_kb_client_iv
-: <a class="el" href="crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094">crypto.h</a>
-</li>
-<li>dtls_kb_client_mac_secret
-: <a class="el" href="crypto_8h.html#a72899232c09d09b86326c6f234addc02">crypto.h</a>
-</li>
-<li>dtls_kb_client_write_key
-: <a class="el" href="crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305">crypto.h</a>
-</li>
-<li>dtls_kb_digest_size
-: <a class="el" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758">crypto.h</a>
-</li>
-<li>dtls_kb_iv_size
-: <a class="el" href="crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997">crypto.h</a>
-</li>
-<li>dtls_kb_key_size
-: <a class="el" href="crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa">crypto.h</a>
-</li>
-<li>dtls_kb_local_iv
-: <a class="el" href="crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3">crypto.h</a>
-</li>
-<li>dtls_kb_local_mac_secret
-: <a class="el" href="crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418">crypto.h</a>
-</li>
-<li>dtls_kb_local_write_key
-: <a class="el" href="crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36">crypto.h</a>
-</li>
-<li>dtls_kb_mac_secret_size
-: <a class="el" href="crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0">crypto.h</a>
-</li>
-<li>dtls_kb_remote_iv
-: <a class="el" href="crypto_8h.html#a7119d3239c34d7e7f219200792339541">crypto.h</a>
-</li>
-<li>dtls_kb_remote_mac_secret
-: <a class="el" href="crypto_8h.html#acf318c989f5bb90b863154abbc408b66">crypto.h</a>
-</li>
-<li>dtls_kb_remote_write_key
-: <a class="el" href="crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4">crypto.h</a>
-</li>
-<li>dtls_kb_server_iv
-: <a class="el" href="crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be">crypto.h</a>
-</li>
-<li>dtls_kb_server_mac_secret
-: <a class="el" href="crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a">crypto.h</a>
-</li>
-<li>dtls_kb_server_write_key
-: <a class="el" href="crypto_8h.html#aea906786dcfa12acb320df731c8db7f6">crypto.h</a>
-</li>
-<li>dtls_kb_size
-: <a class="el" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">crypto.h</a>
-</li>
-<li>DTLS_KEY_LENGTH
-: <a class="el" href="crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076">crypto.h</a>
-</li>
-<li>DTLS_MAC_KEY_LENGTH
-: <a class="el" href="crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a">crypto.h</a>
-</li>
-<li>DTLS_MAC_LENGTH
-: <a class="el" href="crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe">crypto.h</a>
-</li>
-<li>DTLS_MASTER_SECRET_LENGTH
-: <a class="el" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">crypto.h</a>
-</li>
-<li>DTLS_MAX_BUF
-: <a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">global.h</a>
-</li>
-<li>dtls_notice
-: <a class="el" href="debug_8h.html#add9bf011215b9fc36abc5c80722c876e">debug.h</a>
-</li>
-<li>DTLS_PSK
-: <a class="el" href="dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf">dtls_config.h</a>
-, <a class="el" href="tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf">tinydtls.h</a>
-</li>
-<li>DTLS_PSK_MAX_CLIENT_IDENTITY_LEN
-: <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">crypto.h</a>
-</li>
-<li>DTLS_PSK_MAX_KEY_LEN
-: <a class="el" href="crypto_8h.html#a59cd7c0b8724e1f9b910611623396080">crypto.h</a>
-</li>
-<li>DTLS_RANDOM_LENGTH
-: <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">crypto.h</a>
-</li>
-<li>DTLS_RECORD_HEADER
-: <a class="el" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">dtls.c</a>
-</li>
-<li>DTLS_RH_LENGTH
-: <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">dtls.c</a>
-</li>
-<li>dtls_set_app_data
-: <a class="el" href="dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e">dtls.h</a>
-</li>
-<li>dtls_set_content_type
-: <a class="el" href="dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365">dtls.c</a>
-</li>
-<li>dtls_set_length
-: <a class="el" href="dtls_8c.html#a9f723101896941fa44ea701c4dfd3591">dtls.c</a>
-</li>
-<li>dtls_set_version
-: <a class="el" href="dtls_8c.html#aebefc949b2298e7de7b95b715874d407">dtls.c</a>
-</li>
-<li>DTLS_SH_LENGTH
-: <a class="el" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">dtls.c</a>
-</li>
-<li>DTLS_SKEXEC_LENGTH
-: <a class="el" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">dtls.c</a>
-</li>
-<li>DTLS_SKEXECPSK_LENGTH_MAX
-: <a class="el" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">dtls.c</a>
-</li>
-<li>DTLS_SKEXECPSK_LENGTH_MIN
-: <a class="el" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">dtls.c</a>
-</li>
-<li>DTLS_TICKS_PER_SECOND
-: <a class="el" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">dtls_time.h</a>
-</li>
-<li>DTLS_VERSION
-: <a class="el" href="dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6">dtls.h</a>
-</li>
-<li>dtls_warn
-: <a class="el" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">debug.h</a>
-</li>
-<li>DTLSv12
-: <a class="el" href="global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li class="current"><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>ELMT_FROM_HH
-: <a class="el" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">uthash.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li class="current"><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
-<li>get16bits
-: <a class="el" href="uthash_8h.html#abc7d71657be8975a51684e41029b7964">uthash.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li class="current"><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>HANDSHAKE
-: <a class="el" href="dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4">dtls.c</a>
-</li>
-<li>HASH_ADD
-: <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">uthash.h</a>
-</li>
-<li>HASH_ADD_INT
-: <a class="el" href="uthash_8h.html#acf85835471af894e354efb7e346698f3">uthash.h</a>
-</li>
-<li>HASH_ADD_KEYPTR
-: <a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">uthash.h</a>
-</li>
-<li>HASH_ADD_PEER
-: <a class="el" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">dtls.c</a>
-</li>
-<li>HASH_ADD_PTR
-: <a class="el" href="uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823">uthash.h</a>
-</li>
-<li>HASH_ADD_STR
-: <a class="el" href="uthash_8h.html#a9724951736f3985f74df17638c8a7885">uthash.h</a>
-</li>
-<li>HASH_ADD_TO_BKT
-: <a class="el" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">uthash.h</a>
-</li>
-<li>HASH_BER
-: <a class="el" href="uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e">uthash.h</a>
-</li>
-<li>HASH_BKT_CAPACITY_THRESH
-: <a class="el" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">uthash.h</a>
-</li>
-<li>HASH_BLOOM_ADD
-: <a class="el" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">uthash.h</a>
-</li>
-<li>HASH_BLOOM_FREE
-: <a class="el" href="uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a">uthash.h</a>
-</li>
-<li>HASH_BLOOM_MAKE
-: <a class="el" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">uthash.h</a>
-</li>
-<li>HASH_BLOOM_SIGNATURE
-: <a class="el" href="uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6">uthash.h</a>
-</li>
-<li>HASH_BLOOM_TEST
-: <a class="el" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">uthash.h</a>
-</li>
-<li>HASH_CLEAR
-: <a class="el" href="uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23">uthash.h</a>
-</li>
-<li>HASH_CNT
-: <a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">uthash.h</a>
-</li>
-<li>HASH_COUNT
-: <a class="el" href="uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f">uthash.h</a>
-</li>
-<li>HASH_DEL
-: <a class="el" href="uthash_8h.html#a48b7ed374602dcb236501aa23a971f05">uthash.h</a>
-</li>
-<li>HASH_DEL_IN_BKT
-: <a class="el" href="uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78">uthash.h</a>
-</li>
-<li>HASH_DEL_PEER
-: <a class="el" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">dtls.c</a>
-</li>
-<li>HASH_DELETE
-: <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">uthash.h</a>
-</li>
-<li>HASH_EMIT_KEY
-: <a class="el" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">uthash.h</a>
-</li>
-<li>HASH_EXPAND_BUCKETS
-: <a class="el" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">uthash.h</a>
-</li>
-<li>HASH_FCN
-: <a class="el" href="uthash_8h.html#abd3356419b386c379116393700a751d3">uthash.h</a>
-</li>
-<li>HASH_FIND
-: <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">uthash.h</a>
-</li>
-<li>HASH_FIND_IN_BKT
-: <a class="el" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">uthash.h</a>
-</li>
-<li>HASH_FIND_INT
-: <a class="el" href="uthash_8h.html#aadcb19b940348f3141bd51505ede0142">uthash.h</a>
-</li>
-<li>HASH_FIND_PEER
-: <a class="el" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">dtls.c</a>
-</li>
-<li>HASH_FIND_PTR
-: <a class="el" href="uthash_8h.html#a26a887f8e31952034becac0cf446f6c3">uthash.h</a>
-</li>
-<li>HASH_FIND_STR
-: <a class="el" href="uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84">uthash.h</a>
-</li>
-<li>HASH_FNV
-: <a class="el" href="uthash_8h.html#ac99f9a353421537527a80b392089dd9d">uthash.h</a>
-</li>
-<li>HASH_FSCK
-: <a class="el" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">uthash.h</a>
-</li>
-<li>HASH_INITIAL_NUM_BUCKETS
-: <a class="el" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">uthash.h</a>
-</li>
-<li>HASH_INITIAL_NUM_BUCKETS_LOG2
-: <a class="el" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">uthash.h</a>
-</li>
-<li>HASH_ITER
-: <a class="el" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">uthash.h</a>
-</li>
-<li>HASH_JEN
-: <a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">uthash.h</a>
-</li>
-<li>HASH_JEN_MIX
-: <a class="el" href="uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5">uthash.h</a>
-</li>
-<li>HASH_KEYCMP
-: <a class="el" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">uthash.h</a>
-</li>
-<li>HASH_MAKE_TABLE
-: <a class="el" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">uthash.h</a>
-</li>
-<li>HASH_OAT
-: <a class="el" href="uthash_8h.html#abc7040b698211c1993441fb4165fa0b4">uthash.h</a>
-</li>
-<li>HASH_SAX
-: <a class="el" href="uthash_8h.html#aa4cb140b45415e7bf57237525388af79">uthash.h</a>
-</li>
-<li>HASH_SELECT
-: <a class="el" href="uthash_8h.html#ad190366f7a476ece79bd628240a5fc93">uthash.h</a>
-</li>
-<li>HASH_SFH
-: <a class="el" href="uthash_8h.html#ab595698a74642684dace0dfa47dab445">uthash.h</a>
-</li>
-<li>HASH_SIGNATURE
-: <a class="el" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">uthash.h</a>
-</li>
-<li>HASH_SORT
-: <a class="el" href="uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15">uthash.h</a>
-</li>
-<li>HASH_SRT
-: <a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">uthash.h</a>
-</li>
-<li>HASH_TO_BKT
-: <a class="el" href="uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113">uthash.h</a>
-</li>
-<li>HAVE_ARPA_INET_H
-: <a class="el" href="config_8h.html#a7d1a71461e07569d0c9003da24c30a59">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59">dtls_config.h</a>
-</li>
-<li>HAVE_ASSERT_H
-: <a class="el" href="config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">dtls_config.h</a>
-</li>
-<li>HAVE_FCNTL_H
-: <a class="el" href="config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">dtls_config.h</a>
-</li>
-<li>HAVE_INTTYPES_H
-: <a class="el" href="config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">dtls_config.h</a>
-</li>
-<li>HAVE_MALLOC
-: <a class="el" href="config_8h.html#a14503280ca0cb757db915eea09282bfc">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc">dtls_config.h</a>
-</li>
-<li>HAVE_MEMORY_H
-: <a class="el" href="config_8h.html#ae93a78f9d076138897af441c9f86f285">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285">dtls_config.h</a>
-</li>
-<li>HAVE_MEMSET
-: <a class="el" href="config_8h.html#a3df52e9809253860c385be6f3a160607">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a3df52e9809253860c385be6f3a160607">dtls_config.h</a>
-</li>
-<li>HAVE_NETDB_H
-: <a class="el" href="dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">config.h</a>
-</li>
-<li>HAVE_NETINET_IN_H
-: <a class="el" href="config_8h.html#a0938658b988a082864efcee2d1b2bfd2">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2">dtls_config.h</a>
-</li>
-<li>HAVE_SELECT
-: <a class="el" href="config_8h.html#aee3a7313d861afa18971031528fd0cd5">config.h</a>
-, <a class="el" href="dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5">dtls_config.h</a>
-</li>
-<li>HAVE_SOCKET
-: <a class="el" href="config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">dtls_config.h</a>
-</li>
-<li>HAVE_STDDEF_H
-: <a class="el" href="config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">dtls_config.h</a>
-</li>
-<li>HAVE_STDINT_H
-: <a class="el" href="config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">dtls_config.h</a>
-</li>
-<li>HAVE_STDLIB_H
-: <a class="el" href="config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">dtls_config.h</a>
-</li>
-<li>HAVE_STRDUP
-: <a class="el" href="config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">dtls_config.h</a>
-</li>
-<li>HAVE_STRERROR
-: <a class="el" href="config_8h.html#a992653625041edef146772df96f7bca9">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a992653625041edef146772df96f7bca9">dtls_config.h</a>
-</li>
-<li>HAVE_STRING_H
-: <a class="el" href="config_8h.html#ad4c234dd1625255dc626a15886306e7d">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d">dtls_config.h</a>
-</li>
-<li>HAVE_STRINGS_H
-: <a class="el" href="dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a405d10d46190bcb0320524c54eafc850">config.h</a>
-</li>
-<li>HAVE_STRNLEN
-: <a class="el" href="config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">dtls_config.h</a>
-</li>
-<li>HAVE_SYS_PARAM_H
-: <a class="el" href="dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">config.h</a>
-</li>
-<li>HAVE_SYS_SOCKET_H
-: <a class="el" href="dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">dtls_config.h</a>
-, <a class="el" href="config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">config.h</a>
-</li>
-<li>HAVE_SYS_STAT_H
-: <a class="el" href="dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b">dtls_config.h</a>
-, <a class="el" href="config_8h.html#ace156430ba007d19b4348a950d0c692b">config.h</a>
-</li>
-<li>HAVE_SYS_TIME_H
-: <a class="el" href="config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">dtls_config.h</a>
-</li>
-<li>HAVE_SYS_TYPES_H
-: <a class="el" href="config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">dtls_config.h</a>
-</li>
-<li>HAVE_TIME_H
-: <a class="el" href="config_8h.html#a2397007ae170bf57faa808bacaaa2499">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499">dtls_config.h</a>
-</li>
-<li>HAVE_UNISTD_H
-: <a class="el" href="dtls__config_8h.html#a219b06937831d0da94d801ab13987639">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a219b06937831d0da94d801ab13987639">config.h</a>
-</li>
-<li>HAVE_VPRINTF
-: <a class="el" href="config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">dtls_config.h</a>
-</li>
-<li>HIGH
-: <a class="el" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">dtls.c</a>
-</li>
-<li>HMAC_UPDATE_SEED
-: <a class="el" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">crypto.c</a>
-</li>
-<li>HS_HDR_LENGTH
-: <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">dtls.c</a>
-</li>
-<li>HV_HDR_LENGTH
-: <a class="el" href="dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li class="current"><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
-<li>LDECLTYPE
-: <a class="el" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">utlist.h</a>
-</li>
-<li>LIST_CONCAT
-: <a class="el" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">t_list.h</a>
-</li>
-<li>LIST_STRUCT
-: <a class="el" href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79">t_list.h</a>
-</li>
-<li>LIST_STRUCT_INIT
-: <a class="el" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">t_list.h</a>
-</li>
-<li>LL_APPEND
-: <a class="el" href="utlist_8h.html#ace33c571c3df78e721a99a4494983855">utlist.h</a>
-</li>
-<li>LL_APPEND_VS2008
-: <a class="el" href="utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3">utlist.h</a>
-</li>
-<li>LL_DELETE
-: <a class="el" href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e">utlist.h</a>
-</li>
-<li>LL_DELETE_VS2008
-: <a class="el" href="utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf">utlist.h</a>
-</li>
-<li>LL_FOREACH
-: <a class="el" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">utlist.h</a>
-</li>
-<li>LL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef">utlist.h</a>
-</li>
-<li>LL_PREPEND
-: <a class="el" href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4">utlist.h</a>
-</li>
-<li>LL_SEARCH
-: <a class="el" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb">utlist.h</a>
-</li>
-<li>LL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed">utlist.h</a>
-</li>
-<li>LL_SORT
-: <a class="el" href="utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31">utlist.h</a>
-</li>
-<li>LOW
-: <a class="el" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li class="current"><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
-<li>MASK_L
-: <a class="el" href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f">ccm.c</a>
-</li>
-<li>max
-: <a class="el" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">numeric.h</a>
-</li>
-<li>MAX_KEYBLOCK_LENGTH
-: <a class="el" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">crypto.h</a>
-</li>
-<li>min
-: <a class="el" href="numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11">numeric.h</a>
-, <a class="el" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">debug.c</a>
-</li>
-<li>MUST_HASH
-: <a class="el" href="dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f">dtls.c</a>
-</li>
-<li>mycookie
-: <a class="el" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li class="current"><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>PACKAGE_BUGREPORT
-: <a class="el" href="config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">dtls_config.h</a>
-</li>
-<li>PACKAGE_NAME
-: <a class="el" href="dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a1c0439e4355794c09b64274849eb0279">config.h</a>
-</li>
-<li>PACKAGE_STRING
-: <a class="el" href="config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">dtls_config.h</a>
-</li>
-<li>PACKAGE_TARNAME
-: <a class="el" href="dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c">dtls_config.h</a>
-, <a class="el" href="config_8h.html#af415af6bfede0e8d5453708afe68651c">config.h</a>
-</li>
-<li>PACKAGE_URL
-: <a class="el" href="config_8h.html#a5c93853116d5a50307b6744f147840aa">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa">dtls_config.h</a>
-</li>
-<li>PACKAGE_VERSION
-: <a class="el" href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">config.h</a>
-, <a class="el" href="dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">dtls_config.h</a>
-</li>
-<li>PRF_LABEL
-: <a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">dtls.c</a>
-</li>
-<li>PRF_LABEL_SIZE
-: <a class="el" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">dtls.c</a>
-</li>
-<li>PRINTF
-: <a class="el" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">debug.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li class="current"><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
-<li>R_KEY_OFFSET
-: <a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li class="current"><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
-<li>S_KEY_OFFSET
-: <a class="el" href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">dtls.c</a>
-</li>
-<li>SET_COUNTER
-: <a class="el" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">ccm.c</a>
-</li>
-<li>SKIP_VAR_FIELD
-: <a class="el" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">dtls.c</a>
-</li>
-<li>STDC_HEADERS
-: <a class="el" href="config_8h.html#a550e5c272cc3cf3814651721167dcd23">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23">dtls_config.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li class="current"><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
-<li>TLS_CERT_TYPE_RAW_PUBLIC_KEY
-: <a class="el" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">global.h</a>
-</li>
-<li>TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN
-: <a class="el" href="global_8h.html#aaace8dce4341d910140609a96bb300db">global.h</a>
-</li>
-<li>TLS_EC_CURVE_TYPE_NAMED_CURVE
-: <a class="el" href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6">global.h</a>
-</li>
-<li>TLS_EXT_CLIENT_CERTIFICATE_TYPE
-: <a class="el" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">global.h</a>
-</li>
-<li>TLS_EXT_EC_POINT_FORMATS
-: <a class="el" href="global_8h.html#a5d17863db920927ef8160547541b58e3">global.h</a>
-</li>
-<li>TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED
-: <a class="el" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">global.h</a>
-</li>
-<li>TLS_EXT_ELLIPTIC_CURVES
-: <a class="el" href="global_8h.html#a7e080d630a40510f655bf6982c555063">global.h</a>
-</li>
-<li>TLS_EXT_ELLIPTIC_CURVES_SECP256R1
-: <a class="el" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">global.h</a>
-</li>
-<li>TLS_EXT_ENCRYPT_THEN_MAC
-: <a class="el" href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118">global.h</a>
-</li>
-<li>TLS_EXT_SERVER_CERTIFICATE_TYPE
-: <a class="el" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO
-: <a class="el" href="global_8h.html#a0249393d6894a15ac56962b2335add24">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO_ECDSA
-: <a class="el" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO_SHA256
-: <a class="el" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li class="current"><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
-<li>uthash_expand_fyi
-: <a class="el" href="uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4">uthash.h</a>
-</li>
-<li>uthash_fatal
-: <a class="el" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash.h</a>
-</li>
-<li>uthash_free
-: <a class="el" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash.h</a>
-</li>
-<li>uthash_malloc
-: <a class="el" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash.h</a>
-</li>
-<li>uthash_noexpand_fyi
-: <a class="el" href="uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86">uthash.h</a>
-</li>
-<li>UTHASH_VERSION
-: <a class="el" href="uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e">uthash.h</a>
-</li>
-<li>UTLIST_VERSION
-: <a class="el" href="utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730">utlist.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_defs.html#index__"><span>_</span></a></li>
- <li><a href="globals_defs_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_defs_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_defs_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_defs_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_defs_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_defs_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_defs_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_defs_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_defs_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_defs_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_defs_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_defs_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_defs_u.html#index_u"><span>u</span></a></li>
- <li class="current"><a href="globals_defs_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
-<li>WITH_SHA256
-: <a class="el" href="global_8h.html#a4da6212f220f78c713aa5e91f989e7d7">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li class="current"><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>ELMT_FROM_HH
-: <a class="el" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">uthash.h</a>
-</li>
-<li>encrypt()
-: <a class="el" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">ccm.c</a>
-</li>
-<li>equals()
-: <a class="el" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- <ul>
-<li>dtls_alert_level_t
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">alert.h</a>
-</li>
-<li>dtls_alert_t
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">alert.h</a>
-</li>
-<li>dtls_cipher_t
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">global.h</a>
-</li>
-<li>dtls_compression_t
-: <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">global.h</a>
-</li>
-<li>dtls_credentials_type_t
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls.h</a>
-</li>
-<li>dtls_crypto_alg
-: <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1">crypto.h</a>
-</li>
-<li>dtls_ecdh_curve
-: <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">crypto.h</a>
-</li>
-<li>dtls_hashfunc_t
-: <a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">hmac.h</a>
-</li>
-<li>dtls_peer_type
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">peer.h</a>
-</li>
-<li>dtls_state_t
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">state.h</a>
-</li>
-<li>log_t
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">debug.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="#index_a"><span>a</span></a></li>
- <li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_h"><span>h</span></a></li>
- <li class="current"><a href="#index_t"><span>t</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>AES128
-: <a class="el" href="crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4">crypto.h</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>DTLS_ALERT_ACCESS_DENIED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11">alert.h</a>
-</li>
-<li>DTLS_ALERT_BAD_CERTIFICATE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c">alert.h</a>
-</li>
-<li>DTLS_ALERT_BAD_RECORD_MAC
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_EXPIRED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_REVOKED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1">alert.h</a>
-</li>
-<li>DTLS_ALERT_CERTIFICATE_UNKNOWN
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d">alert.h</a>
-</li>
-<li>DTLS_ALERT_CLOSE_NOTIFY
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECODE_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECOMPRESSION_FAILURE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888">alert.h</a>
-</li>
-<li>DTLS_ALERT_DECRYPT_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0">alert.h</a>
-</li>
-<li>DTLS_ALERT_HANDSHAKE_FAILURE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d">alert.h</a>
-</li>
-<li>DTLS_ALERT_ILLEGAL_PARAMETER
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">alert.h</a>
-</li>
-<li>DTLS_ALERT_INSUFFICIENT_SECURITY
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e">alert.h</a>
-</li>
-<li>DTLS_ALERT_INTERNAL_ERROR
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">alert.h</a>
-</li>
-<li>DTLS_ALERT_LEVEL_FATAL
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4">alert.h</a>
-</li>
-<li>DTLS_ALERT_LEVEL_WARNING
-: <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7">alert.h</a>
-</li>
-<li>DTLS_ALERT_NO_RENEGOTIATION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab">alert.h</a>
-</li>
-<li>DTLS_ALERT_PROTOCOL_VERSION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652">alert.h</a>
-</li>
-<li>DTLS_ALERT_RECORD_OVERFLOW
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNEXPECTED_MESSAGE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNKNOWN_CA
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNSUPPORTED_CERTIFICATE
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab">alert.h</a>
-</li>
-<li>DTLS_ALERT_UNSUPPORTED_EXTENSION
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc">alert.h</a>
-</li>
-<li>DTLS_ALERT_USER_CANCELED
-: <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638">alert.h</a>
-</li>
-<li>DTLS_CLIENT
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">peer.h</a>
-</li>
-<li>DTLS_ECDH_CURVE_SECP256R1
-: <a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff">crypto.h</a>
-</li>
-<li>DTLS_LOG_ALERT
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e">debug.h</a>
-</li>
-<li>DTLS_LOG_CRIT
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d">debug.h</a>
-</li>
-<li>DTLS_LOG_DEBUG
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">debug.h</a>
-</li>
-<li>DTLS_LOG_EMERG
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e">debug.h</a>
-</li>
-<li>DTLS_LOG_INFO
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7">debug.h</a>
-</li>
-<li>DTLS_LOG_NOTICE
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09">debug.h</a>
-</li>
-<li>DTLS_LOG_WARN
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70">debug.h</a>
-</li>
-<li>DTLS_PSK_HINT
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c">dtls.h</a>
-</li>
-<li>DTLS_PSK_IDENTITY
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">dtls.h</a>
-</li>
-<li>DTLS_PSK_KEY
-: <a class="el" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">dtls.h</a>
-</li>
-<li>DTLS_SERVER
-: <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">peer.h</a>
-</li>
-<li>DTLS_STATE_CLIENTHELLO
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">state.h</a>
-</li>
-<li>DTLS_STATE_CLOSED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">state.h</a>
-</li>
-<li>DTLS_STATE_CLOSING
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">state.h</a>
-</li>
-<li>DTLS_STATE_CONNECTED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">state.h</a>
-</li>
-<li>DTLS_STATE_FINISHED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b">state.h</a>
-</li>
-<li>DTLS_STATE_INIT
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CERTIFICATEVERIFY
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CHANGECIPHERSPEC
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTCERTIFICATE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTHELLO
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_CLIENTKEYEXCHANGE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_FINISHED
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERCERTIFICATE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERHELLODONE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">state.h</a>
-</li>
-<li>DTLS_STATE_WAIT_SERVERKEYEXCHANGE
-: <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">state.h</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>HASH_MD5
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">hmac.h</a>
-</li>
-<li>HASH_NONE
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">hmac.h</a>
-</li>
-<li>HASH_SHA1
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">hmac.h</a>
-</li>
-<li>HASH_SHA224
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">hmac.h</a>
-</li>
-<li>HASH_SHA256
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">hmac.h</a>
-</li>
-<li>HASH_SHA384
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">hmac.h</a>
-</li>
-<li>HASH_SHA512
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">hmac.h</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
-<li>TLS_COMPRESSION_NULL
-: <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">global.h</a>
-</li>
-<li>TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">global.h</a>
-</li>
-<li>TLS_NULL_WITH_NULL_NULL
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">global.h</a>
-</li>
-<li>TLS_PSK_WITH_AES_128_CCM_8
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li class="current"><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
-<li>finalize_hs_hash()
-: <a class="el" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">dtls.c</a>
-</li>
-<li>free_context()
-: <a class="el" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li class="current"><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
-<li>__attribute__()
-: <a class="el" href="dtls_8h.html#ad09246453a4dabd919c7541484046a87">dtls.h</a>
-</li>
-<li>_dtls_address_equals_impl()
-: <a class="el" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">session.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li class="current"><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
-<li>add_auth_data()
-: <a class="el" href="ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc">ccm.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li class="current"><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
-<li>block0()
-: <a class="el" href="ccm_8c.html#a1dfe92428f63772e3907a26435e54354">ccm.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li class="current"><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
-<li>calculate_key_block()
-: <a class="el" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">dtls.c</a>
-</li>
-<li>check_certificate_request()
-: <a class="el" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">dtls.c</a>
-</li>
-<li>check_client_certificate_verify()
-: <a class="el" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">dtls.c</a>
-</li>
-<li>check_client_keyexchange()
-: <a class="el" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">dtls.c</a>
-</li>
-<li>check_finished()
-: <a class="el" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">dtls.c</a>
-</li>
-<li>check_server_certificate()
-: <a class="el" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">dtls.c</a>
-</li>
-<li>check_server_hello()
-: <a class="el" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">dtls.c</a>
-</li>
-<li>check_server_hello_verify_request()
-: <a class="el" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">dtls.c</a>
-</li>
-<li>check_server_hellodone()
-: <a class="el" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">dtls.c</a>
-</li>
-<li>check_server_key_exchange_ecdsa()
-: <a class="el" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">dtls.c</a>
-</li>
-<li>check_server_key_exchange_psk()
-: <a class="el" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">dtls.c</a>
-</li>
-<li>check_stack()
-: <a class="el" href="debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378">debug.h</a>
-</li>
-<li>clear_hs_hash()
-: <a class="el" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">dtls.c</a>
-</li>
-<li>copy_hs_hash()
-: <a class="el" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">dtls.c</a>
-</li>
-<li>crypto_init()
-: <a class="el" href="crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c">crypto.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li class="current"><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
-<li>decrypt_verify()
-: <a class="el" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">dtls.c</a>
-</li>
-<li>dsrv_log()
-: <a class="el" href="debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5">debug.c</a>
-, <a class="el" href="debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5">debug.h</a>
-</li>
-<li>dsrv_print_addr()
-: <a class="el" href="debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2">debug.c</a>
-</li>
-<li>dtls_add_ecdsa_signature_elem()
-: <a class="el" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls.c</a>
-</li>
-<li>dtls_add_peer()
-: <a class="el" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls.c</a>
-</li>
-<li>dtls_alert_create()
-: <a class="el" href="alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d">alert.h</a>
-</li>
-<li>dtls_alert_fatal_create()
-: <a class="el" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">alert.h</a>
-</li>
-<li>dtls_alert_send_from_err()
-: <a class="el" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls.c</a>
-</li>
-<li>dtls_ccm_decrypt()
-: <a class="el" href="crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1">crypto.c</a>
-</li>
-<li>dtls_ccm_decrypt_message()
-: <a class="el" href="ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d">ccm.c</a>
-, <a class="el" href="ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d">ccm.h</a>
-</li>
-<li>dtls_ccm_encrypt()
-: <a class="el" href="crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c">crypto.c</a>
-</li>
-<li>dtls_ccm_encrypt_message()
-: <a class="el" href="ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42">ccm.c</a>
-, <a class="el" href="ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42">ccm.h</a>
-</li>
-<li>dtls_check_ecdsa_signature_elem()
-: <a class="el" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls.c</a>
-</li>
-<li>dtls_check_retransmit()
-: <a class="el" href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82">dtls.h</a>
-</li>
-<li>dtls_check_tls_extension()
-: <a class="el" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls.c</a>
-</li>
-<li>dtls_cipher_context_get()
-: <a class="el" href="crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29">crypto.c</a>
-</li>
-<li>dtls_cipher_context_release()
-: <a class="el" href="crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e">crypto.c</a>
-</li>
-<li>dtls_clock_init()
-: <a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_time.c</a>
-, <a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_time.h</a>
-</li>
-<li>dtls_close()
-: <a class="el" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls.c</a>
-, <a class="el" href="dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a">dtls.h</a>
-</li>
-<li>dtls_connect()
-: <a class="el" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls.h</a>
-</li>
-<li>dtls_connect_peer()
-: <a class="el" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62">dtls.h</a>
-</li>
-<li>dtls_create_cookie()
-: <a class="el" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls.c</a>
-</li>
-<li>dtls_debug_keyblock()
-: <a class="el" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls.c</a>
-</li>
-<li>dtls_decrypt()
-: <a class="el" href="crypto_8c.html#aac32554190e3970917a31ff01eed4080">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b">crypto.h</a>
-</li>
-<li>dtls_destroy_peer()
-: <a class="el" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls.c</a>
-</li>
-<li>dtls_dsrv_hexdump_log()
-: <a class="el" href="debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc">debug.c</a>
-, <a class="el" href="debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc">debug.h</a>
-</li>
-<li>dtls_dsrv_log_addr()
-: <a class="el" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">debug.c</a>
-, <a class="el" href="debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76">debug.h</a>
-</li>
-<li>dtls_ec_key_from_uint32()
-: <a class="el" href="crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6">crypto.c</a>
-</li>
-<li>dtls_ec_key_from_uint32_asn1()
-: <a class="el" href="crypto_8c.html#a5ae24f3621f545752732e318840d7e2b">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a5ae24f3621f545752732e318840d7e2b">crypto.h</a>
-</li>
-<li>dtls_ec_key_to_uint32()
-: <a class="el" href="crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4">crypto.c</a>
-</li>
-<li>dtls_ecdh_pre_master_secret()
-: <a class="el" href="crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa">crypto.h</a>
-</li>
-<li>dtls_ecdsa_create_sig()
-: <a class="el" href="crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">crypto.c</a>
-, <a class="el" href="crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82">crypto.h</a>
-</li>
-<li>dtls_ecdsa_create_sig_hash()
-: <a class="el" href="crypto_8c.html#a49f03039780664684d110d83a228b163">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a49f03039780664684d110d83a228b163">crypto.h</a>
-</li>
-<li>dtls_ecdsa_generate_key()
-: <a class="el" href="crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970">crypto.h</a>
-</li>
-<li>dtls_ecdsa_verify_sig()
-: <a class="el" href="crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9">crypto.h</a>
-</li>
-<li>dtls_ecdsa_verify_sig_hash()
-: <a class="el" href="crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7">crypto.h</a>
-</li>
-<li>dtls_encrypt()
-: <a class="el" href="crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69">crypto.h</a>
-</li>
-<li>dtls_fls()
-: <a class="el" href="global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8">global.h</a>
-</li>
-<li>dtls_free_context()
-: <a class="el" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls.h</a>
-</li>
-<li>dtls_free_peer()
-: <a class="el" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">peer.c</a>
-, <a class="el" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">peer.h</a>
-</li>
-<li>dtls_get_cookie()
-: <a class="el" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls.c</a>
-</li>
-<li>dtls_get_log_level()
-: <a class="el" href="debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f">debug.h</a>
-, <a class="el" href="debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f">debug.c</a>
-</li>
-<li>dtls_get_peer()
-: <a class="el" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a3fd062108e5d0f48627ae644546824a6">dtls.h</a>
-</li>
-<li>dtls_handle_message()
-: <a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls.h</a>
-</li>
-<li>dtls_handshake_dealloc()
-: <a class="el" href="crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3">crypto.c</a>
-</li>
-<li>dtls_handshake_free()
-: <a class="el" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">crypto.c</a>
-, <a class="el" href="crypto_8h.html#aa17bcdc666796e52788f82ee003bb172">crypto.h</a>
-</li>
-<li>dtls_handshake_malloc()
-: <a class="el" href="crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe">crypto.c</a>
-</li>
-<li>dtls_handshake_new()
-: <a class="el" href="crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8">crypto.h</a>
-</li>
-<li>dtls_handshake_type_to_name()
-: <a class="el" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls.c</a>
-</li>
-<li>dtls_hash_finalize()
-: <a class="el" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">hmac.h</a>
-</li>
-<li>dtls_hash_init()
-: <a class="el" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">hmac.h</a>
-</li>
-<li>dtls_hash_update()
-: <a class="el" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">hmac.h</a>
-</li>
-<li>dtls_hmac_context_free()
-: <a class="el" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">hmac.c</a>
-</li>
-<li>dtls_hmac_context_new()
-: <a class="el" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">hmac.c</a>
-</li>
-<li>dtls_hmac_finalize()
-: <a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">hmac.h</a>
-</li>
-<li>dtls_hmac_free()
-: <a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">hmac.c</a>
-, <a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">hmac.h</a>
-</li>
-<li>dtls_hmac_init()
-: <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">hmac.h</a>
-</li>
-<li>dtls_hmac_new()
-: <a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">hmac.c</a>
-, <a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">hmac.h</a>
-</li>
-<li>dtls_hmac_storage_init()
-: <a class="el" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">hmac.h</a>
-</li>
-<li>dtls_hmac_update()
-: <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">hmac.c</a>
-, <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">hmac.h</a>
-</li>
-<li>dtls_init()
-: <a class="el" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls.c</a>
-, <a class="el" href="dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd">dtls.h</a>
-</li>
-<li>dtls_int_to_uint16()
-: <a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">numeric.h</a>
-</li>
-<li>dtls_int_to_uint24()
-: <a class="el" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">numeric.h</a>
-</li>
-<li>dtls_int_to_uint32()
-: <a class="el" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">numeric.h</a>
-</li>
-<li>dtls_int_to_uint48()
-: <a class="el" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">numeric.h</a>
-</li>
-<li>dtls_int_to_uint64()
-: <a class="el" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">numeric.h</a>
-</li>
-<li>dtls_int_to_uint8()
-: <a class="el" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">numeric.h</a>
-</li>
-<li>dtls_mac()
-: <a class="el" href="crypto_8c.html#a1423f8111df1533241178461c10b50e3">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a1423f8111df1533241178461c10b50e3">crypto.h</a>
-</li>
-<li>dtls_malloc_peer()
-: <a class="el" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">peer.c</a>
-</li>
-<li>dtls_new_context()
-: <a class="el" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls.h</a>
-</li>
-<li>dtls_new_peer()
-: <a class="el" href="peer_8c.html#a209e22be64be13e116711829d21d864c">peer.c</a>
-, <a class="el" href="peer_8h.html#a209e22be64be13e116711829d21d864c">peer.h</a>
-</li>
-<li>dtls_p_hash()
-: <a class="el" href="crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e">crypto.c</a>
-, <a class="el" href="crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e">crypto.h</a>
-</li>
-<li>dtls_package_name()
-: <a class="el" href="debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971">debug.c</a>
-, <a class="el" href="debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971">debug.h</a>
-</li>
-<li>dtls_package_version()
-: <a class="el" href="debug_8c.html#aab7b9dac4484be50856ab8b8a827d235">debug.c</a>
-, <a class="el" href="debug_8h.html#aab7b9dac4484be50856ab8b8a827d235">debug.h</a>
-</li>
-<li>dtls_peer_is_connected()
-: <a class="el" href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48">peer.h</a>
-</li>
-<li>dtls_peer_state()
-: <a class="el" href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614">peer.h</a>
-</li>
-<li>dtls_prepare_record()
-: <a class="el" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls.c</a>
-</li>
-<li>dtls_prf()
-: <a class="el" href="crypto_8c.html#a5e47576e502b5a6255f1b489a4915512">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a5e47576e502b5a6255f1b489a4915512">crypto.h</a>
-</li>
-<li>dtls_prng()
-: <a class="el" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">prng.h</a>
-</li>
-<li>dtls_prng_init()
-: <a class="el" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">prng.h</a>
-</li>
-<li>dtls_psk_pre_master_secret()
-: <a class="el" href="crypto_8c.html#aa53dfed4868e257d2485024b5c170bae">crypto.c</a>
-, <a class="el" href="crypto_8h.html#aa53dfed4868e257d2485024b5c170bae">crypto.h</a>
-</li>
-<li>dtls_renegotiate()
-: <a class="el" href="dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls.h</a>
-, <a class="el" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls.c</a>
-</li>
-<li>dtls_retransmit()
-: <a class="el" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls.c</a>
-</li>
-<li>dtls_security_dealloc()
-: <a class="el" href="crypto_8c.html#a444e2410b15ce27c6201204476d20497">crypto.c</a>
-</li>
-<li>dtls_security_free()
-: <a class="el" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">crypto.c</a>
-, <a class="el" href="crypto_8h.html#ad54069f2880b3c07185ebba736d02d17">crypto.h</a>
-</li>
-<li>dtls_security_malloc()
-: <a class="el" href="crypto_8c.html#aa58fc0b3953c6048834855a364432d8c">crypto.c</a>
-</li>
-<li>dtls_security_new()
-: <a class="el" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">crypto.c</a>
-, <a class="el" href="crypto_8h.html#a1d568085636a04b4706b7e50df802a7b">crypto.h</a>
-</li>
-<li>dtls_security_params()
-: <a class="el" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">peer.h</a>
-</li>
-<li>dtls_security_params_epoch()
-: <a class="el" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">peer.h</a>
-</li>
-<li>dtls_security_params_free_other()
-: <a class="el" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">peer.h</a>
-</li>
-<li>dtls_security_params_next()
-: <a class="el" href="peer_8h.html#ab6e209f206f570eed246530ec7960943">peer.h</a>
-</li>
-<li>dtls_security_params_switch()
-: <a class="el" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">peer.h</a>
-</li>
-<li>dtls_send()
-: <a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls.c</a>
-</li>
-<li>dtls_send_alert()
-: <a class="el" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls.c</a>
-</li>
-<li>dtls_send_ccs()
-: <a class="el" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls.c</a>
-</li>
-<li>dtls_send_certificate_ecdsa()
-: <a class="el" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls.c</a>
-</li>
-<li>dtls_send_certificate_verify_ecdh()
-: <a class="el" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls.c</a>
-</li>
-<li>dtls_send_client_hello()
-: <a class="el" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls.c</a>
-</li>
-<li>dtls_send_client_key_exchange()
-: <a class="el" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls.c</a>
-</li>
-<li>dtls_send_finished()
-: <a class="el" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls.c</a>
-</li>
-<li>dtls_send_handshake_msg()
-: <a class="el" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls.c</a>
-</li>
-<li>dtls_send_handshake_msg_hash()
-: <a class="el" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls.c</a>
-</li>
-<li>dtls_send_hello_request()
-: <a class="el" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls.c</a>
-</li>
-<li>dtls_send_multi()
-: <a class="el" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls.c</a>
-</li>
-<li>dtls_send_server_certificate_request()
-: <a class="el" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls.c</a>
-</li>
-<li>dtls_send_server_hello()
-: <a class="el" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls.c</a>
-</li>
-<li>dtls_send_server_hello_done()
-: <a class="el" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls.c</a>
-</li>
-<li>dtls_send_server_hello_msgs()
-: <a class="el" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls.c</a>
-</li>
-<li>dtls_send_server_key_exchange_ecdh()
-: <a class="el" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls.c</a>
-</li>
-<li>dtls_send_server_key_exchange_psk()
-: <a class="el" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls.c</a>
-</li>
-<li>dtls_session_equals()
-: <a class="el" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">session.c</a>
-, <a class="el" href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417">session.h</a>
-</li>
-<li>dtls_session_init()
-: <a class="el" href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501">session.h</a>
-, <a class="el" href="session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501">session.c</a>
-</li>
-<li>dtls_set_handler()
-: <a class="el" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls.h</a>
-</li>
-<li>dtls_set_handshake_header()
-: <a class="el" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls.c</a>
-</li>
-<li>dtls_set_log_level()
-: <a class="el" href="debug_8h.html#ae081a7241940f0195295cc37f39c1d02">debug.h</a>
-, <a class="el" href="debug_8c.html#ae081a7241940f0195295cc37f39c1d02">debug.c</a>
-</li>
-<li>dtls_set_record_header()
-: <a class="el" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls.c</a>
-</li>
-<li>dtls_stop_retransmission()
-: <a class="el" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls.c</a>
-</li>
-<li>dtls_strnlen()
-: <a class="el" href="debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa">debug.c</a>
-</li>
-<li>dtls_ticks()
-: <a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_time.c</a>
-, <a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_time.h</a>
-</li>
-<li>dtls_uint16_to_int()
-: <a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">numeric.h</a>
-</li>
-<li>dtls_uint24_to_int()
-: <a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">numeric.h</a>
-</li>
-<li>dtls_uint32_to_int()
-: <a class="el" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">numeric.h</a>
-</li>
-<li>dtls_uint48_to_int()
-: <a class="el" href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af">numeric.h</a>
-</li>
-<li>dtls_uint64_to_int()
-: <a class="el" href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae">numeric.h</a>
-</li>
-<li>dtls_uint8_to_int()
-: <a class="el" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">numeric.h</a>
-</li>
-<li>dtls_update_parameters()
-: <a class="el" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls.c</a>
-</li>
-<li>dtls_verify_peer()
-: <a class="el" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls.c</a>
-</li>
-<li>dtls_write()
-: <a class="el" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls.c</a>
-, <a class="el" href="dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928">dtls.h</a>
-</li>
-<li>dump()
-: <a class="el" href="debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240">debug.c</a>
-, <a class="el" href="debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240">debug.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li class="current"><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>encrypt()
-: <a class="el" href="ccm_8c.html#a983462ca57ee8fe54249c77281f6559e">ccm.c</a>
-</li>
-<li>equals()
-: <a class="el" href="global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li class="current"><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
-<li>finalize_hs_hash()
-: <a class="el" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">dtls.c</a>
-</li>
-<li>free_context()
-: <a class="el" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li class="current"><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>handle_alert()
-: <a class="el" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">dtls.c</a>
-</li>
-<li>handle_ccs()
-: <a class="el" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">dtls.c</a>
-</li>
-<li>handle_handshake()
-: <a class="el" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">dtls.c</a>
-</li>
-<li>handle_handshake_msg()
-: <a class="el" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">dtls.c</a>
-</li>
-<li>hexdump()
-: <a class="el" href="debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0">debug.c</a>
-, <a class="el" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">debug.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li class="current"><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>is_ecdsa_client_auth_supported()
-: <a class="el" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">dtls.c</a>
-</li>
-<li>is_ecdsa_supported()
-: <a class="el" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">dtls.c</a>
-</li>
-<li>is_psk_supported()
-: <a class="el" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">dtls.c</a>
-</li>
-<li>is_record()
-: <a class="el" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">dtls.c</a>
-</li>
-<li>is_tls_ecdhe_ecdsa_with_aes_128_ccm_8()
-: <a class="el" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">dtls.c</a>
-</li>
-<li>is_tls_psk_with_aes_128_ccm_8()
-: <a class="el" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li class="current"><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
-<li>known_cipher()
-: <a class="el" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li class="current"><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
-<li>list_add()
-: <a class="el" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">t_list.h</a>
-</li>
-<li>list_head()
-: <a class="el" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">t_list.h</a>
-</li>
-<li>list_insert()
-: <a class="el" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">t_list.h</a>
-</li>
-<li>list_item_next()
-: <a class="el" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">t_list.h</a>
-</li>
-<li>list_pop()
-: <a class="el" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">t_list.h</a>
-</li>
-<li>list_push()
-: <a class="el" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">t_list.h</a>
-</li>
-<li>list_remove()
-: <a class="el" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">t_list.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li class="current"><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
-<li>mac()
-: <a class="el" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">ccm.c</a>
-</li>
-<li>malloc_context()
-: <a class="el" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">dtls.c</a>
-</li>
-<li>memxor()
-: <a class="el" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li class="current"><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
-<li>netq_delete_all()
-: <a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq.c</a>
-, <a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq.h</a>
-</li>
-<li>netq_free_node()
-: <a class="el" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq.c</a>
-</li>
-<li>netq_head()
-: <a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq.c</a>
-, <a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq.h</a>
-</li>
-<li>netq_init()
-: <a class="el" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq.h</a>
-</li>
-<li>netq_insert_node()
-: <a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq.h</a>
-, <a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq.c</a>
-</li>
-<li>netq_malloc_node()
-: <a class="el" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq.c</a>
-</li>
-<li>netq_next()
-: <a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq.c</a>
-, <a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq.h</a>
-</li>
-<li>netq_node_free()
-: <a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq.h</a>
-, <a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq.c</a>
-</li>
-<li>netq_node_new()
-: <a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq.c</a>
-, <a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq.h</a>
-</li>
-<li>netq_pop_first()
-: <a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq.h</a>
-, <a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq.c</a>
-</li>
-<li>netq_remove()
-: <a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq.h</a>
-, <a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li class="current"><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>peer_init()
-: <a class="el" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer.c</a>
-, <a class="el" href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828">peer.h</a>
-</li>
-<li>print_timestamp()
-: <a class="el" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">debug.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li class="current"><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
-<li>update_hs_hash()
-: <a class="el" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals_func.html#index__"><span>_</span></a></li>
- <li><a href="globals_func_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_func_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_func_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_func_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_func_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_func_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_func_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_func_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_func_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_func_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_func_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_func_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_func_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_func_u.html#index_u"><span>u</span></a></li>
- <li class="current"><a href="globals_func_v.html#index_v"><span>v</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- 
-
-<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
-<li>verify_ext_cert_type()
-: <a class="el" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">dtls.c</a>
-</li>
-<li>verify_ext_ec_point_formats()
-: <a class="el" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">dtls.c</a>
-</li>
-<li>verify_ext_eliptic_curves()
-: <a class="el" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li class="current"><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
-<li>get16bits
-: <a class="el" href="uthash_8h.html#abc7d71657be8975a51684e41029b7964">uthash.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li class="current"><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
-<li>handle_alert()
-: <a class="el" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">dtls.c</a>
-</li>
-<li>handle_ccs()
-: <a class="el" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">dtls.c</a>
-</li>
-<li>handle_handshake()
-: <a class="el" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">dtls.c</a>
-</li>
-<li>handle_handshake_msg()
-: <a class="el" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">dtls.c</a>
-</li>
-<li>HANDSHAKE
-: <a class="el" href="dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4">dtls.c</a>
-</li>
-<li>HASH_ADD
-: <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">uthash.h</a>
-</li>
-<li>HASH_ADD_INT
-: <a class="el" href="uthash_8h.html#acf85835471af894e354efb7e346698f3">uthash.h</a>
-</li>
-<li>HASH_ADD_KEYPTR
-: <a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">uthash.h</a>
-</li>
-<li>HASH_ADD_PEER
-: <a class="el" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">dtls.c</a>
-</li>
-<li>HASH_ADD_PTR
-: <a class="el" href="uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823">uthash.h</a>
-</li>
-<li>HASH_ADD_STR
-: <a class="el" href="uthash_8h.html#a9724951736f3985f74df17638c8a7885">uthash.h</a>
-</li>
-<li>HASH_ADD_TO_BKT
-: <a class="el" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">uthash.h</a>
-</li>
-<li>HASH_BER
-: <a class="el" href="uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e">uthash.h</a>
-</li>
-<li>HASH_BKT_CAPACITY_THRESH
-: <a class="el" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">uthash.h</a>
-</li>
-<li>HASH_BLOOM_ADD
-: <a class="el" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">uthash.h</a>
-</li>
-<li>HASH_BLOOM_FREE
-: <a class="el" href="uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a">uthash.h</a>
-</li>
-<li>HASH_BLOOM_MAKE
-: <a class="el" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">uthash.h</a>
-</li>
-<li>HASH_BLOOM_SIGNATURE
-: <a class="el" href="uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6">uthash.h</a>
-</li>
-<li>HASH_BLOOM_TEST
-: <a class="el" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">uthash.h</a>
-</li>
-<li>HASH_CLEAR
-: <a class="el" href="uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23">uthash.h</a>
-</li>
-<li>HASH_CNT
-: <a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">uthash.h</a>
-</li>
-<li>HASH_COUNT
-: <a class="el" href="uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f">uthash.h</a>
-</li>
-<li>HASH_DEL
-: <a class="el" href="uthash_8h.html#a48b7ed374602dcb236501aa23a971f05">uthash.h</a>
-</li>
-<li>HASH_DEL_IN_BKT
-: <a class="el" href="uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78">uthash.h</a>
-</li>
-<li>HASH_DEL_PEER
-: <a class="el" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">dtls.c</a>
-</li>
-<li>HASH_DELETE
-: <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">uthash.h</a>
-</li>
-<li>HASH_EMIT_KEY
-: <a class="el" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">uthash.h</a>
-</li>
-<li>HASH_EXPAND_BUCKETS
-: <a class="el" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">uthash.h</a>
-</li>
-<li>HASH_FCN
-: <a class="el" href="uthash_8h.html#abd3356419b386c379116393700a751d3">uthash.h</a>
-</li>
-<li>HASH_FIND
-: <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">uthash.h</a>
-</li>
-<li>HASH_FIND_IN_BKT
-: <a class="el" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">uthash.h</a>
-</li>
-<li>HASH_FIND_INT
-: <a class="el" href="uthash_8h.html#aadcb19b940348f3141bd51505ede0142">uthash.h</a>
-</li>
-<li>HASH_FIND_PEER
-: <a class="el" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">dtls.c</a>
-</li>
-<li>HASH_FIND_PTR
-: <a class="el" href="uthash_8h.html#a26a887f8e31952034becac0cf446f6c3">uthash.h</a>
-</li>
-<li>HASH_FIND_STR
-: <a class="el" href="uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84">uthash.h</a>
-</li>
-<li>HASH_FNV
-: <a class="el" href="uthash_8h.html#ac99f9a353421537527a80b392089dd9d">uthash.h</a>
-</li>
-<li>HASH_FSCK
-: <a class="el" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">uthash.h</a>
-</li>
-<li>HASH_INITIAL_NUM_BUCKETS
-: <a class="el" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">uthash.h</a>
-</li>
-<li>HASH_INITIAL_NUM_BUCKETS_LOG2
-: <a class="el" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">uthash.h</a>
-</li>
-<li>HASH_ITER
-: <a class="el" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">uthash.h</a>
-</li>
-<li>HASH_JEN
-: <a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">uthash.h</a>
-</li>
-<li>HASH_JEN_MIX
-: <a class="el" href="uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5">uthash.h</a>
-</li>
-<li>HASH_KEYCMP
-: <a class="el" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">uthash.h</a>
-</li>
-<li>HASH_MAKE_TABLE
-: <a class="el" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">uthash.h</a>
-</li>
-<li>HASH_MD5
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">hmac.h</a>
-</li>
-<li>HASH_NONE
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">hmac.h</a>
-</li>
-<li>HASH_OAT
-: <a class="el" href="uthash_8h.html#abc7040b698211c1993441fb4165fa0b4">uthash.h</a>
-</li>
-<li>HASH_SAX
-: <a class="el" href="uthash_8h.html#aa4cb140b45415e7bf57237525388af79">uthash.h</a>
-</li>
-<li>HASH_SELECT
-: <a class="el" href="uthash_8h.html#ad190366f7a476ece79bd628240a5fc93">uthash.h</a>
-</li>
-<li>HASH_SFH
-: <a class="el" href="uthash_8h.html#ab595698a74642684dace0dfa47dab445">uthash.h</a>
-</li>
-<li>HASH_SHA1
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">hmac.h</a>
-</li>
-<li>HASH_SHA224
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">hmac.h</a>
-</li>
-<li>HASH_SHA256
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">hmac.h</a>
-</li>
-<li>HASH_SHA384
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">hmac.h</a>
-</li>
-<li>HASH_SHA512
-: <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">hmac.h</a>
-</li>
-<li>HASH_SIGNATURE
-: <a class="el" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">uthash.h</a>
-</li>
-<li>HASH_SORT
-: <a class="el" href="uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15">uthash.h</a>
-</li>
-<li>HASH_SRT
-: <a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">uthash.h</a>
-</li>
-<li>HASH_TO_BKT
-: <a class="el" href="uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113">uthash.h</a>
-</li>
-<li>HAVE_ARPA_INET_H
-: <a class="el" href="config_8h.html#a7d1a71461e07569d0c9003da24c30a59">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59">dtls_config.h</a>
-</li>
-<li>HAVE_ASSERT_H
-: <a class="el" href="dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">dtls_config.h</a>
-, <a class="el" href="config_8h.html#ad0eabe2e5407bc73450eb15b657983cd">config.h</a>
-</li>
-<li>HAVE_FCNTL_H
-: <a class="el" href="config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193">dtls_config.h</a>
-</li>
-<li>HAVE_INTTYPES_H
-: <a class="el" href="config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478">dtls_config.h</a>
-</li>
-<li>HAVE_MALLOC
-: <a class="el" href="config_8h.html#a14503280ca0cb757db915eea09282bfc">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc">dtls_config.h</a>
-</li>
-<li>HAVE_MEMORY_H
-: <a class="el" href="config_8h.html#ae93a78f9d076138897af441c9f86f285">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285">dtls_config.h</a>
-</li>
-<li>HAVE_MEMSET
-: <a class="el" href="config_8h.html#a3df52e9809253860c385be6f3a160607">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a3df52e9809253860c385be6f3a160607">dtls_config.h</a>
-</li>
-<li>HAVE_NETDB_H
-: <a class="el" href="config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e">dtls_config.h</a>
-</li>
-<li>HAVE_NETINET_IN_H
-: <a class="el" href="config_8h.html#a0938658b988a082864efcee2d1b2bfd2">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2">dtls_config.h</a>
-</li>
-<li>HAVE_SELECT
-: <a class="el" href="config_8h.html#aee3a7313d861afa18971031528fd0cd5">config.h</a>
-, <a class="el" href="dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5">dtls_config.h</a>
-</li>
-<li>HAVE_SOCKET
-: <a class="el" href="config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280">dtls_config.h</a>
-</li>
-<li>HAVE_STDDEF_H
-: <a class="el" href="dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff">config.h</a>
-</li>
-<li>HAVE_STDINT_H
-: <a class="el" href="config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354">dtls_config.h</a>
-</li>
-<li>HAVE_STDLIB_H
-: <a class="el" href="dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0">config.h</a>
-</li>
-<li>HAVE_STRDUP
-: <a class="el" href="config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f">dtls_config.h</a>
-</li>
-<li>HAVE_STRERROR
-: <a class="el" href="config_8h.html#a992653625041edef146772df96f7bca9">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a992653625041edef146772df96f7bca9">dtls_config.h</a>
-</li>
-<li>HAVE_STRING_H
-: <a class="el" href="config_8h.html#ad4c234dd1625255dc626a15886306e7d">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d">dtls_config.h</a>
-</li>
-<li>HAVE_STRINGS_H
-: <a class="el" href="dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a405d10d46190bcb0320524c54eafc850">config.h</a>
-</li>
-<li>HAVE_STRNLEN
-: <a class="el" href="config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74">dtls_config.h</a>
-</li>
-<li>HAVE_SYS_PARAM_H
-: <a class="el" href="dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a05aa9fc25e1231d8eb347390558e4e22">config.h</a>
-</li>
-<li>HAVE_SYS_SOCKET_H
-: <a class="el" href="config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">config.h</a>
-, <a class="el" href="dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d">dtls_config.h</a>
-</li>
-<li>HAVE_SYS_STAT_H
-: <a class="el" href="dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b">dtls_config.h</a>
-, <a class="el" href="config_8h.html#ace156430ba007d19b4348a950d0c692b">config.h</a>
-</li>
-<li>HAVE_SYS_TIME_H
-: <a class="el" href="dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a2aae46056558e9d6fef6380f9678ffe3">config.h</a>
-</li>
-<li>HAVE_SYS_TYPES_H
-: <a class="el" href="dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666">config.h</a>
-</li>
-<li>HAVE_TIME_H
-: <a class="el" href="dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a2397007ae170bf57faa808bacaaa2499">config.h</a>
-</li>
-<li>HAVE_UNISTD_H
-: <a class="el" href="dtls__config_8h.html#a219b06937831d0da94d801ab13987639">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a219b06937831d0da94d801ab13987639">config.h</a>
-</li>
-<li>HAVE_VPRINTF
-: <a class="el" href="config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7">dtls_config.h</a>
-</li>
-<li>hexdump()
-: <a class="el" href="debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0">debug.h</a>
-, <a class="el" href="debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0">debug.c</a>
-</li>
-<li>HIGH
-: <a class="el" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">dtls.c</a>
-</li>
-<li>HMAC_UPDATE_SEED
-: <a class="el" href="crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a">crypto.c</a>
-</li>
-<li>HS_HDR_LENGTH
-: <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">dtls.c</a>
-</li>
-<li>HV_HDR_LENGTH
-: <a class="el" href="dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li class="current"><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
-<li>is_ecdsa_client_auth_supported()
-: <a class="el" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">dtls.c</a>
-</li>
-<li>is_ecdsa_supported()
-: <a class="el" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">dtls.c</a>
-</li>
-<li>is_psk_supported()
-: <a class="el" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">dtls.c</a>
-</li>
-<li>is_record()
-: <a class="el" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">dtls.c</a>
-</li>
-<li>is_tls_ecdhe_ecdsa_with_aes_128_ccm_8()
-: <a class="el" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">dtls.c</a>
-</li>
-<li>is_tls_psk_with_aes_128_ccm_8()
-: <a class="el" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li class="current"><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
-<li>known_cipher()
-: <a class="el" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li class="current"><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
-<li>LDECLTYPE
-: <a class="el" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">utlist.h</a>
-</li>
-<li>list_add()
-: <a class="el" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">t_list.h</a>
-</li>
-<li>LIST_CONCAT
-: <a class="el" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">t_list.h</a>
-</li>
-<li>list_head()
-: <a class="el" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">t_list.h</a>
-</li>
-<li>list_insert()
-: <a class="el" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">t_list.h</a>
-</li>
-<li>list_item_next()
-: <a class="el" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">t_list.h</a>
-</li>
-<li>list_pop()
-: <a class="el" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">t_list.h</a>
-</li>
-<li>list_push()
-: <a class="el" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">t_list.h</a>
-</li>
-<li>list_remove()
-: <a class="el" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">t_list.h</a>
-</li>
-<li>LIST_STRUCT
-: <a class="el" href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79">t_list.h</a>
-</li>
-<li>LIST_STRUCT_INIT
-: <a class="el" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">t_list.h</a>
-</li>
-<li>list_t
-: <a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">t_list.h</a>
-</li>
-<li>LL_APPEND
-: <a class="el" href="utlist_8h.html#ace33c571c3df78e721a99a4494983855">utlist.h</a>
-</li>
-<li>LL_APPEND_VS2008
-: <a class="el" href="utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3">utlist.h</a>
-</li>
-<li>LL_DELETE
-: <a class="el" href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e">utlist.h</a>
-</li>
-<li>LL_DELETE_VS2008
-: <a class="el" href="utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf">utlist.h</a>
-</li>
-<li>LL_FOREACH
-: <a class="el" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">utlist.h</a>
-</li>
-<li>LL_FOREACH_SAFE
-: <a class="el" href="utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef">utlist.h</a>
-</li>
-<li>LL_PREPEND
-: <a class="el" href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4">utlist.h</a>
-</li>
-<li>LL_SEARCH
-: <a class="el" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb">utlist.h</a>
-</li>
-<li>LL_SEARCH_SCALAR
-: <a class="el" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed">utlist.h</a>
-</li>
-<li>LL_SORT
-: <a class="el" href="utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31">utlist.h</a>
-</li>
-<li>log_t
-: <a class="el" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d">debug.h</a>
-</li>
-<li>loglevels
-: <a class="el" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">debug.c</a>
-</li>
-<li>LOW
-: <a class="el" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li class="current"><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
-<li>mac()
-: <a class="el" href="ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5">ccm.c</a>
-</li>
-<li>malloc_context()
-: <a class="el" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">dtls.c</a>
-</li>
-<li>MASK_L
-: <a class="el" href="ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f">ccm.c</a>
-</li>
-<li>max
-: <a class="el" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">numeric.h</a>
-</li>
-<li>MAX_KEYBLOCK_LENGTH
-: <a class="el" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">crypto.h</a>
-</li>
-<li>maxlog
-: <a class="el" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">debug.c</a>
-</li>
-<li>memxor()
-: <a class="el" href="global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5">global.h</a>
-</li>
-<li>min
-: <a class="el" href="numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11">numeric.h</a>
-, <a class="el" href="debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d">debug.c</a>
-</li>
-<li>MUST_HASH
-: <a class="el" href="dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f">dtls.c</a>
-</li>
-<li>mycookie
-: <a class="el" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li class="current"><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
-<li>netq_delete_all()
-: <a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq.c</a>
-, <a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq.h</a>
-</li>
-<li>netq_free_node()
-: <a class="el" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq.c</a>
-</li>
-<li>netq_head()
-: <a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq.c</a>
-, <a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq.h</a>
-</li>
-<li>netq_init()
-: <a class="el" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq.h</a>
-</li>
-<li>netq_insert_node()
-: <a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq.h</a>
-, <a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq.c</a>
-</li>
-<li>netq_malloc_node()
-: <a class="el" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq.c</a>
-</li>
-<li>netq_next()
-: <a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq.c</a>
-, <a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq.h</a>
-</li>
-<li>netq_node_free()
-: <a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq.c</a>
-, <a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq.h</a>
-</li>
-<li>netq_node_new()
-: <a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq.h</a>
-, <a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq.c</a>
-</li>
-<li>netq_packet_t
-: <a class="el" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq.h</a>
-</li>
-<li>netq_pop_first()
-: <a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq.h</a>
-, <a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq.c</a>
-</li>
-<li>netq_remove()
-: <a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq.c</a>
-, <a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq.h</a>
-</li>
-<li>netq_t
-: <a class="el" href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li class="current"><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>PACKAGE_BUGREPORT
-: <a class="el" href="config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233">dtls_config.h</a>
-</li>
-<li>PACKAGE_NAME
-: <a class="el" href="dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279">dtls_config.h</a>
-, <a class="el" href="config_8h.html#a1c0439e4355794c09b64274849eb0279">config.h</a>
-</li>
-<li>PACKAGE_STRING
-: <a class="el" href="config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">config.h</a>
-, <a class="el" href="dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf">dtls_config.h</a>
-</li>
-<li>PACKAGE_TARNAME
-: <a class="el" href="dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c">dtls_config.h</a>
-, <a class="el" href="config_8h.html#af415af6bfede0e8d5453708afe68651c">config.h</a>
-</li>
-<li>PACKAGE_URL
-: <a class="el" href="config_8h.html#a5c93853116d5a50307b6744f147840aa">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa">dtls_config.h</a>
-</li>
-<li>PACKAGE_VERSION
-: <a class="el" href="config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">config.h</a>
-, <a class="el" href="dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0">dtls_config.h</a>
-</li>
-<li>peer_init()
-: <a class="el" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer.c</a>
-, <a class="el" href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828">peer.h</a>
-</li>
-<li>PRF_LABEL
-: <a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">dtls.c</a>
-</li>
-<li>prf_label_client
-: <a class="el" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">dtls.c</a>
-</li>
-<li>prf_label_finished
-: <a class="el" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">dtls.c</a>
-</li>
-<li>prf_label_key
-: <a class="el" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">dtls.c</a>
-</li>
-<li>prf_label_master
-: <a class="el" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">dtls.c</a>
-</li>
-<li>prf_label_server
-: <a class="el" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">dtls.c</a>
-</li>
-<li>PRF_LABEL_SIZE
-: <a class="el" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">dtls.c</a>
-</li>
-<li>print_timestamp()
-: <a class="el" href="debug_8c.html#a4ac5b294de82b336108ebd436b271b17">debug.c</a>
-</li>
-<li>PRINTF
-: <a class="el" href="debug_8h.html#a1f464e950a4fa11e8821b5c725921a15">debug.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li class="current"><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
-<li>R_KEY_OFFSET
-: <a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li class="current"><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
-<li>S_KEY_OFFSET
-: <a class="el" href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">dtls.c</a>
-</li>
-<li>SET_COUNTER
-: <a class="el" href="ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994">ccm.c</a>
-</li>
-<li>SKIP_VAR_FIELD
-: <a class="el" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">dtls.c</a>
-</li>
-<li>STDC_HEADERS
-: <a class="el" href="config_8h.html#a550e5c272cc3cf3814651721167dcd23">config.h</a>
-, <a class="el" href="dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23">dtls_config.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li class="current"><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
-<li>TLS_CERT_TYPE_RAW_PUBLIC_KEY
-: <a class="el" href="global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4">global.h</a>
-</li>
-<li>TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN
-: <a class="el" href="global_8h.html#aaace8dce4341d910140609a96bb300db">global.h</a>
-</li>
-<li>TLS_COMPRESSION_NULL
-: <a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">global.h</a>
-</li>
-<li>TLS_EC_CURVE_TYPE_NAMED_CURVE
-: <a class="el" href="global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6">global.h</a>
-</li>
-<li>TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e">global.h</a>
-</li>
-<li>TLS_EXT_CLIENT_CERTIFICATE_TYPE
-: <a class="el" href="global_8h.html#a0074adc0b2543a913a597e510caf27b0">global.h</a>
-</li>
-<li>TLS_EXT_EC_POINT_FORMATS
-: <a class="el" href="global_8h.html#a5d17863db920927ef8160547541b58e3">global.h</a>
-</li>
-<li>TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED
-: <a class="el" href="global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6">global.h</a>
-</li>
-<li>TLS_EXT_ELLIPTIC_CURVES
-: <a class="el" href="global_8h.html#a7e080d630a40510f655bf6982c555063">global.h</a>
-</li>
-<li>TLS_EXT_ELLIPTIC_CURVES_SECP256R1
-: <a class="el" href="global_8h.html#a8095691f33c0ce6b22d205640ccc9417">global.h</a>
-</li>
-<li>TLS_EXT_ENCRYPT_THEN_MAC
-: <a class="el" href="global_8h.html#ae136afe82bd9031a4c1c604de0cb0118">global.h</a>
-</li>
-<li>TLS_EXT_SERVER_CERTIFICATE_TYPE
-: <a class="el" href="global_8h.html#ad465b86d1841ddd6c2209ff304895a95">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO
-: <a class="el" href="global_8h.html#a0249393d6894a15ac56962b2335add24">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO_ECDSA
-: <a class="el" href="global_8h.html#af126227a026a7af436a4323db6d02ecc">global.h</a>
-</li>
-<li>TLS_EXT_SIG_HASH_ALGO_SHA256
-: <a class="el" href="global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9">global.h</a>
-</li>
-<li>TLS_NULL_WITH_NULL_NULL
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd">global.h</a>
-</li>
-<li>TLS_PSK_WITH_AES_128_CCM_8
-: <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- <ul>
-<li>clock_time_t
-: <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">dtls_time.h</a>
-</li>
-<li>dtls_cipher_context_t
-: <a class="el" href="crypto_8h.html#a99482a87021e817524d15c33e89e309c">crypto.h</a>
-</li>
-<li>dtls_context_t
-: <a class="el" href="dtls_8h.html#a407c66c58bfc87651714de4103bee135">dtls.h</a>
-</li>
-<li>dtls_credentials_type_t
-: <a class="el" href="dtls_8h.html#adb4c778ddcbf9ac28ef277b20adbfa33">dtls.h</a>
-</li>
-<li>dtls_ecdsa_key_t
-: <a class="el" href="dtls_8h.html#a472601639fcded4630fbd087f986ad10">dtls.h</a>
-</li>
-<li>dtls_hash_ctx
-: <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">hmac.h</a>
-</li>
-<li>dtls_hash_t
-: <a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">hmac.h</a>
-</li>
-<li>dtls_peer_t
-: <a class="el" href="peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055">peer.h</a>
-</li>
-<li>dtls_tick_t
-: <a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_time.h</a>
-</li>
-<li>list_t
-: <a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">t_list.h</a>
-</li>
-<li>netq_packet_t
-: <a class="el" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq.h</a>
-</li>
-<li>netq_t
-: <a class="el" href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq.h</a>
-</li>
-<li>uint16
-: <a class="el" href="global_8h.html#a5e90b30856b81913af89565b55751da5">global.h</a>
-</li>
-<li>uint24
-: <a class="el" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">global.h</a>
-</li>
-<li>uint32
-: <a class="el" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">global.h</a>
-</li>
-<li>uint48
-: <a class="el" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">global.h</a>
-</li>
-<li>uint8
-: <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">global.h</a>
-</li>
-<li>UT_hash_bucket
-: <a class="el" href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">uthash.h</a>
-</li>
-<li>UT_hash_handle
-: <a class="el" href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">uthash.h</a>
-</li>
-<li>UT_hash_table
-: <a class="el" href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">uthash.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li class="current"><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
-<li>uint16
-: <a class="el" href="global_8h.html#a5e90b30856b81913af89565b55751da5">global.h</a>
-</li>
-<li>uint24
-: <a class="el" href="global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a">global.h</a>
-</li>
-<li>uint32
-: <a class="el" href="global_8h.html#ab27072920285996a3e16d2e5e3d366be">global.h</a>
-</li>
-<li>uint48
-: <a class="el" href="global_8h.html#a0749f1df578b26eccab986b0d8abaa56">global.h</a>
-</li>
-<li>uint8
-: <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">global.h</a>
-</li>
-<li>update_hs_hash()
-: <a class="el" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">dtls.c</a>
-</li>
-<li>UT_hash_bucket
-: <a class="el" href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">uthash.h</a>
-</li>
-<li>UT_hash_handle
-: <a class="el" href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">uthash.h</a>
-</li>
-<li>UT_hash_table
-: <a class="el" href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">uthash.h</a>
-</li>
-<li>uthash_expand_fyi
-: <a class="el" href="uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4">uthash.h</a>
-</li>
-<li>uthash_fatal
-: <a class="el" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash.h</a>
-</li>
-<li>uthash_free
-: <a class="el" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash.h</a>
-</li>
-<li>uthash_malloc
-: <a class="el" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash.h</a>
-</li>
-<li>uthash_noexpand_fyi
-: <a class="el" href="uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86">uthash.h</a>
-</li>
-<li>UTHASH_VERSION
-: <a class="el" href="uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e">uthash.h</a>
-</li>
-<li>UTLIST_VERSION
-: <a class="el" href="utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730">utlist.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li class="current"><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
-<li>verify_ext_cert_type()
-: <a class="el" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">dtls.c</a>
-</li>
-<li>verify_ext_ec_point_formats()
-: <a class="el" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">dtls.c</a>
-</li>
-<li>verify_ext_eliptic_curves()
-: <a class="el" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
- <ul>
-<li>cert_asn1_header
-: <a class="el" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">dtls.c</a>
-</li>
-<li>cipher_context
-: <a class="el" href="crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb">crypto.c</a>
-</li>
-<li>cipher_context_mutex
-: <a class="el" href="crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c">crypto.c</a>
-</li>
-<li>compression_methods
-: <a class="el" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">dtls.c</a>
-</li>
-<li>dtls_client_hello_t
-: <a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls.h</a>
-</li>
-<li>dtls_clock_offset
-: <a class="el" href="dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1">dtls_time.c</a>
-</li>
-<li>dtls_handshake_header_t
-: <a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls.h</a>
-</li>
-<li>dtls_hello_verify_t
-: <a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls.h</a>
-</li>
-<li>dtls_record_header_t
-: <a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls.h</a>
-</li>
-<li>loglevels
-: <a class="el" href="debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92">debug.c</a>
-</li>
-<li>maxlog
-: <a class="el" href="debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d">debug.c</a>
-</li>
-<li>prf_label_client
-: <a class="el" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">dtls.c</a>
-</li>
-<li>prf_label_finished
-: <a class="el" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">dtls.c</a>
-</li>
-<li>prf_label_key
-: <a class="el" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">dtls.c</a>
-</li>
-<li>prf_label_master
-: <a class="el" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">dtls.c</a>
-</li>
-<li>prf_label_server
-: <a class="el" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">dtls.c</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Globals</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li class="current"><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
- <div id="navrow3" class="tabs2">
- <ul class="tablist">
- <li class="current"><a href="globals.html"><span>All</span></a></li>
- <li><a href="globals_func.html"><span>Functions</span></a></li>
- <li><a href="globals_vars.html"><span>Variables</span></a></li>
- <li><a href="globals_type.html"><span>Typedefs</span></a></li>
- <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
- <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
- <li><a href="globals_defs.html"><span>Macros</span></a></li>
- </ul>
- </div>
- <div id="navrow4" class="tabs3">
- <ul class="tablist">
- <li><a href="globals.html#index__"><span>_</span></a></li>
- <li><a href="globals_a.html#index_a"><span>a</span></a></li>
- <li><a href="globals_b.html#index_b"><span>b</span></a></li>
- <li><a href="globals_c.html#index_c"><span>c</span></a></li>
- <li><a href="globals_d.html#index_d"><span>d</span></a></li>
- <li><a href="globals_e.html#index_e"><span>e</span></a></li>
- <li><a href="globals_f.html#index_f"><span>f</span></a></li>
- <li><a href="globals_g.html#index_g"><span>g</span></a></li>
- <li><a href="globals_h.html#index_h"><span>h</span></a></li>
- <li><a href="globals_i.html#index_i"><span>i</span></a></li>
- <li><a href="globals_k.html#index_k"><span>k</span></a></li>
- <li><a href="globals_l.html#index_l"><span>l</span></a></li>
- <li><a href="globals_m.html#index_m"><span>m</span></a></li>
- <li><a href="globals_n.html#index_n"><span>n</span></a></li>
- <li><a href="globals_p.html#index_p"><span>p</span></a></li>
- <li><a href="globals_r.html#index_r"><span>r</span></a></li>
- <li><a href="globals_s.html#index_s"><span>s</span></a></li>
- <li><a href="globals_t.html#index_t"><span>t</span></a></li>
- <li><a href="globals_u.html#index_u"><span>u</span></a></li>
- <li><a href="globals_v.html#index_v"><span>v</span></a></li>
- <li class="current"><a href="globals_w.html#index_w"><span>w</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="contents">
-<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
-
-<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
-<li>WITH_SHA256
-: <a class="el" href="global_8h.html#a4da6212f220f78c713aa5e91f989e7d7">global.h</a>
-</li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Keyed-Hash Message Authentication Code (HMAC)</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">Keyed-Hash Message Authentication Code (HMAC)</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:gab1f8617a558ef0f758439c96d3a4650e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>   64</td></tr>
-<tr class="separator:gab1f8617a558ef0f758439c96d3a4650e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga060019cf2dab9903d58118fe1abe7018"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>   32</td></tr>
-<tr class="separator:ga060019cf2dab9903d58118fe1abe7018"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e84ddbef6bf0084252e16e6c547e332"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a>   64</td></tr>
-<tr class="separator:ga3e84ddbef6bf0084252e16e6c547e332"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ga698cfa036e69361a93dcdd9b19579b23"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> { <br/>
-  <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">HASH_NONE</a> =0,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">HASH_MD5</a> =1,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">HASH_SHA1</a> =2,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">HASH_SHA224</a> =3,
-<br/>
-  <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a> =4,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">HASH_SHA384</a> =5,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">HASH_SHA512</a> =6
-<br/>
- }</td></tr>
-<tr class="separator:ga698cfa036e69361a93dcdd9b19579b23"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3e9ef037800963783e618eafd046702"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a> (const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gac3e9ef037800963783e618eafd046702"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx)</td></tr>
-<tr class="separator:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
-<tr class="separator:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, unsigned char *result)</td></tr>
-<tr class="separator:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>NIST Standard FIPS 198 describes the Keyed-Hash Message Authentication Code (HMAC) which is used as hash function for the DTLS PRF. </p>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="gab1f8617a558ef0f758439c96d3a4650e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HMAC_BLOCKSIZE   64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>size of hmac blocks </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00073">73</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga060019cf2dab9903d58118fe1abe7018"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HMAC_DIGEST_SIZE   32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>digest size (for SHA-256) </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00074">74</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3e84ddbef6bf0084252e16e6c547e332"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HMAC_MAX   64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>max number of bytes in digest </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00075">75</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="ga698cfa036e69361a93dcdd9b19579b23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>List of known hash functions for use in <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init()</a>. The identifiers are the same as the HashAlgorithm defined in <a href="http://tools.ietf.org/html/rfc5246#section-7.4.1.4.1">Section 7.4.1.4.1 of RFC 5246</a>. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018"></a>HASH_NONE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab"></a>HASH_MD5</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03"></a>HASH_SHA1</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5"></a>HASH_SHA224</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3"></a>HASH_SHA256</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970"></a>HASH_SHA384</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66"></a>HASH_SHA512</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00083">83</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab98c992f3f9cc3c2d75077ddd46049bf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_hmac_finalize </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>result</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Completes the HMAC generation and writes the result to the given output parameter <code>result</code>. The buffer must be large enough to hold the message digest created by the actual hash function. If in doubt, use <code>DTLS_HMAC_MAX</code>. The function returns the number of bytes written to <code>result</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The HMAC context. </td></tr>
- <tr><td class="paramname">result</td><td>Output parameter where the MAC is written to. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Length of the MAC written to <code>result</code>. </dd></dl>
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00127">127</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5b1a3c1dcb5461bda44dd70f7bd33181"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_hmac_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Releases the storage for <code>ctx</code> that has been allocated by <a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The <a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> to free. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00121">121</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa1eb35fcb2c2eb69eebaefa8eb4a790d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_hmac_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>klen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Initializes an existing HMAC context.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The HMAC context to initialize. </td></tr>
- <tr><td class="paramname">key</td><td>The secret key. </td></tr>
- <tr><td class="paramname">klen</td><td>The length of <code>key</code>. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00094">94</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac3e9ef037800963783e618eafd046702"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>* dtls_hmac_new </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>klen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Allocates a new HMAC context <code>ctx</code> with the given secret key. This function returns <code>1</code> if <code>ctx</code> has been set correctly, or <code>0</code> or <code>-1</code> otherwise. Note that this function allocates new storage that must be released by <a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">key</td><td>The secret key. </td></tr>
- <tr><td class="paramname">klen</td><td>The length of <code>key</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new <a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> object or <code>NULL</code> on error </dd></dl>
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00083">83</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1ef9c88a0a2053b442413a9cea3deb73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_hmac_update </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>input</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>ilen</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Updates the HMAC context with data from <code>input</code>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The HMAC context. </td></tr>
- <tr><td class="paramname">input</td><td>The input data. </td></tr>
- <tr><td class="paramname">ilen</td><td>Size of <code>input</code>. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00076">76</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Clock Handling</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">Clock Handling</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:gae3ced0551b26c9b99cb45a86f34d100a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a>   1000</td></tr>
-<tr class="separator:gae3ced0551b26c9b99cb45a86f34d100a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8610d63d209a8bf7858afc427db6168"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gae8610d63d209a8bf7858afc427db6168">DTLS_TICKS_PER_SECOND</a>   <a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a></td></tr>
-<tr class="separator:gae8610d63d209a8bf7858afc427db6168"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga6e6c13e871b82d881a01d1bc8df69d23"><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></td></tr>
-<tr class="separator:ga6e6c13e871b82d881a01d1bc8df69d23"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaded617551180951f4841969e396a8012"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></td></tr>
-<tr class="separator:gaded617551180951f4841969e396a8012"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga8b340ad858b708dbc7bf40f784935c90"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga8b340ad858b708dbc7bf40f784935c90">dtls_clock_init</a> (void)</td></tr>
-<tr class="separator:ga8b340ad858b708dbc7bf40f784935c90"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304">dtls_ticks</a> (<a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> *t)</td></tr>
-<tr class="separator:ga1834985745ba5d3dd03f7e7498e3a304"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Default implementation of internal clock. You should redefine this if you do not have time() and gettimeofday(). </p>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="gae3ced0551b26c9b99cb45a86f34d100a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CLOCK_SECOND   1000</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8h_source.html#l00052">52</a> of file <a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8610d63d209a8bf7858afc427db6168"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_TICKS_PER_SECOND   <a class="el" href="group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8h_source.html#l00061">61</a> of file <a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga6e6c13e871b82d881a01d1bc8df69d23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef uint32_t <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8h_source.html#l00055">55</a> of file <a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaded617551180951f4841969e396a8012"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> <a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8h_source.html#l00058">58</a> of file <a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8b340ad858b708dbc7bf40f784935c90"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_clock_init </td>
- <td>(</td>
- <td class="paramtype">void </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8c_source.html#l00054">54</a> of file <a class="el" href="dtls__time_8c_source.html">dtls_time.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1834985745ba5d3dd03f7e7498e3a304"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_ticks </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group__clock.html#gaded617551180951f4841969e396a8012">dtls_tick_t</a> * </td>
- <td class="paramname"><em>t</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls__time_8c_source.html#l00067">67</a> of file <a class="el" href="dtls__time_8c_source.html">dtls_time.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Contiki</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">Contiki</div> </div>
-</div><!--header-->
-<div class="contents">
-<p>To use tinyDTLS as Contiki application, place the source code in the directory <code>apps/tinydtls</code> in the Contiki source tree and invoke configure with the option <code>–with-contiki</code>. This will define WITH_CONTIKI in <a class="el" href="tinydtls_8h.html" title="public tinydtls API ">tinydtls.h</a> and include <code>Makefile.contiki</code> in the main Makefile. To cross-compile for another platform you will need to set your host and build system accordingly. For example, when configuring for ARM, you would invoke </p>
-<div class="fragment"><div class="line">./configure --with-contiki --build=x86_64-linux-gnu --host=arm-none-eabi </div>
-</div><!-- fragment --><p> on an x86_64 linux host.</p>
-<p>Then, create a Contiki project with <code>APPS</code> += tinydtls in its Makefile. A sample server could look like this (with read_from_peer() and get_psk_key() as shown above).</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include "contiki.h"</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><span class="preprocessor">#include "<a class="code" href="dtls_8h.html">dtls.h</a>"</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])</span></div>
-<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define UIP_UDP_BUF ((struct uip_udp_hdr *)&uip_buf[UIP_LLIPH_LEN])</span></div>
-<div class="line"><span class="preprocessor"></span></div>
-<div class="line"><span class="keywordtype">int</span> send_to_peer(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *, <a class="code" href="structsession__t.html">session_t</a> *, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *, <span class="keywordtype">size_t</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">static</span> <span class="keyword">struct </span>uip_udp_conn *server_conn;</div>
-<div class="line"><span class="keyword">static</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *dtls_context;</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">static</span> <a class="code" href="structdtls__handler__t.html">dtls_handler_t</a> cb = {</div>
-<div class="line"> .<a class="code" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2">write</a> = send_to_peer,</div>
-<div class="line"> .read = read_from_peer,</div>
-<div class="line"> .event = NULL,</div>
-<div class="line"> .get_psk_key = get_psk_key</div>
-<div class="line">};</div>
-<div class="line"></div>
-<div class="line">PROCESS(server_process, <span class="stringliteral">"DTLS server process"</span>);</div>
-<div class="line">AUTOSTART_PROCESSES(&server_process);</div>
-<div class="line"></div>
-<div class="line">PROCESS_THREAD(server_process, ev, data)</div>
-<div class="line">{</div>
-<div class="line"> PROCESS_BEGIN();</div>
-<div class="line"></div>
-<div class="line"> <a class="code" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a>();</div>
-<div class="line"></div>
-<div class="line"> server_conn = udp_new(NULL, 0, NULL);</div>
-<div class="line"> udp_bind(server_conn, UIP_HTONS(5684));</div>
-<div class="line"></div>
-<div class="line"> dtls_context = <a class="code" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a>(server_conn);</div>
-<div class="line"> <span class="keywordflow">if</span> (!dtls_context) {</div>
-<div class="line"> <a class="code" href="debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8">dtls_emerg</a>(<span class="stringliteral">"cannot create context\n"</span>);</div>
-<div class="line"> PROCESS_EXIT();</div>
-<div class="line"> }</div>
-<div class="line"></div>
-<div class="line"> <a class="code" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls_set_handler</a>(dtls_context, &cb);</div>
-<div class="line"></div>
-<div class="line"> <span class="keywordflow">while</span>(1) {</div>
-<div class="line"> PROCESS_WAIT_EVENT();</div>
-<div class="line"> <span class="keywordflow">if</span>(ev == tcpip_event && uip_newdata()) {</div>
-<div class="line"> <a class="code" href="structsession__t.html">session_t</a> session;</div>
-<div class="line"></div>
-<div class="line"> uip_ipaddr_copy(&session.<a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>, &UIP_IP_BUF->srcipaddr);</div>
-<div class="line"> session.port = UIP_UDP_BUF->srcport;</div>
-<div class="line"> session.<a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a> = <span class="keyword">sizeof</span>(session.<a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>) + <span class="keyword">sizeof</span>(session.port);</div>
-<div class="line"> </div>
-<div class="line"> <a class="code" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a>(ctx, &session, uip_appdata, uip_datalen());</div>
-<div class="line"> }</div>
-<div class="line"> }</div>
-<div class="line"></div>
-<div class="line"> PROCESS_END();</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">int</span> send_to_peer(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"> <span class="keyword">struct </span>uip_udp_conn *conn = (<span class="keyword">struct </span>uip_udp_conn *)<a class="code" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls_get_app_data</a>(ctx);</div>
-<div class="line"></div>
-<div class="line"> uip_ipaddr_copy(&conn->ripaddr, &session-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>);</div>
-<div class="line"> conn->rport = session->port;</div>
-<div class="line"></div>
-<div class="line"> uip_udp_packet_send(conn, data, len);</div>
-<div class="line"></div>
-<div class="line"> memset(&conn->ripaddr, 0, <span class="keyword">sizeof</span>(server_conn->ripaddr));</div>
-<div class="line"> memset(&conn->rport, 0, <span class="keyword">sizeof</span>(conn->rport));</div>
-<div class="line"></div>
-<div class="line"> <span class="keywordflow">return</span> len;</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: DTLS Usage</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">DTLS Usage</div> </div>
-</div><!--header-->
-<div class="contents">
-<h1><a class="anchor" id="dtls_server_example"></a>
-DTLS Server Example</h1>
-<p>This section shows how to use the DTLS library functions to setup a simple secure UDP echo server. The application is responsible for the entire network communication and thus will look like a usual UDP server with socket creation and binding and a typical select-loop as shown below. The minimum configuration required for DTLS is the creation of the <a class="el" href="structdtls__context__t.html">dtls_context_t</a> using <a class="el" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context()</a>, and a callback for sending data. Received packets are read by the application and passed to <a class="el" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message()</a> as shown in <a class="el" href="group__dtls__usage.html#dtls_read_cb">The Read Callback</a>. For any useful communication to happen, read and write call backs and a key management function should be registered as well.</p>
-<div class="fragment"><div class="line"><a class="code" href="structdtls__context__t.html">dtls_context_t</a> *the_context = NULL;</div>
-<div class="line"><span class="keywordtype">int</span> fd, result;</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">static</span> <a class="code" href="structdtls__handler__t.html">dtls_handler_t</a> cb = {</div>
-<div class="line"> .<a class="code" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2">write</a> = send_to_peer,</div>
-<div class="line"> .read = read_from_peer,</div>
-<div class="line"> .event = NULL,</div>
-<div class="line"> .get_psk_key = get_psk_key</div>
-<div class="line">};</div>
-<div class="line"></div>
-<div class="line">fd = socket(...);</div>
-<div class="line"><span class="keywordflow">if</span> (fd < 0 || bind(fd, ...) < 0)</div>
-<div class="line"> exit(-1);</div>
-<div class="line"></div>
-<div class="line">the_context = <a class="code" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a>(&fd);</div>
-<div class="line"><a class="code" href="dtls_8h.html#ab0e3223c87b79e4946b19538b24634da">dtls_set_handler</a>(the_context, &cb);</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">while</span> (1) {</div>
-<div class="line"> ...initialize fd_set rfds and timeout ...</div>
-<div class="line"> result = select(fd+1, &rfds, NULL, 0, NULL);</div>
-<div class="line"> </div>
-<div class="line"> <span class="keywordflow">if</span> (FD_ISSET(fd, &rfds))</div>
-<div class="line"> dtls_handle_read(the_context);</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><a class="code" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a>(the_context);</div>
-</div><!-- fragment --><h2><a class="anchor" id="dtls_read_cb"></a>
-The Read Callback</h2>
-<p>The DTLS library expects received raw data to be passed to <a class="el" href="dtls_8h.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message()</a>. The application is responsible for filling a <a class="el" href="structsession__t.html">session_t</a> structure with the address data of the remote peer as illustrated by the following example:</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> dtls_handle_read(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx) {</div>
-<div class="line"> <span class="keywordtype">int</span> *fd;</div>
-<div class="line"> <a class="code" href="structsession__t.html">session_t</a> session;</div>
-<div class="line"> <span class="keyword">static</span> <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> buf[<a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>];</div>
-<div class="line"> <span class="keywordtype">int</span> len;</div>
-<div class="line"></div>
-<div class="line"> fd = <a class="code" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls_get_app_data</a>(ctx);</div>
-<div class="line"></div>
-<div class="line"> assert(fd);</div>
-<div class="line"></div>
-<div class="line"> session.<a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a> = <span class="keyword">sizeof</span>(session.<a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>);</div>
-<div class="line"> len = recvfrom(*fd, buf, <span class="keyword">sizeof</span>(buf), 0, &session.<a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>, &session.<a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a>);</div>
-<div class="line"> </div>
-<div class="line"> <span class="keywordflow">return</span> len < 0 ? len : <a class="code" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a>(ctx, &session, buf, len);</div>
-<div class="line">} </div>
-</div><!-- fragment --><p>Once a new DTLS session was established and DTLS ApplicationData has been received, the DTLS server invokes the read callback with the MAC-verified cleartext data as its argument. A read callback for a simple echo server could look like this: </p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> read_from_peer(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"> <span class="keywordflow">return</span> <a class="code" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls_write</a>(ctx, session, data, len);</div>
-<div class="line">}</div>
-</div><!-- fragment --><h2><a class="anchor" id="dtls_send_cb"></a>
-The Send Callback</h2>
-<p>The callback function send_to_peer() is called whenever data must be sent over the network. Here, the sendto() system call is used to transmit data within the given session. The socket descriptor required by sendto() has been registered as application data when the DTLS context was created with <a class="el" href="dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context()</a>. Note that it is on the application to buffer the data when it cannot be sent at the time this callback is invoked. The following example thus is incomplete as it would have to deal with EAGAIN somehow. </p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> send_to_peer(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, <a class="code" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"> <span class="keywordtype">int</span> fd = *(<span class="keywordtype">int</span> *)<a class="code" href="dtls_8h.html#a95f7eb485bb814aa308e2612681176d9">dtls_get_app_data</a>(ctx);</div>
-<div class="line"> <span class="keywordflow">return</span> sendto(fd, data, len, MSG_DONTWAIT, &session-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>, session-><a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a>);</div>
-<div class="line">}</div>
-</div><!-- fragment --><h2><a class="anchor" id="dtls_get_psk_info"></a>
-The Key Storage</h2>
-<p>When a new DTLS session is created, the library must ask the application for keying material. To do so, it invokes the registered call-back function get_psk_info() with the current context and session information as parameter. When the call-back function is invoked with the parameter <code>type</code> set to <code>DTLS_PSK_IDENTITY</code>, the result parameter <code>result</code> must be filled with the psk_identity_hint in case of a server, or the actual psk_identity in case of a client. When <code>type</code> is <code>DTLS_PSK_KEY</code>, the result parameter must be filled with a key for the given identity <code>id</code>. The function must return the number of bytes written to <code>result</code> which must not exceed <code>result_length</code>. In case of an error, the function must return a negative value that corresponds to a valid error code defined in <a class="el" href="alert_8h.html" title="DTLS alert protocol. ">alert.h</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> get_psk_info(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx UNUSED_PARAM,</div>
-<div class="line"> <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session UNUSED_PARAM,</div>
-<div class="line"> <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01">dtls_credentials_type_t</a> type,</div>
-<div class="line"> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<span class="keywordtype">id</span>, <span class="keywordtype">size_t</span> id_len,</div>
-<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result, <span class="keywordtype">size_t</span> result_length) {</div>
-<div class="line"></div>
-<div class="line"> <span class="keywordflow">switch</span> (type) {</div>
-<div class="line"> <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2">DTLS_PSK_IDENTITY</a>:</div>
-<div class="line"> <span class="keywordflow">if</span> (result_length < psk_id_length) {</div>
-<div class="line"> <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot set psk_identity -- buffer too small\n"</span>);</div>
-<div class="line"> <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"> }</div>
-<div class="line"></div>
-<div class="line"> memcpy(result, psk_id, psk_id_length);</div>
-<div class="line"> <span class="keywordflow">return</span> psk_id_length;</div>
-<div class="line"> <span class="keywordflow">case</span> <a class="code" href="dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4">DTLS_PSK_KEY</a>:</div>
-<div class="line"> <span class="keywordflow">if</span> (id_len != psk_id_length || memcmp(psk_id, <span class="keywordtype">id</span>, id_len) != 0) {</div>
-<div class="line"> <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"PSK for unknown id requested, exiting\n"</span>);</div>
-<div class="line"> <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc">DTLS_ALERT_ILLEGAL_PARAMETER</a>);</div>
-<div class="line"> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (result_length < psk_key_length) {</div>
-<div class="line"> <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"cannot set psk -- buffer too small\n"</span>);</div>
-<div class="line"> <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line"> }</div>
-<div class="line"></div>
-<div class="line"> memcpy(result, psk_key, psk_key_length);</div>
-<div class="line"> <span class="keywordflow">return</span> psk_key_length;</div>
-<div class="line"> <span class="keywordflow">default</span>:</div>
-<div class="line"> <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"unsupported request type: %d\n"</span>, type);</div>
-<div class="line"> }</div>
-<div class="line"></div>
-<div class="line"> <span class="keywordflow">return</span> <a class="code" href="alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df">dtls_alert_fatal_create</a>(<a class="code" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58">DTLS_ALERT_INTERNAL_ERROR</a>);</div>
-<div class="line">}</div>
-</div><!-- fragment --><h2><a class="anchor" id="dtls_events"></a>
-The Event Notifier</h2>
-<p>Applications that want to be notified whenever the status of a DTLS session has changed can register an event handling function with the field <code>event</code> in the <a class="el" href="structdtls__handler__t.html">dtls_handler_t</a> structure (see <a class="el" href="group__dtls__usage.html#dtls_server_example">DTLS Server Example</a>). The call-back function is called for alert messages and internal state changes. For alert messages, the argument <code>level</code> will be set to a value greater than zero, and <code>code</code> will indicate the notification code. For internal events, <code>level</code> is <code>0</code>, and <code>code</code> a value greater than <code>255</code>.</p>
-<p>Internal events are DTLS_EVENT_CONNECTED, <code>DTLS_EVENT_CONNECT</code>, and <code>DTLS_EVENT_RENEGOTIATE</code>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> handle_event(<span class="keyword">struct</span> <a class="code" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="code" href="structsession__t.html">session_t</a> *session, </div>
-<div class="line"> <a class="code" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> code) {</div>
-<div class="line"> ... <span class="keywordflow">do</span> something with <span class="keyword">event</span> ...</div>
-<div class="line"> <span class="keywordflow">return</span> 0;</div>
-<div class="line">}</div>
-</div><!-- fragment --><h1><a class="anchor" id="dtls_client_example"></a>
-DTLS Client Example</h1>
-<p>A DTLS client is constructed like a server but needs to actively setup a new session by calling <a class="el" href="dtls_8h.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect()</a> at some point. As this function usually returns before the new DTLS channel is established, the application must register an event handler and wait for <code>DTLS_EVENT_CONNECT</code> before it can send data over the DTLS channel. </p>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Network Packet Queue</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">Network Packet Queue</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html">netq_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa59d8597860df302584b1e9c448fdfcd"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq_packet_t</a> [<a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>]</td></tr>
-<tr class="separator:gaa59d8597860df302584b1e9c448fdfcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4991f2cfa1f79edf8f7d8262c5beeb5b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnetq__t.html">netq_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq_t</a></td></tr>
-<tr class="separator:ga4991f2cfa1f79edf8f7d8262c5beeb5b"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga9eba9e66570dcdfc933c6cf843694444"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a> ()</td></tr>
-<tr class="separator:ga9eba9e66570dcdfc933c6cf843694444"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a> (<a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a> (size_t size)</td></tr>
-<tr class="separator:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac769de2e30bcf2c2db89ff10822219d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac769de2e30bcf2c2db89ff10822219d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab4c90c003808a784ae1ee9322e75627d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a> (<a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gab4c90c003808a784ae1ee9322e75627d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>The netq utility functions implement an ordered queue of data packets to send over the network and can also be used to queue received packets from the network. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gaa59d8597860df302584b1e9c448fdfcd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef unsigned char netq_packet_t[<a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Datagrams in the <a class="el" href="structnetq__t.html">netq_t</a> structure have a fixed maximum size of DTLS_MAX_BUF to simplify memory management on constrained nodes. </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00036">36</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4991f2cfa1f79edf8f7d8262c5beeb5b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structnetq__t.html">netq_t</a> <a class="el" href="structnetq__t.html">netq_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gac72fd2ec9f1e6908c8a10705fb6555e2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void netq_delete_all </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>queue</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Removes all items from given queue and frees the allocated storage </p>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00133">133</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac769de2e30bcf2c2db89ff10822219d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structnetq__t.html">netq_t</a>* netq_head </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>queue</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Returns a pointer to the first item in given queue or NULL if empty. </p>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00080">80</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9eba9e66570dcdfc933c6cf843694444"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void netq_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00058">58</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga142c8e39fe2cd55250e3c1f0370dfe6b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int netq_insert_node </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>queue</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>node</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Adds a node to the given queue, ordered by their time-stamp t. This function returns <code>0</code> on error, or non-zero if <code>node</code> has been added successfully.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">queue</td><td>A pointer to the queue head where <code>node</code> will be added. </td></tr>
- <tr><td class="paramname">node</td><td>The new item to add. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd><code>0</code> on error, or non-zero if the new item was added. </dd></dl>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00061">61</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab4c90c003808a784ae1ee9322e75627d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structnetq__t.html">netq_t</a>* netq_next </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00088">88</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9ef9da1a2af266dadef83ddf6c8524d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void netq_node_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>node</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Destroys specified node and releases any memory that was allocated for the associated datagram. </p>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00127">127</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafcf245cd934e9b8f0909a7ca8940e9cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structnetq__t.html">netq_t</a>* netq_node_new </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Creates a new node suitable for adding to a <a class="el" href="structnetq__t.html">netq_t</a> queue. </p>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00111">111</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga108e6c43e524fd4b23a5d4731631fae3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structnetq__t.html">netq_t</a>* netq_pop_first </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>queue</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Removes the first item in given queue and returns a pointer to the removed element. If queue is empty when <a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first()</a> is called, this function returns NULL. </p>
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00103">103</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gace12cd802d76d5bd98b2eaedc591fd22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void netq_remove </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>queue</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>p</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00096">96</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Pseudo Random Numbers</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">Pseudo Random Numbers</div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga3f4036a1abfcec552ab583a2dc37be6c"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a> (unsigned char *buf, size_t len)</td></tr>
-<tr class="separator:ga3f4036a1abfcec552ab583a2dc37be6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac68680277206146d06c9e5468f260ee0"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a> (unsigned short seed)</td></tr>
-<tr class="separator:gac68680277206146d06c9e5468f260ee0"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga3f4036a1abfcec552ab583a2dc37be6c"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_prng </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Fills <code>buf</code> with <code>len</code> random bytes. This is the default implementation for prng(). You might want to change prng() to use a better PRNG on your specific platform. </p>
-
-<p>Definition at line <a class="el" href="prng_8h_source.html#l00033">33</a> of file <a class="el" href="prng_8h_source.html">prng.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac68680277206146d06c9e5468f260ee0"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_prng_init </td>
- <td>(</td>
- <td class="paramtype">unsigned short </td>
- <td class="paramname"><em>seed</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="prng_8h_source.html#l00040">40</a> of file <a class="el" href="prng_8h_source.html">prng.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: hmac.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">hmac.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdio.h></code><br/>
-<code>#include <stdlib.h></code><br/>
-<code>#include <string.h></code><br/>
-<code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-<code>#include "<a class="el" href="hmac_8h_source.html">hmac.h</a>"</code><br/>
-</div>
-<p><a href="hmac_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:affb72973a7bb7b389a4b7382d435fcef"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">dtls_hmac_context_new</a> ()</td></tr>
-<tr class="separator:affb72973a7bb7b389a4b7382d435fcef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8613e734d3fafa81035f8f30000325a7"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">dtls_hmac_context_free</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx)</td></tr>
-<tr class="separator:a8613e734d3fafa81035f8f30000325a7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
-<tr class="separator:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3e9ef037800963783e618eafd046702"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a> (const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gac3e9ef037800963783e618eafd046702"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx)</td></tr>
-<tr class="separator:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, unsigned char *result)</td></tr>
-<tr class="separator:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a8613e734d3fafa81035f8f30000325a7"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_hmac_context_free </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00051">51</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="affb72973a7bb7b389a4b7382d435fcef"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>* dtls_hmac_context_new </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8c_source.html#l00046">46</a> of file <a class="el" href="hmac_8c_source.html">hmac.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: hmac.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">hmac.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="hmac_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <string.h></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#define assert(x)</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="hmac_8h.html">hmac.h</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/* use malloc()/free() on platforms other than Contiki */</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span><span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *</div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef"> 46</a></span> <a class="code" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">dtls_hmac_context_new</a>() {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">return</span> (<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>));</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7"> 51</a></span> <a class="code" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">dtls_hmac_context_free</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx) {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  free(ctx);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span><span class="preprocessor">#include "memb.h"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> MEMB(hmac_context_storage, <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>, DTLS_HASH_MAX);</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <a class="code" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">dtls_hmac_context_new</a>() {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> (<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *)memb_alloc(&hmac_context_storage);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <a class="code" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">dtls_hmac_context_free</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx) {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  memb_free(&hmac_context_storage, ctx);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a>() {</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  memb_init(&hmac_context_storage);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73"> 76</a></span> <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen) {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  assert(ctx);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>, input, ilen);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702"> 83</a></span> <a class="code" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> klen) {</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ctx = <a class="code" href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">dtls_hmac_context_new</a>();</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (ctx) </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(ctx, key, klen);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> ctx;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d"> 94</a></span> <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> klen) {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">int</span> i;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  assert(ctx);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  memset(ctx, 0, <span class="keyword">sizeof</span>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>));</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (klen > <a class="code" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>) {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>, key, klen);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>, &ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  } <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  memcpy(ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>, key, klen);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">/* create ipad: */</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span> (i=0; i < <a class="code" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>; ++i)</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>[i] ^= 0x36;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(ctx, ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>, DTLS_HMAC_BLOCKSIZE);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">/* create opad by xor-ing pad[i] with 0x36 ^ 0x5C: */</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">for</span> (i=0; i < <a class="code" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>; ++i)</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>[i] ^= 0x6A;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181"> 121</a></span> <a class="code" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx) {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (ctx)</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">dtls_hmac_context_free</a>(ctx);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf"> 127</a></span> <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> buf[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordtype">size_t</span> len; </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  assert(ctx);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  assert(result);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  len = <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(buf, &ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>, ctx-><a class="code" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a>, <a class="code" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(&ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>, buf, len);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  len = <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(result, &ctx-><a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> len;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#ifdef HMAC_TEST</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"></span><span class="preprocessor">#include <stdio.h></span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> buf[<a class="code" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>];</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">size_t</span> len, i;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (argc < 3) {</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  fprintf(stderr, <span class="stringliteral">"usage: %s key text"</span>, argv[0]);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a>();</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  ctx = <a class="code" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a>(argv[1], strlen(argv[1]));</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  assert(ctx);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(ctx, argv[2], strlen(argv[2]));</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  len = <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(ctx, buf);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">for</span>(i = 0; i < len; i++) </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  printf(<span class="stringliteral">"%02x"</span>, buf[i]);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  printf(<span class="stringliteral">"\n"</span>);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a>(ctx);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="hmac_8c_html_affb72973a7bb7b389a4b7382d435fcef"><div class="ttname"><a href="hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef">dtls_hmac_context_new</a></div><div class="ttdeci">static dtls_hmac_context_t * dtls_hmac_context_new()</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00046">hmac.c:46</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga1ef9c88a0a2053b442413a9cea3deb73"><div class="ttname"><a href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a></div><div class="ttdeci">void dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00076">hmac.c:76</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga5b1a3c1dcb5461bda44dd70f7bd33181"><div class="ttname"><a href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a></div><div class="ttdeci">void dtls_hmac_free(dtls_hmac_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00121">hmac.c:121</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga060019cf2dab9903d58118fe1abe7018"><div class="ttname"><a href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a></div><div class="ttdeci">#define DTLS_HMAC_DIGEST_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00074">hmac.h:74</a></div></div>
-<div class="ttc" id="hmac_8h_html"><div class="ttname"><a href="hmac_8h.html">hmac.h</a></div></div>
-<div class="ttc" id="group__HMAC_html_gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><div class="ttname"><a href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a></div><div class="ttdeci">void dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00094">hmac.c:94</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html"><div class="ttname"><a href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00095">hmac.h:95</a></div></div>
-<div class="ttc" id="group__HMAC_html_gac3e9ef037800963783e618eafd046702"><div class="ttname"><a href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a></div><div class="ttdeci">dtls_hmac_context_t * dtls_hmac_new(const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00083">hmac.c:83</a></div></div>
-<div class="ttc" id="hmac_8h_html_afe0af64930ac5d6a51289df6d1eb4f52"><div class="ttname"><a href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a></div><div class="ttdeci">static void dtls_hash_init(dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00043">hmac.h:43</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html_aba13422e176f7d16f3f251634ca7f868"><div class="ttname"><a href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">dtls_hmac_context_t::pad</a></div><div class="ttdeci">unsigned char pad[DTLS_HMAC_BLOCKSIZE]</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00096">hmac.h:96</a></div></div>
-<div class="ttc" id="hmac_8h_html_adb5ad07ab9a1adcdfdc20e13aa37bee6"><div class="ttname"><a href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a></div><div class="ttdeci">static void dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00048">hmac.h:48</a></div></div>
-<div class="ttc" id="group__HMAC_html_gab98c992f3f9cc3c2d75077ddd46049bf"><div class="ttname"><a href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a></div><div class="ttdeci">int dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00127">hmac.c:127</a></div></div>
-<div class="ttc" id="hmac_8c_html_a8613e734d3fafa81035f8f30000325a7"><div class="ttname"><a href="hmac_8c.html#a8613e734d3fafa81035f8f30000325a7">dtls_hmac_context_free</a></div><div class="ttdeci">static void dtls_hmac_context_free(dtls_hmac_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00051">hmac.c:51</a></div></div>
-<div class="ttc" id="group__HMAC_html_gab1f8617a558ef0f758439c96d3a4650e"><div class="ttname"><a href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_HMAC_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00073">hmac.h:73</a></div></div>
-<div class="ttc" id="hmac_8h_html_a96801bbb62f4c9c872b22cd8e438e51e"><div class="ttname"><a href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a></div><div class="ttdeci">static size_t dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00053">hmac.h:53</a></div></div>
-<div class="ttc" id="hmac_8h_html_a51d5982243691c9e7fa56142c3a8d5d8"><div class="ttname"><a href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a></div><div class="ttdeci">static void dtls_hmac_storage_init()</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00060">hmac.h:60</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html_a84c35513fa655d8456be215f4509bb40"><div class="ttname"><a href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">dtls_hmac_context_t::data</a></div><div class="ttdeci">dtls_hash_ctx data</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00097">hmac.h:97</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: hmac.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">hmac.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <sys/types.h></code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "sha2/sha2.h"</code><br/>
-</div>
-<p><a href="hmac_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a7fb242dc4ddd717e5eb67d4bf89618d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5">DTLS_HASH_CTX_SIZE</a>   sizeof(SHA256_CTX)</td></tr>
-<tr class="separator:a7fb242dc4ddd717e5eb67d4bf89618d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1f8617a558ef0f758439c96d3a4650e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>   64</td></tr>
-<tr class="separator:gab1f8617a558ef0f758439c96d3a4650e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga060019cf2dab9903d58118fe1abe7018"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018">DTLS_HMAC_DIGEST_SIZE</a>   32</td></tr>
-<tr class="separator:ga060019cf2dab9903d58118fe1abe7018"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e84ddbef6bf0084252e16e6c547e332"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332">DTLS_HMAC_MAX</a>   64</td></tr>
-<tr class="separator:ga3e84ddbef6bf0084252e16e6c547e332"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:abb19650a510c73117da0e9b88d68f159"><td class="memItemLeft" align="right" valign="top">typedef SHA256_CTX </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></td></tr>
-<tr class="separator:abb19650a510c73117da0e9b88d68f159"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afa00f0cbe1b7783992467c1c204320b5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a></td></tr>
-<tr class="separator:afa00f0cbe1b7783992467c1c204320b5"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ga698cfa036e69361a93dcdd9b19579b23"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a> { <br/>
-  <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">HASH_NONE</a> =0,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">HASH_MD5</a> =1,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">HASH_SHA1</a> =2,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">HASH_SHA224</a> =3,
-<br/>
-  <a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a> =4,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">HASH_SHA384</a> =5,
-<a class="el" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">HASH_SHA512</a> =6
-<br/>
- }</td></tr>
-<tr class="separator:ga698cfa036e69361a93dcdd9b19579b23"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:afe0af64930ac5d6a51289df6d1eb4f52"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a> (<a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx)</td></tr>
-<tr class="separator:afe0af64930ac5d6a51289df6d1eb4f52"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adb5ad07ab9a1adcdfdc20e13aa37bee6"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a> (<a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx, const unsigned char *input, size_t len)</td></tr>
-<tr class="separator:adb5ad07ab9a1adcdfdc20e13aa37bee6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a96801bbb62f4c9c872b22cd8e438e51e"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a> (unsigned char *buf, <a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx)</td></tr>
-<tr class="separator:a96801bbb62f4c9c872b22cd8e438e51e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a51d5982243691c9e7fa56142c3a8d5d8"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a> ()</td></tr>
-<tr class="separator:a51d5982243691c9e7fa56142c3a8d5d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3e9ef037800963783e618eafd046702"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a> (const unsigned char *key, size_t klen)</td></tr>
-<tr class="separator:gac3e9ef037800963783e618eafd046702"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx)</td></tr>
-<tr class="separator:ga5b1a3c1dcb5461bda44dd70f7bd33181"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, const unsigned char *input, size_t ilen)</td></tr>
-<tr class="separator:ga1ef9c88a0a2053b442413a9cea3deb73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a> (<a class="el" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, unsigned char *result)</td></tr>
-<tr class="separator:gab98c992f3f9cc3c2d75077ddd46049bf"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a7fb242dc4ddd717e5eb67d4bf89618d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_HASH_CTX_SIZE   sizeof(SHA256_CTX)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00040">40</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="abb19650a510c73117da0e9b88d68f159"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef SHA256_CTX <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Aaron D. Gifford's implementation of SHA256 see <a href="http://www.aarongifford.com/">http://www.aarongifford.com/</a> </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00038">38</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afa00f0cbe1b7783992467c1c204320b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a>* <a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00039">39</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a96801bbb62f4c9c872b22cd8e438e51e"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static size_t dtls_hash_finalize </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>buf</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> </td>
- <td class="paramname"><em>ctx</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00053">53</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afe0af64930ac5d6a51289df6d1eb4f52"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_hash_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> </td>
- <td class="paramname"><em>ctx</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00043">43</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adb5ad07ab9a1adcdfdc20e13aa37bee6"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_hash_update </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> </td>
- <td class="paramname"><em>ctx</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>input</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>len</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00048">48</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a51d5982243691c9e7fa56142c3a8d5d8"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_hmac_storage_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00060">60</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: hmac.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">hmac.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="hmac_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_HMAC_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_HMAC_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#ifdef WITH_SHA256</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "sha2/sha2.h"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159"> 38</a></span> <span class="keyword">typedef</span> SHA256_CTX <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a>;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5"> 39</a></span> <span class="keyword">typedef</span> <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> *<a class="code" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a>;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5"> 40</a></span> <span class="preprocessor">#define DTLS_HASH_CTX_SIZE sizeof(SHA256_CTX)</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52"> 43</a></span> <a class="code" href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a>(<a class="code" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx) {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  SHA256_Init((SHA256_CTX *)ctx);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6"> 48</a></span> <a class="code" href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a>(<a class="code" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  SHA256_Update((SHA256_CTX *)ctx, input, len);</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e"> 53</a></span> <a class="code" href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <a class="code" href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a> ctx) {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  SHA256_Final(buf, (SHA256_CTX *)ctx);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> SHA256_DIGEST_LENGTH;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> }</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_SHA256 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8"> 60</a></span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a>()</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> { }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a>();</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e"> 73</a></span> <span class="preprocessor">#define DTLS_HMAC_BLOCKSIZE 64 </span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018"> 74</a></span> <span class="preprocessor">#define DTLS_HMAC_DIGEST_SIZE 32 </span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332"> 75</a></span> <span class="preprocessor">#define DTLS_HMAC_MAX 64 </span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23"> 83</a></span> <span class="preprocessor">typedef enum { </span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5"> 84</a></span> <span class="preprocessor"></span> <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">HASH_NONE</a>=0, <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">HASH_MD5</a>=1, <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">HASH_SHA1</a>=2, <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">HASH_SHA224</a>=3,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66"> 85</a></span>  <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a>=4, <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">HASH_SHA384</a>=5, <a class="code" href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">HASH_SHA512</a>=6</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> } <a class="code" href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structdtls__hmac__context__t.html"> 95</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868"> 96</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pad[<a class="code" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>]; </div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40"> 97</a></span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> <a class="code" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a>; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> } <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a>;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> <a class="code" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> klen);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *<a class="code" href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key, <span class="keywordtype">size_t</span> klen);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordtype">void</span> <a class="code" href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keywordtype">void</span> <a class="code" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">int</span> <a class="code" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a>(<a class="code" href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a> *ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *result);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_HMAC_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="group__HMAC_html_ga1ef9c88a0a2053b442413a9cea3deb73"><div class="ttname"><a href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update</a></div><div class="ttdeci">void dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00076">hmac.c:76</a></div></div>
-<div class="ttc" id="hmac_8h_html_abb19650a510c73117da0e9b88d68f159"><div class="ttname"><a href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></div><div class="ttdeci">SHA256_CTX dtls_hash_ctx</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00038">hmac.h:38</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga5b1a3c1dcb5461bda44dd70f7bd33181"><div class="ttname"><a href="group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181">dtls_hmac_free</a></div><div class="ttdeci">void dtls_hmac_free(dtls_hmac_context_t *ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00121">hmac.c:121</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="group__HMAC_html_gaa1eb35fcb2c2eb69eebaefa8eb4a790d"><div class="ttname"><a href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init</a></div><div class="ttdeci">void dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00094">hmac.c:94</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html"><div class="ttname"><a href="structdtls__hmac__context__t.html">dtls_hmac_context_t</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00095">hmac.h:95</a></div></div>
-<div class="ttc" id="group__HMAC_html_gac3e9ef037800963783e618eafd046702"><div class="ttname"><a href="group__HMAC.html#gac3e9ef037800963783e618eafd046702">dtls_hmac_new</a></div><div class="ttdeci">dtls_hmac_context_t * dtls_hmac_new(const unsigned char *key, size_t klen)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00083">hmac.c:83</a></div></div>
-<div class="ttc" id="hmac_8h_html_afe0af64930ac5d6a51289df6d1eb4f52"><div class="ttname"><a href="hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52">dtls_hash_init</a></div><div class="ttdeci">static void dtls_hash_init(dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00043">hmac.h:43</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab">HASH_MD5</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00084">hmac.h:84</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3">HASH_SHA256</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00085">hmac.h:85</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03">HASH_SHA1</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00084">hmac.h:84</a></div></div>
-<div class="ttc" id="hmac_8h_html_afa00f0cbe1b7783992467c1c204320b5"><div class="ttname"><a href="hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5">dtls_hash_t</a></div><div class="ttdeci">dtls_hash_ctx * dtls_hash_t</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00039">hmac.h:39</a></div></div>
-<div class="ttc" id="hmac_8h_html_adb5ad07ab9a1adcdfdc20e13aa37bee6"><div class="ttname"><a href="hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6">dtls_hash_update</a></div><div class="ttdeci">static void dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00048">hmac.h:48</a></div></div>
-<div class="ttc" id="group__HMAC_html_gab98c992f3f9cc3c2d75077ddd46049bf"><div class="ttname"><a href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize</a></div><div class="ttdeci">int dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8c_source.html#l00127">hmac.c:127</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018">HASH_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00084">hmac.h:84</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5">HASH_SHA224</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00084">hmac.h:84</a></div></div>
-<div class="ttc" id="group__HMAC_html_gab1f8617a558ef0f758439c96d3a4650e"><div class="ttname"><a href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a></div><div class="ttdeci">#define DTLS_HMAC_BLOCKSIZE</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00073">hmac.h:73</a></div></div>
-<div class="ttc" id="group__HMAC_html_ga698cfa036e69361a93dcdd9b19579b23"><div class="ttname"><a href="group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23">dtls_hashfunc_t</a></div><div class="ttdeci">dtls_hashfunc_t</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00083">hmac.h:83</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970">HASH_SHA384</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00085">hmac.h:85</a></div></div>
-<div class="ttc" id="group__HMAC_html_gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66"><div class="ttname"><a href="group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66">HASH_SHA512</a></div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00085">hmac.h:85</a></div></div>
-<div class="ttc" id="hmac_8h_html_a96801bbb62f4c9c872b22cd8e438e51e"><div class="ttname"><a href="hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e">dtls_hash_finalize</a></div><div class="ttdeci">static size_t dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx)</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00053">hmac.h:53</a></div></div>
-<div class="ttc" id="hmac_8h_html_a51d5982243691c9e7fa56142c3a8d5d8"><div class="ttname"><a href="hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8">dtls_hmac_storage_init</a></div><div class="ttdeci">static void dtls_hmac_storage_init()</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00060">hmac.h:60</a></div></div>
-<div class="ttc" id="structdtls__hmac__context__t_html_a84c35513fa655d8456be215f4509bb40"><div class="ttname"><a href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">dtls_hmac_context_t::data</a></div><div class="ttdeci">dtls_hash_ctx data</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00097">hmac.h:97</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Main Page</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li class="current"><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">tinydtls Documentation</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Olaf Bergmann, TZI Uni Bremen</dd></dl>
-<p>This library provides a very simple datagram server with DTLS support. It is designed to support session multiplexing in single-threaded applications and thus targets specifically on embedded systems.</p>
-<h1><a class="anchor" id="license"></a>
-License</h1>
-<p>This software is under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>.</p>
-<h2><a class="anchor" id="uthash"></a>
-UTHash</h2>
-<p>This library uses <a href="http://uthash.sourceforge.net/">uthash</a> to manage its peers (not used for Contiki). <b>uthash</b> uses the <b>BSD revised license</b>, see <a href="http://uthash.sourceforge.net/license.html">http://uthash.sourceforge.net/license.html</a>.</p>
-<h2><a class="anchor" id="sha256"></a>
-Aaron D. Gifford's SHA256 Implementation</h2>
-<p>tinyDTLS provides HMAC-SHA256 with BSD-licensed code from Aaron D. Gifford, see <a href="http://www.aarongifford.com/">www.aarongifford.com</a>.</p>
-<h2><a class="anchor" id="aes"></a>
-Rijndael Implementation From OpenBSD</h2>
-<p>The AES implementation is taken from rijndael.{c,h} contained in the crypto sub-system of the OpenBSD operating system. It is copyright by Vincent Rijmen, * Antoon Bosselaers and Paulo Barreto. See <a href="http://www.openbsd.org/cgi-bin/cvsweb/src/sys/crypto/rijndael.c">rijndael.c</a> for License info.</p>
-<h1><a class="anchor" id="download"></a>
-Getting the Files</h1>
-<p>You can get the sources either from the <a href="http://sourceforge.net/projects/tinydtls/files">downloads</a> section or through git from the <a href="http://sourceforge.net/projects/tinydtls/develop">project develop page</a>.</p>
-<h1><a class="anchor" id="config"></a>
-Configuration</h1>
-<p>Use <code>configure</code> to set up everything for a successful build. For Contiki, use the option <code>–with-contiki</code>.</p>
-<h1><a class="anchor" id="build"></a>
-Building</h1>
-<p>After configuration, just type </p>
-<div class="fragment"><div class="line">make</div>
-</div><!-- fragment --><p> optionally followed by </p>
-<div class="fragment"><div class="line">make install</div>
-</div><!-- fragment --><p> The Contiki version is integrated with the Contiki build system, hence you do not need to invoke <code>make</code> explicitely. Just add <code>tinydtls</code> to the variable <code>APPS</code> in your <code>Makefile</code>. </p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-/*!
- * jQuery JavaScript Library v1.7.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Mon Nov 21 21:11:03 2011 -0500
- */
-(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
-}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
-if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
-}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
-/*!
- * Sizzle CSS Selector Engine
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- * More information: http://sizzlejs.com/
- */
-(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
-},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
-ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
-if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
-}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
-})}})(window);
-/*!
- PowerTip - v1.2.0 - 2013-04-03
- http://stevenbenner.github.com/jquery-powertip/
- Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
- Released under MIT license.
- https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
-*/
-(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: Modules</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li class="current"><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">Modules</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock">Here is a list of all modules:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__clock.html" target="_self">Clock Handling</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__HMAC.html" target="_self">Keyed-Hash Message Authentication Code (HMAC)</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__netq.html" target="_self">Network Packet Queue</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__prng.html" target="_self">Pseudo Random Numbers</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__dtls__usage.html" target="_self">DTLS Usage</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__contiki.html" target="_self">Contiki</a></td><td class="desc"></td></tr>
-</table>
-</div><!-- directory -->
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: netq.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">netq.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-<code>#include "<a class="el" href="netq_8h_source.html">netq.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-<code>#include "<a class="el" href="t__list_8h_source.html">t_list.h</a>"</code><br/>
-<code>#include <stdlib.h></code><br/>
-</div>
-<p><a href="netq_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a58b119d6b9bb7756ab49afcd34571dab"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq_malloc_node</a> (size_t size)</td></tr>
-<tr class="separator:a58b119d6b9bb7756ab49afcd34571dab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2e23675fa402ca2c66bc97cbd09e44f3"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a> (<a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:a2e23675fa402ca2c66bc97cbd09e44f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac769de2e30bcf2c2db89ff10822219d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac769de2e30bcf2c2db89ff10822219d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab4c90c003808a784ae1ee9322e75627d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a> (<a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gab4c90c003808a784ae1ee9322e75627d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a> (size_t size)</td></tr>
-<tr class="separator:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a> (<a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a2e23675fa402ca2c66bc97cbd09e44f3"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void netq_free_node </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> * </td>
- <td class="paramname"><em>node</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00033">33</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a58b119d6b9bb7756ab49afcd34571dab"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structnetq__t.html">netq_t</a>* netq_malloc_node </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>size</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8c_source.html#l00028">28</a> of file <a class="el" href="netq_8c_source.html">netq.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: netq.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">netq.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="netq_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* netq.h -- Simple packet queue</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2010--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is part of the library tinyDTLS. Please see the file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * LICENSE for terms of use.</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="netq_8h.html">netq.h</a>"</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef assert</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span><span class="preprocessor">#warning "assertions are disabled"</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"></span><span class="preprocessor"># define assert(x)</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="t__list_8h.html">t_list.h</a>"</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structnetq__t.html">netq_t</a> *</div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab"> 28</a></span> <a class="code" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq_malloc_node</a>(<span class="keywordtype">size_t</span> size) {</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">return</span> (<a class="code" href="structnetq__t.html">netq_t</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="structnetq__t.html">netq_t</a>) + size);</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> }</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3"> 33</a></span> <a class="code" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a>(<a class="code" href="structnetq__t.html">netq_t</a> *node) {</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  free(node);</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> }</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">/* FIXME: implement Contiki's list functions using utlist.h */</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="preprocessor">#include "memb.h"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> MEMB(netq_storage, <a class="code" href="structnetq__t.html">netq_t</a>, NETQ_MAXCNT);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structnetq__t.html">netq_t</a> *</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <a class="code" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq_malloc_node</a>(<span class="keywordtype">size_t</span> size) {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">return</span> (<a class="code" href="structnetq__t.html">netq_t</a> *)memb_alloc(&netq_storage);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <a class="code" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a>(<a class="code" href="structnetq__t.html">netq_t</a> *node) {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  memb_free(&netq_storage, node);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <a class="code" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a>() {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  memb_init(&netq_storage);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b"> 61</a></span> <a class="code" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="code" href="structnetq__t.html">netq_t</a> *node) {</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="structnetq__t.html">netq_t</a> *p;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  assert(queue);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  assert(node);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  p = (<a class="code" href="structnetq__t.html">netq_t</a> *)<a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(queue);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">while</span>(p && p-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> <= node-><a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a> && <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(p))</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  p = <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(p);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (p)</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">list_insert</a>(queue, p, node);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a>(queue, node);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <a class="code" href="structnetq__t.html">netq_t</a> *</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4"> 80</a></span> <a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue) {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (!queue)</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(queue);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <a class="code" href="structnetq__t.html">netq_t</a> *</div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d"> 88</a></span> <a class="code" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a>(<a class="code" href="structnetq__t.html">netq_t</a> *p) {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (!p)</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(p);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22"> 96</a></span> <a class="code" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="code" href="structnetq__t.html">netq_t</a> *p) {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (!queue || !p)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(queue, p);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3"> 103</a></span> <a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue) {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (!queue)</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a>(queue);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <a class="code" href="structnetq__t.html">netq_t</a> *</div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb"> 111</a></span> <a class="code" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a>(<span class="keywordtype">size_t</span> size) {</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="structnetq__t.html">netq_t</a> *node;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  node = <a class="code" href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq_malloc_node</a>(size);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#ifndef NDEBUG</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"></span> <span class="keywordflow">if</span> (!node)</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a>(<span class="stringliteral">"netq_node_new: malloc\n"</span>);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (node)</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  memset(node, 0, <span class="keyword">sizeof</span>(<a class="code" href="structnetq__t.html">netq_t</a>));</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> node; </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7"> 127</a></span> <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(<a class="code" href="structnetq__t.html">netq_t</a> *node) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (node)</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a>(node);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2"> 133</a></span> <a class="code" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue) {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="structnetq__t.html">netq_t</a> *p;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (queue) {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">while</span>((p = <a class="code" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a>(queue)))</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a>(p); </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="t__list_8h_html"><div class="ttname"><a href="t__list_8h.html">t_list.h</a></div><div class="ttdoc">Wrappers for list structures and functions. </div></div>
-<div class="ttc" id="t__list_8h_html_a5ba6a8506e0226ab945349e25ef65d56"><div class="ttname"><a href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a></div><div class="ttdeci">static void * list_pop(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00117">t_list.h:117</a></div></div>
-<div class="ttc" id="t__list_8h_html_a0d4152f6de47bfefa600867056bc3355"><div class="ttname"><a href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">list_insert</a></div><div class="ttdeci">static void list_insert(list_t list, void *previtem, void *newitem)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00127">t_list.h:127</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="group__netq_html_gab4c90c003808a784ae1ee9322e75627d"><div class="ttname"><a href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a></div><div class="ttdeci">netq_t * netq_next(netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00088">netq.c:88</a></div></div>
-<div class="ttc" id="structnetq__t_html"><div class="ttname"><a href="structnetq__t.html">netq_t</a></div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00038">netq.h:38</a></div></div>
-<div class="ttc" id="group__netq_html_gafcf245cd934e9b8f0909a7ca8940e9cb"><div class="ttname"><a href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a></div><div class="ttdeci">netq_t * netq_node_new(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00111">netq.c:111</a></div></div>
-<div class="ttc" id="t__list_8h_html_ae7f0bdad2409695760ffd8de55b6a99b"><div class="ttname"><a href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a></div><div class="ttdeci">static void * list_item_next(void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00137">t_list.h:137</a></div></div>
-<div class="ttc" id="t__list_8h_html_a9c248916bae1f0b13732686786be7108"><div class="ttname"><a href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></div><div class="ttdeci">void ** list_t</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00079">t_list.h:79</a></div></div>
-<div class="ttc" id="structnetq__t_html_afe91256ff5267fc680b96efd3bd8635a"><div class="ttname"><a href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">netq_t::t</a></div><div class="ttdeci">clock_time_t t</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00041">netq.h:41</a></div></div>
-<div class="ttc" id="group__netq_html_ga9eba9e66570dcdfc933c6cf843694444"><div class="ttname"><a href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a></div><div class="ttdeci">static void netq_init()</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00058">netq.h:58</a></div></div>
-<div class="ttc" id="netq_8c_html_a2e23675fa402ca2c66bc97cbd09e44f3"><div class="ttname"><a href="netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3">netq_free_node</a></div><div class="ttdeci">static void netq_free_node(netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00033">netq.c:33</a></div></div>
-<div class="ttc" id="group__netq_html_gac769de2e30bcf2c2db89ff10822219d4"><div class="ttname"><a href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a></div><div class="ttdeci">netq_t * netq_head(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00080">netq.c:80</a></div></div>
-<div class="ttc" id="group__netq_html_ga108e6c43e524fd4b23a5d4731631fae3"><div class="ttname"><a href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a></div><div class="ttdeci">netq_t * netq_pop_first(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00103">netq.c:103</a></div></div>
-<div class="ttc" id="t__list_8h_html_adb42e31bb4fe0df6ec1aa3494902968d"><div class="ttname"><a href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a></div><div class="ttdeci">static void * list_head(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00096">t_list.h:96</a></div></div>
-<div class="ttc" id="netq_8c_html_a58b119d6b9bb7756ab49afcd34571dab"><div class="ttname"><a href="netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab">netq_malloc_node</a></div><div class="ttdeci">static netq_t * netq_malloc_node(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00028">netq.c:28</a></div></div>
-<div class="ttc" id="t__list_8h_html_a10de2120be61f445c5989c983c1e133b"><div class="ttname"><a href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a></div><div class="ttdeci">static void list_remove(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00101">t_list.h:101</a></div></div>
-<div class="ttc" id="netq_8h_html"><div class="ttname"><a href="netq_8h.html">netq.h</a></div></div>
-<div class="ttc" id="debug_8h_html_ae1c22127c92fab70da7bf9cae8536e5c"><div class="ttname"><a href="debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c">dtls_warn</a></div><div class="ttdeci">#define dtls_warn(...)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00136">debug.h:136</a></div></div>
-<div class="ttc" id="group__netq_html_gace12cd802d76d5bd98b2eaedc591fd22"><div class="ttname"><a href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a></div><div class="ttdeci">void netq_remove(list_t queue, netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00096">netq.c:96</a></div></div>
-<div class="ttc" id="group__netq_html_ga9ef9da1a2af266dadef83ddf6c8524d7"><div class="ttname"><a href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a></div><div class="ttdeci">void netq_node_free(netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00127">netq.c:127</a></div></div>
-<div class="ttc" id="group__netq_html_gac72fd2ec9f1e6908c8a10705fb6555e2"><div class="ttname"><a href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a></div><div class="ttdeci">void netq_delete_all(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00133">netq.c:133</a></div></div>
-<div class="ttc" id="group__netq_html_ga142c8e39fe2cd55250e3c1f0370dfe6b"><div class="ttname"><a href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a></div><div class="ttdeci">int netq_insert_node(list_t queue, netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00061">netq.c:61</a></div></div>
-<div class="ttc" id="t__list_8h_html_ab1521a806c1775e743ddefede17673fd"><div class="ttname"><a href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a></div><div class="ttdeci">static void list_push(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00112">t_list.h:112</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: netq.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">netq.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls_8h_source.html">dtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>"</code><br/>
-</div>
-<p><a href="netq_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html">netq_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa59d8597860df302584b1e9c448fdfcd"><td class="memItemLeft" align="right" valign="top">typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq_packet_t</a> [<a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>]</td></tr>
-<tr class="separator:gaa59d8597860df302584b1e9c448fdfcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4991f2cfa1f79edf8f7d8262c5beeb5b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnetq__t.html">netq_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq_t</a></td></tr>
-<tr class="separator:ga4991f2cfa1f79edf8f7d8262c5beeb5b"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga9eba9e66570dcdfc933c6cf843694444"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a> ()</td></tr>
-<tr class="separator:ga9eba9e66570dcdfc933c6cf843694444"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga142c8e39fe2cd55250e3c1f0370dfe6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a> (<a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
-<tr class="separator:ga9ef9da1a2af266dadef83ddf6c8524d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac72fd2ec9f1e6908c8a10705fb6555e2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a> (size_t size)</td></tr>
-<tr class="separator:gafcf245cd934e9b8f0909a7ca8940e9cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac769de2e30bcf2c2db89ff10822219d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:gac769de2e30bcf2c2db89ff10822219d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab4c90c003808a784ae1ee9322e75627d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a> (<a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gab4c90c003808a784ae1ee9322e75627d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="el" href="structnetq__t.html">netq_t</a> *p)</td></tr>
-<tr class="separator:gace12cd802d76d5bd98b2eaedc591fd22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue)</td></tr>
-<tr class="separator:ga108e6c43e524fd4b23a5d4731631fae3"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: netq.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">netq.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="netq_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* netq.h -- Simple packet queue</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2010--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is part of the library tinyDTLS. Please see the file</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * LICENSE for terms of use.</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#ifndef _DTLS_NETQ_H_</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_NETQ_H_</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="dtls_8h.html">dtls.h</a>"</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="dtls__time_8h.html">dtls_time.h</a>"</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef NETQ_MAXCNT</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef DTLS_ECC</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define NETQ_MAXCNT 5 </span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#elif defined(DTLS_PSK)</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span><span class="preprocessor">#define NETQ_MAXCNT 3 </span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd"> 36</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq_packet_t</a>[<a class="code" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>];</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structnetq__t.html"> 38</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structnetq__t.html">netq_t</a> {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb"> 39</a></span>  <span class="keyword">struct </span><a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb">next</a>;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a"> 41</a></span>  <a class="code" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> <a class="code" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a>; </div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6"> 42</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">timeout</a>; </div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff"> 44</a></span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>; </div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0"> 45</a></span>  uint16_t <a class="code" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">epoch</a>;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246"> 46</a></span>  uint8_t <a class="code" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">type</a>;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8"> 47</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a>; </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124"> 49</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a>; </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c"> 51</a></span> <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>[]; </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span> <a class="code" href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq_packet_t</a> <a class="code" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a>; </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span>} <a class="code" href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq_t</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444"> 58</a></span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a>()</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> { }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a>();</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">int</span> <a class="code" href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="code" href="structnetq__t.html">netq_t</a> *node);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">void</span> <a class="code" href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a>(<a class="code" href="structnetq__t.html">netq_t</a> *node);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">void</span> <a class="code" href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a>(<span class="keywordtype">size_t</span> size);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a>(<a class="code" href="structnetq__t.html">netq_t</a> *p);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">void</span> <a class="code" href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue, <a class="code" href="structnetq__t.html">netq_t</a> *p);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <a class="code" href="structnetq__t.html">netq_t</a> *<a class="code" href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> queue);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_NETQ_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="structnetq__t_html_aacd03017f40248c2f48c2b7b9cd92dc8"><div class="ttname"><a href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">netq_t::retransmit_cnt</a></div><div class="ttdeci">unsigned char retransmit_cnt</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00047">netq.h:47</a></div></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="structnetq__t_html_a89ecfe2e9b464039d390e8746da546cb"><div class="ttname"><a href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb">netq_t::next</a></div><div class="ttdeci">struct netq_t * next</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00039">netq.h:39</a></div></div>
-<div class="ttc" id="group__netq_html_gab4c90c003808a784ae1ee9322e75627d"><div class="ttname"><a href="group__netq.html#gab4c90c003808a784ae1ee9322e75627d">netq_next</a></div><div class="ttdeci">netq_t * netq_next(netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00088">netq.c:88</a></div></div>
-<div class="ttc" id="structnetq__t_html_a5b4d387623df43fe25a3b11e9d4fb02c"><div class="ttname"><a href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">netq_t::data</a></div><div class="ttdeci">unsigned char data[]</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00051">netq.h:51</a></div></div>
-<div class="ttc" id="structnetq__t_html"><div class="ttname"><a href="structnetq__t.html">netq_t</a></div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00038">netq.h:38</a></div></div>
-<div class="ttc" id="group__netq_html_gafcf245cd934e9b8f0909a7ca8940e9cb"><div class="ttname"><a href="group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb">netq_node_new</a></div><div class="ttdeci">netq_t * netq_node_new(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00111">netq.c:111</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="group__clock_html_ga6e6c13e871b82d881a01d1bc8df69d23"><div class="ttname"><a href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a></div><div class="ttdeci">uint32_t clock_time_t</div><div class="ttdef"><b>Definition:</b> <a href="dtls__time_8h_source.html#l00055">dtls_time.h:55</a></div></div>
-<div class="ttc" id="t__list_8h_html_a9c248916bae1f0b13732686786be7108"><div class="ttname"><a href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></div><div class="ttdeci">void ** list_t</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00079">t_list.h:79</a></div></div>
-<div class="ttc" id="group__netq_html_gaa59d8597860df302584b1e9c448fdfcd"><div class="ttname"><a href="group__netq.html#gaa59d8597860df302584b1e9c448fdfcd">netq_packet_t</a></div><div class="ttdeci">unsigned char netq_packet_t[DTLS_MAX_BUF]</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00036">netq.h:36</a></div></div>
-<div class="ttc" id="group__netq_html_ga4991f2cfa1f79edf8f7d8262c5beeb5b"><div class="ttname"><a href="group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b">netq_t</a></div><div class="ttdeci">struct netq_t netq_t</div></div>
-<div class="ttc" id="dtls__time_8h_html"><div class="ttname"><a href="dtls__time_8h.html">dtls_time.h</a></div><div class="ttdoc">Clock Handling. </div></div>
-<div class="ttc" id="structnetq__t_html_afe91256ff5267fc680b96efd3bd8635a"><div class="ttname"><a href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">netq_t::t</a></div><div class="ttdeci">clock_time_t t</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00041">netq.h:41</a></div></div>
-<div class="ttc" id="group__netq_html_ga9eba9e66570dcdfc933c6cf843694444"><div class="ttname"><a href="group__netq.html#ga9eba9e66570dcdfc933c6cf843694444">netq_init</a></div><div class="ttdeci">static void netq_init()</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00058">netq.h:58</a></div></div>
-<div class="ttc" id="group__netq_html_gac769de2e30bcf2c2db89ff10822219d4"><div class="ttname"><a href="group__netq.html#gac769de2e30bcf2c2db89ff10822219d4">netq_head</a></div><div class="ttdeci">netq_t * netq_head(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00080">netq.c:80</a></div></div>
-<div class="ttc" id="structnetq__t_html_aaca5f6407bd7b3162d9ee7e7e7b8f0ff"><div class="ttname"><a href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">netq_t::peer</a></div><div class="ttdeci">dtls_peer_t * peer</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00044">netq.h:44</a></div></div>
-<div class="ttc" id="structnetq__t_html_a9998944e43a39a2e5700156876a312e0"><div class="ttname"><a href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">netq_t::epoch</a></div><div class="ttdeci">uint16_t epoch</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00045">netq.h:45</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html"><div class="ttname"><a href="structdtls__peer__t.html">dtls_peer_t</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00052">peer.h:52</a></div></div>
-<div class="ttc" id="dtls_8h_html"><div class="ttname"><a href="dtls_8h.html">dtls.h</a></div><div class="ttdoc">High level DTLS API and visible structures. </div></div>
-<div class="ttc" id="structnetq__t_html_ae0c2648acf87d1e6f2566bc3600771b6"><div class="ttname"><a href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">netq_t::timeout</a></div><div class="ttdeci">unsigned int timeout</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00042">netq.h:42</a></div></div>
-<div class="ttc" id="group__netq_html_ga108e6c43e524fd4b23a5d4731631fae3"><div class="ttname"><a href="group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3">netq_pop_first</a></div><div class="ttdeci">netq_t * netq_pop_first(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00103">netq.c:103</a></div></div>
-<div class="ttc" id="structnetq__t_html_a13d74bc65c8879b894698935fbbe2246"><div class="ttname"><a href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">netq_t::type</a></div><div class="ttdeci">uint8_t type</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00046">netq.h:46</a></div></div>
-<div class="ttc" id="group__netq_html_gace12cd802d76d5bd98b2eaedc591fd22"><div class="ttname"><a href="group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22">netq_remove</a></div><div class="ttdeci">void netq_remove(list_t queue, netq_t *p)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00096">netq.c:96</a></div></div>
-<div class="ttc" id="group__netq_html_ga9ef9da1a2af266dadef83ddf6c8524d7"><div class="ttname"><a href="group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7">netq_node_free</a></div><div class="ttdeci">void netq_node_free(netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00127">netq.c:127</a></div></div>
-<div class="ttc" id="global_8h_html_acdbfba15eb1a5692e177d582b4ca1583"><div class="ttname"><a href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a></div><div class="ttdeci">#define DTLS_MAX_BUF</div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00064">global.h:64</a></div></div>
-<div class="ttc" id="structnetq__t_html_ac72c9378282becab5a273f612f58c124"><div class="ttname"><a href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">netq_t::length</a></div><div class="ttdeci">size_t length</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00049">netq.h:49</a></div></div>
-<div class="ttc" id="group__netq_html_gac72fd2ec9f1e6908c8a10705fb6555e2"><div class="ttname"><a href="group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2">netq_delete_all</a></div><div class="ttdeci">void netq_delete_all(list_t queue)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00133">netq.c:133</a></div></div>
-<div class="ttc" id="group__netq_html_ga142c8e39fe2cd55250e3c1f0370dfe6b"><div class="ttname"><a href="group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b">netq_insert_node</a></div><div class="ttdeci">int netq_insert_node(list_t queue, netq_t *node)</div><div class="ttdef"><b>Definition:</b> <a href="netq_8c_source.html#l00061">netq.c:61</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: numeric.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">numeric.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <stdint.h></code><br/>
-</div>
-<p><a href="numeric_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a2d017cd3beb218080a7988e2deed2a11"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11">min</a>(A, B)   ((A) <= (B) ? (A) : (B))</td></tr>
-<tr class="separator:a2d017cd3beb218080a7988e2deed2a11"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a24e753bacac6be5f30e18f8a2bdefda4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4">max</a>(A, B)   ((A) < (B) ? (B) : (A))</td></tr>
-<tr class="separator:a24e753bacac6be5f30e18f8a2bdefda4"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a7b602967e2fc28b0be02bd4585e255d0"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a> (unsigned char *field, uint8_t value)</td></tr>
-<tr class="separator:a7b602967e2fc28b0be02bd4585e255d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a074d352855e1ffde4c2ddb6a6fea01b9"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a> (unsigned char *field, uint16_t value)</td></tr>
-<tr class="separator:a074d352855e1ffde4c2ddb6a6fea01b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aff276cdd846cd194a21e9c61549292f6"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a> (unsigned char *field, uint32_t value)</td></tr>
-<tr class="separator:aff276cdd846cd194a21e9c61549292f6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6914ee523b27539f4e441bede8c072b4"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a> (unsigned char *field, uint32_t value)</td></tr>
-<tr class="separator:a6914ee523b27539f4e441bede8c072b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abe324cc4e62d03bdecf457382ba213c8"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">dtls_int_to_uint48</a> (unsigned char *field, uint64_t value)</td></tr>
-<tr class="separator:abe324cc4e62d03bdecf457382ba213c8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab4d80395fb7f4118dfcb101ae94a5e93"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">dtls_int_to_uint64</a> (unsigned char *field, uint64_t value)</td></tr>
-<tr class="separator:ab4d80395fb7f4118dfcb101ae94a5e93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7293cc28604d896cfef802b53b0ad99f"><td class="memItemLeft" align="right" valign="top">static uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:a7293cc28604d896cfef802b53b0ad99f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae32dd0743658f1aa5a723d5a8357521f"><td class="memItemLeft" align="right" valign="top">static uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:ae32dd0743658f1aa5a723d5a8357521f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a238931e9197ce422acfba569deb2af71"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:a238931e9197ce422acfba569deb2af71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a91f840f763f90c6d88a267011edf86d0"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">dtls_uint32_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:a91f840f763f90c6d88a267011edf86d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae25d1d32eab6fe59318506984ebc23af"><td class="memItemLeft" align="right" valign="top">static uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af">dtls_uint48_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:ae25d1d32eab6fe59318506984ebc23af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa7dcbb31a4c4319903f41008f1f311ae"><td class="memItemLeft" align="right" valign="top">static uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae">dtls_uint64_to_int</a> (const unsigned char *field)</td></tr>
-<tr class="separator:aa7dcbb31a4c4319903f41008f1f311ae"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a24e753bacac6be5f30e18f8a2bdefda4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define max</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">A, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">B </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((A) < (B) ? (B) : (A))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00036">36</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2d017cd3beb218080a7988e2deed2a11"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define min</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">A, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">B </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((A) <= (B) ? (A) : (B))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00032">32</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a074d352855e1ffde4c2ddb6a6fea01b9"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint16 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint16_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00046">46</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aff276cdd846cd194a21e9c61549292f6"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint24 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00053">53</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6914ee523b27539f4e441bede8c072b4"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint32 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint32_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00061">61</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abe324cc4e62d03bdecf457382ba213c8"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint48 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00070">70</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab4d80395fb7f4118dfcb101ae94a5e93"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint64 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint64_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00081">81</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7b602967e2fc28b0be02bd4585e255d0"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_int_to_uint8 </td>
- <td>(</td>
- <td class="paramtype">unsigned char * </td>
- <td class="paramname"><em>field</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t </td>
- <td class="paramname"><em>value</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00040">40</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae32dd0743658f1aa5a723d5a8357521f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint16_t dtls_uint16_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00099">99</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a238931e9197ce422acfba569deb2af71"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint32_t dtls_uint24_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00105">105</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a91f840f763f90c6d88a267011edf86d0"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint32_t dtls_uint32_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00112">112</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae25d1d32eab6fe59318506984ebc23af"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint64_t dtls_uint48_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00120">120</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa7dcbb31a4c4319903f41008f1f311ae"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint64_t dtls_uint64_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00130">130</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7293cc28604d896cfef802b53b0ad99f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static uint8_t dtls_uint8_to_int </td>
- <td>(</td>
- <td class="paramtype">const unsigned char * </td>
- <td class="paramname"><em>field</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="numeric_8h_source.html#l00094">94</a> of file <a class="el" href="numeric_8h_source.html">numeric.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: numeric.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">numeric.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="numeric_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_NUMERIC_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_NUMERIC_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <stdint.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef min</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11"> 32</a></span> <span class="preprocessor"></span><span class="preprocessor">#define min(A,B) ((A) <= (B) ? (A) : (B))</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#ifndef max</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4"> 36</a></span> <span class="preprocessor"></span><span class="preprocessor">#define max(A,B) ((A) < (B) ? (B) : (A))</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/* this one is for consistency... */</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0"> 40</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint8_t value)</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  field[0] = value & 0xff;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9"> 46</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint16_t value)</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  field[0] = (value >> 8) & 0xff;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  field[1] = value & 0xff;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> 2;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6"> 53</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint32_t value)</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  field[0] = (value >> 16) & 0xff;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  field[1] = (value >> 8) & 0xff;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  field[2] = value & 0xff;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> 3;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4"> 61</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint32_t value)</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  field[0] = (value >> 24) & 0xff;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  field[1] = (value >> 16) & 0xff;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  field[2] = (value >> 8) & 0xff;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  field[3] = value & 0xff;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> 4;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8"> 70</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">dtls_int_to_uint48</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint64_t value)</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  field[0] = (value >> 40) & 0xff;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  field[1] = (value >> 32) & 0xff;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  field[2] = (value >> 24) & 0xff;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  field[3] = (value >> 16) & 0xff;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  field[4] = (value >> 8) & 0xff;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  field[5] = value & 0xff;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> 6;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93"> 81</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">dtls_int_to_uint64</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field, uint64_t value)</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  field[0] = (value >> 56) & 0xff;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  field[1] = (value >> 48) & 0xff;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  field[2] = (value >> 40) & 0xff;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  field[3] = (value >> 32) & 0xff;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  field[4] = (value >> 24) & 0xff;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  field[5] = (value >> 16) & 0xff;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  field[6] = (value >> 8) & 0xff;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  field[7] = value & 0xff;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> 8;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f"> 94</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint8_t <a class="code" href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> {</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> (uint8_t)field[0];</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f"> 99</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint16_t <a class="code" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> ((uint16_t)field[0] << 8)</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  | (uint16_t)field[1];</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71"> 105</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> ((uint32_t)field[0] << 16)</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  | ((uint32_t)field[1] << 8)</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  | (uint32_t)field[2];</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0"> 112</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code" href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">dtls_uint32_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> ((uint32_t)field[0] << 24)</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  | ((uint32_t)field[1] << 16)</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  | ((uint32_t)field[2] << 8)</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  | (uint32_t)field[3];</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af"> 120</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint64_t <a class="code" href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af">dtls_uint48_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> ((uint64_t)field[0] << 40)</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  | ((uint64_t)field[1] << 32)</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  | ((uint64_t)field[2] << 24)</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  | ((uint64_t)field[3] << 16)</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  | ((uint64_t)field[4] << 8)</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  | (uint64_t)field[5];</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae"> 130</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> uint64_t <a class="code" href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae">dtls_uint64_to_int</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *field)</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> ((uint64_t)field[0] << 56)</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  | ((uint64_t)field[1] << 48)</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  | ((uint64_t)field[2] << 40)</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  | ((uint64_t)field[3] << 32)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  | ((uint64_t)field[4] << 24)</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  | ((uint64_t)field[5] << 16)</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  | ((uint64_t)field[6] << 8)</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  | (uint64_t)field[7];</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_NUMERIC_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="numeric_8h_html_a91f840f763f90c6d88a267011edf86d0"><div class="ttname"><a href="numeric_8h.html#a91f840f763f90c6d88a267011edf86d0">dtls_uint32_to_int</a></div><div class="ttdeci">static uint32_t dtls_uint32_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00112">numeric.h:112</a></div></div>
-<div class="ttc" id="numeric_8h_html_aa7dcbb31a4c4319903f41008f1f311ae"><div class="ttname"><a href="numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae">dtls_uint64_to_int</a></div><div class="ttdeci">static uint64_t dtls_uint64_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00130">numeric.h:130</a></div></div>
-<div class="ttc" id="numeric_8h_html_abe324cc4e62d03bdecf457382ba213c8"><div class="ttname"><a href="numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8">dtls_int_to_uint48</a></div><div class="ttdeci">static int dtls_int_to_uint48(unsigned char *field, uint64_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00070">numeric.h:70</a></div></div>
-<div class="ttc" id="numeric_8h_html_aff276cdd846cd194a21e9c61549292f6"><div class="ttname"><a href="numeric_8h.html#aff276cdd846cd194a21e9c61549292f6">dtls_int_to_uint24</a></div><div class="ttdeci">static int dtls_int_to_uint24(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00053">numeric.h:53</a></div></div>
-<div class="ttc" id="numeric_8h_html_a7293cc28604d896cfef802b53b0ad99f"><div class="ttname"><a href="numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f">dtls_uint8_to_int</a></div><div class="ttdeci">static uint8_t dtls_uint8_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00094">numeric.h:94</a></div></div>
-<div class="ttc" id="numeric_8h_html_ab4d80395fb7f4118dfcb101ae94a5e93"><div class="ttname"><a href="numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93">dtls_int_to_uint64</a></div><div class="ttdeci">static int dtls_int_to_uint64(unsigned char *field, uint64_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00081">numeric.h:81</a></div></div>
-<div class="ttc" id="numeric_8h_html_a074d352855e1ffde4c2ddb6a6fea01b9"><div class="ttname"><a href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a></div><div class="ttdeci">static int dtls_int_to_uint16(unsigned char *field, uint16_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00046">numeric.h:46</a></div></div>
-<div class="ttc" id="numeric_8h_html_ae32dd0743658f1aa5a723d5a8357521f"><div class="ttname"><a href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a></div><div class="ttdeci">static uint16_t dtls_uint16_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00099">numeric.h:99</a></div></div>
-<div class="ttc" id="numeric_8h_html_a6914ee523b27539f4e441bede8c072b4"><div class="ttname"><a href="numeric_8h.html#a6914ee523b27539f4e441bede8c072b4">dtls_int_to_uint32</a></div><div class="ttdeci">static int dtls_int_to_uint32(unsigned char *field, uint32_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00061">numeric.h:61</a></div></div>
-<div class="ttc" id="numeric_8h_html_ae25d1d32eab6fe59318506984ebc23af"><div class="ttname"><a href="numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af">dtls_uint48_to_int</a></div><div class="ttdeci">static uint64_t dtls_uint48_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00120">numeric.h:120</a></div></div>
-<div class="ttc" id="numeric_8h_html_a7b602967e2fc28b0be02bd4585e255d0"><div class="ttname"><a href="numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0">dtls_int_to_uint8</a></div><div class="ttdeci">static int dtls_int_to_uint8(unsigned char *field, uint8_t value)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00040">numeric.h:40</a></div></div>
-<div class="ttc" id="numeric_8h_html_a238931e9197ce422acfba569deb2af71"><div class="ttname"><a href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a></div><div class="ttdeci">static uint32_t dtls_uint24_to_int(const unsigned char *field)</div><div class="ttdef"><b>Definition:</b> <a href="numeric_8h_source.html#l00105">numeric.h:105</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: peer.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">peer.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="peer_8h_source.html">peer.h</a>"</code><br/>
-<code>#include "<a class="el" href="debug_8h_source.html">debug.h</a>"</code><br/>
-</div>
-<p><a href="peer_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a0297e9d772bfca004a98462d9c7d2828"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a> ()</td></tr>
-<tr class="separator:a0297e9d772bfca004a98462d9c7d2828"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a89738cd2081b322562b9893c524fb0e1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">dtls_malloc_peer</a> ()</td></tr>
-<tr class="separator:a89738cd2081b322562b9893c524fb0e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a037178c201b2e6b7361570ff700f059d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a037178c201b2e6b7361570ff700f059d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a209e22be64be13e116711829d21d864c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a> (const <a class="el" href="structsession__t.html">session_t</a> *session)</td></tr>
-<tr class="separator:a209e22be64be13e116711829d21d864c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a037178c201b2e6b7361570ff700f059d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_free_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Releases the storage allocated to <code>peer</code>. </p>
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00041">41</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a89738cd2081b322562b9893c524fb0e1"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_malloc_peer </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00036">36</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a209e22be64be13e116711829d21d864c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_new_peer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Creates a new peer for given <code>session</code>. The current configuration is initialized with the cipher suite TLS_NULL_WITH_NULL_NULL (i.e. no security at all). This function returns a pointer to the new peer or NULL on error. The caller is responsible for releasing the storage allocated for this peer using <a class="el" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">session</td><td>The remote peer's address and local interface index. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to a newly created and initialized peer object or NULL on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00072">72</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0297e9d772bfca004a98462d9c7d2828"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void peer_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00031">31</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: peer.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">peer.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="peer_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="peer_8h.html">peer.h</a>"</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="debug_8h.html">debug.h</a>"</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828"> 31</a></span> <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a>()</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> }</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1"> 36</a></span> <a class="code" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">dtls_malloc_peer</a>() {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">return</span> (<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *)malloc(<span class="keyword">sizeof</span>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a>));</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> }</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d"> 41</a></span> <a class="code" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>) {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0]);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  free(peer);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "memb.h"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> MEMB(peer_storage, <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a>, DTLS_PEER_MAX);</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <a class="code" href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a>() {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  memb_init(&peer_storage);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <a class="code" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">dtls_malloc_peer</a>() {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> memb_alloc(&peer_storage);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <a class="code" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>) {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a>(peer-><a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0]);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  memb_free(&peer_storage, peer);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *</div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="peer_8h.html#a209e22be64be13e116711829d21d864c"> 72</a></span> <a class="code" href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *session) {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  peer = <a class="code" href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">dtls_malloc_peer</a>();</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span> (peer) {</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  memset(peer, 0, <span class="keyword">sizeof</span>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a>));</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  memcpy(&peer-><a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>, session, <span class="keyword">sizeof</span>(<a class="code" href="structsession__t.html">session_t</a>));</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0] = <a class="code" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a>();</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0]) {</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a>(peer);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a>(<a class="code" href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a>, <span class="stringliteral">"dtls_new_peer"</span>, session);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <a class="code" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a>;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> }</div>
-<div class="ttc" id="crypto_8c_html_aa17bcdc666796e52788f82ee003bb172"><div class="ttname"><a href="crypto_8c.html#aa17bcdc666796e52788f82ee003bb172">dtls_handshake_free</a></div><div class="ttdeci">void dtls_handshake_free(dtls_handshake_parameters_t *handshake)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00146">crypto.c:146</a></div></div>
-<div class="ttc" id="debug_8h_html"><div class="ttname"><a href="debug_8h.html">debug.h</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a44ebb2ba643269c7e6943f3a9040febe"><div class="ttname"><a href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">dtls_peer_t::session</a></div><div class="ttdeci">session_t session</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00059">peer.h:59</a></div></div>
-<div class="ttc" id="peer_8h_html"><div class="ttname"><a href="peer_8h.html">peer.h</a></div><div class="ttdoc">information about peers in a DTLS session </div></div>
-<div class="ttc" id="debug_8c_html_a66cb8756d40a3326315d9b5f003a5a76"><div class="ttname"><a href="debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76">dtls_dsrv_log_addr</a></div><div class="ttdeci">void dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr)</div><div class="ttdef"><b>Definition:</b> <a href="debug_8c_source.html#l00277">debug.c:277</a></div></div>
-<div class="ttc" id="peer_8c_html_a89738cd2081b322562b9893c524fb0e1"><div class="ttname"><a href="peer_8c.html#a89738cd2081b322562b9893c524fb0e1">dtls_malloc_peer</a></div><div class="ttdeci">static dtls_peer_t * dtls_malloc_peer()</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00036">peer.c:36</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_aa176a7ffe3a780dc97a716dfffb54992"><div class="ttname"><a href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">dtls_peer_t::handshake_params</a></div><div class="ttdeci">dtls_handshake_parameters_t * handshake_params</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00065">peer.h:65</a></div></div>
-<div class="ttc" id="structnetq__t_html_aaca5f6407bd7b3162d9ee7e7e7b8f0ff"><div class="ttname"><a href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">netq_t::peer</a></div><div class="ttdeci">dtls_peer_t * peer</div><div class="ttdef"><b>Definition:</b> <a href="netq_8h_source.html#l00044">netq.h:44</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html"><div class="ttname"><a href="structdtls__peer__t.html">dtls_peer_t</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00052">peer.h:52</a></div></div>
-<div class="ttc" id="peer_8c_html_a037178c201b2e6b7361570ff700f059d"><div class="ttname"><a href="peer_8c.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a></div><div class="ttdeci">void dtls_free_peer(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00041">peer.c:41</a></div></div>
-<div class="ttc" id="crypto_8c_html_ad54069f2880b3c07185ebba736d02d17"><div class="ttname"><a href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a></div><div class="ttdeci">void dtls_security_free(dtls_security_parameters_t *security)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00174">crypto.c:174</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a6c85e48495ae7de8ddfc4c4fb2a350af"><div class="ttname"><a href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">dtls_peer_t::security_params</a></div><div class="ttdeci">dtls_security_parameters_t * security_params[2]</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00064">peer.h:64</a></div></div>
-<div class="ttc" id="crypto_8c_html_a1d568085636a04b4706b7e50df802a7b"><div class="ttname"><a href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a></div><div class="ttdeci">dtls_security_parameters_t * dtls_security_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00155">crypto.c:155</a></div></div>
-<div class="ttc" id="peer_8c_html_a0297e9d772bfca004a98462d9c7d2828"><div class="ttname"><a href="peer_8c.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a></div><div class="ttdeci">void peer_init()</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00031">peer.c:31</a></div></div>
-<div class="ttc" id="peer_8c_html_a209e22be64be13e116711829d21d864c"><div class="ttname"><a href="peer_8c.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a></div><div class="ttdeci">dtls_peer_t * dtls_new_peer(const session_t *session)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00072">peer.c:72</a></div></div>
-<div class="ttc" id="debug_8h_html_a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020"><div class="ttname"><a href="debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020">DTLS_LOG_DEBUG</a></div><div class="ttdef"><b>Definition:</b> <a href="debug_8h_source.html#l00067">debug.h:67</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: peer.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#enum-members">Enumerations</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">peer.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>information about peers in a DTLS session
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include <sys/types.h></code><br/>
-<code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="session_8h_source.html">session.h</a>"</code><br/>
-<code>#include "<a class="el" href="state_8h_source.html">state.h</a>"</code><br/>
-<code>#include "<a class="el" href="crypto_8h_source.html">crypto.h</a>"</code><br/>
-<code>#include "<a class="el" href="uthash_8h_source.html">uthash.h</a>"</code><br/>
-</div>
-<p><a href="peer_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a6038bb7f08c62ea6f0fd2a0075860055"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055">dtls_peer_t</a></td></tr>
-<tr class="separator:a6038bb7f08c62ea6f0fd2a0075860055"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:ae30cd4bcffed73f79f17c09e5a1452c8"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> { <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a> =0,
-<a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a>
- }</td></tr>
-<tr class="separator:ae30cd4bcffed73f79f17c09e5a1452c8"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:af5de0315efd7e8c6b1aecf60078b2dd7"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, uint16_t epoch)</td></tr>
-<tr class="separator:af5de0315efd7e8c6b1aecf60078b2dd7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a48abcad7383e1db957af9b4fed030d52"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a48abcad7383e1db957af9b4fed030d52"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab6e209f206f570eed246530ec7960943"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#ab6e209f206f570eed246530ec7960943">dtls_security_params_next</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:ab6e209f206f570eed246530ec7960943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9d0ec25ba319a38b17f30cf156e85c51"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">dtls_security_params_free_other</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a9d0ec25ba319a38b17f30cf156e85c51"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9c37ce3fd7539154289dd17215179e2d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a9c37ce3fd7539154289dd17215179e2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0297e9d772bfca004a98462d9c7d2828"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a> ()</td></tr>
-<tr class="separator:a0297e9d772bfca004a98462d9c7d2828"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a209e22be64be13e116711829d21d864c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a> (const <a class="el" href="structsession__t.html">session_t</a> *session)</td></tr>
-<tr class="separator:a209e22be64be13e116711829d21d864c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a037178c201b2e6b7361570ff700f059d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a037178c201b2e6b7361570ff700f059d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a64d83f0fe464f0eeb905b913345d0614"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614">dtls_peer_state</a> (const <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:a64d83f0fe464f0eeb905b913345d0614"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaad8608f29d9a70bf09b7de310185c48"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48">dtls_peer_is_connected</a> (const <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
-<tr class="separator:aaad8608f29d9a70bf09b7de310185c48"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>information about peers in a DTLS session </p>
-
-<p>Definition in file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-</div><h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a6038bb7f08c62ea6f0fd2a0075860055"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Holds security parameters, local state and the transport address for each peer. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="ae30cd4bcffed73f79f17c09e5a1452c8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"></a>DTLS_CLIENT</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"></a>DTLS_SERVER</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00047">47</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a037178c201b2e6b7361570ff700f059d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_free_peer </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Releases the storage allocated to <code>peer</code>. </p>
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00041">41</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a209e22be64be13e116711829d21d864c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_new_peer </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>session</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Creates a new peer for given <code>session</code>. The current configuration is initialized with the cipher suite TLS_NULL_WITH_NULL_NULL (i.e. no security at all). This function returns a pointer to the new peer or NULL on error. The caller is responsible for releasing the storage allocated for this peer using <a class="el" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer()</a>.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">session</td><td>The remote peer's address and local interface index. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A pointer to a newly created and initialized peer object or NULL on error. </dd></dl>
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00072">72</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaad8608f29d9a70bf09b7de310185c48"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int dtls_peer_is_connected </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Checks if given <code>peer</code> is connected. This function returns <code>1</code> if connected, or <code>0</code> otherwise. </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00144">144</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a64d83f0fe464f0eeb905b913345d0614"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> dtls_peer_state </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-<p>Returns the current state of <code>peer</code>. </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00136">136</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a48abcad7383e1db957af9b4fed030d52"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_params </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00079">79</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af5de0315efd7e8c6b1aecf60078b2dd7"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_params_epoch </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint16_t </td>
- <td class="paramname"><em>epoch</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00068">68</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9d0ec25ba319a38b17f30cf156e85c51"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_security_params_free_other </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00097">97</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab6e209f206f570eed246530ec7960943"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_security_params_next </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00084">84</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9c37ce3fd7539154289dd17215179e2d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void dtls_security_params_switch </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td>
- <td class="paramname"><em>peer</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00109">109</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0297e9d772bfca004a98462d9c7d2828"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void peer_init </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8c_source.html#l00031">31</a> of file <a class="el" href="peer_8c_source.html">peer.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: peer.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">peer.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="peer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef _DTLS_PEER_H_</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_PEER_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="session_8h.html">session.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="state_8h.html">state.h</a>"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="crypto_8h.html">crypto.h</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="uthash_8h.html">uthash.h</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"> 47</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> { <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a>=0, <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a> } <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a>;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html"> 52</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5"> 54</a></span> <span class="preprocessor"></span> <a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> <a class="code" href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5">hh</a>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span> <span class="keyword">struct </span><a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *next;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe"> 59</a></span>  <a class="code" href="structsession__t.html">session_t</a> <a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>; </div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120"> 61</a></span>  <a class="code" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> <a class="code" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a>; </div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83"> 62</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> <a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a>; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af"> 64</a></span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[2];</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992"> 65</a></span>  <a class="code" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *<a class="code" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> } <a class="code" href="peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055">dtls_peer_t</a>;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7"> 68</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, uint16_t epoch)</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0] && peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0]-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> == epoch) {</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0];</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1] && peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> == epoch) {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1];</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52"> 79</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0];</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="peer_8h.html#ab6e209f206f570eed246530ec7960943"> 84</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *<a class="code" href="peer_8h.html#ab6e209f206f570eed246530ec7960943">dtls_security_params_next</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1])</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1] = <a class="code" href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a>();</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span> (!peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]) {</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> NULL;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1]-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> = peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0]-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> + 1;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1];</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51"> 97</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">dtls_security_params_free_other</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * security0 = peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0];</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * security1 = peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1];</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (!security0 || !security1 || security0-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a> < security1-><a class="code" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a>)</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a>(security1);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1] = NULL;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d"> 109</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * security = peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1];</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[1] = peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0];</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  peer-><a class="code" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a>[0] = security;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">void</span> <a class="code" href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a>();</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *<a class="code" href="peer_8h.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *<a class="code" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a>);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">void</span> <a class="code" href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a>(<a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614"> 136</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> <a class="code" href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614">dtls_peer_state</a>(<span class="keyword">const</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a>;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48"> 144</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48">dtls_peer_is_connected</a>(<span class="keyword">const</span> <a class="code" href="structdtls__peer__t.html">dtls_peer_t</a> *peer) {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> peer-><a class="code" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a> == <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_PEER_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="peer_8h_html_a64d83f0fe464f0eeb905b913345d0614"><div class="ttname"><a href="peer_8h.html#a64d83f0fe464f0eeb905b913345d0614">dtls_peer_state</a></div><div class="ttdeci">static dtls_state_t dtls_peer_state(const dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00136">peer.h:136</a></div></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a></div><div class="ttdeci">dtls_state_t</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00040">state.h:40</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="crypto_8h_html"><div class="ttname"><a href="crypto_8h.html">crypto.h</a></div></div>
-<div class="ttc" id="session_8h_html"><div class="ttname"><a href="session_8h.html">session.h</a></div></div>
-<div class="ttc" id="peer_8h_html_a6038bb7f08c62ea6f0fd2a0075860055"><div class="ttname"><a href="peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055">dtls_peer_t</a></div><div class="ttdeci">struct dtls_peer_t dtls_peer_t</div></div>
-<div class="ttc" id="peer_8h_html_a0297e9d772bfca004a98462d9c7d2828"><div class="ttname"><a href="peer_8h.html#a0297e9d772bfca004a98462d9c7d2828">peer_init</a></div><div class="ttdeci">void peer_init()</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00031">peer.c:31</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255">DTLS_SERVER</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a4e23cc3b273813744524c3db1fda9c83"><div class="ttname"><a href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">dtls_peer_t::state</a></div><div class="ttdeci">dtls_state_t state</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00062">peer.h:62</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html"><div class="ttname"><a href="structUT__hash__handle.html">UT_hash_handle</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00961">uthash.h:961</a></div></div>
-<div class="ttc" id="peer_8h_html_af5de0315efd7e8c6b1aecf60078b2dd7"><div class="ttname"><a href="peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7">dtls_security_params_epoch</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params_epoch(dtls_peer_t *peer, uint16_t epoch)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00068">peer.h:68</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="peer_8h_html_a209e22be64be13e116711829d21d864c"><div class="ttname"><a href="peer_8h.html#a209e22be64be13e116711829d21d864c">dtls_new_peer</a></div><div class="ttdeci">dtls_peer_t * dtls_new_peer(const session_t *session)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00072">peer.c:72</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a44ebb2ba643269c7e6943f3a9040febe"><div class="ttname"><a href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">dtls_peer_t::session</a></div><div class="ttdeci">session_t session</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00059">peer.h:59</a></div></div>
-<div class="ttc" id="peer_8h_html_a9d0ec25ba319a38b17f30cf156e85c51"><div class="ttname"><a href="peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51">dtls_security_params_free_other</a></div><div class="ttdeci">static void dtls_security_params_free_other(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00097">peer.h:97</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_aa176a7ffe3a780dc97a716dfffb54992"><div class="ttname"><a href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">dtls_peer_t::handshake_params</a></div><div class="ttdeci">dtls_handshake_parameters_t * handshake_params</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00065">peer.h:65</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html"><div class="ttname"><a href="structdtls__peer__t.html">dtls_peer_t</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00052">peer.h:52</a></div></div>
-<div class="ttc" id="peer_8h_html_a48abcad7383e1db957af9b4fed030d52"><div class="ttname"><a href="peer_8h.html#a48abcad7383e1db957af9b4fed030d52">dtls_security_params</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00079">peer.h:79</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e">DTLS_CLIENT</a></div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="peer_8h_html_a9c37ce3fd7539154289dd17215179e2d"><div class="ttname"><a href="peer_8h.html#a9c37ce3fd7539154289dd17215179e2d">dtls_security_params_switch</a></div><div class="ttdeci">static void dtls_security_params_switch(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00109">peer.h:109</a></div></div>
-<div class="ttc" id="peer_8h_html_ae30cd4bcffed73f79f17c09e5a1452c8"><div class="ttname"><a href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a></div><div class="ttdeci">dtls_peer_type</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00047">peer.h:47</a></div></div>
-<div class="ttc" id="crypto_8c_html_ad54069f2880b3c07185ebba736d02d17"><div class="ttname"><a href="crypto_8c.html#ad54069f2880b3c07185ebba736d02d17">dtls_security_free</a></div><div class="ttdeci">void dtls_security_free(dtls_security_parameters_t *security)</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00174">crypto.c:174</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_a6c85e48495ae7de8ddfc4c4fb2a350af"><div class="ttname"><a href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">dtls_peer_t::security_params</a></div><div class="ttdeci">dtls_security_parameters_t * security_params[2]</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00064">peer.h:64</a></div></div>
-<div class="ttc" id="state_8h_html"><div class="ttname"><a href="state_8h.html">state.h</a></div><div class="ttdoc">state information for DTLS FSM </div></div>
-<div class="ttc" id="structdtls__peer__t_html_a4241666f9097d15a486840bce28c3fd5"><div class="ttname"><a href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5">dtls_peer_t::hh</a></div><div class="ttdeci">UT_hash_handle hh</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00054">peer.h:54</a></div></div>
-<div class="ttc" id="crypto_8c_html_a1d568085636a04b4706b7e50df802a7b"><div class="ttname"><a href="crypto_8c.html#a1d568085636a04b4706b7e50df802a7b">dtls_security_new</a></div><div class="ttdeci">dtls_security_parameters_t * dtls_security_new()</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8c_source.html#l00155">crypto.c:155</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00049">state.h:49</a></div></div>
-<div class="ttc" id="peer_8h_html_ab6e209f206f570eed246530ec7960943"><div class="ttname"><a href="peer_8h.html#ab6e209f206f570eed246530ec7960943">dtls_security_params_next</a></div><div class="ttdeci">static dtls_security_parameters_t * dtls_security_params_next(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00084">peer.h:84</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html"><div class="ttname"><a href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00099">crypto.h:99</a></div></div>
-<div class="ttc" id="structdtls__security__parameters__t_html_a2bce1fa0bf77eeab8fadca824de602da"><div class="ttname"><a href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">dtls_security_parameters_t::epoch</a></div><div class="ttdeci">uint16_t epoch</div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00103">crypto.h:103</a></div></div>
-<div class="ttc" id="structdtls__handshake__parameters__t_html"><div class="ttname"><a href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a></div><div class="ttdef"><b>Definition:</b> <a href="crypto_8h_source.html#l00115">crypto.h:115</a></div></div>
-<div class="ttc" id="peer_8h_html_a037178c201b2e6b7361570ff700f059d"><div class="ttname"><a href="peer_8h.html#a037178c201b2e6b7361570ff700f059d">dtls_free_peer</a></div><div class="ttdeci">void dtls_free_peer(dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8c_source.html#l00041">peer.c:41</a></div></div>
-<div class="ttc" id="peer_8h_html_aaad8608f29d9a70bf09b7de310185c48"><div class="ttname"><a href="peer_8h.html#aaad8608f29d9a70bf09b7de310185c48">dtls_peer_is_connected</a></div><div class="ttdeci">static int dtls_peer_is_connected(const dtls_peer_t *peer)</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00144">peer.h:144</a></div></div>
-<div class="ttc" id="structdtls__peer__t_html_aeca80f1bcbcfdba89a2ab08e4bc48120"><div class="ttname"><a href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">dtls_peer_t::role</a></div><div class="ttdeci">dtls_peer_type role</div><div class="ttdef"><b>Definition:</b> <a href="peer_8h_source.html#l00061">peer.h:61</a></div></div>
-<div class="ttc" id="uthash_8h_html"><div class="ttname"><a href="uthash_8h.html">uthash.h</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: prng.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">prng.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>Pseudo Random Numbers.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include <stdlib.h></code><br/>
-</div>
-<p><a href="prng_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga3f4036a1abfcec552ab583a2dc37be6c"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a> (unsigned char *buf, size_t len)</td></tr>
-<tr class="separator:ga3f4036a1abfcec552ab583a2dc37be6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac68680277206146d06c9e5468f260ee0"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a> (unsigned short seed)</td></tr>
-<tr class="separator:gac68680277206146d06c9e5468f260ee0"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Pseudo Random Numbers. </p>
-
-<p>Definition in file <a class="el" href="prng_8h_source.html">prng.h</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: prng.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">prng.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="prng_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* prng.h -- Pseudo Random Numbers</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2010--2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This file is part of the library tinydtls. Please see</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * README for terms of use. </span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef _DTLS_PRNG_H_</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_PRNG_H_</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#include <stdlib.h></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c"> 33</a></span> <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordflow">while</span> (len--)</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  *buf++ = rand() & 0xFF;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="group__prng.html#gac68680277206146d06c9e5468f260ee0"> 40</a></span> <a class="code" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> seed) {</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  srand(seed);</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span><span class="preprocessor">#include <string.h></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "random.h"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#ifdef HAVE_PRNG</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len)</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> contiki_prng_impl(buf, len);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <a class="code" href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> v = random_rand();</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">while</span> (len > <span class="keyword">sizeof</span>(v)) {</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  memcpy(buf, &v, <span class="keyword">sizeof</span>(v));</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  len -= <span class="keyword">sizeof</span>(v);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  buf += <span class="keyword">sizeof</span>(v);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  v = random_rand();</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  memcpy(buf, &v, len);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#endif </span><span class="comment">/* HAVE_PRNG */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <a class="code" href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> seed) {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">/* random_init() messes with the radio interface of the CC2538 and</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * therefore must not be called after the radio has been</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> * initialized. */</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#ifndef CONTIKI_TARGET_CC2538DK</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"></span> random_init(seed);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_PRNG_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="group__prng_html_gac68680277206146d06c9e5468f260ee0"><div class="ttname"><a href="group__prng.html#gac68680277206146d06c9e5468f260ee0">dtls_prng_init</a></div><div class="ttdeci">static void dtls_prng_init(unsigned short seed)</div><div class="ttdef"><b>Definition:</b> <a href="prng_8h_source.html#l00040">prng.h:40</a></div></div>
-<div class="ttc" id="group__prng_html_ga3f4036a1abfcec552ab583a2dc37be6c"><div class="ttname"><a href="group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c">dtls_prng</a></div><div class="ttdeci">static int dtls_prng(unsigned char *buf, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="prng_8h_source.html#l00033">prng.h:33</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../dtls_8h.html#ad09246453a4dabd919c7541484046a87',1,'dtls.h']]],
- ['_5fcastasgn',['_CASTASGN',['../utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3',1,'utlist.h']]],
- ['_5fdtls_5faddress_5fequals_5fimpl',['_dtls_address_equals_impl',['../session_8c.html#af9b9333222aabb1440f5c7846f7be85f',1,'session.c']]],
- ['_5fnext',['_NEXT',['../utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe',1,'utlist.h']]],
- ['_5fnextasgn',['_NEXTASGN',['../utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058',1,'utlist.h']]],
- ['_5fprev',['_PREV',['../utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5',1,'utlist.h']]],
- ['_5fprevasgn',['_PREVASGN',['../utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a',1,'utlist.h']]],
- ['_5frs',['_RS',['../utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315',1,'utlist.h']]],
- ['_5fsv',['_SV',['../utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4',1,'utlist.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['a_5fdata_5flen',['A_DATA_LEN',['../dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e',1,'A_DATA_LEN(): dtls.c'],['../dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e',1,'A_DATA_LEN(): dtls.c']]],
- ['add_5fauth_5fdata',['add_auth_data',['../ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc',1,'ccm.c']]],
- ['addr',['addr',['../structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4',1,'session_t']]],
- ['aes128',['AES128',['../crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4',1,'crypto.h']]],
- ['aes128_5fccm_5ft',['aes128_ccm_t',['../structaes128__ccm__t.html',1,'']]],
- ['alert_2eh',['alert.h',['../alert_8h.html',1,'']]],
- ['app',['app',['../structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e',1,'dtls_context_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_10.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['r_5fkey_5foffset',['R_KEY_OFFSET',['../dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f',1,'dtls.c']]],
- ['random',['random',['../structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a',1,'dtls_handshake_parameters_t']]],
- ['read',['read',['../structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88',1,'dtls_handler_t']]],
- ['readbuf',['readbuf',['../structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434',1,'dtls_context_t']]],
- ['retransmit_5fcnt',['retransmit_cnt',['../structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8',1,'netq_t']]],
- ['role',['role',['../structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120',1,'dtls_peer_t']]],
- ['rseq',['rseq',['../structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87',1,'dtls_security_parameters_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_11.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['s_5fkey_5foffset',['S_KEY_OFFSET',['../dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9',1,'dtls.c']]],
- ['sa',['sa',['../structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a',1,'session_t']]],
- ['security_5fparams',['security_params',['../structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af',1,'dtls_peer_t']]],
- ['server',['server',['../structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036',1,'dtls_handshake_parameters_t']]],
- ['session',['session',['../structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe',1,'dtls_peer_t']]],
- ['session_2ec',['session.c',['../session_8c.html',1,'']]],
- ['session_2eh',['session.h',['../session_8h.html',1,'']]],
- ['session_5ft',['session_t',['../structsession__t.html',1,'']]],
- ['set_5fcounter',['SET_COUNTER',['../ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994',1,'ccm.c']]],
- ['signature',['signature',['../structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f',1,'UT_hash_table']]],
- ['sin',['sin',['../structsession__t.html#a86093095c1ab36b12180f9215fa2375e',1,'session_t']]],
- ['sin6',['sin6',['../structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde',1,'session_t']]],
- ['size',['size',['../structsession__t.html#aed21682e9f971221d9f35f1266dea125',1,'session_t']]],
- ['skip_5fvar_5ffield',['SKIP_VAR_FIELD',['../dtls_8c.html#a09a0896d586ff27855ced6930cc17023',1,'dtls.c']]],
- ['st',['st',['../structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d',1,'session_t']]],
- ['state',['state',['../structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83',1,'dtls_peer_t']]],
- ['state_2eh',['state.h',['../state_8h.html',1,'']]],
- ['stdc_5fheaders',['STDC_HEADERS',['../config_8h.html#a550e5c272cc3cf3814651721167dcd23',1,'STDC_HEADERS(): config.h'],['../dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23',1,'STDC_HEADERS(): dtls_config.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_12.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['t',['t',['../structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a',1,'netq_t']]],
- ['t_5flist_2eh',['t_list.h',['../t__list_8h.html',1,'']]],
- ['tail',['tail',['../structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992',1,'UT_hash_table']]],
- ['tbl',['tbl',['../structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73',1,'UT_hash_handle']]],
- ['timeout',['timeout',['../structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6',1,'netq_t']]],
- ['tinydtls_2eh',['tinydtls.h',['../tinydtls_8h.html',1,'']]],
- ['tls_5fcert_5ftype_5fraw_5fpublic_5fkey',['TLS_CERT_TYPE_RAW_PUBLIC_KEY',['../global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4',1,'global.h']]],
- ['tls_5fclient_5fcertificate_5ftype_5fecdsa_5fsign',['TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN',['../global_8h.html#aaace8dce4341d910140609a96bb300db',1,'global.h']]],
- ['tls_5fcompression_5fnull',['TLS_COMPRESSION_NULL',['../global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca',1,'global.h']]],
- ['tls_5fec_5fcurve_5ftype_5fnamed_5fcurve',['TLS_EC_CURVE_TYPE_NAMED_CURVE',['../global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6',1,'global.h']]],
- ['tls_5fecdhe_5fecdsa_5fwith_5faes_5f128_5fccm_5f8',['TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e',1,'global.h']]],
- ['tls_5fext_5fclient_5fcertificate_5ftype',['TLS_EXT_CLIENT_CERTIFICATE_TYPE',['../global_8h.html#a0074adc0b2543a913a597e510caf27b0',1,'global.h']]],
- ['tls_5fext_5fec_5fpoint_5fformats',['TLS_EXT_EC_POINT_FORMATS',['../global_8h.html#a5d17863db920927ef8160547541b58e3',1,'global.h']]],
- ['tls_5fext_5fec_5fpoint_5fformats_5funcompressed',['TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED',['../global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6',1,'global.h']]],
- ['tls_5fext_5felliptic_5fcurves',['TLS_EXT_ELLIPTIC_CURVES',['../global_8h.html#a7e080d630a40510f655bf6982c555063',1,'global.h']]],
- ['tls_5fext_5felliptic_5fcurves_5fsecp256r1',['TLS_EXT_ELLIPTIC_CURVES_SECP256R1',['../global_8h.html#a8095691f33c0ce6b22d205640ccc9417',1,'global.h']]],
- ['tls_5fext_5fencrypt_5fthen_5fmac',['TLS_EXT_ENCRYPT_THEN_MAC',['../global_8h.html#ae136afe82bd9031a4c1c604de0cb0118',1,'global.h']]],
- ['tls_5fext_5fserver_5fcertificate_5ftype',['TLS_EXT_SERVER_CERTIFICATE_TYPE',['../global_8h.html#ad465b86d1841ddd6c2209ff304895a95',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo',['TLS_EXT_SIG_HASH_ALGO',['../global_8h.html#a0249393d6894a15ac56962b2335add24',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo_5fecdsa',['TLS_EXT_SIG_HASH_ALGO_ECDSA',['../global_8h.html#af126227a026a7af436a4323db6d02ecc',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo_5fsha256',['TLS_EXT_SIG_HASH_ALGO_SHA256',['../global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9',1,'global.h']]],
- ['tls_5fnull_5fwith_5fnull_5fnull',['TLS_NULL_WITH_NULL_NULL',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd',1,'global.h']]],
- ['tls_5fpsk_5fwith_5faes_5f128_5fccm_5f8',['TLS_PSK_WITH_AES_128_CCM_8',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8',1,'global.h']]],
- ['tmp',['tmp',['../structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f',1,'dtls_handshake_parameters_t']]],
- ['type',['type',['../structnetq__t.html#a13d74bc65c8879b894698935fbbe2246',1,'netq_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_13.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['uint16',['uint16',['../global_8h.html#a5e90b30856b81913af89565b55751da5',1,'global.h']]],
- ['uint24',['uint24',['../global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a',1,'global.h']]],
- ['uint32',['uint32',['../global_8h.html#ab27072920285996a3e16d2e5e3d366be',1,'global.h']]],
- ['uint48',['uint48',['../global_8h.html#a0749f1df578b26eccab986b0d8abaa56',1,'global.h']]],
- ['uint8',['uint8',['../global_8h.html#adde6aaee8457bee49c2a92621fe22b79',1,'global.h']]],
- ['update_5fhs_5fhash',['update_hs_hash',['../dtls_8c.html#a3db09acb5894f17f4745d7556555bea7',1,'dtls.c']]],
- ['ut_5fhash_5fbucket',['UT_hash_bucket',['../structUT__hash__bucket.html',1,'UT_hash_bucket'],['../uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf',1,'UT_hash_bucket(): uthash.h']]],
- ['ut_5fhash_5fhandle',['UT_hash_handle',['../structUT__hash__handle.html',1,'UT_hash_handle'],['../uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6',1,'UT_hash_handle(): uthash.h']]],
- ['ut_5fhash_5ftable',['UT_hash_table',['../structUT__hash__table.html',1,'UT_hash_table'],['../uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e',1,'UT_hash_table(): uthash.h']]],
- ['uthash_2eh',['uthash.h',['../uthash_8h.html',1,'']]],
- ['uthash_5fexpand_5ffyi',['uthash_expand_fyi',['../uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4',1,'uthash.h']]],
- ['uthash_5ffatal',['uthash_fatal',['../uthash_8h.html#a03b52301b0ed976b6981ef33613320c1',1,'uthash.h']]],
- ['uthash_5ffree',['uthash_free',['../uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657',1,'uthash.h']]],
- ['uthash_5fmalloc',['uthash_malloc',['../uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8',1,'uthash.h']]],
- ['uthash_5fnoexpand_5ffyi',['uthash_noexpand_fyi',['../uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86',1,'uthash.h']]],
- ['uthash_5fversion',['UTHASH_VERSION',['../uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e',1,'uthash.h']]],
- ['utlist_2eh',['utlist.h',['../utlist_8h.html',1,'']]],
- ['utlist_5fversion',['UTLIST_VERSION',['../utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730',1,'utlist.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_14.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['verify_5fext_5fcert_5ftype',['verify_ext_cert_type',['../dtls_8c.html#af073bf7cefa5e49e0c939e853678d417',1,'dtls.c']]],
- ['verify_5fext_5fec_5fpoint_5fformats',['verify_ext_ec_point_formats',['../dtls_8c.html#a04a3580764ffd4f253ce6be858806c95',1,'dtls.c']]],
- ['verify_5fext_5feliptic_5fcurves',['verify_ext_eliptic_curves',['../dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_15.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['with_5fsha256',['WITH_SHA256',['../global_8h.html#a4da6212f220f78c713aa5e91f989e7d7',1,'global.h']]],
- ['write',['write',['../structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2',1,'dtls_handler_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['block0',['block0',['../ccm_8c.html#a1dfe92428f63772e3907a26435e54354',1,'ccm.c']]],
- ['buckets',['buckets',['../structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b',1,'UT_hash_table']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['calculate_5fkey_5fblock',['calculate_key_block',['../dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b',1,'dtls.c']]],
- ['call',['CALL',['../dtls_8c.html#a3e132aba78de736930255d40ef3f2d34',1,'dtls.c']]],
- ['ccm_2ec',['ccm.c',['../ccm_8c.html',1,'']]],
- ['ccm_2eh',['ccm.h',['../ccm_8h.html',1,'']]],
- ['ccm_5fflags',['CCM_FLAGS',['../ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb',1,'ccm.c']]],
- ['cdl_5fdelete',['CDL_DELETE',['../utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235',1,'utlist.h']]],
- ['cdl_5fforeach',['CDL_FOREACH',['../utlist_8h.html#a795df7857792d7e811709a060c911a36',1,'utlist.h']]],
- ['cdl_5fforeach_5fsafe',['CDL_FOREACH_SAFE',['../utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd',1,'utlist.h']]],
- ['cdl_5fprepend',['CDL_PREPEND',['../utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd',1,'utlist.h']]],
- ['cdl_5fsearch',['CDL_SEARCH',['../utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e',1,'utlist.h']]],
- ['cdl_5fsearch_5fscalar',['CDL_SEARCH_SCALAR',['../utlist_8h.html#ad064cddb894b478b3c3cd23719f58651',1,'utlist.h']]],
- ['cdl_5fsort',['CDL_SORT',['../utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17',1,'utlist.h']]],
- ['cert_5fasn1_5fheader',['cert_asn1_header',['../dtls_8c.html#aecdb18ea2b899994542ec46b23528738',1,'dtls.c']]],
- ['check_5fcertificate_5frequest',['check_certificate_request',['../dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e',1,'dtls.c']]],
- ['check_5fclient_5fcertificate_5fverify',['check_client_certificate_verify',['../dtls_8c.html#a017195b30506fbdf32fff55af9276a02',1,'dtls.c']]],
- ['check_5fclient_5fkeyexchange',['check_client_keyexchange',['../dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f',1,'dtls.c']]],
- ['check_5ffinished',['check_finished',['../dtls_8c.html#a91b2653747ca1e4058ae3b350019188b',1,'dtls.c']]],
- ['check_5fserver_5fcertificate',['check_server_certificate',['../dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7',1,'dtls.c']]],
- ['check_5fserver_5fhello',['check_server_hello',['../dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26',1,'dtls.c']]],
- ['check_5fserver_5fhello_5fverify_5frequest',['check_server_hello_verify_request',['../dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642',1,'dtls.c']]],
- ['check_5fserver_5fhellodone',['check_server_hellodone',['../dtls_8c.html#aca393c29148080d4dfa343c8ec283928',1,'dtls.c']]],
- ['check_5fserver_5fkey_5fexchange_5fecdsa',['check_server_key_exchange_ecdsa',['../dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb',1,'dtls.c']]],
- ['check_5fserver_5fkey_5fexchange_5fpsk',['check_server_key_exchange_psk',['../dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054',1,'dtls.c']]],
- ['check_5fstack',['check_stack',['../debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378',1,'debug.h']]],
- ['cipher',['cipher',['../structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830',1,'dtls_security_parameters_t::cipher()'],['../structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933',1,'dtls_handshake_parameters_t::cipher()']]],
- ['cipher_5fcontext',['cipher_context',['../crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb',1,'crypto.c']]],
- ['cipher_5fcontext_5fmutex',['cipher_context_mutex',['../crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c',1,'crypto.c']]],
- ['clear_5fhs_5fhash',['clear_hs_hash',['../dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d',1,'dtls.c']]],
- ['client',['client',['../structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9',1,'dtls_handshake_parameters_t']]],
- ['clienthello',['CLIENTHELLO',['../dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5',1,'dtls.c']]],
- ['clock_20handling',['Clock Handling',['../group__clock.html',1,'']]],
- ['clock_5fsecond',['CLOCK_SECOND',['../group__clock.html#gae3ced0551b26c9b99cb45a86f34d100a',1,'dtls_time.h']]],
- ['clock_5ftime_5ft',['clock_time_t',['../group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23',1,'dtls_time.h']]],
- ['compression',['compression',['../structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a',1,'dtls_security_parameters_t::compression()'],['../structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125',1,'dtls_handshake_parameters_t::compression()']]],
- ['compression_5fmethods',['compression_methods',['../dtls_8c.html#ae35671d94ccea5f335546ce409aed601',1,'dtls.c']]],
- ['config_2eh',['config.h',['../config_8h.html',1,'']]],
- ['contiki',['Contiki',['../group__contiki.html',1,'']]],
- ['contiki_2dconfig_2eh',['contiki-config.h',['../contiki-config_8h.html',1,'']]],
- ['cookie_5fsecret',['cookie_secret',['../structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f',1,'dtls_context_t']]],
- ['cookie_5fsecret_5fage',['cookie_secret_age',['../structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8',1,'dtls_context_t']]],
- ['copy_5fhs_5fhash',['copy_hs_hash',['../dtls_8c.html#a22ab7a79391c2204337237949d69dad8',1,'dtls.c']]],
- ['count',['count',['../structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634',1,'UT_hash_bucket']]],
- ['crypto_2ec',['crypto.c',['../crypto_8c.html',1,'']]],
- ['crypto_2eh',['crypto.h',['../crypto_8h.html',1,'']]],
- ['crypto_5finit',['crypto_init',['../crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c',1,'crypto_init(): crypto.c'],['../crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c',1,'crypto_init(): crypto.c']]],
- ['ctx',['ctx',['../structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371',1,'aes128_ccm_t']]],
- ['curve',['curve',['../structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548',1,'dtls_ecdsa_key_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['data',['data',['../structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc',1,'dtls_cipher_context_t::data()'],['../structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40',1,'dtls_hmac_context_t::data()'],['../structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c',1,'netq_t::data()']]],
- ['debug_2ec',['debug.c',['../debug_8c.html',1,'']]],
- ['debug_2eh',['debug.h',['../debug_8h.html',1,'']]],
- ['decltype',['DECLTYPE',['../uthash_8h.html#a716ba290563c2d955cb0c90d85874073',1,'uthash.h']]],
- ['decltype_5fassign',['DECLTYPE_ASSIGN',['../uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba',1,'uthash.h']]],
- ['decrypt_5fverify',['decrypt_verify',['../dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71',1,'dtls.c']]],
- ['dl_5fappend',['DL_APPEND',['../utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8',1,'utlist.h']]],
- ['dl_5fdelete',['DL_DELETE',['../utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc',1,'utlist.h']]],
- ['dl_5fforeach',['DL_FOREACH',['../utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7',1,'utlist.h']]],
- ['dl_5fforeach_5fsafe',['DL_FOREACH_SAFE',['../utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa',1,'utlist.h']]],
- ['dl_5fprepend',['DL_PREPEND',['../utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa',1,'utlist.h']]],
- ['dl_5fsearch',['DL_SEARCH',['../utlist_8h.html#a819373d14278b52c313b743acc292ba0',1,'utlist.h']]],
- ['dl_5fsearch_5fscalar',['DL_SEARCH_SCALAR',['../utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b',1,'utlist.h']]],
- ['dl_5fsort',['DL_SORT',['../utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3',1,'utlist.h']]],
- ['do_5fclient_5fauth',['do_client_auth',['../structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6',1,'dtls_handshake_parameters_t']]],
- ['dsrv_5flog',['dsrv_log',['../debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5',1,'dsrv_log(log_t level, char *format,...): debug.c'],['../debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5',1,'dsrv_log(log_t level, char *format,...): debug.c']]],
- ['dsrv_5fprint_5faddr',['dsrv_print_addr',['../debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2',1,'debug.c']]],
- ['dtls_2ec',['dtls.c',['../dtls_8c.html',1,'']]],
- ['dtls_2eh',['dtls.h',['../dtls_8h.html',1,'']]],
- ['dtls_5fadd_5fecdsa_5fsignature_5felem',['dtls_add_ecdsa_signature_elem',['../dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d',1,'dtls.c']]],
- ['dtls_5fadd_5fpeer',['dtls_add_peer',['../dtls_8c.html#ae4a2961a027959f907145f82ca9107c3',1,'dtls.c']]],
- ['dtls_5falert',['dtls_alert',['../debug_8h.html#ab22e3494f6186183820142ba279fe9ae',1,'debug.h']]],
- ['dtls_5falert_5faccess_5fdenied',['DTLS_ALERT_ACCESS_DENIED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11',1,'alert.h']]],
- ['dtls_5falert_5fbad_5fcertificate',['DTLS_ALERT_BAD_CERTIFICATE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c',1,'alert.h']]],
- ['dtls_5falert_5fbad_5frecord_5fmac',['DTLS_ALERT_BAD_RECORD_MAC',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5fexpired',['DTLS_ALERT_CERTIFICATE_EXPIRED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5frevoked',['DTLS_ALERT_CERTIFICATE_REVOKED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5funknown',['DTLS_ALERT_CERTIFICATE_UNKNOWN',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d',1,'alert.h']]],
- ['dtls_5falert_5fclose_5fnotify',['DTLS_ALERT_CLOSE_NOTIFY',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800',1,'alert.h']]],
- ['dtls_5falert_5fcreate',['dtls_alert_create',['../alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d',1,'alert.h']]],
- ['dtls_5falert_5fdecode_5ferror',['DTLS_ALERT_DECODE_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649',1,'alert.h']]],
- ['dtls_5falert_5fdecompression_5ffailure',['DTLS_ALERT_DECOMPRESSION_FAILURE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888',1,'alert.h']]],
- ['dtls_5falert_5fdecrypt_5ferror',['DTLS_ALERT_DECRYPT_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0',1,'alert.h']]],
- ['dtls_5falert_5ffatal_5fcreate',['dtls_alert_fatal_create',['../alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df',1,'alert.h']]],
- ['dtls_5falert_5fhandshake_5ffailure',['DTLS_ALERT_HANDSHAKE_FAILURE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d',1,'alert.h']]],
- ['dtls_5falert_5fillegal_5fparameter',['DTLS_ALERT_ILLEGAL_PARAMETER',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc',1,'alert.h']]],
- ['dtls_5falert_5finsufficient_5fsecurity',['DTLS_ALERT_INSUFFICIENT_SECURITY',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e',1,'alert.h']]],
- ['dtls_5falert_5finternal_5ferror',['DTLS_ALERT_INTERNAL_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58',1,'alert.h']]],
- ['dtls_5falert_5flevel_5ffatal',['DTLS_ALERT_LEVEL_FATAL',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4',1,'alert.h']]],
- ['dtls_5falert_5flevel_5ft',['dtls_alert_level_t',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871f',1,'alert.h']]],
- ['dtls_5falert_5flevel_5fwarning',['DTLS_ALERT_LEVEL_WARNING',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7',1,'alert.h']]],
- ['dtls_5falert_5fno_5frenegotiation',['DTLS_ALERT_NO_RENEGOTIATION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab',1,'alert.h']]],
- ['dtls_5falert_5fprotocol_5fversion',['DTLS_ALERT_PROTOCOL_VERSION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652',1,'alert.h']]],
- ['dtls_5falert_5frecord_5foverflow',['DTLS_ALERT_RECORD_OVERFLOW',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12',1,'alert.h']]],
- ['dtls_5falert_5fsend_5ffrom_5ferr',['dtls_alert_send_from_err',['../dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e',1,'dtls.c']]],
- ['dtls_5falert_5ft',['dtls_alert_t',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd',1,'alert.h']]],
- ['dtls_5falert_5funexpected_5fmessage',['DTLS_ALERT_UNEXPECTED_MESSAGE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a',1,'alert.h']]],
- ['dtls_5falert_5funknown_5fca',['DTLS_ALERT_UNKNOWN_CA',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f',1,'alert.h']]],
- ['dtls_5falert_5funsupported_5fcertificate',['DTLS_ALERT_UNSUPPORTED_CERTIFICATE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab',1,'alert.h']]],
- ['dtls_5falert_5funsupported_5fextension',['DTLS_ALERT_UNSUPPORTED_EXTENSION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc',1,'alert.h']]],
- ['dtls_5falert_5fuser_5fcanceled',['DTLS_ALERT_USER_CANCELED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638',1,'alert.h']]],
- ['dtls_5fblk_5flength',['DTLS_BLK_LENGTH',['../crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757',1,'crypto.h']]],
- ['dtls_5fccm_5fblocksize',['DTLS_CCM_BLOCKSIZE',['../ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859',1,'ccm.h']]],
- ['dtls_5fccm_5fdecrypt',['dtls_ccm_decrypt',['../crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1',1,'crypto.c']]],
- ['dtls_5fccm_5fdecrypt_5fmessage',['dtls_ccm_decrypt_message',['../ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d',1,'dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c'],['../ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d',1,'dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c']]],
- ['dtls_5fccm_5fencrypt',['dtls_ccm_encrypt',['../crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c',1,'crypto.c']]],
- ['dtls_5fccm_5fencrypt_5fmessage',['dtls_ccm_encrypt_message',['../ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42',1,'dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c'],['../ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42',1,'dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c']]],
- ['dtls_5fccm_5fmax',['DTLS_CCM_MAX',['../ccm_8h.html#a84305b079fda12bfa1323b41b3c50849',1,'ccm.h']]],
- ['dtls_5fccm_5fnonce_5fsize',['DTLS_CCM_NONCE_SIZE',['../ccm_8h.html#a2d0e7515c26737872fe840958ed140ac',1,'ccm.h']]],
- ['dtls_5fce_5flength',['DTLS_CE_LENGTH',['../dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696',1,'dtls.c']]],
- ['dtls_5fch_5flength',['DTLS_CH_LENGTH',['../dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675',1,'dtls.c']]],
- ['dtls_5fch_5flength_5fmax',['DTLS_CH_LENGTH_MAX',['../dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa',1,'dtls.c']]],
- ['dtls_5fcheck_5fecdsa_5fsignature_5felem',['dtls_check_ecdsa_signature_elem',['../dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54',1,'dtls.c']]],
- ['dtls_5fcheck_5fretransmit',['dtls_check_retransmit',['../dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82',1,'dtls_check_retransmit(dtls_context_t *context, clock_time_t *next): dtls.c'],['../dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82',1,'dtls_check_retransmit(dtls_context_t *context, clock_time_t *next): dtls.c']]],
- ['dtls_5fcheck_5ftls_5fextension',['dtls_check_tls_extension',['../dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a',1,'dtls.c']]],
- ['dtls_5fcipher_5fcontext_5fget',['dtls_cipher_context_get',['../crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29',1,'crypto.c']]],
- ['dtls_5fcipher_5fcontext_5frelease',['dtls_cipher_context_release',['../crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e',1,'crypto.c']]],
- ['dtls_5fcipher_5fcontext_5ft',['dtls_cipher_context_t',['../structdtls__cipher__context__t.html',1,'dtls_cipher_context_t'],['../crypto_8h.html#a99482a87021e817524d15c33e89e309c',1,'dtls_cipher_context_t(): crypto.h']]],
- ['dtls_5fcipher_5ft',['dtls_cipher_t',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59b',1,'global.h']]],
- ['dtls_5fckxec_5flength',['DTLS_CKXEC_LENGTH',['../dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164',1,'dtls.c']]],
- ['dtls_5fckxpsk_5flength_5fmin',['DTLS_CKXPSK_LENGTH_MIN',['../dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336',1,'dtls.c']]],
- ['dtls_5fclient',['DTLS_CLIENT',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e',1,'peer.h']]],
- ['dtls_5fclient_5fhello_5ft',['dtls_client_hello_t',['../dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456',1,'dtls.h']]],
- ['dtls_5fclock_5finit',['dtls_clock_init',['../group__clock.html#ga8b340ad858b708dbc7bf40f784935c90',1,'dtls_clock_init(void): dtls_time.c'],['../group__clock.html#ga8b340ad858b708dbc7bf40f784935c90',1,'dtls_clock_init(void): dtls_time.c']]],
- ['dtls_5fclock_5foffset',['dtls_clock_offset',['../dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1',1,'dtls_time.c']]],
- ['dtls_5fclose',['dtls_close',['../dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a',1,'dtls_close(dtls_context_t *ctx, const session_t *remote): dtls.c'],['../dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a',1,'dtls_close(dtls_context_t *ctx, const session_t *remote): dtls.c']]],
- ['dtls_5fcompression_5ft',['dtls_compression_t',['../global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2',1,'global.h']]],
- ['dtls_5fconfig_2eh',['dtls_config.h',['../dtls__config_8h.html',1,'']]],
- ['dtls_5fconnect',['dtls_connect',['../dtls_8c.html#a187f5e145bb869a732fbed426929a4e9',1,'dtls_connect(dtls_context_t *ctx, const session_t *dst): dtls.c'],['../dtls_8h.html#a187f5e145bb869a732fbed426929a4e9',1,'dtls_connect(dtls_context_t *ctx, const session_t *dst): dtls.c']]],
- ['dtls_5fconnect_5fpeer',['dtls_connect_peer',['../dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62',1,'dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer): dtls.c'],['../dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62',1,'dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer): dtls.c']]],
- ['dtls_5fcontext_5ft',['dtls_context_t',['../structdtls__context__t.html',1,'dtls_context_t'],['../dtls_8h.html#a407c66c58bfc87651714de4103bee135',1,'dtls_context_t(): dtls.h']]],
- ['dtls_5fcookie_5flength',['DTLS_COOKIE_LENGTH',['../dtls_8h.html#a09e4f571633bdb724236ac68459715b6',1,'dtls.h']]],
- ['dtls_5fcookie_5flength_5fmax',['DTLS_COOKIE_LENGTH_MAX',['../dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace',1,'dtls.c']]],
- ['dtls_5fcookie_5fsecret_5flength',['DTLS_COOKIE_SECRET_LENGTH',['../dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238',1,'dtls.h']]],
- ['dtls_5fcreate_5fcookie',['dtls_create_cookie',['../dtls_8c.html#a45841106ebcb5b1373c0312842b90943',1,'dtls.c']]],
- ['dtls_5fcredentials_5ftype_5ft',['dtls_credentials_type_t',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01',1,'dtls_credentials_type_t(): dtls.h'],['../dtls_8h.html#adb4c778ddcbf9ac28ef277b20adbfa33',1,'dtls_credentials_type_t(): dtls.h']]],
- ['dtls_5fcrit',['dtls_crit',['../debug_8h.html#ad4c9c94c054579b73789fead587c8514',1,'debug.h']]],
- ['dtls_5fcrypto_5falg',['dtls_crypto_alg',['../crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1',1,'crypto.h']]],
- ['dtls_5fct_5falert',['DTLS_CT_ALERT',['../dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1',1,'dtls.h']]],
- ['dtls_5fct_5fapplication_5fdata',['DTLS_CT_APPLICATION_DATA',['../dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c',1,'dtls.h']]],
- ['dtls_5fct_5fchange_5fcipher_5fspec',['DTLS_CT_CHANGE_CIPHER_SPEC',['../dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d',1,'dtls.h']]],
- ['dtls_5fct_5fhandshake',['DTLS_CT_HANDSHAKE',['../dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc',1,'dtls.h']]],
- ['dtls_5fcv_5flength',['DTLS_CV_LENGTH',['../dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816',1,'dtls.c']]],
- ['dtls_5fdebug',['dtls_debug',['../debug_8h.html#a0f158325426415d9efb5a36bebf45844',1,'debug.h']]],
- ['dtls_5fdebug_5fdump',['dtls_debug_dump',['../debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6',1,'debug.h']]],
- ['dtls_5fdebug_5fhexdump',['dtls_debug_hexdump',['../debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d',1,'debug.h']]],
- ['dtls_5fdebug_5fkeyblock',['dtls_debug_keyblock',['../dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd',1,'dtls.c']]],
- ['dtls_5fdecrypt',['dtls_decrypt',['../crypto_8c.html#aac32554190e3970917a31ff01eed4080',1,'dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la): crypto.c'],['../crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b',1,'dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *a_data, size_t a_data_length): crypto.c']]],
- ['dtls_5fdefault_5fmax_5fretransmit',['DTLS_DEFAULT_MAX_RETRANSMIT',['../global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080',1,'global.h']]],
- ['dtls_5fdestroy_5fpeer',['dtls_destroy_peer',['../dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3',1,'dtls.c']]],
- ['dtls_5fdsrv_5fhexdump_5flog',['dtls_dsrv_hexdump_log',['../debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc',1,'dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend): debug.c'],['../debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc',1,'dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend): debug.c']]],
- ['dtls_5fdsrv_5flog_5faddr',['dtls_dsrv_log_addr',['../debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76',1,'dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr): debug.c'],['../debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76',1,'dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr): debug.c']]],
- ['dtls_5fec_5fkey_5ffrom_5fuint32',['dtls_ec_key_from_uint32',['../crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6',1,'crypto.c']]],
- ['dtls_5fec_5fkey_5ffrom_5fuint32_5fasn1',['dtls_ec_key_from_uint32_asn1',['../crypto_8c.html#a5ae24f3621f545752732e318840d7e2b',1,'dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf): crypto.c'],['../crypto_8h.html#a5ae24f3621f545752732e318840d7e2b',1,'dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf): crypto.c']]],
- ['dtls_5fec_5fkey_5fsize',['DTLS_EC_KEY_SIZE',['../crypto_8h.html#a9b039263057e157e1427c5d316133c3d',1,'crypto.h']]],
- ['dtls_5fec_5fkey_5fto_5fuint32',['dtls_ec_key_to_uint32',['../crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4',1,'crypto.c']]],
- ['dtls_5fecc',['DTLS_ECC',['../dtls__config_8h.html#a1b77fedd334a66611747922038c930d6',1,'DTLS_ECC(): dtls_config.h'],['../tinydtls_8h.html#a1b77fedd334a66611747922038c930d6',1,'DTLS_ECC(): tinydtls.h']]],
- ['dtls_5fecdh_5fcurve',['dtls_ecdh_curve',['../crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef',1,'crypto.h']]],
- ['dtls_5fecdh_5fcurve_5fsecp256r1',['DTLS_ECDH_CURVE_SECP256R1',['../crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff',1,'crypto.h']]],
- ['dtls_5fecdh_5fpre_5fmaster_5fsecret',['dtls_ecdh_pre_master_secret',['../crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa',1,'dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len): crypto.c'],['../crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa',1,'dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len): crypto.c']]],
- ['dtls_5fecdsa_5fcreate_5fsig',['dtls_ecdsa_create_sig',['../crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82',1,'dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c'],['../crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82',1,'dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c']]],
- ['dtls_5fecdsa_5fcreate_5fsig_5fhash',['dtls_ecdsa_create_sig_hash',['../crypto_8c.html#a49f03039780664684d110d83a228b163',1,'dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c'],['../crypto_8h.html#a49f03039780664684d110d83a228b163',1,'dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c']]],
- ['dtls_5fecdsa_5fgenerate_5fkey',['dtls_ecdsa_generate_key',['../crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970',1,'dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size): crypto.c'],['../crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970',1,'dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size): crypto.c']]],
- ['dtls_5fecdsa_5fkey_5ft',['dtls_ecdsa_key_t',['../structdtls__ecdsa__key__t.html',1,'dtls_ecdsa_key_t'],['../dtls_8h.html#a472601639fcded4630fbd087f986ad10',1,'dtls_ecdsa_key_t(): dtls.h']]],
- ['dtls_5fecdsa_5fverify_5fsig',['dtls_ecdsa_verify_sig',['../crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9',1,'dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s): crypto.c'],['../crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9',1,'dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s): crypto.c']]],
- ['dtls_5fecdsa_5fverify_5fsig_5fhash',['dtls_ecdsa_verify_sig_hash',['../crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7',1,'dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s): crypto.c'],['../crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7',1,'dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s): crypto.c']]],
- ['dtls_5femerg',['dtls_emerg',['../debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8',1,'debug.h']]],
- ['dtls_5fencrypt',['dtls_encrypt',['../crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5',1,'dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la): crypto.c'],['../crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69',1,'dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t aad_length): crypto.c']]],
- ['dtls_5fevent_5fconnect',['DTLS_EVENT_CONNECT',['../alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844',1,'alert.h']]],
- ['dtls_5fevent_5fconnected',['DTLS_EVENT_CONNECTED',['../alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22',1,'alert.h']]],
- ['dtls_5fevent_5frenegotiate',['DTLS_EVENT_RENEGOTIATE',['../alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124',1,'alert.h']]],
- ['dtls_5ffin_5flength',['DTLS_FIN_LENGTH',['../dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63',1,'dtls.c']]],
- ['dtls_5ffls',['dtls_fls',['../global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8',1,'global.h']]],
- ['dtls_5ffree_5fcontext',['dtls_free_context',['../dtls_8c.html#a3171c099d25ed29e31326526b8e1de84',1,'dtls_free_context(dtls_context_t *ctx): dtls.c'],['../dtls_8h.html#a3171c099d25ed29e31326526b8e1de84',1,'dtls_free_context(dtls_context_t *ctx): dtls.c']]],
- ['dtls_5ffree_5fpeer',['dtls_free_peer',['../peer_8c.html#a037178c201b2e6b7361570ff700f059d',1,'dtls_free_peer(dtls_peer_t *peer): peer.c'],['../peer_8h.html#a037178c201b2e6b7361570ff700f059d',1,'dtls_free_peer(dtls_peer_t *peer): peer.c']]],
- ['dtls_5fget_5fapp_5fdata',['dtls_get_app_data',['../dtls_8h.html#a95f7eb485bb814aa308e2612681176d9',1,'dtls.h']]],
- ['dtls_5fget_5fcontent_5ftype',['dtls_get_content_type',['../dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467',1,'dtls.c']]],
- ['dtls_5fget_5fcookie',['dtls_get_cookie',['../dtls_8c.html#a8546683053c19be38b23aa9042139f4b',1,'dtls.c']]],
- ['dtls_5fget_5fepoch',['dtls_get_epoch',['../dtls_8c.html#a175d8e65080497463d13caf20e961500',1,'dtls.c']]],
- ['dtls_5fget_5ffragment_5flength',['dtls_get_fragment_length',['../dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff',1,'dtls.c']]],
- ['dtls_5fget_5flog_5flevel',['dtls_get_log_level',['../debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f',1,'dtls_get_log_level(): debug.c'],['../debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f',1,'dtls_get_log_level(): debug.c']]],
- ['dtls_5fget_5fpeer',['dtls_get_peer',['../dtls_8c.html#a70333bea2db35153177347b5c7700cab',1,'dtls_get_peer(const dtls_context_t *ctx, const session_t *session): dtls.c'],['../dtls_8h.html#a3fd062108e5d0f48627ae644546824a6',1,'dtls_get_peer(const dtls_context_t *context, const session_t *session): dtls.c']]],
- ['dtls_5fget_5fsequence_5fnumber',['dtls_get_sequence_number',['../dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7',1,'dtls.c']]],
- ['dtls_5fget_5fversion',['dtls_get_version',['../dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb',1,'dtls.c']]],
- ['dtls_5fhandle_5fmessage',['dtls_handle_message',['../dtls_8c.html#ae272fea7269714fe7a67d6da64961731',1,'dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen): dtls.c'],['../dtls_8h.html#ae272fea7269714fe7a67d6da64961731',1,'dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen): dtls.c']]],
- ['dtls_5fhandler_5ft',['dtls_handler_t',['../structdtls__handler__t.html',1,'']]],
- ['dtls_5fhandshake_5fdealloc',['dtls_handshake_dealloc',['../crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3',1,'crypto.c']]],
- ['dtls_5fhandshake_5ffree',['dtls_handshake_free',['../crypto_8c.html#aa17bcdc666796e52788f82ee003bb172',1,'dtls_handshake_free(dtls_handshake_parameters_t *handshake): crypto.c'],['../crypto_8h.html#aa17bcdc666796e52788f82ee003bb172',1,'dtls_handshake_free(dtls_handshake_parameters_t *handshake): crypto.c']]],
- ['dtls_5fhandshake_5fheader',['DTLS_HANDSHAKE_HEADER',['../dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a',1,'dtls.c']]],
- ['dtls_5fhandshake_5fheader_5ft',['dtls_handshake_header_t',['../dtls_8h.html#a5c6625ffcf61189392768253e8919a45',1,'dtls.h']]],
- ['dtls_5fhandshake_5fmalloc',['dtls_handshake_malloc',['../crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe',1,'crypto.c']]],
- ['dtls_5fhandshake_5fnew',['dtls_handshake_new',['../crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8',1,'dtls_handshake_new(): crypto.c'],['../crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8',1,'dtls_handshake_new(): crypto.c']]],
- ['dtls_5fhandshake_5fparameters_5fecdsa_5ft',['dtls_handshake_parameters_ecdsa_t',['../structdtls__handshake__parameters__ecdsa__t.html',1,'']]],
- ['dtls_5fhandshake_5fparameters_5fpsk_5ft',['dtls_handshake_parameters_psk_t',['../structdtls__handshake__parameters__psk__t.html',1,'']]],
- ['dtls_5fhandshake_5fparameters_5ft',['dtls_handshake_parameters_t',['../structdtls__handshake__parameters__t.html',1,'']]],
- ['dtls_5fhandshake_5ftype_5fto_5fname',['dtls_handshake_type_to_name',['../dtls_8c.html#a00707f0f82235a2432338e77dae0911d',1,'dtls.c']]],
- ['dtls_5fhash_5fctx',['dtls_hash_ctx',['../hmac_8h.html#abb19650a510c73117da0e9b88d68f159',1,'hmac.h']]],
- ['dtls_5fhash_5fctx_5fsize',['DTLS_HASH_CTX_SIZE',['../hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5',1,'hmac.h']]],
- ['dtls_5fhash_5ffinalize',['dtls_hash_finalize',['../hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e',1,'hmac.h']]],
- ['dtls_5fhash_5finit',['dtls_hash_init',['../hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52',1,'hmac.h']]],
- ['dtls_5fhash_5ft',['dtls_hash_t',['../hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5',1,'hmac.h']]],
- ['dtls_5fhash_5fupdate',['dtls_hash_update',['../hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6',1,'hmac.h']]],
- ['dtls_5fhashfunc_5ft',['dtls_hashfunc_t',['../group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23',1,'hmac.h']]],
- ['dtls_5fhello_5fverify_5ft',['dtls_hello_verify_t',['../dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98',1,'dtls.h']]],
- ['dtls_5fhmac_5fblocksize',['DTLS_HMAC_BLOCKSIZE',['../group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e',1,'hmac.h']]],
- ['dtls_5fhmac_5fcontext_5ffree',['dtls_hmac_context_free',['../hmac_8c.html#a8613e734d3fafa81035f8f30000325a7',1,'hmac.c']]],
- ['dtls_5fhmac_5fcontext_5fnew',['dtls_hmac_context_new',['../hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef',1,'hmac.c']]],
- ['dtls_5fhmac_5fcontext_5ft',['dtls_hmac_context_t',['../structdtls__hmac__context__t.html',1,'']]],
- ['dtls_5fhmac_5fdigest_5fsize',['DTLS_HMAC_DIGEST_SIZE',['../group__HMAC.html#ga060019cf2dab9903d58118fe1abe7018',1,'hmac.h']]],
- ['dtls_5fhmac_5ffinalize',['dtls_hmac_finalize',['../group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf',1,'dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result): hmac.c'],['../group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf',1,'dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result): hmac.c']]],
- ['dtls_5fhmac_5ffree',['dtls_hmac_free',['../group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181',1,'dtls_hmac_free(dtls_hmac_context_t *ctx): hmac.c'],['../group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181',1,'dtls_hmac_free(dtls_hmac_context_t *ctx): hmac.c']]],
- ['dtls_5fhmac_5finit',['dtls_hmac_init',['../group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d',1,'dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen): hmac.c'],['../group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d',1,'dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen): hmac.c']]],
- ['dtls_5fhmac_5fmax',['DTLS_HMAC_MAX',['../group__HMAC.html#ga3e84ddbef6bf0084252e16e6c547e332',1,'hmac.h']]],
- ['dtls_5fhmac_5fnew',['dtls_hmac_new',['../group__HMAC.html#gac3e9ef037800963783e618eafd046702',1,'dtls_hmac_new(const unsigned char *key, size_t klen): hmac.c'],['../group__HMAC.html#gac3e9ef037800963783e618eafd046702',1,'dtls_hmac_new(const unsigned char *key, size_t klen): hmac.c']]],
- ['dtls_5fhmac_5fstorage_5finit',['dtls_hmac_storage_init',['../hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8',1,'hmac.h']]],
- ['dtls_5fhmac_5fupdate',['dtls_hmac_update',['../group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73',1,'dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen): hmac.c'],['../group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73',1,'dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen): hmac.c']]],
- ['dtls_5fhs_5flength',['DTLS_HS_LENGTH',['../dtls_8c.html#a520419d1976b301c508721faed549b4f',1,'dtls.c']]],
- ['dtls_5fhs_5fstate_5ft',['dtls_hs_state_t',['../structdtls__hs__state__t.html',1,'']]],
- ['dtls_5fht_5fcertificate',['DTLS_HT_CERTIFICATE',['../dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e',1,'dtls.h']]],
- ['dtls_5fht_5fcertificate_5frequest',['DTLS_HT_CERTIFICATE_REQUEST',['../dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5',1,'dtls.h']]],
- ['dtls_5fht_5fcertificate_5fverify',['DTLS_HT_CERTIFICATE_VERIFY',['../dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0',1,'dtls.h']]],
- ['dtls_5fht_5fclient_5fhello',['DTLS_HT_CLIENT_HELLO',['../dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5',1,'dtls.h']]],
- ['dtls_5fht_5fclient_5fkey_5fexchange',['DTLS_HT_CLIENT_KEY_EXCHANGE',['../dtls_8h.html#a577885c74492a460729a451f33a894c4',1,'dtls.h']]],
- ['dtls_5fht_5ffinished',['DTLS_HT_FINISHED',['../dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad',1,'dtls.h']]],
- ['dtls_5fht_5fhello_5frequest',['DTLS_HT_HELLO_REQUEST',['../dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc',1,'dtls.h']]],
- ['dtls_5fht_5fhello_5fverify_5frequest',['DTLS_HT_HELLO_VERIFY_REQUEST',['../dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fhello',['DTLS_HT_SERVER_HELLO',['../dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fhello_5fdone',['DTLS_HT_SERVER_HELLO_DONE',['../dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fkey_5fexchange',['DTLS_HT_SERVER_KEY_EXCHANGE',['../dtls_8h.html#aab327e17614cf2902c5fc6169466613f',1,'dtls.h']]],
- ['dtls_5fhv_5flength',['DTLS_HV_LENGTH',['../dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5',1,'dtls.c']]],
- ['dtls_5finfo',['dtls_info',['../debug_8h.html#afde5692e7a590b0dd016d5753284c175',1,'debug.h']]],
- ['dtls_5finit',['dtls_init',['../dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd',1,'dtls_init(): dtls.c'],['../dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd',1,'dtls_init(): dtls.c']]],
- ['dtls_5fint_5fto_5fuint16',['dtls_int_to_uint16',['../numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint24',['dtls_int_to_uint24',['../numeric_8h.html#aff276cdd846cd194a21e9c61549292f6',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint32',['dtls_int_to_uint32',['../numeric_8h.html#a6914ee523b27539f4e441bede8c072b4',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint48',['dtls_int_to_uint48',['../numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint64',['dtls_int_to_uint64',['../numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint8',['dtls_int_to_uint8',['../numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0',1,'numeric.h']]],
- ['dtls_5fiv_5flength',['DTLS_IV_LENGTH',['../crypto_8h.html#a8106002d0d69d8da810321c65ac71385',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fiv',['dtls_kb_client_iv',['../crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fmac_5fsecret',['dtls_kb_client_mac_secret',['../crypto_8h.html#a72899232c09d09b86326c6f234addc02',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fwrite_5fkey',['dtls_kb_client_write_key',['../crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305',1,'crypto.h']]],
- ['dtls_5fkb_5fdigest_5fsize',['dtls_kb_digest_size',['../crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758',1,'crypto.h']]],
- ['dtls_5fkb_5fiv_5fsize',['dtls_kb_iv_size',['../crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997',1,'crypto.h']]],
- ['dtls_5fkb_5fkey_5fsize',['dtls_kb_key_size',['../crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fiv',['dtls_kb_local_iv',['../crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fmac_5fsecret',['dtls_kb_local_mac_secret',['../crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fwrite_5fkey',['dtls_kb_local_write_key',['../crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36',1,'crypto.h']]],
- ['dtls_5fkb_5fmac_5fsecret_5fsize',['dtls_kb_mac_secret_size',['../crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fiv',['dtls_kb_remote_iv',['../crypto_8h.html#a7119d3239c34d7e7f219200792339541',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fmac_5fsecret',['dtls_kb_remote_mac_secret',['../crypto_8h.html#acf318c989f5bb90b863154abbc408b66',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fwrite_5fkey',['dtls_kb_remote_write_key',['../crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fiv',['dtls_kb_server_iv',['../crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fmac_5fsecret',['dtls_kb_server_mac_secret',['../crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fwrite_5fkey',['dtls_kb_server_write_key',['../crypto_8h.html#aea906786dcfa12acb320df731c8db7f6',1,'crypto.h']]],
- ['dtls_5fkb_5fsize',['dtls_kb_size',['../crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c',1,'crypto.h']]],
- ['dtls_5fkey_5flength',['DTLS_KEY_LENGTH',['../crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076',1,'crypto.h']]],
- ['dtls_5flog_5falert',['DTLS_LOG_ALERT',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e',1,'debug.h']]],
- ['dtls_5flog_5fcrit',['DTLS_LOG_CRIT',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d',1,'debug.h']]],
- ['dtls_5flog_5fdebug',['DTLS_LOG_DEBUG',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020',1,'debug.h']]],
- ['dtls_5flog_5femerg',['DTLS_LOG_EMERG',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e',1,'debug.h']]],
- ['dtls_5flog_5finfo',['DTLS_LOG_INFO',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7',1,'debug.h']]],
- ['dtls_5flog_5fnotice',['DTLS_LOG_NOTICE',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09',1,'debug.h']]],
- ['dtls_5flog_5fwarn',['DTLS_LOG_WARN',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70',1,'debug.h']]],
- ['dtls_5fmac',['dtls_mac',['../crypto_8c.html#a1423f8111df1533241178461c10b50e3',1,'dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf): crypto.c'],['../crypto_8h.html#a1423f8111df1533241178461c10b50e3',1,'dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf): crypto.c']]],
- ['dtls_5fmac_5fkey_5flength',['DTLS_MAC_KEY_LENGTH',['../crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a',1,'crypto.h']]],
- ['dtls_5fmac_5flength',['DTLS_MAC_LENGTH',['../crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe',1,'crypto.h']]],
- ['dtls_5fmalloc_5fpeer',['dtls_malloc_peer',['../peer_8c.html#a89738cd2081b322562b9893c524fb0e1',1,'peer.c']]],
- ['dtls_5fmaster_5fsecret_5flength',['DTLS_MASTER_SECRET_LENGTH',['../crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db',1,'crypto.h']]],
- ['dtls_5fmax_5fbuf',['DTLS_MAX_BUF',['../global_8h.html#acdbfba15eb1a5692e177d582b4ca1583',1,'global.h']]],
- ['dtls_5fnew_5fcontext',['dtls_new_context',['../dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c',1,'dtls_new_context(void *app_data): dtls.c'],['../dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c',1,'dtls_new_context(void *app_data): dtls.c']]],
- ['dtls_5fnew_5fpeer',['dtls_new_peer',['../peer_8c.html#a209e22be64be13e116711829d21d864c',1,'dtls_new_peer(const session_t *session): peer.c'],['../peer_8h.html#a209e22be64be13e116711829d21d864c',1,'dtls_new_peer(const session_t *session): peer.c']]],
- ['dtls_5fnotice',['dtls_notice',['../debug_8h.html#add9bf011215b9fc36abc5c80722c876e',1,'debug.h']]],
- ['dtls_5fp_5fhash',['dtls_p_hash',['../crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e',1,'dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c'],['../crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e',1,'dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c']]],
- ['dtls_5fpackage_5fname',['dtls_package_name',['../debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971',1,'dtls_package_name(): debug.c'],['../debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971',1,'dtls_package_name(): debug.c']]],
- ['dtls_5fpackage_5fversion',['dtls_package_version',['../debug_8c.html#aab7b9dac4484be50856ab8b8a827d235',1,'dtls_package_version(): debug.c'],['../debug_8h.html#aab7b9dac4484be50856ab8b8a827d235',1,'dtls_package_version(): debug.c']]],
- ['dtls_5fpeer_5fis_5fconnected',['dtls_peer_is_connected',['../peer_8h.html#aaad8608f29d9a70bf09b7de310185c48',1,'peer.h']]],
- ['dtls_5fpeer_5fstate',['dtls_peer_state',['../peer_8h.html#a64d83f0fe464f0eeb905b913345d0614',1,'peer.h']]],
- ['dtls_5fpeer_5ft',['dtls_peer_t',['../structdtls__peer__t.html',1,'dtls_peer_t'],['../peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055',1,'dtls_peer_t(): peer.h']]],
- ['dtls_5fpeer_5ftype',['dtls_peer_type',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8',1,'peer.h']]],
- ['dtls_5fprepare_5frecord',['dtls_prepare_record',['../dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5',1,'dtls.c']]],
- ['dtls_5fprf',['dtls_prf',['../crypto_8c.html#a5e47576e502b5a6255f1b489a4915512',1,'dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c'],['../crypto_8h.html#a5e47576e502b5a6255f1b489a4915512',1,'dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c']]],
- ['dtls_5fprng',['dtls_prng',['../group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c',1,'prng.h']]],
- ['dtls_5fprng_5finit',['dtls_prng_init',['../group__prng.html#gac68680277206146d06c9e5468f260ee0',1,'prng.h']]],
- ['dtls_5fpsk',['DTLS_PSK',['../dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf',1,'DTLS_PSK(): dtls_config.h'],['../tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf',1,'DTLS_PSK(): tinydtls.h']]],
- ['dtls_5fpsk_5fhint',['DTLS_PSK_HINT',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c',1,'dtls.h']]],
- ['dtls_5fpsk_5fidentity',['DTLS_PSK_IDENTITY',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2',1,'dtls.h']]],
- ['dtls_5fpsk_5fkey',['DTLS_PSK_KEY',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4',1,'dtls.h']]],
- ['dtls_5fpsk_5fmax_5fclient_5fidentity_5flen',['DTLS_PSK_MAX_CLIENT_IDENTITY_LEN',['../crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd',1,'crypto.h']]],
- ['dtls_5fpsk_5fmax_5fkey_5flen',['DTLS_PSK_MAX_KEY_LEN',['../crypto_8h.html#a59cd7c0b8724e1f9b910611623396080',1,'crypto.h']]],
- ['dtls_5fpsk_5fpre_5fmaster_5fsecret',['dtls_psk_pre_master_secret',['../crypto_8c.html#aa53dfed4868e257d2485024b5c170bae',1,'dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len): crypto.c'],['../crypto_8h.html#aa53dfed4868e257d2485024b5c170bae',1,'dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len): crypto.c']]],
- ['dtls_5frandom_5flength',['DTLS_RANDOM_LENGTH',['../crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0',1,'crypto.h']]],
- ['dtls_5frecord_5fheader',['DTLS_RECORD_HEADER',['../dtls_8c.html#a35d050593196252c1826ac2e82cbac0b',1,'dtls.c']]],
- ['dtls_5frecord_5fheader_5ft',['dtls_record_header_t',['../dtls_8h.html#a81936df7abb2c16aa897e3018aa24399',1,'dtls.h']]],
- ['dtls_5frenegotiate',['dtls_renegotiate',['../dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1',1,'dtls_renegotiate(dtls_context_t *ctx, const session_t *dst): dtls.c'],['../dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1',1,'dtls_renegotiate(dtls_context_t *ctx, const session_t *dst): dtls.c']]],
- ['dtls_5fretransmit',['dtls_retransmit',['../dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb',1,'dtls.c']]],
- ['dtls_5frh_5flength',['DTLS_RH_LENGTH',['../dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f',1,'dtls.c']]],
- ['dtls_5fsecurity_5fdealloc',['dtls_security_dealloc',['../crypto_8c.html#a444e2410b15ce27c6201204476d20497',1,'crypto.c']]],
- ['dtls_5fsecurity_5ffree',['dtls_security_free',['../crypto_8c.html#ad54069f2880b3c07185ebba736d02d17',1,'dtls_security_free(dtls_security_parameters_t *security): crypto.c'],['../crypto_8h.html#ad54069f2880b3c07185ebba736d02d17',1,'dtls_security_free(dtls_security_parameters_t *security): crypto.c']]],
- ['dtls_5fsecurity_5fmalloc',['dtls_security_malloc',['../crypto_8c.html#aa58fc0b3953c6048834855a364432d8c',1,'crypto.c']]],
- ['dtls_5fsecurity_5fnew',['dtls_security_new',['../crypto_8c.html#a1d568085636a04b4706b7e50df802a7b',1,'dtls_security_new(): crypto.c'],['../crypto_8h.html#a1d568085636a04b4706b7e50df802a7b',1,'dtls_security_new(): crypto.c']]],
- ['dtls_5fsecurity_5fparameters_5ft',['dtls_security_parameters_t',['../structdtls__security__parameters__t.html',1,'']]],
- ['dtls_5fsecurity_5fparams',['dtls_security_params',['../peer_8h.html#a48abcad7383e1db957af9b4fed030d52',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fepoch',['dtls_security_params_epoch',['../peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5ffree_5fother',['dtls_security_params_free_other',['../peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fnext',['dtls_security_params_next',['../peer_8h.html#ab6e209f206f570eed246530ec7960943',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fswitch',['dtls_security_params_switch',['../peer_8h.html#a9c37ce3fd7539154289dd17215179e2d',1,'peer.h']]],
- ['dtls_5fsend',['dtls_send',['../dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6',1,'dtls.c']]],
- ['dtls_5fsend_5falert',['dtls_send_alert',['../dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641',1,'dtls.c']]],
- ['dtls_5fsend_5fccs',['dtls_send_ccs',['../dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5',1,'dtls.c']]],
- ['dtls_5fsend_5fcertificate_5fecdsa',['dtls_send_certificate_ecdsa',['../dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220',1,'dtls.c']]],
- ['dtls_5fsend_5fcertificate_5fverify_5fecdh',['dtls_send_certificate_verify_ecdh',['../dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34',1,'dtls.c']]],
- ['dtls_5fsend_5fclient_5fhello',['dtls_send_client_hello',['../dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476',1,'dtls.c']]],
- ['dtls_5fsend_5fclient_5fkey_5fexchange',['dtls_send_client_key_exchange',['../dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d',1,'dtls.c']]],
- ['dtls_5fsend_5ffinished',['dtls_send_finished',['../dtls_8c.html#a112e0d83a0e576b5d22df60241900a67',1,'dtls.c']]],
- ['dtls_5fsend_5fhandshake_5fmsg',['dtls_send_handshake_msg',['../dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b',1,'dtls.c']]],
- ['dtls_5fsend_5fhandshake_5fmsg_5fhash',['dtls_send_handshake_msg_hash',['../dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880',1,'dtls.c']]],
- ['dtls_5fsend_5fhello_5frequest',['dtls_send_hello_request',['../dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad',1,'dtls.c']]],
- ['dtls_5fsend_5fmulti',['dtls_send_multi',['../dtls_8c.html#aa89745c0af073102c9c350d28a84214d',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fcertificate_5frequest',['dtls_send_server_certificate_request',['../dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello',['dtls_send_server_hello',['../dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello_5fdone',['dtls_send_server_hello_done',['../dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello_5fmsgs',['dtls_send_server_hello_msgs',['../dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fkey_5fexchange_5fecdh',['dtls_send_server_key_exchange_ecdh',['../dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fkey_5fexchange_5fpsk',['dtls_send_server_key_exchange_psk',['../dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3',1,'dtls.c']]],
- ['dtls_5fserver',['DTLS_SERVER',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255',1,'peer.h']]],
- ['dtls_5fsession_5fequals',['dtls_session_equals',['../session_8c.html#a96f4d60f388d56d37b3e69261bea2417',1,'dtls_session_equals(const session_t *a, const session_t *b): session.c'],['../session_8h.html#a96f4d60f388d56d37b3e69261bea2417',1,'dtls_session_equals(const session_t *a, const session_t *b): session.c']]],
- ['dtls_5fsession_5finit',['dtls_session_init',['../session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501',1,'dtls_session_init(session_t *sess): session.c'],['../session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501',1,'dtls_session_init(session_t *sess): session.c']]],
- ['dtls_5fset_5fapp_5fdata',['dtls_set_app_data',['../dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e',1,'dtls.h']]],
- ['dtls_5fset_5fcontent_5ftype',['dtls_set_content_type',['../dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365',1,'dtls.c']]],
- ['dtls_5fset_5fhandler',['dtls_set_handler',['../dtls_8h.html#ab0e3223c87b79e4946b19538b24634da',1,'dtls.h']]],
- ['dtls_5fset_5fhandshake_5fheader',['dtls_set_handshake_header',['../dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1',1,'dtls.c']]],
- ['dtls_5fset_5flength',['dtls_set_length',['../dtls_8c.html#a9f723101896941fa44ea701c4dfd3591',1,'dtls.c']]],
- ['dtls_5fset_5flog_5flevel',['dtls_set_log_level',['../debug_8c.html#ae081a7241940f0195295cc37f39c1d02',1,'dtls_set_log_level(log_t level): debug.c'],['../debug_8h.html#ae081a7241940f0195295cc37f39c1d02',1,'dtls_set_log_level(log_t level): debug.c']]],
- ['dtls_5fset_5frecord_5fheader',['dtls_set_record_header',['../dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808',1,'dtls.c']]],
- ['dtls_5fset_5fversion',['dtls_set_version',['../dtls_8c.html#aebefc949b2298e7de7b95b715874d407',1,'dtls.c']]],
- ['dtls_5fsh_5flength',['DTLS_SH_LENGTH',['../dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676',1,'dtls.c']]],
- ['dtls_5fskexec_5flength',['DTLS_SKEXEC_LENGTH',['../dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843',1,'dtls.c']]],
- ['dtls_5fskexecpsk_5flength_5fmax',['DTLS_SKEXECPSK_LENGTH_MAX',['../dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d',1,'dtls.c']]],
- ['dtls_5fskexecpsk_5flength_5fmin',['DTLS_SKEXECPSK_LENGTH_MIN',['../dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d',1,'dtls.c']]],
- ['dtls_5fstate_5fclienthello',['DTLS_STATE_CLIENTHELLO',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53',1,'state.h']]],
- ['dtls_5fstate_5fclosed',['DTLS_STATE_CLOSED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553',1,'state.h']]],
- ['dtls_5fstate_5fclosing',['DTLS_STATE_CLOSING',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b',1,'state.h']]],
- ['dtls_5fstate_5fconnected',['DTLS_STATE_CONNECTED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122',1,'state.h']]],
- ['dtls_5fstate_5ffinished',['DTLS_STATE_FINISHED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b',1,'state.h']]],
- ['dtls_5fstate_5finit',['DTLS_STATE_INIT',['../state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8',1,'state.h']]],
- ['dtls_5fstate_5ft',['dtls_state_t',['../state_8h.html#aea0e57fd5b857535960534b53361aa35',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fcertificateverify',['DTLS_STATE_WAIT_CERTIFICATEVERIFY',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fchangecipherspec',['DTLS_STATE_WAIT_CHANGECIPHERSPEC',['../state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclientcertificate',['DTLS_STATE_WAIT_CLIENTCERTIFICATE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclienthello',['DTLS_STATE_WAIT_CLIENTHELLO',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclientkeyexchange',['DTLS_STATE_WAIT_CLIENTKEYEXCHANGE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05',1,'state.h']]],
- ['dtls_5fstate_5fwait_5ffinished',['DTLS_STATE_WAIT_FINISHED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fservercertificate',['DTLS_STATE_WAIT_SERVERCERTIFICATE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fserverhellodone',['DTLS_STATE_WAIT_SERVERHELLODONE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fserverkeyexchange',['DTLS_STATE_WAIT_SERVERKEYEXCHANGE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330',1,'state.h']]],
- ['dtls_5fstop_5fretransmission',['dtls_stop_retransmission',['../dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5',1,'dtls.c']]],
- ['dtls_5fstrnlen',['dtls_strnlen',['../debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa',1,'debug.c']]],
- ['dtls_5ftick_5ft',['dtls_tick_t',['../group__clock.html#gaded617551180951f4841969e396a8012',1,'dtls_time.h']]],
- ['dtls_5fticks',['dtls_ticks',['../group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304',1,'dtls_ticks(dtls_tick_t *t): dtls_time.c'],['../group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304',1,'dtls_ticks(dtls_tick_t *t): dtls_time.c']]],
- ['dtls_5fticks_5fper_5fsecond',['DTLS_TICKS_PER_SECOND',['../group__clock.html#gae8610d63d209a8bf7858afc427db6168',1,'dtls_time.h']]],
- ['dtls_5ftime_2ec',['dtls_time.c',['../dtls__time_8c.html',1,'']]],
- ['dtls_5ftime_2eh',['dtls_time.h',['../dtls__time_8h.html',1,'']]],
- ['dtls_5fuint16_5fto_5fint',['dtls_uint16_to_int',['../numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f',1,'numeric.h']]],
- ['dtls_5fuint24_5fto_5fint',['dtls_uint24_to_int',['../numeric_8h.html#a238931e9197ce422acfba569deb2af71',1,'numeric.h']]],
- ['dtls_5fuint32_5fto_5fint',['dtls_uint32_to_int',['../numeric_8h.html#a91f840f763f90c6d88a267011edf86d0',1,'numeric.h']]],
- ['dtls_5fuint48_5fto_5fint',['dtls_uint48_to_int',['../numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af',1,'numeric.h']]],
- ['dtls_5fuint64_5fto_5fint',['dtls_uint64_to_int',['../numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae',1,'numeric.h']]],
- ['dtls_5fuint8_5fto_5fint',['dtls_uint8_to_int',['../numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f',1,'numeric.h']]],
- ['dtls_5fupdate_5fparameters',['dtls_update_parameters',['../dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d',1,'dtls.c']]],
- ['dtls_20usage',['DTLS Usage',['../group__dtls__usage.html',1,'']]],
- ['dtls_5fverify_5fpeer',['dtls_verify_peer',['../dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f',1,'dtls.c']]],
- ['dtls_5fversion',['DTLS_VERSION',['../dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6',1,'dtls.h']]],
- ['dtls_5fwarn',['dtls_warn',['../debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c',1,'debug.h']]],
- ['dtls_5fwrite',['dtls_write',['../dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2',1,'dtls_write(struct dtls_context_t *ctx, session_t *dst, uint8 *buf, size_t len): dtls.c'],['../dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928',1,'dtls_write(struct dtls_context_t *ctx, session_t *session, uint8 *buf, size_t len): dtls.c']]],
- ['dtlsv12',['DTLSv12',['../global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0',1,'global.h']]],
- ['dump',['dump',['../debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240',1,'dump(unsigned char *buf, size_t len): debug.c'],['../debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240',1,'dump(unsigned char *buf, size_t len): debug.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['elmt_5ffrom_5fhh',['ELMT_FROM_HH',['../uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186',1,'uthash.h']]],
- ['encrypt',['encrypt',['../ccm_8c.html#a983462ca57ee8fe54249c77281f6559e',1,'ccm.c']]],
- ['epoch',['epoch',['../structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da',1,'dtls_security_parameters_t::epoch()'],['../structnetq__t.html#a9998944e43a39a2e5700156876a312e0',1,'netq_t::epoch()']]],
- ['equals',['equals',['../global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef',1,'global.h']]],
- ['event',['event',['../structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59',1,'dtls_handler_t']]],
- ['expand_5fmult',['expand_mult',['../structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b',1,'UT_hash_bucket']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['finalize_5fhs_5fhash',['finalize_hs_hash',['../dtls_8c.html#adb41bf916dc34af5cd79003a9243b727',1,'dtls.c']]],
- ['free_5fcontext',['free_context',['../dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['get16bits',['get16bits',['../uthash_8h.html#abc7d71657be8975a51684e41029b7964',1,'uthash.h']]],
- ['global_2eh',['global.h',['../global_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['h',['h',['../structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd',1,'dtls_context_t']]],
- ['handle_5falert',['handle_alert',['../dtls_8c.html#a445994c602b105608f277c6fc066301d',1,'dtls.c']]],
- ['handle_5fccs',['handle_ccs',['../dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664',1,'dtls.c']]],
- ['handle_5fhandshake',['handle_handshake',['../dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d',1,'dtls.c']]],
- ['handle_5fhandshake_5fmsg',['handle_handshake_msg',['../dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d',1,'dtls.c']]],
- ['handshake',['HANDSHAKE',['../dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4',1,'dtls.c']]],
- ['handshake_5fparams',['handshake_params',['../structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992',1,'dtls_peer_t']]],
- ['hash_5fadd',['HASH_ADD',['../uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399',1,'uthash.h']]],
- ['hash_5fadd_5fint',['HASH_ADD_INT',['../uthash_8h.html#acf85835471af894e354efb7e346698f3',1,'uthash.h']]],
- ['hash_5fadd_5fkeyptr',['HASH_ADD_KEYPTR',['../uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26',1,'uthash.h']]],
- ['hash_5fadd_5fpeer',['HASH_ADD_PEER',['../dtls_8c.html#acf0d50c9f224c0677988f13e947e9523',1,'dtls.c']]],
- ['hash_5fadd_5fptr',['HASH_ADD_PTR',['../uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823',1,'uthash.h']]],
- ['hash_5fadd_5fstr',['HASH_ADD_STR',['../uthash_8h.html#a9724951736f3985f74df17638c8a7885',1,'uthash.h']]],
- ['hash_5fadd_5fto_5fbkt',['HASH_ADD_TO_BKT',['../uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348',1,'uthash.h']]],
- ['hash_5fber',['HASH_BER',['../uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e',1,'uthash.h']]],
- ['hash_5fbkt_5fcapacity_5fthresh',['HASH_BKT_CAPACITY_THRESH',['../uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f',1,'uthash.h']]],
- ['hash_5fbloom_5fadd',['HASH_BLOOM_ADD',['../uthash_8h.html#acaad947212056cd8bfe3d660265fb2db',1,'uthash.h']]],
- ['hash_5fbloom_5ffree',['HASH_BLOOM_FREE',['../uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a',1,'uthash.h']]],
- ['hash_5fbloom_5fmake',['HASH_BLOOM_MAKE',['../uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8',1,'uthash.h']]],
- ['hash_5fbloom_5fsignature',['HASH_BLOOM_SIGNATURE',['../uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6',1,'uthash.h']]],
- ['hash_5fbloom_5ftest',['HASH_BLOOM_TEST',['../uthash_8h.html#a06bfbf880899d54da35487d0d39c1009',1,'uthash.h']]],
- ['hash_5fclear',['HASH_CLEAR',['../uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23',1,'uthash.h']]],
- ['hash_5fcnt',['HASH_CNT',['../uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd',1,'uthash.h']]],
- ['hash_5fcount',['HASH_COUNT',['../uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f',1,'uthash.h']]],
- ['hash_5fdel',['HASH_DEL',['../uthash_8h.html#a48b7ed374602dcb236501aa23a971f05',1,'uthash.h']]],
- ['hash_5fdel_5fin_5fbkt',['HASH_DEL_IN_BKT',['../uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78',1,'uthash.h']]],
- ['hash_5fdel_5fpeer',['HASH_DEL_PEER',['../dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0',1,'dtls.c']]],
- ['hash_5fdelete',['HASH_DELETE',['../uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980',1,'uthash.h']]],
- ['hash_5femit_5fkey',['HASH_EMIT_KEY',['../uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15',1,'uthash.h']]],
- ['hash_5fexpand_5fbuckets',['HASH_EXPAND_BUCKETS',['../uthash_8h.html#a6439fd6271474e61b1840fbf83132f03',1,'uthash.h']]],
- ['hash_5ffcn',['HASH_FCN',['../uthash_8h.html#abd3356419b386c379116393700a751d3',1,'uthash.h']]],
- ['hash_5ffind',['HASH_FIND',['../uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf',1,'uthash.h']]],
- ['hash_5ffind_5fin_5fbkt',['HASH_FIND_IN_BKT',['../uthash_8h.html#a42ae87cc63106a82601808f19329502c',1,'uthash.h']]],
- ['hash_5ffind_5fint',['HASH_FIND_INT',['../uthash_8h.html#aadcb19b940348f3141bd51505ede0142',1,'uthash.h']]],
- ['hash_5ffind_5fpeer',['HASH_FIND_PEER',['../dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6',1,'dtls.c']]],
- ['hash_5ffind_5fptr',['HASH_FIND_PTR',['../uthash_8h.html#a26a887f8e31952034becac0cf446f6c3',1,'uthash.h']]],
- ['hash_5ffind_5fstr',['HASH_FIND_STR',['../uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84',1,'uthash.h']]],
- ['hash_5ffnv',['HASH_FNV',['../uthash_8h.html#ac99f9a353421537527a80b392089dd9d',1,'uthash.h']]],
- ['hash_5ffsck',['HASH_FSCK',['../uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759',1,'uthash.h']]],
- ['hash_5finitial_5fnum_5fbuckets',['HASH_INITIAL_NUM_BUCKETS',['../uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0',1,'uthash.h']]],
- ['hash_5finitial_5fnum_5fbuckets_5flog2',['HASH_INITIAL_NUM_BUCKETS_LOG2',['../uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c',1,'uthash.h']]],
- ['hash_5fiter',['HASH_ITER',['../uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6',1,'uthash.h']]],
- ['hash_5fjen',['HASH_JEN',['../uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e',1,'uthash.h']]],
- ['hash_5fjen_5fmix',['HASH_JEN_MIX',['../uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5',1,'uthash.h']]],
- ['hash_5fkeycmp',['HASH_KEYCMP',['../uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095',1,'uthash.h']]],
- ['hash_5fmake_5ftable',['HASH_MAKE_TABLE',['../uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5',1,'uthash.h']]],
- ['hash_5fmd5',['HASH_MD5',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab',1,'hmac.h']]],
- ['hash_5fnone',['HASH_NONE',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018',1,'hmac.h']]],
- ['hash_5foat',['HASH_OAT',['../uthash_8h.html#abc7040b698211c1993441fb4165fa0b4',1,'uthash.h']]],
- ['hash_5fsax',['HASH_SAX',['../uthash_8h.html#aa4cb140b45415e7bf57237525388af79',1,'uthash.h']]],
- ['hash_5fselect',['HASH_SELECT',['../uthash_8h.html#ad190366f7a476ece79bd628240a5fc93',1,'uthash.h']]],
- ['hash_5fsfh',['HASH_SFH',['../uthash_8h.html#ab595698a74642684dace0dfa47dab445',1,'uthash.h']]],
- ['hash_5fsha1',['HASH_SHA1',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03',1,'hmac.h']]],
- ['hash_5fsha224',['HASH_SHA224',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5',1,'hmac.h']]],
- ['hash_5fsha256',['HASH_SHA256',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3',1,'hmac.h']]],
- ['hash_5fsha384',['HASH_SHA384',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970',1,'hmac.h']]],
- ['hash_5fsha512',['HASH_SHA512',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66',1,'hmac.h']]],
- ['hash_5fsignature',['HASH_SIGNATURE',['../uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2',1,'uthash.h']]],
- ['hash_5fsort',['HASH_SORT',['../uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15',1,'uthash.h']]],
- ['hash_5fsrt',['HASH_SRT',['../uthash_8h.html#a388b4071dcff005154f431d3d3025fbd',1,'uthash.h']]],
- ['hash_5fto_5fbkt',['HASH_TO_BKT',['../uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113',1,'uthash.h']]],
- ['hashv',['hashv',['../structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323',1,'UT_hash_handle']]],
- ['have_5farpa_5finet_5fh',['HAVE_ARPA_INET_H',['../config_8h.html#a7d1a71461e07569d0c9003da24c30a59',1,'HAVE_ARPA_INET_H(): config.h'],['../dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59',1,'HAVE_ARPA_INET_H(): dtls_config.h']]],
- ['have_5fassert_5fh',['HAVE_ASSERT_H',['../config_8h.html#ad0eabe2e5407bc73450eb15b657983cd',1,'HAVE_ASSERT_H(): config.h'],['../dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd',1,'HAVE_ASSERT_H(): dtls_config.h']]],
- ['have_5ffcntl_5fh',['HAVE_FCNTL_H',['../config_8h.html#a765d75020849aa0a9b6becd9a5b7a193',1,'HAVE_FCNTL_H(): config.h'],['../dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193',1,'HAVE_FCNTL_H(): dtls_config.h']]],
- ['have_5finttypes_5fh',['HAVE_INTTYPES_H',['../config_8h.html#ab90a030ff2790ebdc176660a6dd2a478',1,'HAVE_INTTYPES_H(): config.h'],['../dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478',1,'HAVE_INTTYPES_H(): dtls_config.h']]],
- ['have_5fmalloc',['HAVE_MALLOC',['../config_8h.html#a14503280ca0cb757db915eea09282bfc',1,'HAVE_MALLOC(): config.h'],['../dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc',1,'HAVE_MALLOC(): dtls_config.h']]],
- ['have_5fmemory_5fh',['HAVE_MEMORY_H',['../config_8h.html#ae93a78f9d076138897af441c9f86f285',1,'HAVE_MEMORY_H(): config.h'],['../dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285',1,'HAVE_MEMORY_H(): dtls_config.h']]],
- ['have_5fmemset',['HAVE_MEMSET',['../config_8h.html#a3df52e9809253860c385be6f3a160607',1,'HAVE_MEMSET(): config.h'],['../dtls__config_8h.html#a3df52e9809253860c385be6f3a160607',1,'HAVE_MEMSET(): dtls_config.h']]],
- ['have_5fnetdb_5fh',['HAVE_NETDB_H',['../config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e',1,'HAVE_NETDB_H(): config.h'],['../dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e',1,'HAVE_NETDB_H(): dtls_config.h']]],
- ['have_5fnetinet_5fin_5fh',['HAVE_NETINET_IN_H',['../config_8h.html#a0938658b988a082864efcee2d1b2bfd2',1,'HAVE_NETINET_IN_H(): config.h'],['../dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2',1,'HAVE_NETINET_IN_H(): dtls_config.h']]],
- ['have_5fselect',['HAVE_SELECT',['../config_8h.html#aee3a7313d861afa18971031528fd0cd5',1,'HAVE_SELECT(): config.h'],['../dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5',1,'HAVE_SELECT(): dtls_config.h']]],
- ['have_5fsocket',['HAVE_SOCKET',['../config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280',1,'HAVE_SOCKET(): config.h'],['../dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280',1,'HAVE_SOCKET(): dtls_config.h']]],
- ['have_5fstddef_5fh',['HAVE_STDDEF_H',['../config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff',1,'HAVE_STDDEF_H(): config.h'],['../dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff',1,'HAVE_STDDEF_H(): dtls_config.h']]],
- ['have_5fstdint_5fh',['HAVE_STDINT_H',['../config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354',1,'HAVE_STDINT_H(): config.h'],['../dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354',1,'HAVE_STDINT_H(): dtls_config.h']]],
- ['have_5fstdlib_5fh',['HAVE_STDLIB_H',['../config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0',1,'HAVE_STDLIB_H(): config.h'],['../dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0',1,'HAVE_STDLIB_H(): dtls_config.h']]],
- ['have_5fstrdup',['HAVE_STRDUP',['../config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f',1,'HAVE_STRDUP(): config.h'],['../dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f',1,'HAVE_STRDUP(): dtls_config.h']]],
- ['have_5fstrerror',['HAVE_STRERROR',['../config_8h.html#a992653625041edef146772df96f7bca9',1,'HAVE_STRERROR(): config.h'],['../dtls__config_8h.html#a992653625041edef146772df96f7bca9',1,'HAVE_STRERROR(): dtls_config.h']]],
- ['have_5fstring_5fh',['HAVE_STRING_H',['../config_8h.html#ad4c234dd1625255dc626a15886306e7d',1,'HAVE_STRING_H(): config.h'],['../dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d',1,'HAVE_STRING_H(): dtls_config.h']]],
- ['have_5fstrings_5fh',['HAVE_STRINGS_H',['../config_8h.html#a405d10d46190bcb0320524c54eafc850',1,'HAVE_STRINGS_H(): config.h'],['../dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850',1,'HAVE_STRINGS_H(): dtls_config.h']]],
- ['have_5fstrnlen',['HAVE_STRNLEN',['../config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74',1,'HAVE_STRNLEN(): config.h'],['../dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74',1,'HAVE_STRNLEN(): dtls_config.h']]],
- ['have_5fsys_5fparam_5fh',['HAVE_SYS_PARAM_H',['../config_8h.html#a05aa9fc25e1231d8eb347390558e4e22',1,'HAVE_SYS_PARAM_H(): config.h'],['../dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22',1,'HAVE_SYS_PARAM_H(): dtls_config.h']]],
- ['have_5fsys_5fsocket_5fh',['HAVE_SYS_SOCKET_H',['../config_8h.html#afb96c2bc08ebf33cca68c714f624a58d',1,'HAVE_SYS_SOCKET_H(): config.h'],['../dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d',1,'HAVE_SYS_SOCKET_H(): dtls_config.h']]],
- ['have_5fsys_5fstat_5fh',['HAVE_SYS_STAT_H',['../config_8h.html#ace156430ba007d19b4348a950d0c692b',1,'HAVE_SYS_STAT_H(): config.h'],['../dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b',1,'HAVE_SYS_STAT_H(): dtls_config.h']]],
- ['have_5fsys_5ftime_5fh',['HAVE_SYS_TIME_H',['../config_8h.html#a2aae46056558e9d6fef6380f9678ffe3',1,'HAVE_SYS_TIME_H(): config.h'],['../dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3',1,'HAVE_SYS_TIME_H(): dtls_config.h']]],
- ['have_5fsys_5ftypes_5fh',['HAVE_SYS_TYPES_H',['../config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666',1,'HAVE_SYS_TYPES_H(): config.h'],['../dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666',1,'HAVE_SYS_TYPES_H(): dtls_config.h']]],
- ['have_5ftime_5fh',['HAVE_TIME_H',['../config_8h.html#a2397007ae170bf57faa808bacaaa2499',1,'HAVE_TIME_H(): config.h'],['../dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499',1,'HAVE_TIME_H(): dtls_config.h']]],
- ['have_5funistd_5fh',['HAVE_UNISTD_H',['../config_8h.html#a219b06937831d0da94d801ab13987639',1,'HAVE_UNISTD_H(): config.h'],['../dtls__config_8h.html#a219b06937831d0da94d801ab13987639',1,'HAVE_UNISTD_H(): dtls_config.h']]],
- ['have_5fvprintf',['HAVE_VPRINTF',['../config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7',1,'HAVE_VPRINTF(): config.h'],['../dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7',1,'HAVE_VPRINTF(): dtls_config.h']]],
- ['hexdump',['hexdump',['../debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0',1,'hexdump(const unsigned char *packet, int length): debug.c'],['../debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0',1,'hexdump(const unsigned char *packet, int length): debug.c']]],
- ['hh',['hh',['../structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5',1,'dtls_peer_t']]],
- ['hh_5fhead',['hh_head',['../structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf',1,'UT_hash_bucket']]],
- ['hh_5fnext',['hh_next',['../structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325',1,'UT_hash_handle']]],
- ['hh_5fprev',['hh_prev',['../structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2',1,'UT_hash_handle']]],
- ['hho',['hho',['../structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6',1,'UT_hash_table']]],
- ['high',['HIGH',['../dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d',1,'dtls.c']]],
- ['hmac_2ec',['hmac.c',['../hmac_8c.html',1,'']]],
- ['hmac_2eh',['hmac.h',['../hmac_8h.html',1,'']]],
- ['hmac_5fupdate_5fseed',['HMAC_UPDATE_SEED',['../crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a',1,'crypto.c']]],
- ['hs_5fhash',['hs_hash',['../structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1',1,'dtls_hs_state_t']]],
- ['hs_5fhdr_5flength',['HS_HDR_LENGTH',['../dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087',1,'dtls.c']]],
- ['hs_5fstate',['hs_state',['../structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027',1,'dtls_handshake_parameters_t']]],
- ['hv_5fhdr_5flength',['HV_HDR_LENGTH',['../dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['id_5flength',['id_length',['../structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b',1,'dtls_handshake_parameters_psk_t']]],
- ['ideal_5fchain_5fmaxlen',['ideal_chain_maxlen',['../structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad',1,'UT_hash_table']]],
- ['identity',['identity',['../structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084',1,'dtls_handshake_parameters_psk_t']]],
- ['ifindex',['ifindex',['../structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff',1,'session_t']]],
- ['ineff_5fexpands',['ineff_expands',['../structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7',1,'UT_hash_table']]],
- ['is_5fecdsa_5fclient_5fauth_5fsupported',['is_ecdsa_client_auth_supported',['../dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa',1,'dtls.c']]],
- ['is_5fecdsa_5fsupported',['is_ecdsa_supported',['../dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21',1,'dtls.c']]],
- ['is_5fpsk_5fsupported',['is_psk_supported',['../dtls_8c.html#a3bbccb275cb23e84c0a148a157955770',1,'dtls.c']]],
- ['is_5frecord',['is_record',['../dtls_8c.html#aaafa285eb634873480c0ff429edd8064',1,'dtls.c']]],
- ['is_5ftls_5fecdhe_5fecdsa_5fwith_5faes_5f128_5fccm_5f8',['is_tls_ecdhe_ecdsa_with_aes_128_ccm_8',['../dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212',1,'dtls.c']]],
- ['is_5ftls_5fpsk_5fwith_5faes_5f128_5fccm_5f8',['is_tls_psk_with_aes_128_ccm_8',['../dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['keyed_2dhash_20message_20authentication_20code_20_28hmac_29',['Keyed-Hash Message Authentication Code (HMAC)',['../group__HMAC.html',1,'']]],
- ['key',['key',['../structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d',1,'UT_hash_handle']]],
- ['key_5fblock',['key_block',['../structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d',1,'dtls_security_parameters_t']]],
- ['keylen',['keylen',['../structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4',1,'UT_hash_handle']]],
- ['keyx',['keyx',['../structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f',1,'dtls_handshake_parameters_t']]],
- ['known_5fcipher',['known_cipher',['../dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['ldecltype',['LDECLTYPE',['../utlist_8h.html#ae8c9864192170d02fd996abaa1589611',1,'utlist.h']]],
- ['length',['length',['../structnetq__t.html#ac72c9378282becab5a273f612f58c124',1,'netq_t']]],
- ['list',['list',['../structlist.html',1,'']]],
- ['list_5fadd',['list_add',['../t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120',1,'t_list.h']]],
- ['list_5fconcat',['LIST_CONCAT',['../t__list_8h.html#ad8951367826c57390a9f9892e0fc2659',1,'t_list.h']]],
- ['list_5fhead',['list_head',['../t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d',1,'t_list.h']]],
- ['list_5finsert',['list_insert',['../t__list_8h.html#a0d4152f6de47bfefa600867056bc3355',1,'t_list.h']]],
- ['list_5fitem_5fnext',['list_item_next',['../t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b',1,'t_list.h']]],
- ['list_5fpop',['list_pop',['../t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56',1,'t_list.h']]],
- ['list_5fpush',['list_push',['../t__list_8h.html#ab1521a806c1775e743ddefede17673fd',1,'t_list.h']]],
- ['list_5fremove',['list_remove',['../t__list_8h.html#a10de2120be61f445c5989c983c1e133b',1,'t_list.h']]],
- ['list_5fstruct',['LIST_STRUCT',['../structdtls__handshake__parameters__t.html#a44c54027bff617597d51f4fc862a1dc4',1,'dtls_handshake_parameters_t::LIST_STRUCT()'],['../structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af',1,'dtls_context_t::LIST_STRUCT()'],['../t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79',1,'LIST_STRUCT(): t_list.h']]],
- ['list_5fstruct_5finit',['LIST_STRUCT_INIT',['../t__list_8h.html#adcb86fe4485a0f8ea79541117641f730',1,'t_list.h']]],
- ['list_5ft',['list_t',['../t__list_8h.html#a9c248916bae1f0b13732686786be7108',1,'t_list.h']]],
- ['ll_5fappend',['LL_APPEND',['../utlist_8h.html#ace33c571c3df78e721a99a4494983855',1,'utlist.h']]],
- ['ll_5fappend_5fvs2008',['LL_APPEND_VS2008',['../utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3',1,'utlist.h']]],
- ['ll_5fdelete',['LL_DELETE',['../utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e',1,'utlist.h']]],
- ['ll_5fdelete_5fvs2008',['LL_DELETE_VS2008',['../utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf',1,'utlist.h']]],
- ['ll_5fforeach',['LL_FOREACH',['../utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb',1,'utlist.h']]],
- ['ll_5fforeach_5fsafe',['LL_FOREACH_SAFE',['../utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef',1,'utlist.h']]],
- ['ll_5fprepend',['LL_PREPEND',['../utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4',1,'utlist.h']]],
- ['ll_5fsearch',['LL_SEARCH',['../utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb',1,'utlist.h']]],
- ['ll_5fsearch_5fscalar',['LL_SEARCH_SCALAR',['../utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed',1,'utlist.h']]],
- ['ll_5fsort',['LL_SORT',['../utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31',1,'utlist.h']]],
- ['log2_5fnum_5fbuckets',['log2_num_buckets',['../structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f',1,'UT_hash_table']]],
- ['log_5ft',['log_t',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d',1,'debug.h']]],
- ['loglevels',['loglevels',['../debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92',1,'debug.c']]],
- ['low',['LOW',['../dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_c.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['mac',['mac',['../ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5',1,'ccm.c']]],
- ['malloc_5fcontext',['malloc_context',['../dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a',1,'dtls.c']]],
- ['mask_5fl',['MASK_L',['../ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f',1,'ccm.c']]],
- ['master_5fsecret',['master_secret',['../structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898',1,'dtls_handshake_parameters_t']]],
- ['max',['max',['../numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4',1,'numeric.h']]],
- ['max_5fkeyblock_5flength',['MAX_KEYBLOCK_LENGTH',['../crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f',1,'crypto.h']]],
- ['maxlog',['maxlog',['../debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d',1,'debug.c']]],
- ['memxor',['memxor',['../global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5',1,'global.h']]],
- ['min',['min',['../debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): debug.c'],['../numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11',1,'min(): numeric.h']]],
- ['mseq_5fr',['mseq_r',['../structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542',1,'dtls_hs_state_t']]],
- ['mseq_5fs',['mseq_s',['../structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32',1,'dtls_hs_state_t']]],
- ['must_5fhash',['MUST_HASH',['../dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f',1,'dtls.c']]],
- ['mycookie',['mycookie',['../dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_d.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['network_20packet_20queue',['Network Packet Queue',['../group__netq.html',1,'']]],
- ['netq_2ec',['netq.c',['../netq_8c.html',1,'']]],
- ['netq_2eh',['netq.h',['../netq_8h.html',1,'']]],
- ['netq_5fdelete_5fall',['netq_delete_all',['../group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2',1,'netq_delete_all(list_t queue): netq.c'],['../group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2',1,'netq_delete_all(list_t queue): netq.c']]],
- ['netq_5ffree_5fnode',['netq_free_node',['../netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3',1,'netq.c']]],
- ['netq_5fhead',['netq_head',['../group__netq.html#gac769de2e30bcf2c2db89ff10822219d4',1,'netq_head(list_t queue): netq.c'],['../group__netq.html#gac769de2e30bcf2c2db89ff10822219d4',1,'netq_head(list_t queue): netq.c']]],
- ['netq_5finit',['netq_init',['../group__netq.html#ga9eba9e66570dcdfc933c6cf843694444',1,'netq.h']]],
- ['netq_5finsert_5fnode',['netq_insert_node',['../group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b',1,'netq_insert_node(list_t queue, netq_t *node): netq.c'],['../group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b',1,'netq_insert_node(list_t queue, netq_t *node): netq.c']]],
- ['netq_5fmalloc_5fnode',['netq_malloc_node',['../netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab',1,'netq.c']]],
- ['netq_5fnext',['netq_next',['../group__netq.html#gab4c90c003808a784ae1ee9322e75627d',1,'netq_next(netq_t *p): netq.c'],['../group__netq.html#gab4c90c003808a784ae1ee9322e75627d',1,'netq_next(netq_t *p): netq.c']]],
- ['netq_5fnode_5ffree',['netq_node_free',['../group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7',1,'netq_node_free(netq_t *node): netq.c'],['../group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7',1,'netq_node_free(netq_t *node): netq.c']]],
- ['netq_5fnode_5fnew',['netq_node_new',['../group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb',1,'netq_node_new(size_t size): netq.c'],['../group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb',1,'netq_node_new(size_t size): netq.c']]],
- ['netq_5fpacket_5ft',['netq_packet_t',['../group__netq.html#gaa59d8597860df302584b1e9c448fdfcd',1,'netq.h']]],
- ['netq_5fpop_5ffirst',['netq_pop_first',['../group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3',1,'netq_pop_first(list_t queue): netq.c'],['../group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3',1,'netq_pop_first(list_t queue): netq.c']]],
- ['netq_5fremove',['netq_remove',['../group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22',1,'netq_remove(list_t queue, netq_t *p): netq.c'],['../group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22',1,'netq_remove(list_t queue, netq_t *p): netq.c']]],
- ['netq_5ft',['netq_t',['../structnetq__t.html',1,'netq_t'],['../group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b',1,'netq_t(): netq.h']]],
- ['next',['next',['../structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb',1,'netq_t::next()'],['../structlist.html#a1900fe79e875e2838625b2eb60837f8f',1,'list::next()'],['../structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942',1,'UT_hash_handle::next()']]],
- ['noexpand',['noexpand',['../structUT__hash__table.html#a635661789933752e7b83dac84430eae1',1,'UT_hash_table']]],
- ['nonideal_5fitems',['nonideal_items',['../structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f',1,'UT_hash_table']]],
- ['num_5fbuckets',['num_buckets',['../structUT__hash__table.html#a3ed04b6233facaedf910672578d86339',1,'UT_hash_table']]],
- ['num_5fitems',['num_items',['../structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76',1,'UT_hash_table']]],
- ['numeric_2eh',['numeric.h',['../numeric_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_e.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['other_5feph_5fpub_5fx',['other_eph_pub_x',['../structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5feph_5fpub_5fy',['other_eph_pub_y',['../structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5fpub_5fx',['other_pub_x',['../structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5fpub_5fy',['other_pub_y',['../structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['own_5feph_5fpriv',['own_eph_priv',['../structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b',1,'dtls_handshake_parameters_ecdsa_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="all_f.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['package_5fbugreport',['PACKAGE_BUGREPORT',['../config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233',1,'PACKAGE_BUGREPORT(): config.h'],['../dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233',1,'PACKAGE_BUGREPORT(): dtls_config.h']]],
- ['package_5fname',['PACKAGE_NAME',['../config_8h.html#a1c0439e4355794c09b64274849eb0279',1,'PACKAGE_NAME(): config.h'],['../dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279',1,'PACKAGE_NAME(): dtls_config.h']]],
- ['package_5fstring',['PACKAGE_STRING',['../config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf',1,'PACKAGE_STRING(): config.h'],['../dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf',1,'PACKAGE_STRING(): dtls_config.h']]],
- ['package_5ftarname',['PACKAGE_TARNAME',['../config_8h.html#af415af6bfede0e8d5453708afe68651c',1,'PACKAGE_TARNAME(): config.h'],['../dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c',1,'PACKAGE_TARNAME(): dtls_config.h']]],
- ['package_5furl',['PACKAGE_URL',['../config_8h.html#a5c93853116d5a50307b6744f147840aa',1,'PACKAGE_URL(): config.h'],['../dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa',1,'PACKAGE_URL(): dtls_config.h']]],
- ['package_5fversion',['PACKAGE_VERSION',['../config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0',1,'PACKAGE_VERSION(): config.h'],['../dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0',1,'PACKAGE_VERSION(): dtls_config.h']]],
- ['pad',['pad',['../structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868',1,'dtls_hmac_context_t']]],
- ['peer',['peer',['../structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff',1,'netq_t']]],
- ['peer_2ec',['peer.c',['../peer_8c.html',1,'']]],
- ['peer_2eh',['peer.h',['../peer_8h.html',1,'']]],
- ['peer_5finit',['peer_init',['../peer_8c.html#a0297e9d772bfca004a98462d9c7d2828',1,'peer_init(): peer.c'],['../peer_8h.html#a0297e9d772bfca004a98462d9c7d2828',1,'peer_init(): peer.c']]],
- ['peers',['peers',['../structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088',1,'dtls_context_t']]],
- ['prev',['prev',['../structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58',1,'UT_hash_handle']]],
- ['prf_5flabel',['PRF_LABEL',['../dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9',1,'dtls.c']]],
- ['prf_5flabel_5fclient',['prf_label_client',['../dtls_8c.html#abba2a2562813493d98b5671a4c5c082b',1,'dtls.c']]],
- ['prf_5flabel_5ffinished',['prf_label_finished',['../dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7',1,'dtls.c']]],
- ['prf_5flabel_5fkey',['prf_label_key',['../dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda',1,'dtls.c']]],
- ['prf_5flabel_5fmaster',['prf_label_master',['../dtls_8c.html#a784ec579660900e758a9b7de84150c9b',1,'dtls.c']]],
- ['prf_5flabel_5fserver',['prf_label_server',['../dtls_8c.html#aacf8643991dec574dcb09a280357ae4f',1,'dtls.c']]],
- ['prf_5flabel_5fsize',['PRF_LABEL_SIZE',['../dtls_8c.html#a83b260e812e69f1dae18497d167770a9',1,'dtls.c']]],
- ['print_5ftimestamp',['print_timestamp',['../debug_8c.html#a4ac5b294de82b336108ebd436b271b17',1,'debug.c']]],
- ['printf',['PRINTF',['../debug_8h.html#a1f464e950a4fa11e8821b5c725921a15',1,'debug.h']]],
- ['priv_5fkey',['priv_key',['../structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de',1,'dtls_ecdsa_key_t']]],
- ['pseudo_20random_20numbers',['Pseudo Random Numbers',['../group__prng.html',1,'']]],
- ['prng_2eh',['prng.h',['../prng_8h.html',1,'']]],
- ['pub_5fkey_5fx',['pub_key_x',['../structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221',1,'dtls_ecdsa_key_t']]],
- ['pub_5fkey_5fy',['pub_key_y',['../structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f',1,'dtls_ecdsa_key_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['aes128_5fccm_5ft',['aes128_ccm_t',['../structaes128__ccm__t.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['dtls_5fcipher_5fcontext_5ft',['dtls_cipher_context_t',['../structdtls__cipher__context__t.html',1,'']]],
- ['dtls_5fcontext_5ft',['dtls_context_t',['../structdtls__context__t.html',1,'']]],
- ['dtls_5fecdsa_5fkey_5ft',['dtls_ecdsa_key_t',['../structdtls__ecdsa__key__t.html',1,'']]],
- ['dtls_5fhandler_5ft',['dtls_handler_t',['../structdtls__handler__t.html',1,'']]],
- ['dtls_5fhandshake_5fparameters_5fecdsa_5ft',['dtls_handshake_parameters_ecdsa_t',['../structdtls__handshake__parameters__ecdsa__t.html',1,'']]],
- ['dtls_5fhandshake_5fparameters_5fpsk_5ft',['dtls_handshake_parameters_psk_t',['../structdtls__handshake__parameters__psk__t.html',1,'']]],
- ['dtls_5fhandshake_5fparameters_5ft',['dtls_handshake_parameters_t',['../structdtls__handshake__parameters__t.html',1,'']]],
- ['dtls_5fhmac_5fcontext_5ft',['dtls_hmac_context_t',['../structdtls__hmac__context__t.html',1,'']]],
- ['dtls_5fhs_5fstate_5ft',['dtls_hs_state_t',['../structdtls__hs__state__t.html',1,'']]],
- ['dtls_5fpeer_5ft',['dtls_peer_t',['../structdtls__peer__t.html',1,'']]],
- ['dtls_5fsecurity_5fparameters_5ft',['dtls_security_parameters_t',['../structdtls__security__parameters__t.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['list',['list',['../structlist.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['netq_5ft',['netq_t',['../structnetq__t.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['session_5ft',['session_t',['../structsession__t.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="classes_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['ut_5fhash_5fbucket',['UT_hash_bucket',['../structUT__hash__bucket.html',1,'']]],
- ['ut_5fhash_5fhandle',['UT_hash_handle',['../structUT__hash__handle.html',1,'']]],
- ['ut_5fhash_5ftable',['UT_hash_table',['../structUT__hash__table.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['_5fcastasgn',['_CASTASGN',['../utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3',1,'utlist.h']]],
- ['_5fnext',['_NEXT',['../utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe',1,'utlist.h']]],
- ['_5fnextasgn',['_NEXTASGN',['../utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058',1,'utlist.h']]],
- ['_5fprev',['_PREV',['../utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5',1,'utlist.h']]],
- ['_5fprevasgn',['_PREVASGN',['../utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a',1,'utlist.h']]],
- ['_5frs',['_RS',['../utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315',1,'utlist.h']]],
- ['_5fsv',['_SV',['../utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4',1,'utlist.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['a_5fdata_5flen',['A_DATA_LEN',['../dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e',1,'A_DATA_LEN(): dtls.c'],['../dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e',1,'A_DATA_LEN(): dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['call',['CALL',['../dtls_8c.html#a3e132aba78de736930255d40ef3f2d34',1,'dtls.c']]],
- ['ccm_5fflags',['CCM_FLAGS',['../ccm_8c.html#a18f6fffa08314e79c95e2de10e7409cb',1,'ccm.c']]],
- ['cdl_5fdelete',['CDL_DELETE',['../utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235',1,'utlist.h']]],
- ['cdl_5fforeach',['CDL_FOREACH',['../utlist_8h.html#a795df7857792d7e811709a060c911a36',1,'utlist.h']]],
- ['cdl_5fforeach_5fsafe',['CDL_FOREACH_SAFE',['../utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd',1,'utlist.h']]],
- ['cdl_5fprepend',['CDL_PREPEND',['../utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd',1,'utlist.h']]],
- ['cdl_5fsearch',['CDL_SEARCH',['../utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e',1,'utlist.h']]],
- ['cdl_5fsearch_5fscalar',['CDL_SEARCH_SCALAR',['../utlist_8h.html#ad064cddb894b478b3c3cd23719f58651',1,'utlist.h']]],
- ['cdl_5fsort',['CDL_SORT',['../utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17',1,'utlist.h']]],
- ['clienthello',['CLIENTHELLO',['../dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['decltype',['DECLTYPE',['../uthash_8h.html#a716ba290563c2d955cb0c90d85874073',1,'uthash.h']]],
- ['decltype_5fassign',['DECLTYPE_ASSIGN',['../uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba',1,'uthash.h']]],
- ['dl_5fappend',['DL_APPEND',['../utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8',1,'utlist.h']]],
- ['dl_5fdelete',['DL_DELETE',['../utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc',1,'utlist.h']]],
- ['dl_5fforeach',['DL_FOREACH',['../utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7',1,'utlist.h']]],
- ['dl_5fforeach_5fsafe',['DL_FOREACH_SAFE',['../utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa',1,'utlist.h']]],
- ['dl_5fprepend',['DL_PREPEND',['../utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa',1,'utlist.h']]],
- ['dl_5fsearch',['DL_SEARCH',['../utlist_8h.html#a819373d14278b52c313b743acc292ba0',1,'utlist.h']]],
- ['dl_5fsearch_5fscalar',['DL_SEARCH_SCALAR',['../utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b',1,'utlist.h']]],
- ['dl_5fsort',['DL_SORT',['../utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3',1,'utlist.h']]],
- ['dtls_5falert',['dtls_alert',['../debug_8h.html#ab22e3494f6186183820142ba279fe9ae',1,'debug.h']]],
- ['dtls_5fblk_5flength',['DTLS_BLK_LENGTH',['../crypto_8h.html#ae86031f934f3f5f3af42dad5ff8e8757',1,'crypto.h']]],
- ['dtls_5fccm_5fblocksize',['DTLS_CCM_BLOCKSIZE',['../ccm_8h.html#a5c46c97c6c3ef5d4e5bd616dbd064859',1,'ccm.h']]],
- ['dtls_5fccm_5fmax',['DTLS_CCM_MAX',['../ccm_8h.html#a84305b079fda12bfa1323b41b3c50849',1,'ccm.h']]],
- ['dtls_5fccm_5fnonce_5fsize',['DTLS_CCM_NONCE_SIZE',['../ccm_8h.html#a2d0e7515c26737872fe840958ed140ac',1,'ccm.h']]],
- ['dtls_5fce_5flength',['DTLS_CE_LENGTH',['../dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696',1,'dtls.c']]],
- ['dtls_5fch_5flength',['DTLS_CH_LENGTH',['../dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675',1,'dtls.c']]],
- ['dtls_5fch_5flength_5fmax',['DTLS_CH_LENGTH_MAX',['../dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa',1,'dtls.c']]],
- ['dtls_5fckxec_5flength',['DTLS_CKXEC_LENGTH',['../dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164',1,'dtls.c']]],
- ['dtls_5fckxpsk_5flength_5fmin',['DTLS_CKXPSK_LENGTH_MIN',['../dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336',1,'dtls.c']]],
- ['dtls_5fcookie_5flength',['DTLS_COOKIE_LENGTH',['../dtls_8h.html#a09e4f571633bdb724236ac68459715b6',1,'dtls.h']]],
- ['dtls_5fcookie_5flength_5fmax',['DTLS_COOKIE_LENGTH_MAX',['../dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace',1,'dtls.c']]],
- ['dtls_5fcookie_5fsecret_5flength',['DTLS_COOKIE_SECRET_LENGTH',['../dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238',1,'dtls.h']]],
- ['dtls_5fcrit',['dtls_crit',['../debug_8h.html#ad4c9c94c054579b73789fead587c8514',1,'debug.h']]],
- ['dtls_5fct_5falert',['DTLS_CT_ALERT',['../dtls_8h.html#af8ce2230240b6d3c36b216ef459baff1',1,'dtls.h']]],
- ['dtls_5fct_5fapplication_5fdata',['DTLS_CT_APPLICATION_DATA',['../dtls_8h.html#a2e3ff1e96b8b7db8a3648beba35bfd0c',1,'dtls.h']]],
- ['dtls_5fct_5fchange_5fcipher_5fspec',['DTLS_CT_CHANGE_CIPHER_SPEC',['../dtls_8h.html#a3114c327a12e3850e97c4cf8a0cc5c9d',1,'dtls.h']]],
- ['dtls_5fct_5fhandshake',['DTLS_CT_HANDSHAKE',['../dtls_8h.html#a76965db5ec449b3c8a9a54c24a4d45dc',1,'dtls.h']]],
- ['dtls_5fcv_5flength',['DTLS_CV_LENGTH',['../dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816',1,'dtls.c']]],
- ['dtls_5fdebug',['dtls_debug',['../debug_8h.html#a0f158325426415d9efb5a36bebf45844',1,'debug.h']]],
- ['dtls_5fdebug_5fdump',['dtls_debug_dump',['../debug_8h.html#ab27d2c7cae1e8022e93562ecda9140b6',1,'debug.h']]],
- ['dtls_5fdebug_5fhexdump',['dtls_debug_hexdump',['../debug_8h.html#a24b1e8ecaa65f684d879ed9d5c37119d',1,'debug.h']]],
- ['dtls_5fdefault_5fmax_5fretransmit',['DTLS_DEFAULT_MAX_RETRANSMIT',['../global_8h.html#a9fc59fb51c2e3cb4da6fb19bc8cad080',1,'global.h']]],
- ['dtls_5fec_5fkey_5fsize',['DTLS_EC_KEY_SIZE',['../crypto_8h.html#a9b039263057e157e1427c5d316133c3d',1,'crypto.h']]],
- ['dtls_5fecc',['DTLS_ECC',['../dtls__config_8h.html#a1b77fedd334a66611747922038c930d6',1,'DTLS_ECC(): dtls_config.h'],['../tinydtls_8h.html#a1b77fedd334a66611747922038c930d6',1,'DTLS_ECC(): tinydtls.h']]],
- ['dtls_5femerg',['dtls_emerg',['../debug_8h.html#a94fa8dba0861075ba507ea0417fd83c8',1,'debug.h']]],
- ['dtls_5fevent_5fconnect',['DTLS_EVENT_CONNECT',['../alert_8h.html#aec2aa0683b1a39b4b1abba357b06f844',1,'alert.h']]],
- ['dtls_5fevent_5fconnected',['DTLS_EVENT_CONNECTED',['../alert_8h.html#a5bed06f27f571d7c7d9b9f212c3a0b22',1,'alert.h']]],
- ['dtls_5fevent_5frenegotiate',['DTLS_EVENT_RENEGOTIATE',['../alert_8h.html#a06e52ce3a2909c8f5a3d47d2c0346124',1,'alert.h']]],
- ['dtls_5ffin_5flength',['DTLS_FIN_LENGTH',['../dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63',1,'dtls.c']]],
- ['dtls_5fget_5fapp_5fdata',['dtls_get_app_data',['../dtls_8h.html#a95f7eb485bb814aa308e2612681176d9',1,'dtls.h']]],
- ['dtls_5fget_5fcontent_5ftype',['dtls_get_content_type',['../dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467',1,'dtls.c']]],
- ['dtls_5fget_5fepoch',['dtls_get_epoch',['../dtls_8c.html#a175d8e65080497463d13caf20e961500',1,'dtls.c']]],
- ['dtls_5fget_5ffragment_5flength',['dtls_get_fragment_length',['../dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff',1,'dtls.c']]],
- ['dtls_5fget_5fsequence_5fnumber',['dtls_get_sequence_number',['../dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7',1,'dtls.c']]],
- ['dtls_5fget_5fversion',['dtls_get_version',['../dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb',1,'dtls.c']]],
- ['dtls_5fhandshake_5fheader',['DTLS_HANDSHAKE_HEADER',['../dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a',1,'dtls.c']]],
- ['dtls_5fhash_5fctx_5fsize',['DTLS_HASH_CTX_SIZE',['../hmac_8h.html#a7fb242dc4ddd717e5eb67d4bf89618d5',1,'hmac.h']]],
- ['dtls_5fhs_5flength',['DTLS_HS_LENGTH',['../dtls_8c.html#a520419d1976b301c508721faed549b4f',1,'dtls.c']]],
- ['dtls_5fht_5fcertificate',['DTLS_HT_CERTIFICATE',['../dtls_8h.html#a55a0a899d7f151e7f53b76fe8a82c10e',1,'dtls.h']]],
- ['dtls_5fht_5fcertificate_5frequest',['DTLS_HT_CERTIFICATE_REQUEST',['../dtls_8h.html#a6f49d7b0a6e9190d71d51b1ee9ff3bd5',1,'dtls.h']]],
- ['dtls_5fht_5fcertificate_5fverify',['DTLS_HT_CERTIFICATE_VERIFY',['../dtls_8h.html#a9abc650dd8339a227ddd165ede9350d0',1,'dtls.h']]],
- ['dtls_5fht_5fclient_5fhello',['DTLS_HT_CLIENT_HELLO',['../dtls_8h.html#a25f0afef67a1fd8d9e3e61074d11e2f5',1,'dtls.h']]],
- ['dtls_5fht_5fclient_5fkey_5fexchange',['DTLS_HT_CLIENT_KEY_EXCHANGE',['../dtls_8h.html#a577885c74492a460729a451f33a894c4',1,'dtls.h']]],
- ['dtls_5fht_5ffinished',['DTLS_HT_FINISHED',['../dtls_8h.html#a16b49d03e041d43b60e1b7bacf35daad',1,'dtls.h']]],
- ['dtls_5fht_5fhello_5frequest',['DTLS_HT_HELLO_REQUEST',['../dtls_8h.html#a66566dfd30b8ab388c08b4cde6c667cc',1,'dtls.h']]],
- ['dtls_5fht_5fhello_5fverify_5frequest',['DTLS_HT_HELLO_VERIFY_REQUEST',['../dtls_8h.html#ab04f98f1863c785fabd97925c9746f7d',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fhello',['DTLS_HT_SERVER_HELLO',['../dtls_8h.html#ad5882a5ff4073ffefa266bb2c4a1ee3c',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fhello_5fdone',['DTLS_HT_SERVER_HELLO_DONE',['../dtls_8h.html#a44399f223a3e1c8a8bf3fc638a06a4d7',1,'dtls.h']]],
- ['dtls_5fht_5fserver_5fkey_5fexchange',['DTLS_HT_SERVER_KEY_EXCHANGE',['../dtls_8h.html#aab327e17614cf2902c5fc6169466613f',1,'dtls.h']]],
- ['dtls_5fhv_5flength',['DTLS_HV_LENGTH',['../dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5',1,'dtls.c']]],
- ['dtls_5finfo',['dtls_info',['../debug_8h.html#afde5692e7a590b0dd016d5753284c175',1,'debug.h']]],
- ['dtls_5fiv_5flength',['DTLS_IV_LENGTH',['../crypto_8h.html#a8106002d0d69d8da810321c65ac71385',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fiv',['dtls_kb_client_iv',['../crypto_8h.html#a1d3c04e5d39477a525b5255ab3240094',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fmac_5fsecret',['dtls_kb_client_mac_secret',['../crypto_8h.html#a72899232c09d09b86326c6f234addc02',1,'crypto.h']]],
- ['dtls_5fkb_5fclient_5fwrite_5fkey',['dtls_kb_client_write_key',['../crypto_8h.html#ab5659b0737d72a2fa1b1335952f9c305',1,'crypto.h']]],
- ['dtls_5fkb_5fdigest_5fsize',['dtls_kb_digest_size',['../crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758',1,'crypto.h']]],
- ['dtls_5fkb_5fiv_5fsize',['dtls_kb_iv_size',['../crypto_8h.html#adcdadf1870e2acb2993b1a8726d26997',1,'crypto.h']]],
- ['dtls_5fkb_5fkey_5fsize',['dtls_kb_key_size',['../crypto_8h.html#a726ef8efa2e072c3c5e1ea1019e716aa',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fiv',['dtls_kb_local_iv',['../crypto_8h.html#ae23208578ac21350cb5915d11da0a2e3',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fmac_5fsecret',['dtls_kb_local_mac_secret',['../crypto_8h.html#aa60519b0e9b775ccb0bdb46762f43418',1,'crypto.h']]],
- ['dtls_5fkb_5flocal_5fwrite_5fkey',['dtls_kb_local_write_key',['../crypto_8h.html#a7c9e39188a2e50eb942ce8c7cd8add36',1,'crypto.h']]],
- ['dtls_5fkb_5fmac_5fsecret_5fsize',['dtls_kb_mac_secret_size',['../crypto_8h.html#a1f320854c9f4e9b2105649b3624976b0',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fiv',['dtls_kb_remote_iv',['../crypto_8h.html#a7119d3239c34d7e7f219200792339541',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fmac_5fsecret',['dtls_kb_remote_mac_secret',['../crypto_8h.html#acf318c989f5bb90b863154abbc408b66',1,'crypto.h']]],
- ['dtls_5fkb_5fremote_5fwrite_5fkey',['dtls_kb_remote_write_key',['../crypto_8h.html#addc8fcbbdd80ba924d0ded2a6bae97f4',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fiv',['dtls_kb_server_iv',['../crypto_8h.html#acdd95c24ec6aebf14dac6ee4386a79be',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fmac_5fsecret',['dtls_kb_server_mac_secret',['../crypto_8h.html#ac8fdf3770dcd956ca10d1044a57a7a3a',1,'crypto.h']]],
- ['dtls_5fkb_5fserver_5fwrite_5fkey',['dtls_kb_server_write_key',['../crypto_8h.html#aea906786dcfa12acb320df731c8db7f6',1,'crypto.h']]],
- ['dtls_5fkb_5fsize',['dtls_kb_size',['../crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c',1,'crypto.h']]],
- ['dtls_5fkey_5flength',['DTLS_KEY_LENGTH',['../crypto_8h.html#a829b5d5e4d693fdb3de335a0e2017076',1,'crypto.h']]],
- ['dtls_5fmac_5fkey_5flength',['DTLS_MAC_KEY_LENGTH',['../crypto_8h.html#a5962b0d908f9b15406ca53d27a33e08a',1,'crypto.h']]],
- ['dtls_5fmac_5flength',['DTLS_MAC_LENGTH',['../crypto_8h.html#a4fa04874a476a8cc5048372b6d584dbe',1,'crypto.h']]],
- ['dtls_5fmaster_5fsecret_5flength',['DTLS_MASTER_SECRET_LENGTH',['../crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db',1,'crypto.h']]],
- ['dtls_5fmax_5fbuf',['DTLS_MAX_BUF',['../global_8h.html#acdbfba15eb1a5692e177d582b4ca1583',1,'global.h']]],
- ['dtls_5fnotice',['dtls_notice',['../debug_8h.html#add9bf011215b9fc36abc5c80722c876e',1,'debug.h']]],
- ['dtls_5fpsk',['DTLS_PSK',['../dtls__config_8h.html#a5ce72e9d11801559b799b999f50c49cf',1,'DTLS_PSK(): dtls_config.h'],['../tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf',1,'DTLS_PSK(): tinydtls.h']]],
- ['dtls_5fpsk_5fmax_5fclient_5fidentity_5flen',['DTLS_PSK_MAX_CLIENT_IDENTITY_LEN',['../crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd',1,'crypto.h']]],
- ['dtls_5fpsk_5fmax_5fkey_5flen',['DTLS_PSK_MAX_KEY_LEN',['../crypto_8h.html#a59cd7c0b8724e1f9b910611623396080',1,'crypto.h']]],
- ['dtls_5frandom_5flength',['DTLS_RANDOM_LENGTH',['../crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0',1,'crypto.h']]],
- ['dtls_5frecord_5fheader',['DTLS_RECORD_HEADER',['../dtls_8c.html#a35d050593196252c1826ac2e82cbac0b',1,'dtls.c']]],
- ['dtls_5frh_5flength',['DTLS_RH_LENGTH',['../dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f',1,'dtls.c']]],
- ['dtls_5fset_5fapp_5fdata',['dtls_set_app_data',['../dtls_8h.html#a89611ebcb02bb3bbf56dfb583937586e',1,'dtls.h']]],
- ['dtls_5fset_5fcontent_5ftype',['dtls_set_content_type',['../dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365',1,'dtls.c']]],
- ['dtls_5fset_5flength',['dtls_set_length',['../dtls_8c.html#a9f723101896941fa44ea701c4dfd3591',1,'dtls.c']]],
- ['dtls_5fset_5fversion',['dtls_set_version',['../dtls_8c.html#aebefc949b2298e7de7b95b715874d407',1,'dtls.c']]],
- ['dtls_5fsh_5flength',['DTLS_SH_LENGTH',['../dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676',1,'dtls.c']]],
- ['dtls_5fskexec_5flength',['DTLS_SKEXEC_LENGTH',['../dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843',1,'dtls.c']]],
- ['dtls_5fskexecpsk_5flength_5fmax',['DTLS_SKEXECPSK_LENGTH_MAX',['../dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d',1,'dtls.c']]],
- ['dtls_5fskexecpsk_5flength_5fmin',['DTLS_SKEXECPSK_LENGTH_MIN',['../dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d',1,'dtls.c']]],
- ['dtls_5fversion',['DTLS_VERSION',['../dtls_8h.html#af0c44db3bf3a6a52e9ed271218daeaa6',1,'dtls.h']]],
- ['dtls_5fwarn',['dtls_warn',['../debug_8h.html#ae1c22127c92fab70da7bf9cae8536e5c',1,'debug.h']]],
- ['dtlsv12',['DTLSv12',['../global_8h.html#a6b9b983a346a3e94eff205f8eab2bce0',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['elmt_5ffrom_5fhh',['ELMT_FROM_HH',['../uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186',1,'uthash.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['get16bits',['get16bits',['../uthash_8h.html#abc7d71657be8975a51684e41029b7964',1,'uthash.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['handshake',['HANDSHAKE',['../dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4',1,'dtls.c']]],
- ['hash_5fadd',['HASH_ADD',['../uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399',1,'uthash.h']]],
- ['hash_5fadd_5fint',['HASH_ADD_INT',['../uthash_8h.html#acf85835471af894e354efb7e346698f3',1,'uthash.h']]],
- ['hash_5fadd_5fkeyptr',['HASH_ADD_KEYPTR',['../uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26',1,'uthash.h']]],
- ['hash_5fadd_5fpeer',['HASH_ADD_PEER',['../dtls_8c.html#acf0d50c9f224c0677988f13e947e9523',1,'dtls.c']]],
- ['hash_5fadd_5fptr',['HASH_ADD_PTR',['../uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823',1,'uthash.h']]],
- ['hash_5fadd_5fstr',['HASH_ADD_STR',['../uthash_8h.html#a9724951736f3985f74df17638c8a7885',1,'uthash.h']]],
- ['hash_5fadd_5fto_5fbkt',['HASH_ADD_TO_BKT',['../uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348',1,'uthash.h']]],
- ['hash_5fber',['HASH_BER',['../uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e',1,'uthash.h']]],
- ['hash_5fbkt_5fcapacity_5fthresh',['HASH_BKT_CAPACITY_THRESH',['../uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f',1,'uthash.h']]],
- ['hash_5fbloom_5fadd',['HASH_BLOOM_ADD',['../uthash_8h.html#acaad947212056cd8bfe3d660265fb2db',1,'uthash.h']]],
- ['hash_5fbloom_5ffree',['HASH_BLOOM_FREE',['../uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a',1,'uthash.h']]],
- ['hash_5fbloom_5fmake',['HASH_BLOOM_MAKE',['../uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8',1,'uthash.h']]],
- ['hash_5fbloom_5fsignature',['HASH_BLOOM_SIGNATURE',['../uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6',1,'uthash.h']]],
- ['hash_5fbloom_5ftest',['HASH_BLOOM_TEST',['../uthash_8h.html#a06bfbf880899d54da35487d0d39c1009',1,'uthash.h']]],
- ['hash_5fclear',['HASH_CLEAR',['../uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23',1,'uthash.h']]],
- ['hash_5fcnt',['HASH_CNT',['../uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd',1,'uthash.h']]],
- ['hash_5fcount',['HASH_COUNT',['../uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f',1,'uthash.h']]],
- ['hash_5fdel',['HASH_DEL',['../uthash_8h.html#a48b7ed374602dcb236501aa23a971f05',1,'uthash.h']]],
- ['hash_5fdel_5fin_5fbkt',['HASH_DEL_IN_BKT',['../uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78',1,'uthash.h']]],
- ['hash_5fdel_5fpeer',['HASH_DEL_PEER',['../dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0',1,'dtls.c']]],
- ['hash_5fdelete',['HASH_DELETE',['../uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980',1,'uthash.h']]],
- ['hash_5femit_5fkey',['HASH_EMIT_KEY',['../uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15',1,'uthash.h']]],
- ['hash_5fexpand_5fbuckets',['HASH_EXPAND_BUCKETS',['../uthash_8h.html#a6439fd6271474e61b1840fbf83132f03',1,'uthash.h']]],
- ['hash_5ffcn',['HASH_FCN',['../uthash_8h.html#abd3356419b386c379116393700a751d3',1,'uthash.h']]],
- ['hash_5ffind',['HASH_FIND',['../uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf',1,'uthash.h']]],
- ['hash_5ffind_5fin_5fbkt',['HASH_FIND_IN_BKT',['../uthash_8h.html#a42ae87cc63106a82601808f19329502c',1,'uthash.h']]],
- ['hash_5ffind_5fint',['HASH_FIND_INT',['../uthash_8h.html#aadcb19b940348f3141bd51505ede0142',1,'uthash.h']]],
- ['hash_5ffind_5fpeer',['HASH_FIND_PEER',['../dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6',1,'dtls.c']]],
- ['hash_5ffind_5fptr',['HASH_FIND_PTR',['../uthash_8h.html#a26a887f8e31952034becac0cf446f6c3',1,'uthash.h']]],
- ['hash_5ffind_5fstr',['HASH_FIND_STR',['../uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84',1,'uthash.h']]],
- ['hash_5ffnv',['HASH_FNV',['../uthash_8h.html#ac99f9a353421537527a80b392089dd9d',1,'uthash.h']]],
- ['hash_5ffsck',['HASH_FSCK',['../uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759',1,'uthash.h']]],
- ['hash_5finitial_5fnum_5fbuckets',['HASH_INITIAL_NUM_BUCKETS',['../uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0',1,'uthash.h']]],
- ['hash_5finitial_5fnum_5fbuckets_5flog2',['HASH_INITIAL_NUM_BUCKETS_LOG2',['../uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c',1,'uthash.h']]],
- ['hash_5fiter',['HASH_ITER',['../uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6',1,'uthash.h']]],
- ['hash_5fjen',['HASH_JEN',['../uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e',1,'uthash.h']]],
- ['hash_5fjen_5fmix',['HASH_JEN_MIX',['../uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5',1,'uthash.h']]],
- ['hash_5fkeycmp',['HASH_KEYCMP',['../uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095',1,'uthash.h']]],
- ['hash_5fmake_5ftable',['HASH_MAKE_TABLE',['../uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5',1,'uthash.h']]],
- ['hash_5foat',['HASH_OAT',['../uthash_8h.html#abc7040b698211c1993441fb4165fa0b4',1,'uthash.h']]],
- ['hash_5fsax',['HASH_SAX',['../uthash_8h.html#aa4cb140b45415e7bf57237525388af79',1,'uthash.h']]],
- ['hash_5fselect',['HASH_SELECT',['../uthash_8h.html#ad190366f7a476ece79bd628240a5fc93',1,'uthash.h']]],
- ['hash_5fsfh',['HASH_SFH',['../uthash_8h.html#ab595698a74642684dace0dfa47dab445',1,'uthash.h']]],
- ['hash_5fsignature',['HASH_SIGNATURE',['../uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2',1,'uthash.h']]],
- ['hash_5fsort',['HASH_SORT',['../uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15',1,'uthash.h']]],
- ['hash_5fsrt',['HASH_SRT',['../uthash_8h.html#a388b4071dcff005154f431d3d3025fbd',1,'uthash.h']]],
- ['hash_5fto_5fbkt',['HASH_TO_BKT',['../uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113',1,'uthash.h']]],
- ['have_5farpa_5finet_5fh',['HAVE_ARPA_INET_H',['../config_8h.html#a7d1a71461e07569d0c9003da24c30a59',1,'HAVE_ARPA_INET_H(): config.h'],['../dtls__config_8h.html#a7d1a71461e07569d0c9003da24c30a59',1,'HAVE_ARPA_INET_H(): dtls_config.h']]],
- ['have_5fassert_5fh',['HAVE_ASSERT_H',['../config_8h.html#ad0eabe2e5407bc73450eb15b657983cd',1,'HAVE_ASSERT_H(): config.h'],['../dtls__config_8h.html#ad0eabe2e5407bc73450eb15b657983cd',1,'HAVE_ASSERT_H(): dtls_config.h']]],
- ['have_5ffcntl_5fh',['HAVE_FCNTL_H',['../config_8h.html#a765d75020849aa0a9b6becd9a5b7a193',1,'HAVE_FCNTL_H(): config.h'],['../dtls__config_8h.html#a765d75020849aa0a9b6becd9a5b7a193',1,'HAVE_FCNTL_H(): dtls_config.h']]],
- ['have_5finttypes_5fh',['HAVE_INTTYPES_H',['../config_8h.html#ab90a030ff2790ebdc176660a6dd2a478',1,'HAVE_INTTYPES_H(): config.h'],['../dtls__config_8h.html#ab90a030ff2790ebdc176660a6dd2a478',1,'HAVE_INTTYPES_H(): dtls_config.h']]],
- ['have_5fmalloc',['HAVE_MALLOC',['../config_8h.html#a14503280ca0cb757db915eea09282bfc',1,'HAVE_MALLOC(): config.h'],['../dtls__config_8h.html#a14503280ca0cb757db915eea09282bfc',1,'HAVE_MALLOC(): dtls_config.h']]],
- ['have_5fmemory_5fh',['HAVE_MEMORY_H',['../config_8h.html#ae93a78f9d076138897af441c9f86f285',1,'HAVE_MEMORY_H(): config.h'],['../dtls__config_8h.html#ae93a78f9d076138897af441c9f86f285',1,'HAVE_MEMORY_H(): dtls_config.h']]],
- ['have_5fmemset',['HAVE_MEMSET',['../config_8h.html#a3df52e9809253860c385be6f3a160607',1,'HAVE_MEMSET(): config.h'],['../dtls__config_8h.html#a3df52e9809253860c385be6f3a160607',1,'HAVE_MEMSET(): dtls_config.h']]],
- ['have_5fnetdb_5fh',['HAVE_NETDB_H',['../config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e',1,'HAVE_NETDB_H(): config.h'],['../dtls__config_8h.html#a9fe2d1d4726a6b846483a2276866dc6e',1,'HAVE_NETDB_H(): dtls_config.h']]],
- ['have_5fnetinet_5fin_5fh',['HAVE_NETINET_IN_H',['../config_8h.html#a0938658b988a082864efcee2d1b2bfd2',1,'HAVE_NETINET_IN_H(): config.h'],['../dtls__config_8h.html#a0938658b988a082864efcee2d1b2bfd2',1,'HAVE_NETINET_IN_H(): dtls_config.h']]],
- ['have_5fselect',['HAVE_SELECT',['../config_8h.html#aee3a7313d861afa18971031528fd0cd5',1,'HAVE_SELECT(): config.h'],['../dtls__config_8h.html#aee3a7313d861afa18971031528fd0cd5',1,'HAVE_SELECT(): dtls_config.h']]],
- ['have_5fsocket',['HAVE_SOCKET',['../config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280',1,'HAVE_SOCKET(): config.h'],['../dtls__config_8h.html#a4cd6234bfe3f7c10968a1151f43ce280',1,'HAVE_SOCKET(): dtls_config.h']]],
- ['have_5fstddef_5fh',['HAVE_STDDEF_H',['../config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff',1,'HAVE_STDDEF_H(): config.h'],['../dtls__config_8h.html#a0e6b9a04ae66b7846715e51a0a2dccff',1,'HAVE_STDDEF_H(): dtls_config.h']]],
- ['have_5fstdint_5fh',['HAVE_STDINT_H',['../config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354',1,'HAVE_STDINT_H(): config.h'],['../dtls__config_8h.html#ab6cd6d1c63c1e26ea2d4537b77148354',1,'HAVE_STDINT_H(): dtls_config.h']]],
- ['have_5fstdlib_5fh',['HAVE_STDLIB_H',['../config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0',1,'HAVE_STDLIB_H(): config.h'],['../dtls__config_8h.html#a9e0e434ec1a6ddbd97db12b5a32905e0',1,'HAVE_STDLIB_H(): dtls_config.h']]],
- ['have_5fstrdup',['HAVE_STRDUP',['../config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f',1,'HAVE_STRDUP(): config.h'],['../dtls__config_8h.html#a41b838eb3b86a0ebbd0981e92a759c0f',1,'HAVE_STRDUP(): dtls_config.h']]],
- ['have_5fstrerror',['HAVE_STRERROR',['../config_8h.html#a992653625041edef146772df96f7bca9',1,'HAVE_STRERROR(): config.h'],['../dtls__config_8h.html#a992653625041edef146772df96f7bca9',1,'HAVE_STRERROR(): dtls_config.h']]],
- ['have_5fstring_5fh',['HAVE_STRING_H',['../config_8h.html#ad4c234dd1625255dc626a15886306e7d',1,'HAVE_STRING_H(): config.h'],['../dtls__config_8h.html#ad4c234dd1625255dc626a15886306e7d',1,'HAVE_STRING_H(): dtls_config.h']]],
- ['have_5fstrings_5fh',['HAVE_STRINGS_H',['../config_8h.html#a405d10d46190bcb0320524c54eafc850',1,'HAVE_STRINGS_H(): config.h'],['../dtls__config_8h.html#a405d10d46190bcb0320524c54eafc850',1,'HAVE_STRINGS_H(): dtls_config.h']]],
- ['have_5fstrnlen',['HAVE_STRNLEN',['../config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74',1,'HAVE_STRNLEN(): config.h'],['../dtls__config_8h.html#a9bee6d8db098b2230690f8e8db9ffb74',1,'HAVE_STRNLEN(): dtls_config.h']]],
- ['have_5fsys_5fparam_5fh',['HAVE_SYS_PARAM_H',['../config_8h.html#a05aa9fc25e1231d8eb347390558e4e22',1,'HAVE_SYS_PARAM_H(): config.h'],['../dtls__config_8h.html#a05aa9fc25e1231d8eb347390558e4e22',1,'HAVE_SYS_PARAM_H(): dtls_config.h']]],
- ['have_5fsys_5fsocket_5fh',['HAVE_SYS_SOCKET_H',['../config_8h.html#afb96c2bc08ebf33cca68c714f624a58d',1,'HAVE_SYS_SOCKET_H(): config.h'],['../dtls__config_8h.html#afb96c2bc08ebf33cca68c714f624a58d',1,'HAVE_SYS_SOCKET_H(): dtls_config.h']]],
- ['have_5fsys_5fstat_5fh',['HAVE_SYS_STAT_H',['../config_8h.html#ace156430ba007d19b4348a950d0c692b',1,'HAVE_SYS_STAT_H(): config.h'],['../dtls__config_8h.html#ace156430ba007d19b4348a950d0c692b',1,'HAVE_SYS_STAT_H(): dtls_config.h']]],
- ['have_5fsys_5ftime_5fh',['HAVE_SYS_TIME_H',['../config_8h.html#a2aae46056558e9d6fef6380f9678ffe3',1,'HAVE_SYS_TIME_H(): config.h'],['../dtls__config_8h.html#a2aae46056558e9d6fef6380f9678ffe3',1,'HAVE_SYS_TIME_H(): dtls_config.h']]],
- ['have_5fsys_5ftypes_5fh',['HAVE_SYS_TYPES_H',['../config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666',1,'HAVE_SYS_TYPES_H(): config.h'],['../dtls__config_8h.html#a69dc70bea5d1f8bd2be9740e974fa666',1,'HAVE_SYS_TYPES_H(): dtls_config.h']]],
- ['have_5ftime_5fh',['HAVE_TIME_H',['../config_8h.html#a2397007ae170bf57faa808bacaaa2499',1,'HAVE_TIME_H(): config.h'],['../dtls__config_8h.html#a2397007ae170bf57faa808bacaaa2499',1,'HAVE_TIME_H(): dtls_config.h']]],
- ['have_5funistd_5fh',['HAVE_UNISTD_H',['../config_8h.html#a219b06937831d0da94d801ab13987639',1,'HAVE_UNISTD_H(): config.h'],['../dtls__config_8h.html#a219b06937831d0da94d801ab13987639',1,'HAVE_UNISTD_H(): dtls_config.h']]],
- ['have_5fvprintf',['HAVE_VPRINTF',['../config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7',1,'HAVE_VPRINTF(): config.h'],['../dtls__config_8h.html#a11e8ffa0e0ee1d52812402f2eac05fa7',1,'HAVE_VPRINTF(): dtls_config.h']]],
- ['high',['HIGH',['../dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d',1,'dtls.c']]],
- ['hmac_5fupdate_5fseed',['HMAC_UPDATE_SEED',['../crypto_8c.html#ab7ea6d487f3c6e67106df7f4d281804a',1,'crypto.c']]],
- ['hs_5fhdr_5flength',['HS_HDR_LENGTH',['../dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087',1,'dtls.c']]],
- ['hv_5fhdr_5flength',['HV_HDR_LENGTH',['../dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['ldecltype',['LDECLTYPE',['../utlist_8h.html#ae8c9864192170d02fd996abaa1589611',1,'utlist.h']]],
- ['list_5fconcat',['LIST_CONCAT',['../t__list_8h.html#ad8951367826c57390a9f9892e0fc2659',1,'t_list.h']]],
- ['list_5fstruct',['LIST_STRUCT',['../t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79',1,'t_list.h']]],
- ['list_5fstruct_5finit',['LIST_STRUCT_INIT',['../t__list_8h.html#adcb86fe4485a0f8ea79541117641f730',1,'t_list.h']]],
- ['ll_5fappend',['LL_APPEND',['../utlist_8h.html#ace33c571c3df78e721a99a4494983855',1,'utlist.h']]],
- ['ll_5fappend_5fvs2008',['LL_APPEND_VS2008',['../utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3',1,'utlist.h']]],
- ['ll_5fdelete',['LL_DELETE',['../utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e',1,'utlist.h']]],
- ['ll_5fdelete_5fvs2008',['LL_DELETE_VS2008',['../utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf',1,'utlist.h']]],
- ['ll_5fforeach',['LL_FOREACH',['../utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb',1,'utlist.h']]],
- ['ll_5fforeach_5fsafe',['LL_FOREACH_SAFE',['../utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef',1,'utlist.h']]],
- ['ll_5fprepend',['LL_PREPEND',['../utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4',1,'utlist.h']]],
- ['ll_5fsearch',['LL_SEARCH',['../utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb',1,'utlist.h']]],
- ['ll_5fsearch_5fscalar',['LL_SEARCH_SCALAR',['../utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed',1,'utlist.h']]],
- ['ll_5fsort',['LL_SORT',['../utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31',1,'utlist.h']]],
- ['low',['LOW',['../dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['mask_5fl',['MASK_L',['../ccm_8c.html#a46e95fc2cb115ab9c342707ec443265f',1,'ccm.c']]],
- ['max',['max',['../numeric_8h.html#a24e753bacac6be5f30e18f8a2bdefda4',1,'numeric.h']]],
- ['max_5fkeyblock_5flength',['MAX_KEYBLOCK_LENGTH',['../crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f',1,'crypto.h']]],
- ['min',['min',['../debug_8c.html#ac6afabdc09a49a433ee19d8a9486056d',1,'min(): debug.c'],['../numeric_8h.html#a2d017cd3beb218080a7988e2deed2a11',1,'min(): numeric.h']]],
- ['must_5fhash',['MUST_HASH',['../dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f',1,'dtls.c']]],
- ['mycookie',['mycookie',['../dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['package_5fbugreport',['PACKAGE_BUGREPORT',['../config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233',1,'PACKAGE_BUGREPORT(): config.h'],['../dtls__config_8h.html#a1d1d2d7f8d2f95b376954d649ab03233',1,'PACKAGE_BUGREPORT(): dtls_config.h']]],
- ['package_5fname',['PACKAGE_NAME',['../config_8h.html#a1c0439e4355794c09b64274849eb0279',1,'PACKAGE_NAME(): config.h'],['../dtls__config_8h.html#a1c0439e4355794c09b64274849eb0279',1,'PACKAGE_NAME(): dtls_config.h']]],
- ['package_5fstring',['PACKAGE_STRING',['../config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf',1,'PACKAGE_STRING(): config.h'],['../dtls__config_8h.html#ac73e6f903c16eca7710f92e36e1c6fbf',1,'PACKAGE_STRING(): dtls_config.h']]],
- ['package_5ftarname',['PACKAGE_TARNAME',['../config_8h.html#af415af6bfede0e8d5453708afe68651c',1,'PACKAGE_TARNAME(): config.h'],['../dtls__config_8h.html#af415af6bfede0e8d5453708afe68651c',1,'PACKAGE_TARNAME(): dtls_config.h']]],
- ['package_5furl',['PACKAGE_URL',['../config_8h.html#a5c93853116d5a50307b6744f147840aa',1,'PACKAGE_URL(): config.h'],['../dtls__config_8h.html#a5c93853116d5a50307b6744f147840aa',1,'PACKAGE_URL(): dtls_config.h']]],
- ['package_5fversion',['PACKAGE_VERSION',['../config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0',1,'PACKAGE_VERSION(): config.h'],['../dtls__config_8h.html#aa326a05d5e30f9e9a4bb0b4469d5d0c0',1,'PACKAGE_VERSION(): dtls_config.h']]],
- ['prf_5flabel',['PRF_LABEL',['../dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9',1,'dtls.c']]],
- ['prf_5flabel_5fsize',['PRF_LABEL_SIZE',['../dtls_8c.html#a83b260e812e69f1dae18497d167770a9',1,'dtls.c']]],
- ['printf',['PRINTF',['../debug_8h.html#a1f464e950a4fa11e8821b5c725921a15',1,'debug.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['r_5fkey_5foffset',['R_KEY_OFFSET',['../dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['s_5fkey_5foffset',['S_KEY_OFFSET',['../dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9',1,'dtls.c']]],
- ['set_5fcounter',['SET_COUNTER',['../ccm_8c.html#a13d9e1fa611f50a7176fd6da7b1b4994',1,'ccm.c']]],
- ['skip_5fvar_5ffield',['SKIP_VAR_FIELD',['../dtls_8c.html#a09a0896d586ff27855ced6930cc17023',1,'dtls.c']]],
- ['stdc_5fheaders',['STDC_HEADERS',['../config_8h.html#a550e5c272cc3cf3814651721167dcd23',1,'STDC_HEADERS(): config.h'],['../dtls__config_8h.html#a550e5c272cc3cf3814651721167dcd23',1,'STDC_HEADERS(): dtls_config.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_c.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['tls_5fcert_5ftype_5fraw_5fpublic_5fkey',['TLS_CERT_TYPE_RAW_PUBLIC_KEY',['../global_8h.html#af36d51830256b7d1bf4dbaa8590c19e4',1,'global.h']]],
- ['tls_5fclient_5fcertificate_5ftype_5fecdsa_5fsign',['TLS_CLIENT_CERTIFICATE_TYPE_ECDSA_SIGN',['../global_8h.html#aaace8dce4341d910140609a96bb300db',1,'global.h']]],
- ['tls_5fec_5fcurve_5ftype_5fnamed_5fcurve',['TLS_EC_CURVE_TYPE_NAMED_CURVE',['../global_8h.html#ac97469cc46ceeb148ee92f47a26ebcf6',1,'global.h']]],
- ['tls_5fext_5fclient_5fcertificate_5ftype',['TLS_EXT_CLIENT_CERTIFICATE_TYPE',['../global_8h.html#a0074adc0b2543a913a597e510caf27b0',1,'global.h']]],
- ['tls_5fext_5fec_5fpoint_5fformats',['TLS_EXT_EC_POINT_FORMATS',['../global_8h.html#a5d17863db920927ef8160547541b58e3',1,'global.h']]],
- ['tls_5fext_5fec_5fpoint_5fformats_5funcompressed',['TLS_EXT_EC_POINT_FORMATS_UNCOMPRESSED',['../global_8h.html#af086ed2d0aea096be56bf7e46f8f72a6',1,'global.h']]],
- ['tls_5fext_5felliptic_5fcurves',['TLS_EXT_ELLIPTIC_CURVES',['../global_8h.html#a7e080d630a40510f655bf6982c555063',1,'global.h']]],
- ['tls_5fext_5felliptic_5fcurves_5fsecp256r1',['TLS_EXT_ELLIPTIC_CURVES_SECP256R1',['../global_8h.html#a8095691f33c0ce6b22d205640ccc9417',1,'global.h']]],
- ['tls_5fext_5fencrypt_5fthen_5fmac',['TLS_EXT_ENCRYPT_THEN_MAC',['../global_8h.html#ae136afe82bd9031a4c1c604de0cb0118',1,'global.h']]],
- ['tls_5fext_5fserver_5fcertificate_5ftype',['TLS_EXT_SERVER_CERTIFICATE_TYPE',['../global_8h.html#ad465b86d1841ddd6c2209ff304895a95',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo',['TLS_EXT_SIG_HASH_ALGO',['../global_8h.html#a0249393d6894a15ac56962b2335add24',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo_5fecdsa',['TLS_EXT_SIG_HASH_ALGO_ECDSA',['../global_8h.html#af126227a026a7af436a4323db6d02ecc',1,'global.h']]],
- ['tls_5fext_5fsig_5fhash_5falgo_5fsha256',['TLS_EXT_SIG_HASH_ALGO_SHA256',['../global_8h.html#aa347771eab2eabd24c4b9311fa61c4c9',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_d.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['uthash_5fexpand_5ffyi',['uthash_expand_fyi',['../uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4',1,'uthash.h']]],
- ['uthash_5ffatal',['uthash_fatal',['../uthash_8h.html#a03b52301b0ed976b6981ef33613320c1',1,'uthash.h']]],
- ['uthash_5ffree',['uthash_free',['../uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657',1,'uthash.h']]],
- ['uthash_5fmalloc',['uthash_malloc',['../uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8',1,'uthash.h']]],
- ['uthash_5fnoexpand_5ffyi',['uthash_noexpand_fyi',['../uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86',1,'uthash.h']]],
- ['uthash_5fversion',['UTHASH_VERSION',['../uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e',1,'uthash.h']]],
- ['utlist_5fversion',['UTLIST_VERSION',['../utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730',1,'utlist.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="defines_e.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['with_5fsha256',['WITH_SHA256',['../global_8h.html#a4da6212f220f78c713aa5e91f989e7d7',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enums_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['dtls_5falert_5flevel_5ft',['dtls_alert_level_t',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871f',1,'alert.h']]],
- ['dtls_5falert_5ft',['dtls_alert_t',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd',1,'alert.h']]],
- ['dtls_5fcipher_5ft',['dtls_cipher_t',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59b',1,'global.h']]],
- ['dtls_5fcompression_5ft',['dtls_compression_t',['../global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2',1,'global.h']]],
- ['dtls_5fcredentials_5ftype_5ft',['dtls_credentials_type_t',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01',1,'dtls.h']]],
- ['dtls_5fcrypto_5falg',['dtls_crypto_alg',['../crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1',1,'crypto.h']]],
- ['dtls_5fecdh_5fcurve',['dtls_ecdh_curve',['../crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef',1,'crypto.h']]],
- ['dtls_5fhashfunc_5ft',['dtls_hashfunc_t',['../group__HMAC.html#ga698cfa036e69361a93dcdd9b19579b23',1,'hmac.h']]],
- ['dtls_5fpeer_5ftype',['dtls_peer_type',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8',1,'peer.h']]],
- ['dtls_5fstate_5ft',['dtls_state_t',['../state_8h.html#aea0e57fd5b857535960534b53361aa35',1,'state.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enums_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['log_5ft',['log_t',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9d',1,'debug.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enumvalues_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['aes128',['AES128',['../crypto_8h.html#a41f1aa1e1380c5f51d9af32c0a53f7b1a1832208b0a725185016b59150ff74fc4',1,'crypto.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enumvalues_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['dtls_5falert_5faccess_5fdenied',['DTLS_ALERT_ACCESS_DENIED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad86305f8c32e7600fcafc0abcedd0a11',1,'alert.h']]],
- ['dtls_5falert_5fbad_5fcertificate',['DTLS_ALERT_BAD_CERTIFICATE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf5d5f80170bcf70000c18876e7bdb5c',1,'alert.h']]],
- ['dtls_5falert_5fbad_5frecord_5fmac',['DTLS_ALERT_BAD_RECORD_MAC',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda4005b89a3396b23037f8033b29268eca',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5fexpired',['DTLS_ALERT_CERTIFICATE_EXPIRED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda845dc73ad17d0fb919489cc110633782',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5frevoked',['DTLS_ALERT_CERTIFICATE_REVOKED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2e000f966c0ff01cf198ea862aa5cfe1',1,'alert.h']]],
- ['dtls_5falert_5fcertificate_5funknown',['DTLS_ALERT_CERTIFICATE_UNKNOWN',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda450355820da8d9eff4dd6d17eb52585d',1,'alert.h']]],
- ['dtls_5falert_5fclose_5fnotify',['DTLS_ALERT_CLOSE_NOTIFY',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda6bbae4f2f3747af4cdbe80c4a1061800',1,'alert.h']]],
- ['dtls_5falert_5fdecode_5ferror',['DTLS_ALERT_DECODE_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdae3249841cb226881ce6dadffb9f22649',1,'alert.h']]],
- ['dtls_5falert_5fdecompression_5ffailure',['DTLS_ALERT_DECOMPRESSION_FAILURE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaaf4ca9003cf380ae80a46b925b482888',1,'alert.h']]],
- ['dtls_5falert_5fdecrypt_5ferror',['DTLS_ALERT_DECRYPT_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda56a136f4d20b3ce9fb967eedb37371e0',1,'alert.h']]],
- ['dtls_5falert_5fhandshake_5ffailure',['DTLS_ALERT_HANDSHAKE_FAILURE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaea5ed33e912421eb48afb73ce0a6014d',1,'alert.h']]],
- ['dtls_5falert_5fillegal_5fparameter',['DTLS_ALERT_ILLEGAL_PARAMETER',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda880948aace26b2da8acde4c29ababcfc',1,'alert.h']]],
- ['dtls_5falert_5finsufficient_5fsecurity',['DTLS_ALERT_INSUFFICIENT_SECURITY',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda2cc56008c097883058c0e2e8ecc6751e',1,'alert.h']]],
- ['dtls_5falert_5finternal_5ferror',['DTLS_ALERT_INTERNAL_ERROR',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda22948f7c825b68cc18c79bd3634c8f58',1,'alert.h']]],
- ['dtls_5falert_5flevel_5ffatal',['DTLS_ALERT_LEVEL_FATAL',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871fabd07bcf63c24aa5f1b9706a4197ceaf4',1,'alert.h']]],
- ['dtls_5falert_5flevel_5fwarning',['DTLS_ALERT_LEVEL_WARNING',['../alert_8h.html#ab6264d1b950719f1c2e00b122cad871fa0f670b55dcb4ab291b869827d3c62ee7',1,'alert.h']]],
- ['dtls_5falert_5fno_5frenegotiation',['DTLS_ALERT_NO_RENEGOTIATION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8939a5d1777bf0dbdd8fa44e335137ab',1,'alert.h']]],
- ['dtls_5falert_5fprotocol_5fversion',['DTLS_ALERT_PROTOCOL_VERSION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaa392c9a6bb02b01386a1c34dc1947652',1,'alert.h']]],
- ['dtls_5falert_5frecord_5foverflow',['DTLS_ALERT_RECORD_OVERFLOW',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdad4d94666f310fb6982c26c70eddd6d12',1,'alert.h']]],
- ['dtls_5falert_5funexpected_5fmessage',['DTLS_ALERT_UNEXPECTED_MESSAGE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda7b9032725373912bd7fda54af8704d8a',1,'alert.h']]],
- ['dtls_5falert_5funknown_5fca',['DTLS_ALERT_UNKNOWN_CA',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbdaf8b7bd9f8a6c02080f4b1af566bc1a2f',1,'alert.h']]],
- ['dtls_5falert_5funsupported_5fcertificate',['DTLS_ALERT_UNSUPPORTED_CERTIFICATE',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda0de27a30ca57e1a93a066e8dc6b6beab',1,'alert.h']]],
- ['dtls_5falert_5funsupported_5fextension',['DTLS_ALERT_UNSUPPORTED_EXTENSION',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda8512357ac6a83788ea76feb2ed9e2efc',1,'alert.h']]],
- ['dtls_5falert_5fuser_5fcanceled',['DTLS_ALERT_USER_CANCELED',['../alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbda98631510b0a19a786fb4bc896ed37638',1,'alert.h']]],
- ['dtls_5fclient',['DTLS_CLIENT',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8afd8391395303e28ee9b375232cb68a1e',1,'peer.h']]],
- ['dtls_5fecdh_5fcurve_5fsecp256r1',['DTLS_ECDH_CURVE_SECP256R1',['../crypto_8h.html#a3710d42871d602387a5147c05bf9f1efa517a66bf6725327c3240add3537f34ff',1,'crypto.h']]],
- ['dtls_5flog_5falert',['DTLS_LOG_ALERT',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5d02ea1ea67cb762b8821f35d7cccd9e',1,'debug.h']]],
- ['dtls_5flog_5fcrit',['DTLS_LOG_CRIT',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dae376c811a8735fe72f67131ba1a1428d',1,'debug.h']]],
- ['dtls_5flog_5fdebug',['DTLS_LOG_DEBUG',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da87f82ea2bdc3f03d9f6d3355a5f8a020',1,'debug.h']]],
- ['dtls_5flog_5femerg',['DTLS_LOG_EMERG',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9daaa080e6de827addce6dc6af232ecba3e',1,'debug.h']]],
- ['dtls_5flog_5finfo',['DTLS_LOG_INFO',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da9b79f1b32df348f97ce4366d0f0454c7',1,'debug.h']]],
- ['dtls_5flog_5fnotice',['DTLS_LOG_NOTICE',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9da5f9ff4e9574b821a0c43261c9a9dca09',1,'debug.h']]],
- ['dtls_5flog_5fwarn',['DTLS_LOG_WARN',['../debug_8h.html#a5cae2fb7fec0dd9e63cf2d755642cd9dafd78dbf760d741729305d83727c14c70',1,'debug.h']]],
- ['dtls_5fpsk_5fhint',['DTLS_PSK_HINT',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a53b5588e3c87ce19b1340baf193d130c',1,'dtls.h']]],
- ['dtls_5fpsk_5fidentity',['DTLS_PSK_IDENTITY',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01adb8cac45614b2bc4e66970b64043cfc2',1,'dtls.h']]],
- ['dtls_5fpsk_5fkey',['DTLS_PSK_KEY',['../dtls_8h.html#a36eda3add5e2d12a3b5e2b6fe7038e01a1d64c04f18b370cf742595dc91098db4',1,'dtls.h']]],
- ['dtls_5fserver',['DTLS_SERVER',['../peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8a7c2a694fc87273c445ad661575b28255',1,'peer.h']]],
- ['dtls_5fstate_5fclienthello',['DTLS_STATE_CLIENTHELLO',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53',1,'state.h']]],
- ['dtls_5fstate_5fclosed',['DTLS_STATE_CLOSED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553',1,'state.h']]],
- ['dtls_5fstate_5fclosing',['DTLS_STATE_CLOSING',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b',1,'state.h']]],
- ['dtls_5fstate_5fconnected',['DTLS_STATE_CONNECTED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122',1,'state.h']]],
- ['dtls_5fstate_5ffinished',['DTLS_STATE_FINISHED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b',1,'state.h']]],
- ['dtls_5fstate_5finit',['DTLS_STATE_INIT',['../state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fcertificateverify',['DTLS_STATE_WAIT_CERTIFICATEVERIFY',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fchangecipherspec',['DTLS_STATE_WAIT_CHANGECIPHERSPEC',['../state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclientcertificate',['DTLS_STATE_WAIT_CLIENTCERTIFICATE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclienthello',['DTLS_STATE_WAIT_CLIENTHELLO',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fclientkeyexchange',['DTLS_STATE_WAIT_CLIENTKEYEXCHANGE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05',1,'state.h']]],
- ['dtls_5fstate_5fwait_5ffinished',['DTLS_STATE_WAIT_FINISHED',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fservercertificate',['DTLS_STATE_WAIT_SERVERCERTIFICATE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fserverhellodone',['DTLS_STATE_WAIT_SERVERHELLODONE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0',1,'state.h']]],
- ['dtls_5fstate_5fwait_5fserverkeyexchange',['DTLS_STATE_WAIT_SERVERKEYEXCHANGE',['../state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330',1,'state.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enumvalues_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['hash_5fmd5',['HASH_MD5',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a45c78681038e51d5f54554130b0b79ab',1,'hmac.h']]],
- ['hash_5fnone',['HASH_NONE',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a065bed423473d8a44394cd4415de3018',1,'hmac.h']]],
- ['hash_5fsha1',['HASH_SHA1',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a25c481ea5e9f16f9b40fe773528aef03',1,'hmac.h']]],
- ['hash_5fsha224',['HASH_SHA224',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a0a7940bf3dbc032d803b1b688e5570e5',1,'hmac.h']]],
- ['hash_5fsha256',['HASH_SHA256',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a3690b7a5bf11282bcdaa199c11408dd3',1,'hmac.h']]],
- ['hash_5fsha384',['HASH_SHA384',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23abb45ce56a912f1175c413afcb3e1f970',1,'hmac.h']]],
- ['hash_5fsha512',['HASH_SHA512',['../group__HMAC.html#gga698cfa036e69361a93dcdd9b19579b23a6d06d1ec4dbf3aa876fda6ca1c5b0f66',1,'hmac.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="enumvalues_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['tls_5fcompression_5fnull',['TLS_COMPRESSION_NULL',['../global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca',1,'global.h']]],
- ['tls_5fecdhe_5fecdsa_5fwith_5faes_5f128_5fccm_5f8',['TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba197892e216f63ddbc91c2b006a2d4c1e',1,'global.h']]],
- ['tls_5fnull_5fwith_5fnull_5fnull',['TLS_NULL_WITH_NULL_NULL',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59bacf33de998fd00f096eebbb0742d80abd',1,'global.h']]],
- ['tls_5fpsk_5fwith_5faes_5f128_5fccm_5f8',['TLS_PSK_WITH_AES_128_CCM_8',['../global_8h.html#ada7e71454d685b693df45b2c1ea0c59ba39a3062f136db88f648ce514a591fac8',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['alert_2eh',['alert.h',['../alert_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['ccm_2ec',['ccm.c',['../ccm_8c.html',1,'']]],
- ['ccm_2eh',['ccm.h',['../ccm_8h.html',1,'']]],
- ['config_2eh',['config.h',['../config_8h.html',1,'']]],
- ['contiki_2dconfig_2eh',['contiki-config.h',['../contiki-config_8h.html',1,'']]],
- ['crypto_2ec',['crypto.c',['../crypto_8c.html',1,'']]],
- ['crypto_2eh',['crypto.h',['../crypto_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['debug_2ec',['debug.c',['../debug_8c.html',1,'']]],
- ['debug_2eh',['debug.h',['../debug_8h.html',1,'']]],
- ['dtls_2ec',['dtls.c',['../dtls_8c.html',1,'']]],
- ['dtls_2eh',['dtls.h',['../dtls_8h.html',1,'']]],
- ['dtls_5fconfig_2eh',['dtls_config.h',['../dtls__config_8h.html',1,'']]],
- ['dtls_5ftime_2ec',['dtls_time.c',['../dtls__time_8c.html',1,'']]],
- ['dtls_5ftime_2eh',['dtls_time.h',['../dtls__time_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['global_2eh',['global.h',['../global_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['hmac_2ec',['hmac.c',['../hmac_8c.html',1,'']]],
- ['hmac_2eh',['hmac.h',['../hmac_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['netq_2ec',['netq.c',['../netq_8c.html',1,'']]],
- ['netq_2eh',['netq.h',['../netq_8h.html',1,'']]],
- ['numeric_2eh',['numeric.h',['../numeric_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['peer_2ec',['peer.c',['../peer_8c.html',1,'']]],
- ['peer_2eh',['peer.h',['../peer_8h.html',1,'']]],
- ['prng_2eh',['prng.h',['../prng_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['session_2ec',['session.c',['../session_8c.html',1,'']]],
- ['session_2eh',['session.h',['../session_8h.html',1,'']]],
- ['state_2eh',['state.h',['../state_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['t_5flist_2eh',['t_list.h',['../t__list_8h.html',1,'']]],
- ['tinydtls_2eh',['tinydtls.h',['../tinydtls_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="files_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['uthash_2eh',['uthash.h',['../uthash_8h.html',1,'']]],
- ['utlist_2eh',['utlist.h',['../utlist_8h.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../dtls_8h.html#ad09246453a4dabd919c7541484046a87',1,'dtls.h']]],
- ['_5fdtls_5faddress_5fequals_5fimpl',['_dtls_address_equals_impl',['../session_8c.html#af9b9333222aabb1440f5c7846f7be85f',1,'session.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['add_5fauth_5fdata',['add_auth_data',['../ccm_8c.html#a59faf5a2a638dc03c01605d4bebe0bcc',1,'ccm.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['block0',['block0',['../ccm_8c.html#a1dfe92428f63772e3907a26435e54354',1,'ccm.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['calculate_5fkey_5fblock',['calculate_key_block',['../dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b',1,'dtls.c']]],
- ['check_5fcertificate_5frequest',['check_certificate_request',['../dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e',1,'dtls.c']]],
- ['check_5fclient_5fcertificate_5fverify',['check_client_certificate_verify',['../dtls_8c.html#a017195b30506fbdf32fff55af9276a02',1,'dtls.c']]],
- ['check_5fclient_5fkeyexchange',['check_client_keyexchange',['../dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f',1,'dtls.c']]],
- ['check_5ffinished',['check_finished',['../dtls_8c.html#a91b2653747ca1e4058ae3b350019188b',1,'dtls.c']]],
- ['check_5fserver_5fcertificate',['check_server_certificate',['../dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7',1,'dtls.c']]],
- ['check_5fserver_5fhello',['check_server_hello',['../dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26',1,'dtls.c']]],
- ['check_5fserver_5fhello_5fverify_5frequest',['check_server_hello_verify_request',['../dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642',1,'dtls.c']]],
- ['check_5fserver_5fhellodone',['check_server_hellodone',['../dtls_8c.html#aca393c29148080d4dfa343c8ec283928',1,'dtls.c']]],
- ['check_5fserver_5fkey_5fexchange_5fecdsa',['check_server_key_exchange_ecdsa',['../dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb',1,'dtls.c']]],
- ['check_5fserver_5fkey_5fexchange_5fpsk',['check_server_key_exchange_psk',['../dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054',1,'dtls.c']]],
- ['check_5fstack',['check_stack',['../debug_8h.html#a4a3c60a1e54594e78cd207c57ddb1378',1,'debug.h']]],
- ['clear_5fhs_5fhash',['clear_hs_hash',['../dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d',1,'dtls.c']]],
- ['copy_5fhs_5fhash',['copy_hs_hash',['../dtls_8c.html#a22ab7a79391c2204337237949d69dad8',1,'dtls.c']]],
- ['crypto_5finit',['crypto_init',['../crypto_8c.html#a86e6ce9d4b4afcef355836955697f52c',1,'crypto_init(): crypto.c'],['../crypto_8h.html#a86e6ce9d4b4afcef355836955697f52c',1,'crypto_init(): crypto.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['decrypt_5fverify',['decrypt_verify',['../dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71',1,'dtls.c']]],
- ['dsrv_5flog',['dsrv_log',['../debug_8c.html#ace8ca7929ecfc486c3ef40828c79bfe5',1,'dsrv_log(log_t level, char *format,...): debug.c'],['../debug_8h.html#ace8ca7929ecfc486c3ef40828c79bfe5',1,'dsrv_log(log_t level, char *format,...): debug.c']]],
- ['dsrv_5fprint_5faddr',['dsrv_print_addr',['../debug_8c.html#aa6c8e3e1a02e7cb1567391d3a5ca8bf2',1,'debug.c']]],
- ['dtls_5fadd_5fecdsa_5fsignature_5felem',['dtls_add_ecdsa_signature_elem',['../dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d',1,'dtls.c']]],
- ['dtls_5fadd_5fpeer',['dtls_add_peer',['../dtls_8c.html#ae4a2961a027959f907145f82ca9107c3',1,'dtls.c']]],
- ['dtls_5falert_5fcreate',['dtls_alert_create',['../alert_8h.html#a4242f419ffdd4b83bfaa2a0935ed2b6d',1,'alert.h']]],
- ['dtls_5falert_5ffatal_5fcreate',['dtls_alert_fatal_create',['../alert_8h.html#a9b9a52e7d4bb621be12878c7dfc8f5df',1,'alert.h']]],
- ['dtls_5falert_5fsend_5ffrom_5ferr',['dtls_alert_send_from_err',['../dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e',1,'dtls.c']]],
- ['dtls_5fccm_5fdecrypt',['dtls_ccm_decrypt',['../crypto_8c.html#a64f692530b9bb934f8852ca27c9ca2a1',1,'crypto.c']]],
- ['dtls_5fccm_5fdecrypt_5fmessage',['dtls_ccm_decrypt_message',['../ccm_8c.html#aa3e92bdeca1d0730d48b8a85181d5b6d',1,'dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c'],['../ccm_8h.html#aa3e92bdeca1d0730d48b8a85181d5b6d',1,'dtls_ccm_decrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c']]],
- ['dtls_5fccm_5fencrypt',['dtls_ccm_encrypt',['../crypto_8c.html#a8b75c06a8e364132816aaddb81db0f2c',1,'crypto.c']]],
- ['dtls_5fccm_5fencrypt_5fmessage',['dtls_ccm_encrypt_message',['../ccm_8c.html#a40f4f23b5687e18dc1bce1c19101da42',1,'dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c'],['../ccm_8h.html#a40f4f23b5687e18dc1bce1c19101da42',1,'dtls_ccm_encrypt_message(rijndael_ctx *ctx, size_t M, size_t L, unsigned char nonce[DTLS_CCM_BLOCKSIZE], unsigned char *msg, size_t lm, const unsigned char *aad, size_t la): ccm.c']]],
- ['dtls_5fcheck_5fecdsa_5fsignature_5felem',['dtls_check_ecdsa_signature_elem',['../dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54',1,'dtls.c']]],
- ['dtls_5fcheck_5fretransmit',['dtls_check_retransmit',['../dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82',1,'dtls_check_retransmit(dtls_context_t *context, clock_time_t *next): dtls.c'],['../dtls_8h.html#ab50d1ee589e91d07032d0a65768dee82',1,'dtls_check_retransmit(dtls_context_t *context, clock_time_t *next): dtls.c']]],
- ['dtls_5fcheck_5ftls_5fextension',['dtls_check_tls_extension',['../dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a',1,'dtls.c']]],
- ['dtls_5fcipher_5fcontext_5fget',['dtls_cipher_context_get',['../crypto_8c.html#a5e6fa88c169e5d7289052600fc445c29',1,'crypto.c']]],
- ['dtls_5fcipher_5fcontext_5frelease',['dtls_cipher_context_release',['../crypto_8c.html#af65bc79ab89b4e162a0d30938d13109e',1,'crypto.c']]],
- ['dtls_5fclock_5finit',['dtls_clock_init',['../group__clock.html#ga8b340ad858b708dbc7bf40f784935c90',1,'dtls_clock_init(void): dtls_time.c'],['../group__clock.html#ga8b340ad858b708dbc7bf40f784935c90',1,'dtls_clock_init(void): dtls_time.c']]],
- ['dtls_5fclose',['dtls_close',['../dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a',1,'dtls_close(dtls_context_t *ctx, const session_t *remote): dtls.c'],['../dtls_8h.html#aa90f5eb6954137d5e098e29143c2586a',1,'dtls_close(dtls_context_t *ctx, const session_t *remote): dtls.c']]],
- ['dtls_5fconnect',['dtls_connect',['../dtls_8c.html#a187f5e145bb869a732fbed426929a4e9',1,'dtls_connect(dtls_context_t *ctx, const session_t *dst): dtls.c'],['../dtls_8h.html#a187f5e145bb869a732fbed426929a4e9',1,'dtls_connect(dtls_context_t *ctx, const session_t *dst): dtls.c']]],
- ['dtls_5fconnect_5fpeer',['dtls_connect_peer',['../dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62',1,'dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer): dtls.c'],['../dtls_8h.html#ad60bf1197fa1a074f91aed508cfefa62',1,'dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer): dtls.c']]],
- ['dtls_5fcreate_5fcookie',['dtls_create_cookie',['../dtls_8c.html#a45841106ebcb5b1373c0312842b90943',1,'dtls.c']]],
- ['dtls_5fdebug_5fkeyblock',['dtls_debug_keyblock',['../dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd',1,'dtls.c']]],
- ['dtls_5fdecrypt',['dtls_decrypt',['../crypto_8c.html#aac32554190e3970917a31ff01eed4080',1,'dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la): crypto.c'],['../crypto_8h.html#a3a99a8753c2eb9baf1e03fe0ffbb813b',1,'dtls_decrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *a_data, size_t a_data_length): crypto.c']]],
- ['dtls_5fdestroy_5fpeer',['dtls_destroy_peer',['../dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3',1,'dtls.c']]],
- ['dtls_5fdsrv_5fhexdump_5flog',['dtls_dsrv_hexdump_log',['../debug_8c.html#a8badc2780b90e28c6c4e1a3b410b31cc',1,'dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend): debug.c'],['../debug_8h.html#a8badc2780b90e28c6c4e1a3b410b31cc',1,'dtls_dsrv_hexdump_log(log_t level, const char *name, const unsigned char *buf, size_t length, int extend): debug.c']]],
- ['dtls_5fdsrv_5flog_5faddr',['dtls_dsrv_log_addr',['../debug_8c.html#a66cb8756d40a3326315d9b5f003a5a76',1,'dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr): debug.c'],['../debug_8h.html#a66cb8756d40a3326315d9b5f003a5a76',1,'dtls_dsrv_log_addr(log_t level, const char *name, const session_t *addr): debug.c']]],
- ['dtls_5fec_5fkey_5ffrom_5fuint32',['dtls_ec_key_from_uint32',['../crypto_8c.html#a8cefde2bc97452f889600c6b17ff04a6',1,'crypto.c']]],
- ['dtls_5fec_5fkey_5ffrom_5fuint32_5fasn1',['dtls_ec_key_from_uint32_asn1',['../crypto_8c.html#a5ae24f3621f545752732e318840d7e2b',1,'dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf): crypto.c'],['../crypto_8h.html#a5ae24f3621f545752732e318840d7e2b',1,'dtls_ec_key_from_uint32_asn1(const uint32_t *key, size_t key_size, unsigned char *buf): crypto.c']]],
- ['dtls_5fec_5fkey_5fto_5fuint32',['dtls_ec_key_to_uint32',['../crypto_8c.html#aaa510b41aa69dc5f93a1bf5bdde4a9c4',1,'crypto.c']]],
- ['dtls_5fecdh_5fpre_5fmaster_5fsecret',['dtls_ecdh_pre_master_secret',['../crypto_8c.html#a5f9937088ea2e1d19e7d472fecae9aaa',1,'dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len): crypto.c'],['../crypto_8h.html#a5f9937088ea2e1d19e7d472fecae9aaa',1,'dtls_ecdh_pre_master_secret(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size, unsigned char *result, size_t result_len): crypto.c']]],
- ['dtls_5fecdsa_5fcreate_5fsig',['dtls_ecdsa_create_sig',['../crypto_8c.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82',1,'dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c'],['../crypto_8h.html#afa2d9b2a195a1d8e8c56b1af8cb7bc82',1,'dtls_ecdsa_create_sig(const unsigned char *priv_key, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c']]],
- ['dtls_5fecdsa_5fcreate_5fsig_5fhash',['dtls_ecdsa_create_sig_hash',['../crypto_8c.html#a49f03039780664684d110d83a228b163',1,'dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c'],['../crypto_8h.html#a49f03039780664684d110d83a228b163',1,'dtls_ecdsa_create_sig_hash(const unsigned char *priv_key, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, uint32_t point_r[9], uint32_t point_s[9]): crypto.c']]],
- ['dtls_5fecdsa_5fgenerate_5fkey',['dtls_ecdsa_generate_key',['../crypto_8c.html#a982fc9e78cd10d9323756b15b72c7970',1,'dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size): crypto.c'],['../crypto_8h.html#a982fc9e78cd10d9323756b15b72c7970',1,'dtls_ecdsa_generate_key(unsigned char *priv_key, unsigned char *pub_key_x, unsigned char *pub_key_y, size_t key_size): crypto.c']]],
- ['dtls_5fecdsa_5fverify_5fsig',['dtls_ecdsa_verify_sig',['../crypto_8c.html#a035860da45ba2586a95c8ef7f539a3c9',1,'dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s): crypto.c'],['../crypto_8h.html#a035860da45ba2586a95c8ef7f539a3c9',1,'dtls_ecdsa_verify_sig(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *client_random, size_t client_random_size, const unsigned char *server_random, size_t server_random_size, const unsigned char *keyx_params, size_t keyx_params_size, unsigned char *result_r, unsigned char *result_s): crypto.c']]],
- ['dtls_5fecdsa_5fverify_5fsig_5fhash',['dtls_ecdsa_verify_sig_hash',['../crypto_8c.html#a802b3a2b267747a76d4557c6c9a899d7',1,'dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s): crypto.c'],['../crypto_8h.html#a802b3a2b267747a76d4557c6c9a899d7',1,'dtls_ecdsa_verify_sig_hash(const unsigned char *pub_key_x, const unsigned char *pub_key_y, size_t key_size, const unsigned char *sign_hash, size_t sign_hash_size, unsigned char *result_r, unsigned char *result_s): crypto.c']]],
- ['dtls_5fencrypt',['dtls_encrypt',['../crypto_8c.html#ad58098f0e821f81b4f1a6672ead17ac5',1,'dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t la): crypto.c'],['../crypto_8h.html#a288c4ec1a5110ab3f44ab3cb7c289e69',1,'dtls_encrypt(const unsigned char *src, size_t length, unsigned char *buf, unsigned char *nounce, unsigned char *key, size_t keylen, const unsigned char *aad, size_t aad_length): crypto.c']]],
- ['dtls_5ffls',['dtls_fls',['../global_8h.html#ae10dcc6b71efe025c990ac2f3d8a48b8',1,'global.h']]],
- ['dtls_5ffree_5fcontext',['dtls_free_context',['../dtls_8c.html#a3171c099d25ed29e31326526b8e1de84',1,'dtls_free_context(dtls_context_t *ctx): dtls.c'],['../dtls_8h.html#a3171c099d25ed29e31326526b8e1de84',1,'dtls_free_context(dtls_context_t *ctx): dtls.c']]],
- ['dtls_5ffree_5fpeer',['dtls_free_peer',['../peer_8c.html#a037178c201b2e6b7361570ff700f059d',1,'dtls_free_peer(dtls_peer_t *peer): peer.c'],['../peer_8h.html#a037178c201b2e6b7361570ff700f059d',1,'dtls_free_peer(dtls_peer_t *peer): peer.c']]],
- ['dtls_5fget_5fcookie',['dtls_get_cookie',['../dtls_8c.html#a8546683053c19be38b23aa9042139f4b',1,'dtls.c']]],
- ['dtls_5fget_5flog_5flevel',['dtls_get_log_level',['../debug_8c.html#a0af8abc8cf3864ea04954b3537c7e07f',1,'dtls_get_log_level(): debug.c'],['../debug_8h.html#a0af8abc8cf3864ea04954b3537c7e07f',1,'dtls_get_log_level(): debug.c']]],
- ['dtls_5fget_5fpeer',['dtls_get_peer',['../dtls_8c.html#a70333bea2db35153177347b5c7700cab',1,'dtls_get_peer(const dtls_context_t *ctx, const session_t *session): dtls.c'],['../dtls_8h.html#a3fd062108e5d0f48627ae644546824a6',1,'dtls_get_peer(const dtls_context_t *context, const session_t *session): dtls.c']]],
- ['dtls_5fhandle_5fmessage',['dtls_handle_message',['../dtls_8c.html#ae272fea7269714fe7a67d6da64961731',1,'dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen): dtls.c'],['../dtls_8h.html#ae272fea7269714fe7a67d6da64961731',1,'dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen): dtls.c']]],
- ['dtls_5fhandshake_5fdealloc',['dtls_handshake_dealloc',['../crypto_8c.html#a120f7f398e1a71a5f16e5447842bcfb3',1,'crypto.c']]],
- ['dtls_5fhandshake_5ffree',['dtls_handshake_free',['../crypto_8c.html#aa17bcdc666796e52788f82ee003bb172',1,'dtls_handshake_free(dtls_handshake_parameters_t *handshake): crypto.c'],['../crypto_8h.html#aa17bcdc666796e52788f82ee003bb172',1,'dtls_handshake_free(dtls_handshake_parameters_t *handshake): crypto.c']]],
- ['dtls_5fhandshake_5fmalloc',['dtls_handshake_malloc',['../crypto_8c.html#aa1b91000e339073fd2a9344957c22cbe',1,'crypto.c']]],
- ['dtls_5fhandshake_5fnew',['dtls_handshake_new',['../crypto_8c.html#a25930cdb27a6ffcf05e2c2a9c95a6af8',1,'dtls_handshake_new(): crypto.c'],['../crypto_8h.html#a25930cdb27a6ffcf05e2c2a9c95a6af8',1,'dtls_handshake_new(): crypto.c']]],
- ['dtls_5fhandshake_5ftype_5fto_5fname',['dtls_handshake_type_to_name',['../dtls_8c.html#a00707f0f82235a2432338e77dae0911d',1,'dtls.c']]],
- ['dtls_5fhash_5ffinalize',['dtls_hash_finalize',['../hmac_8h.html#a96801bbb62f4c9c872b22cd8e438e51e',1,'hmac.h']]],
- ['dtls_5fhash_5finit',['dtls_hash_init',['../hmac_8h.html#afe0af64930ac5d6a51289df6d1eb4f52',1,'hmac.h']]],
- ['dtls_5fhash_5fupdate',['dtls_hash_update',['../hmac_8h.html#adb5ad07ab9a1adcdfdc20e13aa37bee6',1,'hmac.h']]],
- ['dtls_5fhmac_5fcontext_5ffree',['dtls_hmac_context_free',['../hmac_8c.html#a8613e734d3fafa81035f8f30000325a7',1,'hmac.c']]],
- ['dtls_5fhmac_5fcontext_5fnew',['dtls_hmac_context_new',['../hmac_8c.html#affb72973a7bb7b389a4b7382d435fcef',1,'hmac.c']]],
- ['dtls_5fhmac_5ffinalize',['dtls_hmac_finalize',['../group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf',1,'dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result): hmac.c'],['../group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf',1,'dtls_hmac_finalize(dtls_hmac_context_t *ctx, unsigned char *result): hmac.c']]],
- ['dtls_5fhmac_5ffree',['dtls_hmac_free',['../group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181',1,'dtls_hmac_free(dtls_hmac_context_t *ctx): hmac.c'],['../group__HMAC.html#ga5b1a3c1dcb5461bda44dd70f7bd33181',1,'dtls_hmac_free(dtls_hmac_context_t *ctx): hmac.c']]],
- ['dtls_5fhmac_5finit',['dtls_hmac_init',['../group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d',1,'dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen): hmac.c'],['../group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d',1,'dtls_hmac_init(dtls_hmac_context_t *ctx, const unsigned char *key, size_t klen): hmac.c']]],
- ['dtls_5fhmac_5fnew',['dtls_hmac_new',['../group__HMAC.html#gac3e9ef037800963783e618eafd046702',1,'dtls_hmac_new(const unsigned char *key, size_t klen): hmac.c'],['../group__HMAC.html#gac3e9ef037800963783e618eafd046702',1,'dtls_hmac_new(const unsigned char *key, size_t klen): hmac.c']]],
- ['dtls_5fhmac_5fstorage_5finit',['dtls_hmac_storage_init',['../hmac_8h.html#a51d5982243691c9e7fa56142c3a8d5d8',1,'hmac.h']]],
- ['dtls_5fhmac_5fupdate',['dtls_hmac_update',['../group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73',1,'dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen): hmac.c'],['../group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73',1,'dtls_hmac_update(dtls_hmac_context_t *ctx, const unsigned char *input, size_t ilen): hmac.c']]],
- ['dtls_5finit',['dtls_init',['../dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd',1,'dtls_init(): dtls.c'],['../dtls_8h.html#ac203466e393ac9030d405c8f0496e9cd',1,'dtls_init(): dtls.c']]],
- ['dtls_5fint_5fto_5fuint16',['dtls_int_to_uint16',['../numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint24',['dtls_int_to_uint24',['../numeric_8h.html#aff276cdd846cd194a21e9c61549292f6',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint32',['dtls_int_to_uint32',['../numeric_8h.html#a6914ee523b27539f4e441bede8c072b4',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint48',['dtls_int_to_uint48',['../numeric_8h.html#abe324cc4e62d03bdecf457382ba213c8',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint64',['dtls_int_to_uint64',['../numeric_8h.html#ab4d80395fb7f4118dfcb101ae94a5e93',1,'numeric.h']]],
- ['dtls_5fint_5fto_5fuint8',['dtls_int_to_uint8',['../numeric_8h.html#a7b602967e2fc28b0be02bd4585e255d0',1,'numeric.h']]],
- ['dtls_5fmac',['dtls_mac',['../crypto_8c.html#a1423f8111df1533241178461c10b50e3',1,'dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf): crypto.c'],['../crypto_8h.html#a1423f8111df1533241178461c10b50e3',1,'dtls_mac(dtls_hmac_context_t *hmac_ctx, const unsigned char *record, const unsigned char *packet, size_t length, unsigned char *buf): crypto.c']]],
- ['dtls_5fmalloc_5fpeer',['dtls_malloc_peer',['../peer_8c.html#a89738cd2081b322562b9893c524fb0e1',1,'peer.c']]],
- ['dtls_5fnew_5fcontext',['dtls_new_context',['../dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c',1,'dtls_new_context(void *app_data): dtls.c'],['../dtls_8h.html#a11f53d301448aa8f1dbcfaf77441bd9c',1,'dtls_new_context(void *app_data): dtls.c']]],
- ['dtls_5fnew_5fpeer',['dtls_new_peer',['../peer_8c.html#a209e22be64be13e116711829d21d864c',1,'dtls_new_peer(const session_t *session): peer.c'],['../peer_8h.html#a209e22be64be13e116711829d21d864c',1,'dtls_new_peer(const session_t *session): peer.c']]],
- ['dtls_5fp_5fhash',['dtls_p_hash',['../crypto_8c.html#aea7bd0a10cf289c033216a97c0ee701e',1,'dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c'],['../crypto_8h.html#aea7bd0a10cf289c033216a97c0ee701e',1,'dtls_p_hash(dtls_hashfunc_t h, const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c']]],
- ['dtls_5fpackage_5fname',['dtls_package_name',['../debug_8c.html#a6ae22adf81d9aaf0a2ed74f7f7437971',1,'dtls_package_name(): debug.c'],['../debug_8h.html#a6ae22adf81d9aaf0a2ed74f7f7437971',1,'dtls_package_name(): debug.c']]],
- ['dtls_5fpackage_5fversion',['dtls_package_version',['../debug_8c.html#aab7b9dac4484be50856ab8b8a827d235',1,'dtls_package_version(): debug.c'],['../debug_8h.html#aab7b9dac4484be50856ab8b8a827d235',1,'dtls_package_version(): debug.c']]],
- ['dtls_5fpeer_5fis_5fconnected',['dtls_peer_is_connected',['../peer_8h.html#aaad8608f29d9a70bf09b7de310185c48',1,'peer.h']]],
- ['dtls_5fpeer_5fstate',['dtls_peer_state',['../peer_8h.html#a64d83f0fe464f0eeb905b913345d0614',1,'peer.h']]],
- ['dtls_5fprepare_5frecord',['dtls_prepare_record',['../dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5',1,'dtls.c']]],
- ['dtls_5fprf',['dtls_prf',['../crypto_8c.html#a5e47576e502b5a6255f1b489a4915512',1,'dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c'],['../crypto_8h.html#a5e47576e502b5a6255f1b489a4915512',1,'dtls_prf(const unsigned char *key, size_t keylen, const unsigned char *label, size_t labellen, const unsigned char *random1, size_t random1len, const unsigned char *random2, size_t random2len, unsigned char *buf, size_t buflen): crypto.c']]],
- ['dtls_5fprng',['dtls_prng',['../group__prng.html#ga3f4036a1abfcec552ab583a2dc37be6c',1,'prng.h']]],
- ['dtls_5fprng_5finit',['dtls_prng_init',['../group__prng.html#gac68680277206146d06c9e5468f260ee0',1,'prng.h']]],
- ['dtls_5fpsk_5fpre_5fmaster_5fsecret',['dtls_psk_pre_master_secret',['../crypto_8c.html#aa53dfed4868e257d2485024b5c170bae',1,'dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len): crypto.c'],['../crypto_8h.html#aa53dfed4868e257d2485024b5c170bae',1,'dtls_psk_pre_master_secret(unsigned char *key, size_t keylen, unsigned char *result, size_t result_len): crypto.c']]],
- ['dtls_5frenegotiate',['dtls_renegotiate',['../dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1',1,'dtls_renegotiate(dtls_context_t *ctx, const session_t *dst): dtls.c'],['../dtls_8h.html#a5676a0ceeeabd1ec38d378212f7af4a1',1,'dtls_renegotiate(dtls_context_t *ctx, const session_t *dst): dtls.c']]],
- ['dtls_5fretransmit',['dtls_retransmit',['../dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb',1,'dtls.c']]],
- ['dtls_5fsecurity_5fdealloc',['dtls_security_dealloc',['../crypto_8c.html#a444e2410b15ce27c6201204476d20497',1,'crypto.c']]],
- ['dtls_5fsecurity_5ffree',['dtls_security_free',['../crypto_8c.html#ad54069f2880b3c07185ebba736d02d17',1,'dtls_security_free(dtls_security_parameters_t *security): crypto.c'],['../crypto_8h.html#ad54069f2880b3c07185ebba736d02d17',1,'dtls_security_free(dtls_security_parameters_t *security): crypto.c']]],
- ['dtls_5fsecurity_5fmalloc',['dtls_security_malloc',['../crypto_8c.html#aa58fc0b3953c6048834855a364432d8c',1,'crypto.c']]],
- ['dtls_5fsecurity_5fnew',['dtls_security_new',['../crypto_8c.html#a1d568085636a04b4706b7e50df802a7b',1,'dtls_security_new(): crypto.c'],['../crypto_8h.html#a1d568085636a04b4706b7e50df802a7b',1,'dtls_security_new(): crypto.c']]],
- ['dtls_5fsecurity_5fparams',['dtls_security_params',['../peer_8h.html#a48abcad7383e1db957af9b4fed030d52',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fepoch',['dtls_security_params_epoch',['../peer_8h.html#af5de0315efd7e8c6b1aecf60078b2dd7',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5ffree_5fother',['dtls_security_params_free_other',['../peer_8h.html#a9d0ec25ba319a38b17f30cf156e85c51',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fnext',['dtls_security_params_next',['../peer_8h.html#ab6e209f206f570eed246530ec7960943',1,'peer.h']]],
- ['dtls_5fsecurity_5fparams_5fswitch',['dtls_security_params_switch',['../peer_8h.html#a9c37ce3fd7539154289dd17215179e2d',1,'peer.h']]],
- ['dtls_5fsend',['dtls_send',['../dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6',1,'dtls.c']]],
- ['dtls_5fsend_5falert',['dtls_send_alert',['../dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641',1,'dtls.c']]],
- ['dtls_5fsend_5fccs',['dtls_send_ccs',['../dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5',1,'dtls.c']]],
- ['dtls_5fsend_5fcertificate_5fecdsa',['dtls_send_certificate_ecdsa',['../dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220',1,'dtls.c']]],
- ['dtls_5fsend_5fcertificate_5fverify_5fecdh',['dtls_send_certificate_verify_ecdh',['../dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34',1,'dtls.c']]],
- ['dtls_5fsend_5fclient_5fhello',['dtls_send_client_hello',['../dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476',1,'dtls.c']]],
- ['dtls_5fsend_5fclient_5fkey_5fexchange',['dtls_send_client_key_exchange',['../dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d',1,'dtls.c']]],
- ['dtls_5fsend_5ffinished',['dtls_send_finished',['../dtls_8c.html#a112e0d83a0e576b5d22df60241900a67',1,'dtls.c']]],
- ['dtls_5fsend_5fhandshake_5fmsg',['dtls_send_handshake_msg',['../dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b',1,'dtls.c']]],
- ['dtls_5fsend_5fhandshake_5fmsg_5fhash',['dtls_send_handshake_msg_hash',['../dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880',1,'dtls.c']]],
- ['dtls_5fsend_5fhello_5frequest',['dtls_send_hello_request',['../dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad',1,'dtls.c']]],
- ['dtls_5fsend_5fmulti',['dtls_send_multi',['../dtls_8c.html#aa89745c0af073102c9c350d28a84214d',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fcertificate_5frequest',['dtls_send_server_certificate_request',['../dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello',['dtls_send_server_hello',['../dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello_5fdone',['dtls_send_server_hello_done',['../dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fhello_5fmsgs',['dtls_send_server_hello_msgs',['../dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fkey_5fexchange_5fecdh',['dtls_send_server_key_exchange_ecdh',['../dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15',1,'dtls.c']]],
- ['dtls_5fsend_5fserver_5fkey_5fexchange_5fpsk',['dtls_send_server_key_exchange_psk',['../dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3',1,'dtls.c']]],
- ['dtls_5fsession_5fequals',['dtls_session_equals',['../session_8c.html#a96f4d60f388d56d37b3e69261bea2417',1,'dtls_session_equals(const session_t *a, const session_t *b): session.c'],['../session_8h.html#a96f4d60f388d56d37b3e69261bea2417',1,'dtls_session_equals(const session_t *a, const session_t *b): session.c']]],
- ['dtls_5fsession_5finit',['dtls_session_init',['../session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501',1,'dtls_session_init(session_t *sess): session.c'],['../session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501',1,'dtls_session_init(session_t *sess): session.c']]],
- ['dtls_5fset_5fhandler',['dtls_set_handler',['../dtls_8h.html#ab0e3223c87b79e4946b19538b24634da',1,'dtls.h']]],
- ['dtls_5fset_5fhandshake_5fheader',['dtls_set_handshake_header',['../dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1',1,'dtls.c']]],
- ['dtls_5fset_5flog_5flevel',['dtls_set_log_level',['../debug_8c.html#ae081a7241940f0195295cc37f39c1d02',1,'dtls_set_log_level(log_t level): debug.c'],['../debug_8h.html#ae081a7241940f0195295cc37f39c1d02',1,'dtls_set_log_level(log_t level): debug.c']]],
- ['dtls_5fset_5frecord_5fheader',['dtls_set_record_header',['../dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808',1,'dtls.c']]],
- ['dtls_5fstop_5fretransmission',['dtls_stop_retransmission',['../dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5',1,'dtls.c']]],
- ['dtls_5fstrnlen',['dtls_strnlen',['../debug_8c.html#a2ff663644d9ffbc6ac64b2da6cde5bfa',1,'debug.c']]],
- ['dtls_5fticks',['dtls_ticks',['../group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304',1,'dtls_ticks(dtls_tick_t *t): dtls_time.c'],['../group__clock.html#ga1834985745ba5d3dd03f7e7498e3a304',1,'dtls_ticks(dtls_tick_t *t): dtls_time.c']]],
- ['dtls_5fuint16_5fto_5fint',['dtls_uint16_to_int',['../numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f',1,'numeric.h']]],
- ['dtls_5fuint24_5fto_5fint',['dtls_uint24_to_int',['../numeric_8h.html#a238931e9197ce422acfba569deb2af71',1,'numeric.h']]],
- ['dtls_5fuint32_5fto_5fint',['dtls_uint32_to_int',['../numeric_8h.html#a91f840f763f90c6d88a267011edf86d0',1,'numeric.h']]],
- ['dtls_5fuint48_5fto_5fint',['dtls_uint48_to_int',['../numeric_8h.html#ae25d1d32eab6fe59318506984ebc23af',1,'numeric.h']]],
- ['dtls_5fuint64_5fto_5fint',['dtls_uint64_to_int',['../numeric_8h.html#aa7dcbb31a4c4319903f41008f1f311ae',1,'numeric.h']]],
- ['dtls_5fuint8_5fto_5fint',['dtls_uint8_to_int',['../numeric_8h.html#a7293cc28604d896cfef802b53b0ad99f',1,'numeric.h']]],
- ['dtls_5fupdate_5fparameters',['dtls_update_parameters',['../dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d',1,'dtls.c']]],
- ['dtls_5fverify_5fpeer',['dtls_verify_peer',['../dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f',1,'dtls.c']]],
- ['dtls_5fwrite',['dtls_write',['../dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2',1,'dtls_write(struct dtls_context_t *ctx, session_t *dst, uint8 *buf, size_t len): dtls.c'],['../dtls_8h.html#a4743f51c3197d290fc9a88e1f3a64928',1,'dtls_write(struct dtls_context_t *ctx, session_t *session, uint8 *buf, size_t len): dtls.c']]],
- ['dump',['dump',['../debug_8c.html#a7ee74b9f3941b0ec63f35da6b83fa240',1,'dump(unsigned char *buf, size_t len): debug.c'],['../debug_8h.html#a7ee74b9f3941b0ec63f35da6b83fa240',1,'dump(unsigned char *buf, size_t len): debug.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['encrypt',['encrypt',['../ccm_8c.html#a983462ca57ee8fe54249c77281f6559e',1,'ccm.c']]],
- ['equals',['equals',['../global_8h.html#a8277c276ecd5cd2f998f08fd344d90ef',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['finalize_5fhs_5fhash',['finalize_hs_hash',['../dtls_8c.html#adb41bf916dc34af5cd79003a9243b727',1,'dtls.c']]],
- ['free_5fcontext',['free_context',['../dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['handle_5falert',['handle_alert',['../dtls_8c.html#a445994c602b105608f277c6fc066301d',1,'dtls.c']]],
- ['handle_5fccs',['handle_ccs',['../dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664',1,'dtls.c']]],
- ['handle_5fhandshake',['handle_handshake',['../dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d',1,'dtls.c']]],
- ['handle_5fhandshake_5fmsg',['handle_handshake_msg',['../dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d',1,'dtls.c']]],
- ['hexdump',['hexdump',['../debug_8c.html#af5fe8134d8875eb856a4cd99313ec1b0',1,'hexdump(const unsigned char *packet, int length): debug.c'],['../debug_8h.html#af5fe8134d8875eb856a4cd99313ec1b0',1,'hexdump(const unsigned char *packet, int length): debug.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['is_5fecdsa_5fclient_5fauth_5fsupported',['is_ecdsa_client_auth_supported',['../dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa',1,'dtls.c']]],
- ['is_5fecdsa_5fsupported',['is_ecdsa_supported',['../dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21',1,'dtls.c']]],
- ['is_5fpsk_5fsupported',['is_psk_supported',['../dtls_8c.html#a3bbccb275cb23e84c0a148a157955770',1,'dtls.c']]],
- ['is_5frecord',['is_record',['../dtls_8c.html#aaafa285eb634873480c0ff429edd8064',1,'dtls.c']]],
- ['is_5ftls_5fecdhe_5fecdsa_5fwith_5faes_5f128_5fccm_5f8',['is_tls_ecdhe_ecdsa_with_aes_128_ccm_8',['../dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212',1,'dtls.c']]],
- ['is_5ftls_5fpsk_5fwith_5faes_5f128_5fccm_5f8',['is_tls_psk_with_aes_128_ccm_8',['../dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['known_5fcipher',['known_cipher',['../dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['list_5fadd',['list_add',['../t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120',1,'t_list.h']]],
- ['list_5fhead',['list_head',['../t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d',1,'t_list.h']]],
- ['list_5finsert',['list_insert',['../t__list_8h.html#a0d4152f6de47bfefa600867056bc3355',1,'t_list.h']]],
- ['list_5fitem_5fnext',['list_item_next',['../t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b',1,'t_list.h']]],
- ['list_5fpop',['list_pop',['../t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56',1,'t_list.h']]],
- ['list_5fpush',['list_push',['../t__list_8h.html#ab1521a806c1775e743ddefede17673fd',1,'t_list.h']]],
- ['list_5fremove',['list_remove',['../t__list_8h.html#a10de2120be61f445c5989c983c1e133b',1,'t_list.h']]],
- ['list_5fstruct',['LIST_STRUCT',['../structdtls__handshake__parameters__t.html#a44c54027bff617597d51f4fc862a1dc4',1,'dtls_handshake_parameters_t::LIST_STRUCT()'],['../structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af',1,'dtls_context_t::LIST_STRUCT()']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['mac',['mac',['../ccm_8c.html#af90d9a6bdae478b53926bf6f1bd6c9d5',1,'ccm.c']]],
- ['malloc_5fcontext',['malloc_context',['../dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a',1,'dtls.c']]],
- ['memxor',['memxor',['../global_8h.html#a6c31c5d8a0fe09547a192100d2a00dc5',1,'global.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_c.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['netq_5fdelete_5fall',['netq_delete_all',['../group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2',1,'netq_delete_all(list_t queue): netq.c'],['../group__netq.html#gac72fd2ec9f1e6908c8a10705fb6555e2',1,'netq_delete_all(list_t queue): netq.c']]],
- ['netq_5ffree_5fnode',['netq_free_node',['../netq_8c.html#a2e23675fa402ca2c66bc97cbd09e44f3',1,'netq.c']]],
- ['netq_5fhead',['netq_head',['../group__netq.html#gac769de2e30bcf2c2db89ff10822219d4',1,'netq_head(list_t queue): netq.c'],['../group__netq.html#gac769de2e30bcf2c2db89ff10822219d4',1,'netq_head(list_t queue): netq.c']]],
- ['netq_5finit',['netq_init',['../group__netq.html#ga9eba9e66570dcdfc933c6cf843694444',1,'netq.h']]],
- ['netq_5finsert_5fnode',['netq_insert_node',['../group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b',1,'netq_insert_node(list_t queue, netq_t *node): netq.c'],['../group__netq.html#ga142c8e39fe2cd55250e3c1f0370dfe6b',1,'netq_insert_node(list_t queue, netq_t *node): netq.c']]],
- ['netq_5fmalloc_5fnode',['netq_malloc_node',['../netq_8c.html#a58b119d6b9bb7756ab49afcd34571dab',1,'netq.c']]],
- ['netq_5fnext',['netq_next',['../group__netq.html#gab4c90c003808a784ae1ee9322e75627d',1,'netq_next(netq_t *p): netq.c'],['../group__netq.html#gab4c90c003808a784ae1ee9322e75627d',1,'netq_next(netq_t *p): netq.c']]],
- ['netq_5fnode_5ffree',['netq_node_free',['../group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7',1,'netq_node_free(netq_t *node): netq.c'],['../group__netq.html#ga9ef9da1a2af266dadef83ddf6c8524d7',1,'netq_node_free(netq_t *node): netq.c']]],
- ['netq_5fnode_5fnew',['netq_node_new',['../group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb',1,'netq_node_new(size_t size): netq.c'],['../group__netq.html#gafcf245cd934e9b8f0909a7ca8940e9cb',1,'netq_node_new(size_t size): netq.c']]],
- ['netq_5fpop_5ffirst',['netq_pop_first',['../group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3',1,'netq_pop_first(list_t queue): netq.c'],['../group__netq.html#ga108e6c43e524fd4b23a5d4731631fae3',1,'netq_pop_first(list_t queue): netq.c']]],
- ['netq_5fremove',['netq_remove',['../group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22',1,'netq_remove(list_t queue, netq_t *p): netq.c'],['../group__netq.html#gace12cd802d76d5bd98b2eaedc591fd22',1,'netq_remove(list_t queue, netq_t *p): netq.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_d.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['peer_5finit',['peer_init',['../peer_8c.html#a0297e9d772bfca004a98462d9c7d2828',1,'peer_init(): peer.c'],['../peer_8h.html#a0297e9d772bfca004a98462d9c7d2828',1,'peer_init(): peer.c']]],
- ['print_5ftimestamp',['print_timestamp',['../debug_8c.html#a4ac5b294de82b336108ebd436b271b17',1,'debug.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_e.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['update_5fhs_5fhash',['update_hs_hash',['../dtls_8c.html#a3db09acb5894f17f4745d7556555bea7',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="functions_f.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['verify_5fext_5fcert_5ftype',['verify_ext_cert_type',['../dtls_8c.html#af073bf7cefa5e49e0c939e853678d417',1,'dtls.c']]],
- ['verify_5fext_5fec_5fpoint_5fformats',['verify_ext_ec_point_formats',['../dtls_8c.html#a04a3580764ffd4f253ce6be858806c95',1,'dtls.c']]],
- ['verify_5fext_5feliptic_5fcurves',['verify_ext_eliptic_curves',['../dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8',1,'dtls.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['clock_20handling',['Clock Handling',['../group__clock.html',1,'']]],
- ['contiki',['Contiki',['../group__contiki.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['dtls_20usage',['DTLS Usage',['../group__dtls__usage.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['keyed_2dhash_20message_20authentication_20code_20_28hmac_29',['Keyed-Hash Message Authentication Code (HMAC)',['../group__HMAC.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['network_20packet_20queue',['Network Packet Queue',['../group__netq.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="groups_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['pseudo_20random_20numbers',['Pseudo Random Numbers',['../group__prng.html',1,'']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="NoMatches">No Matches</div>
-</div>
-</body>
-</html>
+++ /dev/null
-/*---------------- Search Box */
-
-#FSearchBox {
- float: left;
-}
-
-#MSearchBox {
- white-space : nowrap;
- position: absolute;
- float: none;
- display: inline;
- margin-top: 8px;
- right: 0px;
- width: 170px;
- z-index: 102;
- background-color: white;
-}
-
-#MSearchBox .left
-{
- display:block;
- position:absolute;
- left:10px;
- width:20px;
- height:19px;
- background:url('search_l.png') no-repeat;
- background-position:right;
-}
-
-#MSearchSelect {
- display:block;
- position:absolute;
- width:20px;
- height:19px;
-}
-
-.left #MSearchSelect {
- left:4px;
-}
-
-.right #MSearchSelect {
- right:5px;
-}
-
-#MSearchField {
- display:block;
- position:absolute;
- height:19px;
- background:url('search_m.png') repeat-x;
- border:none;
- width:111px;
- margin-left:20px;
- padding-left:4px;
- color: #909090;
- outline: none;
- font: 9pt Arial, Verdana, sans-serif;
-}
-
-#FSearchBox #MSearchField {
- margin-left:15px;
-}
-
-#MSearchBox .right {
- display:block;
- position:absolute;
- right:10px;
- top:0px;
- width:20px;
- height:19px;
- background:url('search_r.png') no-repeat;
- background-position:left;
-}
-
-#MSearchClose {
- display: none;
- position: absolute;
- top: 4px;
- background : none;
- border: none;
- margin: 0px 4px 0px 0px;
- padding: 0px 0px;
- outline: none;
-}
-
-.left #MSearchClose {
- left: 6px;
-}
-
-.right #MSearchClose {
- right: 2px;
-}
-
-.MSearchBoxActive #MSearchField {
- color: #000000;
-}
-
-/*---------------- Search filter selection */
-
-#MSearchSelectWindow {
- display: none;
- position: absolute;
- left: 0; top: 0;
- border: 1px solid #90A5CE;
- background-color: #F9FAFC;
- z-index: 1;
- padding-top: 4px;
- padding-bottom: 4px;
- -moz-border-radius: 4px;
- -webkit-border-top-left-radius: 4px;
- -webkit-border-top-right-radius: 4px;
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-.SelectItem {
- font: 8pt Arial, Verdana, sans-serif;
- padding-left: 2px;
- padding-right: 12px;
- border: 0px;
-}
-
-span.SelectionMark {
- margin-right: 4px;
- font-family: monospace;
- outline-style: none;
- text-decoration: none;
-}
-
-a.SelectItem {
- display: block;
- outline-style: none;
- color: #000000;
- text-decoration: none;
- padding-left: 6px;
- padding-right: 12px;
-}
-
-a.SelectItem:focus,
-a.SelectItem:active {
- color: #000000;
- outline-style: none;
- text-decoration: none;
-}
-
-a.SelectItem:hover {
- color: #FFFFFF;
- background-color: #3D578C;
- outline-style: none;
- text-decoration: none;
- cursor: pointer;
- display: block;
-}
-
-/*---------------- Search results window */
-
-iframe#MSearchResults {
- width: 60ex;
- height: 15em;
-}
-
-#MSearchResultsWindow {
- display: none;
- position: absolute;
- left: 0; top: 0;
- border: 1px solid #000;
- background-color: #EEF1F7;
-}
-
-/* ----------------------------------- */
-
-
-#SRIndex {
- clear:both;
- padding-bottom: 15px;
-}
-
-.SREntry {
- font-size: 10pt;
- padding-left: 1ex;
-}
-
-.SRPage .SREntry {
- font-size: 8pt;
- padding: 1px 5px;
-}
-
-body.SRPage {
- margin: 5px 2px;
-}
-
-.SRChildren {
- padding-left: 3ex; padding-bottom: .5em
-}
-
-.SRPage .SRChildren {
- display: none;
-}
-
-.SRSymbol {
- font-weight: bold;
- color: #425E97;
- font-family: Arial, Verdana, sans-serif;
- text-decoration: none;
- outline: none;
-}
-
-a.SRScope {
- display: block;
- color: #425E97;
- font-family: Arial, Verdana, sans-serif;
- text-decoration: none;
- outline: none;
-}
-
-a.SRSymbol:focus, a.SRSymbol:active,
-a.SRScope:focus, a.SRScope:active {
- text-decoration: underline;
-}
-
-span.SRScope {
- padding-left: 4px;
-}
-
-.SRPage .SRStatus {
- padding: 2px 5px;
- font-size: 8pt;
- font-style: italic;
-}
-
-.SRResult {
- display: none;
-}
-
-DIV.searchresults {
- margin-left: 10px;
- margin-right: 10px;
-}
-
-/*---------------- External search page results */
-
-.searchresult {
- background-color: #F0F3F8;
-}
-
-.pages b {
- color: white;
- padding: 5px 5px 3px 5px;
- background-image: url("../tab_a.png");
- background-repeat: repeat-x;
- text-shadow: 0 1px 1px #000000;
-}
-
-.pages {
- line-height: 17px;
- margin-left: 4px;
- text-decoration: none;
-}
-
-.hl {
- font-weight: bold;
-}
-
-#searchresults {
- margin-bottom: 20px;
-}
-
-.searchpages {
- margin-top: 10px;
-}
-
+++ /dev/null
-// Search script generated by doxygen
-// Copyright (C) 2009 by Dimitri van Heesch.
-
-// The code in this file is loosly based on main.js, part of Natural Docs,
-// which is Copyright (C) 2003-2008 Greg Valure
-// Natural Docs is licensed under the GPL.
-
-var indexSectionsWithContent =
-{
- 0: "_abcdefghiklmnoprstuvw",
- 1: "adlnsu",
- 2: "acdghnpstu",
- 3: "_abcdefhiklmnpuv",
- 4: "abcdehiklmnoprstw",
- 5: "cdlnu",
- 6: "dl",
- 7: "adht",
- 8: "_acdeghlmprstuw",
- 9: "cdknp"
-};
-
-var indexSectionNames =
-{
- 0: "all",
- 1: "classes",
- 2: "files",
- 3: "functions",
- 4: "variables",
- 5: "typedefs",
- 6: "enums",
- 7: "enumvalues",
- 8: "defines",
- 9: "groups"
-};
-
-function convertToId(search)
-{
- var result = '';
- for (i=0;i<search.length;i++)
- {
- var c = search.charAt(i);
- var cn = c.charCodeAt(0);
- if (c.match(/[a-z0-9\u0080-\uFFFF]/))
- {
- result+=c;
- }
- else if (cn<16)
- {
- result+="_0"+cn.toString(16);
- }
- else
- {
- result+="_"+cn.toString(16);
- }
- }
- return result;
-}
-
-function getXPos(item)
-{
- var x = 0;
- if (item.offsetWidth)
- {
- while (item && item!=document.body)
- {
- x += item.offsetLeft;
- item = item.offsetParent;
- }
- }
- return x;
-}
-
-function getYPos(item)
-{
- var y = 0;
- if (item.offsetWidth)
- {
- while (item && item!=document.body)
- {
- y += item.offsetTop;
- item = item.offsetParent;
- }
- }
- return y;
-}
-
-/* A class handling everything associated with the search panel.
-
- Parameters:
- name - The name of the global variable that will be
- storing this instance. Is needed to be able to set timeouts.
- resultPath - path to use for external files
-*/
-function SearchBox(name, resultsPath, inFrame, label)
-{
- if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
-
- // ---------- Instance variables
- this.name = name;
- this.resultsPath = resultsPath;
- this.keyTimeout = 0;
- this.keyTimeoutLength = 500;
- this.closeSelectionTimeout = 300;
- this.lastSearchValue = "";
- this.lastResultsPage = "";
- this.hideTimeout = 0;
- this.searchIndex = 0;
- this.searchActive = false;
- this.insideFrame = inFrame;
- this.searchLabel = label;
-
- // ----------- DOM Elements
-
- this.DOMSearchField = function()
- { return document.getElementById("MSearchField"); }
-
- this.DOMSearchSelect = function()
- { return document.getElementById("MSearchSelect"); }
-
- this.DOMSearchSelectWindow = function()
- { return document.getElementById("MSearchSelectWindow"); }
-
- this.DOMPopupSearchResults = function()
- { return document.getElementById("MSearchResults"); }
-
- this.DOMPopupSearchResultsWindow = function()
- { return document.getElementById("MSearchResultsWindow"); }
-
- this.DOMSearchClose = function()
- { return document.getElementById("MSearchClose"); }
-
- this.DOMSearchBox = function()
- { return document.getElementById("MSearchBox"); }
-
- // ------------ Event Handlers
-
- // Called when focus is added or removed from the search field.
- this.OnSearchFieldFocus = function(isActive)
- {
- this.Activate(isActive);
- }
-
- this.OnSearchSelectShow = function()
- {
- var searchSelectWindow = this.DOMSearchSelectWindow();
- var searchField = this.DOMSearchSelect();
-
- if (this.insideFrame)
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- left += searchField.offsetWidth + 6;
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- left -= searchSelectWindow.offsetWidth;
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
- else
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
-
- // stop selection hide timer
- if (this.hideTimeout)
- {
- clearTimeout(this.hideTimeout);
- this.hideTimeout=0;
- }
- return false; // to avoid "image drag" default event
- }
-
- this.OnSearchSelectHide = function()
- {
- this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
- this.closeSelectionTimeout);
- }
-
- // Called when the content of the search field is changed.
- this.OnSearchFieldChange = function(evt)
- {
- if (this.keyTimeout) // kill running timer
- {
- clearTimeout(this.keyTimeout);
- this.keyTimeout = 0;
- }
-
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==40 || e.keyCode==13)
- {
- if (e.shiftKey==1)
- {
- this.OnSearchSelectShow();
- var win=this.DOMSearchSelectWindow();
- for (i=0;i<win.childNodes.length;i++)
- {
- var child = win.childNodes[i]; // get span within a
- if (child.className=='SelectItem')
- {
- child.focus();
- return;
- }
- }
- return;
- }
- else if (window.frames.MSearchResults.searchResults)
- {
- var elem = window.frames.MSearchResults.searchResults.NavNext(0);
- if (elem) elem.focus();
- }
- }
- else if (e.keyCode==27) // Escape out of the search field
- {
- this.DOMSearchField().blur();
- this.DOMPopupSearchResultsWindow().style.display = 'none';
- this.DOMSearchClose().style.display = 'none';
- this.lastSearchValue = '';
- this.Activate(false);
- return;
- }
-
- // strip whitespaces
- var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
-
- if (searchValue != this.lastSearchValue) // search value has changed
- {
- if (searchValue != "") // non-empty search
- {
- // set timer for search update
- this.keyTimeout = setTimeout(this.name + '.Search()',
- this.keyTimeoutLength);
- }
- else // empty search field
- {
- this.DOMPopupSearchResultsWindow().style.display = 'none';
- this.DOMSearchClose().style.display = 'none';
- this.lastSearchValue = '';
- }
- }
- }
-
- this.SelectItemCount = function(id)
- {
- var count=0;
- var win=this.DOMSearchSelectWindow();
- for (i=0;i<win.childNodes.length;i++)
- {
- var child = win.childNodes[i]; // get span within a
- if (child.className=='SelectItem')
- {
- count++;
- }
- }
- return count;
- }
-
- this.SelectItemSet = function(id)
- {
- var i,j=0;
- var win=this.DOMSearchSelectWindow();
- for (i=0;i<win.childNodes.length;i++)
- {
- var child = win.childNodes[i]; // get span within a
- if (child.className=='SelectItem')
- {
- var node = child.firstChild;
- if (j==id)
- {
- node.innerHTML='•';
- }
- else
- {
- node.innerHTML=' ';
- }
- j++;
- }
- }
- }
-
- // Called when an search filter selection is made.
- // set item with index id as the active item
- this.OnSelectItem = function(id)
- {
- this.searchIndex = id;
- this.SelectItemSet(id);
- var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
- if (searchValue!="" && this.searchActive) // something was found -> do a search
- {
- this.Search();
- }
- }
-
- this.OnSearchSelectKey = function(evt)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
- {
- this.searchIndex++;
- this.OnSelectItem(this.searchIndex);
- }
- else if (e.keyCode==38 && this.searchIndex>0) // Up
- {
- this.searchIndex--;
- this.OnSelectItem(this.searchIndex);
- }
- else if (e.keyCode==13 || e.keyCode==27)
- {
- this.OnSelectItem(this.searchIndex);
- this.CloseSelectionWindow();
- this.DOMSearchField().focus();
- }
- return false;
- }
-
- // --------- Actions
-
- // Closes the results window.
- this.CloseResultsWindow = function()
- {
- this.DOMPopupSearchResultsWindow().style.display = 'none';
- this.DOMSearchClose().style.display = 'none';
- this.Activate(false);
- }
-
- this.CloseSelectionWindow = function()
- {
- this.DOMSearchSelectWindow().style.display = 'none';
- }
-
- // Performs a search.
- this.Search = function()
- {
- this.keyTimeout = 0;
-
- // strip leading whitespace
- var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
-
- var code = searchValue.toLowerCase().charCodeAt(0);
- var idxChar = searchValue.substr(0, 1).toLowerCase();
- if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
- {
- idxChar = searchValue.substr(0, 2);
- }
-
- var resultsPage;
- var resultsPageWithSearch;
- var hasResultsPage;
-
- var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
- if (idx!=-1)
- {
- var hexCode=idx.toString(16);
- resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
- resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
- hasResultsPage = true;
- }
- else // nothing available for this search term
- {
- resultsPage = this.resultsPath + '/nomatches.html';
- resultsPageWithSearch = resultsPage;
- hasResultsPage = false;
- }
-
- window.frames.MSearchResults.location = resultsPageWithSearch;
- var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
-
- if (domPopupSearchResultsWindow.style.display!='block')
- {
- var domSearchBox = this.DOMSearchBox();
- this.DOMSearchClose().style.display = 'inline';
- if (this.insideFrame)
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- domPopupSearchResultsWindow.style.position = 'relative';
- domPopupSearchResultsWindow.style.display = 'block';
- var width = document.body.clientWidth - 8; // the -8 is for IE :-(
- domPopupSearchResultsWindow.style.width = width + 'px';
- domPopupSearchResults.style.width = width + 'px';
- }
- else
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
- var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
- domPopupSearchResultsWindow.style.display = 'block';
- left -= domPopupSearchResults.offsetWidth;
- domPopupSearchResultsWindow.style.top = top + 'px';
- domPopupSearchResultsWindow.style.left = left + 'px';
- }
- }
-
- this.lastSearchValue = searchValue;
- this.lastResultsPage = resultsPage;
- }
-
- // -------- Activation Functions
-
- // Activates or deactivates the search panel, resetting things to
- // their default values if necessary.
- this.Activate = function(isActive)
- {
- if (isActive || // open it
- this.DOMPopupSearchResultsWindow().style.display == 'block'
- )
- {
- this.DOMSearchBox().className = 'MSearchBoxActive';
-
- var searchField = this.DOMSearchField();
-
- if (searchField.value == this.searchLabel) // clear "Search" term upon entry
- {
- searchField.value = '';
- this.searchActive = true;
- }
- }
- else if (!isActive) // directly remove the panel
- {
- this.DOMSearchBox().className = 'MSearchBoxInactive';
- this.DOMSearchField().value = this.searchLabel;
- this.searchActive = false;
- this.lastSearchValue = ''
- this.lastResultsPage = '';
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-// The class that handles everything on the search results page.
-function SearchResults(name)
-{
- // The number of matches from the last run of <Search()>.
- this.lastMatchCount = 0;
- this.lastKey = 0;
- this.repeatOn = false;
-
- // Toggles the visibility of the passed element ID.
- this.FindChildElement = function(id)
- {
- var parentElement = document.getElementById(id);
- var element = parentElement.firstChild;
-
- while (element && element!=parentElement)
- {
- if (element.nodeName == 'DIV' && element.className == 'SRChildren')
- {
- return element;
- }
-
- if (element.nodeName == 'DIV' && element.hasChildNodes())
- {
- element = element.firstChild;
- }
- else if (element.nextSibling)
- {
- element = element.nextSibling;
- }
- else
- {
- do
- {
- element = element.parentNode;
- }
- while (element && element!=parentElement && !element.nextSibling);
-
- if (element && element!=parentElement)
- {
- element = element.nextSibling;
- }
- }
- }
- }
-
- this.Toggle = function(id)
- {
- var element = this.FindChildElement(id);
- if (element)
- {
- if (element.style.display == 'block')
- {
- element.style.display = 'none';
- }
- else
- {
- element.style.display = 'block';
- }
- }
- }
-
- // Searches for the passed string. If there is no parameter,
- // it takes it from the URL query.
- //
- // Always returns true, since other documents may try to call it
- // and that may or may not be possible.
- this.Search = function(search)
- {
- if (!search) // get search word from URL
- {
- search = window.location.search;
- search = search.substring(1); // Remove the leading '?'
- search = unescape(search);
- }
-
- search = search.replace(/^ +/, ""); // strip leading spaces
- search = search.replace(/ +$/, ""); // strip trailing spaces
- search = search.toLowerCase();
- search = convertToId(search);
-
- var resultRows = document.getElementsByTagName("div");
- var matches = 0;
-
- var i = 0;
- while (i < resultRows.length)
- {
- var row = resultRows.item(i);
- if (row.className == "SRResult")
- {
- var rowMatchName = row.id.toLowerCase();
- rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
-
- if (search.length<=rowMatchName.length &&
- rowMatchName.substr(0, search.length)==search)
- {
- row.style.display = 'block';
- matches++;
- }
- else
- {
- row.style.display = 'none';
- }
- }
- i++;
- }
- document.getElementById("Searching").style.display='none';
- if (matches == 0) // no results
- {
- document.getElementById("NoMatches").style.display='block';
- }
- else // at least one result
- {
- document.getElementById("NoMatches").style.display='none';
- }
- this.lastMatchCount = matches;
- return true;
- }
-
- // return the first item with index index or higher that is visible
- this.NavNext = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
- }
- focusItem=null;
- index++;
- }
- return focusItem;
- }
-
- this.NavPrev = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
- }
- focusItem=null;
- index--;
- }
- return focusItem;
- }
-
- this.ProcessKeys = function(e)
- {
- if (e.type == "keydown")
- {
- this.repeatOn = false;
- this.lastKey = e.keyCode;
- }
- else if (e.type == "keypress")
- {
- if (!this.repeatOn)
- {
- if (this.lastKey) this.repeatOn = true;
- return false; // ignore first keypress after keydown
- }
- }
- else if (e.type == "keyup")
- {
- this.lastKey = 0;
- this.repeatOn = false;
- }
- return this.lastKey!=0;
- }
-
- this.Nav = function(evt,itemIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- var newIndex = itemIndex-1;
- var focusItem = this.NavPrev(newIndex);
- if (focusItem)
- {
- var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
- if (child && child.style.display == 'block') // children visible
- {
- var n=0;
- var tmpElem;
- while (1) // search for last child
- {
- tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
- if (tmpElem)
- {
- focusItem = tmpElem;
- }
- else // found it!
- {
- break;
- }
- n++;
- }
- }
- }
- if (focusItem)
- {
- focusItem.focus();
- }
- else // return focus to search field
- {
- parent.document.getElementById("MSearchField").focus();
- }
- }
- else if (this.lastKey==40) // Down
- {
- var newIndex = itemIndex+1;
- var focusItem;
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem && elem.style.display == 'block') // children visible
- {
- focusItem = document.getElementById('Item'+itemIndex+'_c0');
- }
- if (!focusItem) focusItem = this.NavNext(newIndex);
- if (focusItem) focusItem.focus();
- }
- else if (this.lastKey==39) // Right
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'block';
- }
- else if (this.lastKey==37) // Left
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'none';
- }
- else if (this.lastKey==27) // Escape
- {
- parent.searchBox.CloseResultsWindow();
- parent.document.getElementById("MSearchField").focus();
- }
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
- }
-
- this.NavChild = function(evt,itemIndex,childIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- if (childIndex>0)
- {
- var newIndex = childIndex-1;
- document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
- }
- else // already at first child, jump to parent
- {
- document.getElementById('Item'+itemIndex).focus();
- }
- }
- else if (this.lastKey==40) // Down
- {
- var newIndex = childIndex+1;
- var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
- if (!elem) // last child, jump to parent next parent
- {
- elem = this.NavNext(itemIndex+1);
- }
- if (elem)
- {
- elem.focus();
- }
- }
- else if (this.lastKey==27) // Escape
- {
- parent.searchBox.CloseResultsWindow();
- parent.document.getElementById("MSearchField").focus();
- }
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
- }
-}
-
-function setKeyActions(elem,action)
-{
- elem.setAttribute('onkeydown',action);
- elem.setAttribute('onkeypress',action);
- elem.setAttribute('onkeyup',action);
-}
-
-function setClassAttr(elem,attr)
-{
- elem.setAttribute('class',attr);
- elem.setAttribute('className',attr);
-}
-
-function createResults()
-{
- var results = document.getElementById("SRResults");
- for (var e=0; e<searchData.length; e++)
- {
- var id = searchData[e][0];
- var srResult = document.createElement('div');
- srResult.setAttribute('id','SR_'+id);
- setClassAttr(srResult,'SRResult');
- var srEntry = document.createElement('div');
- setClassAttr(srEntry,'SREntry');
- var srLink = document.createElement('a');
- srLink.setAttribute('id','Item'+e);
- setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
- setClassAttr(srLink,'SRSymbol');
- srLink.innerHTML = searchData[e][1][0];
- srEntry.appendChild(srLink);
- if (searchData[e][1].length==2) // single result
- {
- srLink.setAttribute('href',searchData[e][1][1][0]);
- if (searchData[e][1][1][1])
- {
- srLink.setAttribute('target','_parent');
- }
- var srScope = document.createElement('span');
- setClassAttr(srScope,'SRScope');
- srScope.innerHTML = searchData[e][1][1][2];
- srEntry.appendChild(srScope);
- }
- else // multiple results
- {
- srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
- var srChildren = document.createElement('div');
- setClassAttr(srChildren,'SRChildren');
- for (var c=0; c<searchData[e][1].length-1; c++)
- {
- var srChild = document.createElement('a');
- srChild.setAttribute('id','Item'+e+'_c'+c);
- setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
- setClassAttr(srChild,'SRScope');
- srChild.setAttribute('href',searchData[e][1][c+1][0]);
- if (searchData[e][1][c+1][1])
- {
- srChild.setAttribute('target','_parent');
- }
- srChild.innerHTML = searchData[e][1][c+1][2];
- srChildren.appendChild(srChild);
- }
- srEntry.appendChild(srChildren);
- }
- srResult.appendChild(srEntry);
- results.appendChild(srResult);
- }
-}
-
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['clock_5ftime_5ft',['clock_time_t',['../group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23',1,'dtls_time.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['dtls_5fcipher_5fcontext_5ft',['dtls_cipher_context_t',['../crypto_8h.html#a99482a87021e817524d15c33e89e309c',1,'crypto.h']]],
- ['dtls_5fcontext_5ft',['dtls_context_t',['../dtls_8h.html#a407c66c58bfc87651714de4103bee135',1,'dtls.h']]],
- ['dtls_5fcredentials_5ftype_5ft',['dtls_credentials_type_t',['../dtls_8h.html#adb4c778ddcbf9ac28ef277b20adbfa33',1,'dtls.h']]],
- ['dtls_5fecdsa_5fkey_5ft',['dtls_ecdsa_key_t',['../dtls_8h.html#a472601639fcded4630fbd087f986ad10',1,'dtls.h']]],
- ['dtls_5fhash_5fctx',['dtls_hash_ctx',['../hmac_8h.html#abb19650a510c73117da0e9b88d68f159',1,'hmac.h']]],
- ['dtls_5fhash_5ft',['dtls_hash_t',['../hmac_8h.html#afa00f0cbe1b7783992467c1c204320b5',1,'hmac.h']]],
- ['dtls_5fpeer_5ft',['dtls_peer_t',['../peer_8h.html#a6038bb7f08c62ea6f0fd2a0075860055',1,'peer.h']]],
- ['dtls_5ftick_5ft',['dtls_tick_t',['../group__clock.html#gaded617551180951f4841969e396a8012',1,'dtls_time.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['list_5ft',['list_t',['../t__list_8h.html#a9c248916bae1f0b13732686786be7108',1,'t_list.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['netq_5fpacket_5ft',['netq_packet_t',['../group__netq.html#gaa59d8597860df302584b1e9c448fdfcd',1,'netq.h']]],
- ['netq_5ft',['netq_t',['../group__netq.html#ga4991f2cfa1f79edf8f7d8262c5beeb5b',1,'netq.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="typedefs_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['uint16',['uint16',['../global_8h.html#a5e90b30856b81913af89565b55751da5',1,'global.h']]],
- ['uint24',['uint24',['../global_8h.html#aabc56baaf04f922a1ea0dda7691fec0a',1,'global.h']]],
- ['uint32',['uint32',['../global_8h.html#ab27072920285996a3e16d2e5e3d366be',1,'global.h']]],
- ['uint48',['uint48',['../global_8h.html#a0749f1df578b26eccab986b0d8abaa56',1,'global.h']]],
- ['uint8',['uint8',['../global_8h.html#adde6aaee8457bee49c2a92621fe22b79',1,'global.h']]],
- ['ut_5fhash_5fbucket',['UT_hash_bucket',['../uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf',1,'uthash.h']]],
- ['ut_5fhash_5fhandle',['UT_hash_handle',['../uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6',1,'uthash.h']]],
- ['ut_5fhash_5ftable',['UT_hash_table',['../uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e',1,'uthash.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_0.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['addr',['addr',['../structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4',1,'session_t']]],
- ['app',['app',['../structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e',1,'dtls_context_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_1.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['buckets',['buckets',['../structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b',1,'UT_hash_table']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_10.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['write',['write',['../structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2',1,'dtls_handler_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_2.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['cert_5fasn1_5fheader',['cert_asn1_header',['../dtls_8c.html#aecdb18ea2b899994542ec46b23528738',1,'dtls.c']]],
- ['cipher',['cipher',['../structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830',1,'dtls_security_parameters_t::cipher()'],['../structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933',1,'dtls_handshake_parameters_t::cipher()']]],
- ['cipher_5fcontext',['cipher_context',['../crypto_8c.html#a9fd792e4bb85e55082e4bf32de0d4bdb',1,'crypto.c']]],
- ['cipher_5fcontext_5fmutex',['cipher_context_mutex',['../crypto_8c.html#ad4a90eac1ed6a277c837d7f9dc0a923c',1,'crypto.c']]],
- ['client',['client',['../structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9',1,'dtls_handshake_parameters_t']]],
- ['compression',['compression',['../structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a',1,'dtls_security_parameters_t::compression()'],['../structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125',1,'dtls_handshake_parameters_t::compression()']]],
- ['compression_5fmethods',['compression_methods',['../dtls_8c.html#ae35671d94ccea5f335546ce409aed601',1,'dtls.c']]],
- ['cookie_5fsecret',['cookie_secret',['../structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f',1,'dtls_context_t']]],
- ['cookie_5fsecret_5fage',['cookie_secret_age',['../structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8',1,'dtls_context_t']]],
- ['count',['count',['../structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634',1,'UT_hash_bucket']]],
- ['ctx',['ctx',['../structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371',1,'aes128_ccm_t']]],
- ['curve',['curve',['../structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548',1,'dtls_ecdsa_key_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_3.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['data',['data',['../structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc',1,'dtls_cipher_context_t::data()'],['../structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40',1,'dtls_hmac_context_t::data()'],['../structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c',1,'netq_t::data()']]],
- ['do_5fclient_5fauth',['do_client_auth',['../structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6',1,'dtls_handshake_parameters_t']]],
- ['dtls_5fclient_5fhello_5ft',['dtls_client_hello_t',['../dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456',1,'dtls.h']]],
- ['dtls_5fclock_5foffset',['dtls_clock_offset',['../dtls__time_8c.html#adaab7b20ee4eea0874f480b262c4a2e1',1,'dtls_time.c']]],
- ['dtls_5fhandshake_5fheader_5ft',['dtls_handshake_header_t',['../dtls_8h.html#a5c6625ffcf61189392768253e8919a45',1,'dtls.h']]],
- ['dtls_5fhello_5fverify_5ft',['dtls_hello_verify_t',['../dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98',1,'dtls.h']]],
- ['dtls_5frecord_5fheader_5ft',['dtls_record_header_t',['../dtls_8h.html#a81936df7abb2c16aa897e3018aa24399',1,'dtls.h']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_4.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['epoch',['epoch',['../structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da',1,'dtls_security_parameters_t::epoch()'],['../structnetq__t.html#a9998944e43a39a2e5700156876a312e0',1,'netq_t::epoch()']]],
- ['event',['event',['../structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59',1,'dtls_handler_t']]],
- ['expand_5fmult',['expand_mult',['../structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b',1,'UT_hash_bucket']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_5.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['h',['h',['../structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd',1,'dtls_context_t']]],
- ['handshake_5fparams',['handshake_params',['../structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992',1,'dtls_peer_t']]],
- ['hashv',['hashv',['../structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323',1,'UT_hash_handle']]],
- ['hh',['hh',['../structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5',1,'dtls_peer_t']]],
- ['hh_5fhead',['hh_head',['../structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf',1,'UT_hash_bucket']]],
- ['hh_5fnext',['hh_next',['../structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325',1,'UT_hash_handle']]],
- ['hh_5fprev',['hh_prev',['../structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2',1,'UT_hash_handle']]],
- ['hho',['hho',['../structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6',1,'UT_hash_table']]],
- ['hs_5fhash',['hs_hash',['../structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1',1,'dtls_hs_state_t']]],
- ['hs_5fstate',['hs_state',['../structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027',1,'dtls_handshake_parameters_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_6.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['id_5flength',['id_length',['../structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b',1,'dtls_handshake_parameters_psk_t']]],
- ['ideal_5fchain_5fmaxlen',['ideal_chain_maxlen',['../structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad',1,'UT_hash_table']]],
- ['identity',['identity',['../structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084',1,'dtls_handshake_parameters_psk_t']]],
- ['ifindex',['ifindex',['../structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff',1,'session_t']]],
- ['ineff_5fexpands',['ineff_expands',['../structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7',1,'UT_hash_table']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_7.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['key',['key',['../structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d',1,'UT_hash_handle']]],
- ['key_5fblock',['key_block',['../structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d',1,'dtls_security_parameters_t']]],
- ['keylen',['keylen',['../structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4',1,'UT_hash_handle']]],
- ['keyx',['keyx',['../structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f',1,'dtls_handshake_parameters_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_8.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['length',['length',['../structnetq__t.html#ac72c9378282becab5a273f612f58c124',1,'netq_t']]],
- ['log2_5fnum_5fbuckets',['log2_num_buckets',['../structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f',1,'UT_hash_table']]],
- ['loglevels',['loglevels',['../debug_8c.html#aea3c9cd7c28ac0ebbc7473771751ed92',1,'debug.c']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_9.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['master_5fsecret',['master_secret',['../structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898',1,'dtls_handshake_parameters_t']]],
- ['maxlog',['maxlog',['../debug_8c.html#a7a6dbd5278e0c21ff9434dc3de7b955d',1,'debug.c']]],
- ['mseq_5fr',['mseq_r',['../structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542',1,'dtls_hs_state_t']]],
- ['mseq_5fs',['mseq_s',['../structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32',1,'dtls_hs_state_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_a.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['next',['next',['../structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb',1,'netq_t::next()'],['../structlist.html#a1900fe79e875e2838625b2eb60837f8f',1,'list::next()'],['../structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942',1,'UT_hash_handle::next()']]],
- ['noexpand',['noexpand',['../structUT__hash__table.html#a635661789933752e7b83dac84430eae1',1,'UT_hash_table']]],
- ['nonideal_5fitems',['nonideal_items',['../structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f',1,'UT_hash_table']]],
- ['num_5fbuckets',['num_buckets',['../structUT__hash__table.html#a3ed04b6233facaedf910672578d86339',1,'UT_hash_table']]],
- ['num_5fitems',['num_items',['../structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76',1,'UT_hash_table']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_b.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['other_5feph_5fpub_5fx',['other_eph_pub_x',['../structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5feph_5fpub_5fy',['other_eph_pub_y',['../structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5fpub_5fx',['other_pub_x',['../structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['other_5fpub_5fy',['other_pub_y',['../structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0',1,'dtls_handshake_parameters_ecdsa_t']]],
- ['own_5feph_5fpriv',['own_eph_priv',['../structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b',1,'dtls_handshake_parameters_ecdsa_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_c.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['pad',['pad',['../structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868',1,'dtls_hmac_context_t']]],
- ['peer',['peer',['../structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff',1,'netq_t']]],
- ['peers',['peers',['../structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088',1,'dtls_context_t']]],
- ['prev',['prev',['../structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58',1,'UT_hash_handle']]],
- ['prf_5flabel_5fclient',['prf_label_client',['../dtls_8c.html#abba2a2562813493d98b5671a4c5c082b',1,'dtls.c']]],
- ['prf_5flabel_5ffinished',['prf_label_finished',['../dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7',1,'dtls.c']]],
- ['prf_5flabel_5fkey',['prf_label_key',['../dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda',1,'dtls.c']]],
- ['prf_5flabel_5fmaster',['prf_label_master',['../dtls_8c.html#a784ec579660900e758a9b7de84150c9b',1,'dtls.c']]],
- ['prf_5flabel_5fserver',['prf_label_server',['../dtls_8c.html#aacf8643991dec574dcb09a280357ae4f',1,'dtls.c']]],
- ['priv_5fkey',['priv_key',['../structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de',1,'dtls_ecdsa_key_t']]],
- ['pub_5fkey_5fx',['pub_key_x',['../structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221',1,'dtls_ecdsa_key_t']]],
- ['pub_5fkey_5fy',['pub_key_y',['../structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f',1,'dtls_ecdsa_key_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_d.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['random',['random',['../structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a',1,'dtls_handshake_parameters_t']]],
- ['read',['read',['../structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88',1,'dtls_handler_t']]],
- ['readbuf',['readbuf',['../structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434',1,'dtls_context_t']]],
- ['retransmit_5fcnt',['retransmit_cnt',['../structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8',1,'netq_t']]],
- ['role',['role',['../structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120',1,'dtls_peer_t']]],
- ['rseq',['rseq',['../structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87',1,'dtls_security_parameters_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_e.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['sa',['sa',['../structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a',1,'session_t']]],
- ['security_5fparams',['security_params',['../structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af',1,'dtls_peer_t']]],
- ['server',['server',['../structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036',1,'dtls_handshake_parameters_t']]],
- ['session',['session',['../structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe',1,'dtls_peer_t']]],
- ['signature',['signature',['../structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f',1,'UT_hash_table']]],
- ['sin',['sin',['../structsession__t.html#a86093095c1ab36b12180f9215fa2375e',1,'session_t']]],
- ['sin6',['sin6',['../structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde',1,'session_t']]],
- ['size',['size',['../structsession__t.html#aed21682e9f971221d9f35f1266dea125',1,'session_t']]],
- ['st',['st',['../structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d',1,'session_t']]],
- ['state',['state',['../structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83',1,'dtls_peer_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html><head><title></title>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.6">
-<link rel="stylesheet" type="text/css" href="search.css"/>
-<script type="text/javascript" src="variables_f.js"></script>
-<script type="text/javascript" src="search.js"></script>
-</head>
-<body class="SRPage">
-<div id="SRIndex">
-<div class="SRStatus" id="Loading">Loading...</div>
-<div id="SRResults"></div>
-<script type="text/javascript"><!--
-createResults();
---></script>
-<div class="SRStatus" id="Searching">Searching...</div>
-<div class="SRStatus" id="NoMatches">No Matches</div>
-<script type="text/javascript"><!--
-document.getElementById("Loading").style.display="none";
-document.getElementById("NoMatches").style.display="none";
-var searchResults = new SearchResults("searchResults");
-searchResults.Search();
---></script>
-</div>
-</body>
-</html>
+++ /dev/null
-var searchData=
-[
- ['t',['t',['../structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a',1,'netq_t']]],
- ['tail',['tail',['../structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992',1,'UT_hash_table']]],
- ['tbl',['tbl',['../structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73',1,'UT_hash_handle']]],
- ['timeout',['timeout',['../structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6',1,'netq_t']]],
- ['tmp',['tmp',['../structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f',1,'dtls_handshake_parameters_t']]],
- ['type',['type',['../structnetq__t.html#a13d74bc65c8879b894698935fbbe2246',1,'netq_t']]]
-];
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: session.c File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">session.c File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>"</code><br/>
-<code>#include "<a class="el" href="session_8h_source.html">session.h</a>"</code><br/>
-<code>#include <assert.h></code><br/>
-</div>
-<p><a href="session_8c_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:af9b9333222aabb1440f5c7846f7be85f"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">_dtls_address_equals_impl</a> (const <a class="el" href="structsession__t.html">session_t</a> *a, const <a class="el" href="structsession__t.html">session_t</a> *b)</td></tr>
-<tr class="separator:af9b9333222aabb1440f5c7846f7be85f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af5aad44a94929b1ebfbb3c6334e9e501"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a> (<a class="el" href="structsession__t.html">session_t</a> *sess)</td></tr>
-<tr class="separator:af5aad44a94929b1ebfbb3c6334e9e501"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a96f4d60f388d56d37b3e69261bea2417"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a> (const <a class="el" href="structsession__t.html">session_t</a> *a, const <a class="el" href="structsession__t.html">session_t</a> *b)</td></tr>
-<tr class="separator:a96f4d60f388d56d37b3e69261bea2417"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="af9b9333222aabb1440f5c7846f7be85f"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static int _dtls_address_equals_impl </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8c_source.html#l00048">48</a> of file <a class="el" href="session_8c_source.html">session.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a96f4d60f388d56d37b3e69261bea2417"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_session_equals </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Compares the given session objects. This function returns <code>0</code> when <code>a</code> and <code>b</code> differ, <code>1</code> otherwise. </p>
-
-<p>Definition at line <a class="el" href="session_8c_source.html#l00080">80</a> of file <a class="el" href="session_8c_source.html">session.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af5aad44a94929b1ebfbb3c6334e9e501"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_session_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>sess</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Resets the given <a class="el" href="structsession__t.html">session_t</a> object <code>sess</code> to its default values. In particular, the member rlen must be initialized to the available size for storing addresses.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">sess</td><td>The <a class="el" href="structsession__t.html">session_t</a> object to initialize. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="session_8c_source.html#l00073">73</a> of file <a class="el" href="session_8c_source.html">session.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: session.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">session.c</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="session_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="dtls__config_8h.html">dtls_config.h</a>"</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="session_8h.html">session.h</a>"</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifdef HAVE_ASSERT_H</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"></span><span class="preprocessor">#include <assert.h></span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef assert</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#warning "assertions are disabled"</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor"># define assert(x)</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor">#define _dtls_address_equals_impl(A,B) \</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> ((A)->size == (B)->size \</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> && (A)->port == (B)->port \</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> && uip_ipaddr_cmp(&((A)->addr),&((B)->addr)) \</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> && (A)->ifindex == (B)->ifindex)</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f"> 48</a></span> <a class="code" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">_dtls_address_equals_impl</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *a,</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *b) {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span> (a-><a class="code" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">ifindex</a> != b-><a class="code" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">ifindex</a> ||</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  a-><a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a> != b-><a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a> || a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family != b-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family)</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">/* need to compare only relevant parts of sockaddr_in6 */</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">switch</span> (a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a>.sa_family) {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">case</span> AF_INET:</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_port == b-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_port && </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  memcmp(&a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_addr, &b-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a>.sin_addr, </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">sizeof</span>(<span class="keyword">struct</span> in_addr)) == 0;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">case</span> AF_INET6:</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_port == b-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_port && </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  memcmp(&a-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_addr, &b-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>.<a class="code" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a>.sin6_addr, </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">sizeof</span>(<span class="keyword">struct</span> in6_addr)) == 0;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">default</span>: <span class="comment">/* fall through and signal error */</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  ;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501"> 73</a></span> <a class="code" href="session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a>(<a class="code" href="structsession__t.html">session_t</a> *sess) {</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  assert(sess);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  memset(sess, 0, <span class="keyword">sizeof</span>(<a class="code" href="structsession__t.html">session_t</a>));</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  sess-><a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a> = <span class="keyword">sizeof</span>(sess-><a class="code" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a>);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417"> 80</a></span> <a class="code" href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *a, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *b) {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  assert(a); assert(b);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <a class="code" href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">_dtls_address_equals_impl</a>(a, b);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
-<div class="ttc" id="session_8c_html_a96f4d60f388d56d37b3e69261bea2417"><div class="ttname"><a href="session_8c.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a></div><div class="ttdeci">int dtls_session_equals(const session_t *a, const session_t *b)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00080">session.c:80</a></div></div>
-<div class="ttc" id="session_8c_html_af5aad44a94929b1ebfbb3c6334e9e501"><div class="ttname"><a href="session_8c.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a></div><div class="ttdeci">void dtls_session_init(session_t *sess)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00073">session.c:73</a></div></div>
-<div class="ttc" id="dtls__config_8h_html"><div class="ttname"><a href="dtls__config_8h.html">dtls_config.h</a></div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="session_8h_html"><div class="ttname"><a href="session_8h.html">session.h</a></div></div>
-<div class="ttc" id="structsession__t_html_aed21682e9f971221d9f35f1266dea125"><div class="ttname"><a href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">session_t::size</a></div><div class="ttdeci">socklen_t size</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00050">session.h:50</a></div></div>
-<div class="ttc" id="session_8c_html_af9b9333222aabb1440f5c7846f7be85f"><div class="ttname"><a href="session_8c.html#af9b9333222aabb1440f5c7846f7be85f">_dtls_address_equals_impl</a></div><div class="ttdeci">static int _dtls_address_equals_impl(const session_t *a, const session_t *b)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00048">session.c:48</a></div></div>
-<div class="ttc" id="structsession__t_html_a8d0a30ccc98425675a1b0e92e96eaa6a"><div class="ttname"><a href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">session_t::sa</a></div><div class="ttdeci">struct sockaddr sa</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00052">session.h:52</a></div></div>
-<div class="ttc" id="structsession__t_html_aafc69fe43548bd69c0e15aa82e73f3ff"><div class="ttname"><a href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">session_t::ifindex</a></div><div class="ttdeci">uint8_t ifindex</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00057">session.h:57</a></div></div>
-<div class="ttc" id="structsession__t_html_a0bb4423cd29b415a4cf6c32d5d9a43e4"><div class="ttname"><a href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">session_t::addr</a></div><div class="ttdeci">union session_t::@2 addr</div></div>
-<div class="ttc" id="structsession__t_html_a2f337ce1989f3a9b5afeef1a95506bde"><div class="ttname"><a href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">session_t::sin6</a></div><div class="ttdeci">struct sockaddr_in6 sin6</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00055">session.h:55</a></div></div>
-<div class="ttc" id="structsession__t_html_a86093095c1ab36b12180f9215fa2375e"><div class="ttname"><a href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">session_t::sin</a></div><div class="ttdeci">struct sockaddr_in sin</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00054">session.h:54</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: session.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">session.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <string.h></code><br/>
-<code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include <sys/socket.h></code><br/>
-<code>#include <netinet/in.h></code><br/>
-<code>#include <arpa/inet.h></code><br/>
-</div>
-<p><a href="session_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsession__t.html">session_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:af5aad44a94929b1ebfbb3c6334e9e501"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a> (<a class="el" href="structsession__t.html">session_t</a> *sess)</td></tr>
-<tr class="separator:af5aad44a94929b1ebfbb3c6334e9e501"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a96f4d60f388d56d37b3e69261bea2417"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a> (const <a class="el" href="structsession__t.html">session_t</a> *a, const <a class="el" href="structsession__t.html">session_t</a> *b)</td></tr>
-<tr class="separator:a96f4d60f388d56d37b3e69261bea2417"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a96f4d60f388d56d37b3e69261bea2417"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dtls_session_equals </td>
- <td>(</td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Compares the given session objects. This function returns <code>0</code> when <code>a</code> and <code>b</code> differ, <code>1</code> otherwise. </p>
-
-<p>Definition at line <a class="el" href="session_8c_source.html#l00080">80</a> of file <a class="el" href="session_8c_source.html">session.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af5aad44a94929b1ebfbb3c6334e9e501"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dtls_session_init </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> * </td>
- <td class="paramname"><em>sess</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Resets the given <a class="el" href="structsession__t.html">session_t</a> object <code>sess</code> to its default values. In particular, the member rlen must be initialized to the available size for storing addresses.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">sess</td><td>The <a class="el" href="structsession__t.html">session_t</a> object to initialize. </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="session_8c_source.html#l00073">73</a> of file <a class="el" href="session_8c_source.html">session.c</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: session.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">session.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="session_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef _DTLS_SESSION_H_</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_SESSION_H_</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <string.h></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifdef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#include "ip/uip.h"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> size;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  uip_ipaddr_t addr;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> port;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordtype">int</span> ifindex;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> } <a class="code" href="structsession__t.html">session_t</a>;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <sys/socket.h></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <netinet/in.h></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <arpa/inet.h></span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structsession__t.html"> 49</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125"> 50</a></span>  socklen_t <a class="code" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a>; </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a"> 52</a></span>  <span class="keyword">struct </span>sockaddr sa;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d"> 53</a></span>  <span class="keyword">struct </span>sockaddr_storage st;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e"> 54</a></span>  <span class="keyword">struct </span>sockaddr_in sin;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde"> 55</a></span>  <span class="keyword">struct </span>sockaddr_in6 sin6;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  } addr;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff"> 57</a></span>  uint8_t <a class="code" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">ifindex</a>;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> } <a class="code" href="structsession__t.html">session_t</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> <a class="code" href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a>(<a class="code" href="structsession__t.html">session_t</a> *sess);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">int</span> <a class="code" href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a>(<span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *a, <span class="keyword">const</span> <a class="code" href="structsession__t.html">session_t</a> *b);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_SESSION_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="structsession__t_html"><div class="ttname"><a href="structsession__t.html">session_t</a></div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00049">session.h:49</a></div></div>
-<div class="ttc" id="structsession__t_html_aed21682e9f971221d9f35f1266dea125"><div class="ttname"><a href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">session_t::size</a></div><div class="ttdeci">socklen_t size</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00050">session.h:50</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="structsession__t_html_aafc69fe43548bd69c0e15aa82e73f3ff"><div class="ttname"><a href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">session_t::ifindex</a></div><div class="ttdeci">uint8_t ifindex</div><div class="ttdef"><b>Definition:</b> <a href="session_8h_source.html#l00057">session.h:57</a></div></div>
-<div class="ttc" id="session_8h_html_af5aad44a94929b1ebfbb3c6334e9e501"><div class="ttname"><a href="session_8h.html#af5aad44a94929b1ebfbb3c6334e9e501">dtls_session_init</a></div><div class="ttdeci">void dtls_session_init(session_t *sess)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00073">session.c:73</a></div></div>
-<div class="ttc" id="session_8h_html_a96f4d60f388d56d37b3e69261bea2417"><div class="ttname"><a href="session_8h.html#a96f4d60f388d56d37b3e69261bea2417">dtls_session_equals</a></div><div class="ttdeci">int dtls_session_equals(const session_t *a, const session_t *b)</div><div class="ttdef"><b>Definition:</b> <a href="session_8c_source.html#l00080">session.c:80</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: state.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#enum-members">Enumerations</a> </div>
- <div class="headertitle">
-<div class="title">state.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>state information for DTLS FSM
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include <sys/types.h></code><br/>
-<code>#include <stdint.h></code><br/>
-<code>#include "<a class="el" href="global_8h_source.html">global.h</a>"</code><br/>
-<code>#include "<a class="el" href="hmac_8h_source.html">hmac.h</a>"</code><br/>
-</div>
-<p><a href="state_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hs__state__t.html">dtls_hs_state_t</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
-Enumerations</h2></td></tr>
-<tr class="memitem:aea0e57fd5b857535960534b53361aa35"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> { <br/>
-  <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8">DTLS_STATE_INIT</a> = 0,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a>,
-<br/>
-  <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b">DTLS_STATE_FINISHED</a>,
-<br/>
-  <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>,
-<br/>
-  <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>,
-<a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a>
-<br/>
- }</td></tr>
-<tr class="separator:aea0e57fd5b857535960534b53361aa35"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>state information for DTLS FSM </p>
-
-<p>Definition in file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-</div><h2 class="groupheader">Enumeration Type Documentation</h2>
-<a class="anchor" id="aea0e57fd5b857535960534b53361aa35"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">enum <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8"></a>DTLS_STATE_INIT</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151"></a>DTLS_STATE_WAIT_CLIENTHELLO</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9"></a>DTLS_STATE_WAIT_CLIENTCERTIFICATE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05"></a>DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4"></a>DTLS_STATE_WAIT_CERTIFICATEVERIFY</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840"></a>DTLS_STATE_WAIT_CHANGECIPHERSPEC</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba"></a>DTLS_STATE_WAIT_FINISHED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b"></a>DTLS_STATE_FINISHED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53"></a>DTLS_STATE_CLIENTHELLO</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b"></a>DTLS_STATE_WAIT_SERVERCERTIFICATE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330"></a>DTLS_STATE_WAIT_SERVERKEYEXCHANGE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0"></a>DTLS_STATE_WAIT_SERVERHELLODONE</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122"></a>DTLS_STATE_CONNECTED</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b"></a>DTLS_STATE_CLOSING</em> </td><td class="fielddoc">
-</td></tr>
-<tr><td class="fieldname"><em><a class="anchor" id="aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553"></a>DTLS_STATE_CLOSED</em> </td><td class="fielddoc">
-</td></tr>
-</table>
-
-<p>Definition at line <a class="el" href="state_8h_source.html#l00040">40</a> of file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: state.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">state.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="state_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* dtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef _DTLS_STATE_H_</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_STATE_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <sys/types.h></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <stdint.h></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="global_8h.html">global.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="hmac_8h.html">hmac.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35"> 40</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> { </div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151"> 41</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8">DTLS_STATE_INIT</a> = 0, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a>, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a>,</div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05"> 42</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a>, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a>,</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840"> 43</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a>,</div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba"> 44</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a>, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b">DTLS_STATE_FINISHED</a>, </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">/* client states */</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330"> 46</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a>, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a>, <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a>,</div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0"> 47</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a>,</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122"> 49</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a>,</div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b"> 50</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a>,</div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553"> 51</a></span>  <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> } <a class="code" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a>;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structdtls__hs__state__t.html"> 54</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32"> 55</a></span>  uint16_t <a class="code" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a>; </div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542"> 56</a></span>  uint16_t <a class="code" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a>; </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">/* FIXME: dtls_security_parameters_t pending_config; */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">/* temporary storage for the final handshake hash */</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1"> 62</a></span>  <a class="code" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> <a class="code" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> } <a class="code" href="structdtls__hs__state__t.html">dtls_hs_state_t</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_STATE_H_ */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a5c55da9c6de8eb986de811cf2135a1a0">DTLS_STATE_WAIT_SERVERHELLODONE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00047">state.h:47</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa013ec95c846eaebd37acecc1a2f8a05">DTLS_STATE_WAIT_CLIENTKEYEXCHANGE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00042">state.h:42</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a84b76c7a571c4b1d659e26d4e540c151">DTLS_STATE_WAIT_CLIENTHELLO</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00041">state.h:41</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a8c1ffc1652e7c5ba25239fe1f3a430ba">DTLS_STATE_WAIT_FINISHED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00044">state.h:44</a></div></div>
-<div class="ttc" id="hmac_8h_html_abb19650a510c73117da0e9b88d68f159"><div class="ttname"><a href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a></div><div class="ttdeci">SHA256_CTX dtls_hash_ctx</div><div class="ttdef"><b>Definition:</b> <a href="hmac_8h_source.html#l00038">hmac.h:38</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a></div><div class="ttdeci">dtls_state_t</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00040">state.h:40</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35ab3436ceaa0f47131771c288b8b5f1840">DTLS_STATE_WAIT_CHANGECIPHERSPEC</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00043">state.h:43</a></div></div>
-<div class="ttc" id="global_8h_html"><div class="ttname"><a href="global_8h.html">global.h</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35afe3ae5ff9df44c8101223efec2916c0b">DTLS_STATE_FINISHED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00044">state.h:44</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a4aa3fcce37191fc2a915aa330efd381b">DTLS_STATE_CLOSING</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00050">state.h:50</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a991b95919538531d730f74045e4fe3b1"><div class="ttname"><a href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">dtls_hs_state_t::hs_hash</a></div><div class="ttdeci">dtls_hash_ctx hs_hash</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00062">state.h:62</a></div></div>
-<div class="ttc" id="hmac_8h_html"><div class="ttname"><a href="hmac_8h.html">hmac.h</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35afa23f2a7b1313abfb472a55a17cc26b8">DTLS_STATE_INIT</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00041">state.h:41</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a97f1fd8aadc13e8d721d5e40d42a0330">DTLS_STATE_WAIT_SERVERKEYEXCHANGE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a88bc0f5ff63003f57a59700dc4b55553">DTLS_STATE_CLOSED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00051">state.h:51</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a4e2184c917d1ad46d308e8770193f542"><div class="ttname"><a href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">dtls_hs_state_t::mseq_r</a></div><div class="ttdeci">uint16_t mseq_r</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00056">state.h:56</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html"><div class="ttname"><a href="structdtls__hs__state__t.html">dtls_hs_state_t</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00054">state.h:54</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a953a6aabd0aff0492df164e79815b122">DTLS_STATE_CONNECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00049">state.h:49</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35aa58cb54cde33e338814177a41ca2df6b">DTLS_STATE_WAIT_SERVERCERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35abdb6292772d18296f76c90fdc2533ab9">DTLS_STATE_WAIT_CLIENTCERTIFICATE</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00041">state.h:41</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1bb7cd2cdb77a9cdc5a5df541e8d99c4">DTLS_STATE_WAIT_CERTIFICATEVERIFY</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00042">state.h:42</a></div></div>
-<div class="ttc" id="structdtls__hs__state__t_html_a694ce15382e7504a750a1b102ad8ec32"><div class="ttname"><a href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">dtls_hs_state_t::mseq_s</a></div><div class="ttdeci">uint16_t mseq_s</div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00055">state.h:55</a></div></div>
-<div class="ttc" id="state_8h_html_aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53"><div class="ttname"><a href="state_8h.html#aea0e57fd5b857535960534b53361aa35a1a76f1e49c80d22df9673f8471d1ec53">DTLS_STATE_CLIENTHELLO</a></div><div class="ttdef"><b>Definition:</b> <a href="state_8h_source.html#l00046">state.h:46</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: UT_hash_bucket Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UT_hash_bucket Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="uthash_8h_source.html">uthash.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a785a785132212378bb28fb4341cfecaf"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf">hh_head</a></td></tr>
-<tr class="separator:a785a785132212378bb28fb4341cfecaf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5d20cc12bdcbde360398910eefb45634"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634">count</a></td></tr>
-<tr class="separator:a5d20cc12bdcbde360398910eefb45634"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9b739c1b69c141e8198c0c64af643b2b"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b">expand_mult</a></td></tr>
-<tr class="separator:a9b739c1b69c141e8198c0c64af643b2b"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00904">904</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a5d20cc12bdcbde360398910eefb45634"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_bucket::count</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00906">906</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9b739c1b69c141e8198c0c64af643b2b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_bucket::expand_mult</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00920">920</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a785a785132212378bb28fb4341cfecaf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>* UT_hash_bucket::hh_head</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00905">905</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="uthash_8h_source.html">uthash.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: UT_hash_handle Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UT_hash_handle Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="uthash_8h_source.html">uthash.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:ad2035ee3b2aa55b22e352341372a5e73"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a></td></tr>
-<tr class="separator:ad2035ee3b2aa55b22e352341372a5e73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abaf54a69367933df2d45575f48ca6a58"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a></td></tr>
-<tr class="separator:abaf54a69367933df2d45575f48ca6a58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a93bc88ffe97f85ea0d9e0056b7118942"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a></td></tr>
-<tr class="separator:a93bc88ffe97f85ea0d9e0056b7118942"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3ec03e34d7975d5c1981c44b324619b2"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a></td></tr>
-<tr class="separator:a3ec03e34d7975d5c1981c44b324619b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4f6989385499ba6f594b0f0facd28325"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a></td></tr>
-<tr class="separator:a4f6989385499ba6f594b0f0facd28325"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a40690fc15aeaeba8f25385f05f84dd4d"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a></td></tr>
-<tr class="separator:a40690fc15aeaeba8f25385f05f84dd4d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af2abdc405972a6bbdee2ade2c0f346c4"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a></td></tr>
-<tr class="separator:af2abdc405972a6bbdee2ade2c0f346c4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aae5e635fa110556e5007f627089f8323"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a></td></tr>
-<tr class="separator:aae5e635fa110556e5007f627089f8323"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00961">961</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="aae5e635fa110556e5007f627089f8323"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_handle::hashv</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00969">969</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4f6989385499ba6f594b0f0facd28325"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>* UT_hash_handle::hh_next</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00966">966</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3ec03e34d7975d5c1981c44b324619b2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>* UT_hash_handle::hh_prev</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00965">965</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a40690fc15aeaeba8f25385f05f84dd4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* UT_hash_handle::key</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00967">967</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af2abdc405972a6bbdee2ade2c0f346c4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_handle::keylen</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00968">968</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a93bc88ffe97f85ea0d9e0056b7118942"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* UT_hash_handle::next</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00964">964</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abaf54a69367933df2d45575f48ca6a58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* UT_hash_handle::prev</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00963">963</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad2035ee3b2aa55b22e352341372a5e73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a>* UT_hash_handle::tbl</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00962">962</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="uthash_8h_source.html">uthash.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: UT_hash_table Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UT_hash_table Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="uthash_8h_source.html">uthash.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a04556bbef9c9a1c40b1bc0d17a2a6e0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b">buckets</a></td></tr>
-<tr class="separator:a04556bbef9c9a1c40b1bc0d17a2a6e0b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3ed04b6233facaedf910672578d86339"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339">num_buckets</a></td></tr>
-<tr class="separator:a3ed04b6233facaedf910672578d86339"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae376a7f3fac525f3a9d03b6beec8d12f"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f">log2_num_buckets</a></td></tr>
-<tr class="separator:ae376a7f3fac525f3a9d03b6beec8d12f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a74534cc14f080c96f94d8f5da83d9d76"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76">num_items</a></td></tr>
-<tr class="separator:a74534cc14f080c96f94d8f5da83d9d76"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00a889a5e1ebaeec0a83ec2701df1992"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992">tail</a></td></tr>
-<tr class="separator:a00a889a5e1ebaeec0a83ec2701df1992"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afd05f4d9e45354fb010367ae9e1bddb6"><td class="memItemLeft" align="right" valign="top">ptrdiff_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6">hho</a></td></tr>
-<tr class="separator:afd05f4d9e45354fb010367ae9e1bddb6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5f1cec93d5d753ba02097c797e4d67ad"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad">ideal_chain_maxlen</a></td></tr>
-<tr class="separator:a5f1cec93d5d753ba02097c797e4d67ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8cb66cfb259a204cda59a815e4db664f"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f">nonideal_items</a></td></tr>
-<tr class="separator:a8cb66cfb259a204cda59a815e4db664f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a216c7d98cf40a0064bee94aa8a5bf1b7"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7">ineff_expands</a></td></tr>
-<tr class="separator:a216c7d98cf40a0064bee94aa8a5bf1b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a635661789933752e7b83dac84430eae1"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1">noexpand</a></td></tr>
-<tr class="separator:a635661789933752e7b83dac84430eae1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a87d1ab3f3ede1809c6a485972d20b25f"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f">signature</a></td></tr>
-<tr class="separator:a87d1ab3f3ede1809c6a485972d20b25f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00928">928</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a04556bbef9c9a1c40b1bc0d17a2a6e0b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a>* UT_hash_table::buckets</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00929">929</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afd05f4d9e45354fb010367ae9e1bddb6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">ptrdiff_t UT_hash_table::hho</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00933">933</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5f1cec93d5d753ba02097c797e4d67ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::ideal_chain_maxlen</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00937">937</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a216c7d98cf40a0064bee94aa8a5bf1b7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::ineff_expands</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00950">950</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae376a7f3fac525f3a9d03b6beec8d12f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::log2_num_buckets</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00930">930</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a635661789933752e7b83dac84430eae1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::noexpand</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00950">950</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8cb66cfb259a204cda59a815e4db664f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::nonideal_items</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00942">942</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3ed04b6233facaedf910672578d86339"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::num_buckets</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00930">930</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a74534cc14f080c96f94d8f5da83d9d76"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned UT_hash_table::num_items</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00931">931</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a87d1ab3f3ede1809c6a485972d20b25f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t UT_hash_table::signature</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00952">952</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a00a889a5e1ebaeec0a83ec2701df1992"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>* UT_hash_table::tail</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00932">932</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="uthash_8h_source.html">uthash.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: aes128_ccm_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">aes128_ccm_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a5bdf410f025e4177ced456059bc8a371"><td class="memItemLeft" align="right" valign="top">rijndael_ctx </td><td class="memItemRight" valign="bottom"><a class="el" href="structaes128__ccm__t.html#a5bdf410f025e4177ced456059bc8a371">ctx</a></td></tr>
-<tr class="separator:a5bdf410f025e4177ced456059bc8a371"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Crypto context for TLS_PSK_WITH_AES_128_CCM_8 cipher suite. </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00070">70</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a5bdf410f025e4177ced456059bc8a371"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">rijndael_ctx aes128_ccm_t::ctx</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>AES-128 encryption context </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00071">71</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_cipher_context_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_cipher_context_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a02da63201e2ac7bc508e3bb54c5761dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__cipher__context__t.html#a02da63201e2ac7bc508e3bb54c5761dc">data</a></td></tr>
-<tr class="separator:a02da63201e2ac7bc508e3bb54c5761dc"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00074">74</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a02da63201e2ac7bc508e3bb54c5761dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structaes128__ccm__t.html">aes128_ccm_t</a> dtls_cipher_context_t::data</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>numeric identifier of this cipher suite in host byte order. The crypto context </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00076">76</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_context_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-methods">Public Member Functions</a> |
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_context_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="dtls_8h_source.html">dtls.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:adf4e86be64bd4a07936ddbba5f6fa6af"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#adf4e86be64bd4a07936ddbba5f6fa6af">LIST_STRUCT</a> (sendqueue)</td></tr>
-<tr class="separator:adf4e86be64bd4a07936ddbba5f6fa6af"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:adb7dc6a53a7e00f2c4bbf726973e002f"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#adb7dc6a53a7e00f2c4bbf726973e002f">cookie_secret</a> [<a class="el" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>]</td></tr>
-<tr class="separator:adb7dc6a53a7e00f2c4bbf726973e002f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3f26099dbb3588ae9a86d26f69ec08f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#a3f26099dbb3588ae9a86d26f69ec08f8">cookie_secret_age</a></td></tr>
-<tr class="separator:a3f26099dbb3588ae9a86d26f69ec08f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a417fa8ac04478292f0539d2da0fec088"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#a417fa8ac04478292f0539d2da0fec088">peers</a></td></tr>
-<tr class="separator:a417fa8ac04478292f0539d2da0fec088"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab37722ec6b82dd3120827812f212a51e"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#ab37722ec6b82dd3120827812f212a51e">app</a></td></tr>
-<tr class="separator:ab37722ec6b82dd3120827812f212a51e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a460737bda0d200538c00ef7877b339cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__handler__t.html">dtls_handler_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#a460737bda0d200538c00ef7877b339cd">h</a></td></tr>
-<tr class="separator:a460737bda0d200538c00ef7877b339cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad6facbcd3c19ac8e1c79b1664dcf2434"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__context__t.html#ad6facbcd3c19ac8e1c79b1664dcf2434">readbuf</a> [<a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>]</td></tr>
-<tr class="separator:ad6facbcd3c19ac8e1c79b1664dcf2434"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Holds global information of the DTLS engine. </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00223">223</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="adf4e86be64bd4a07936ddbba5f6fa6af"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_context_t::LIST_STRUCT </td>
- <td>(</td>
- <td class="paramtype">sendqueue </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>the packets to send </p>
-
-</div>
-</div>
-<h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="ab37722ec6b82dd3120827812f212a51e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void* dtls_context_t::app</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>application-specific data </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00237">237</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adb7dc6a53a7e00f2c4bbf726973e002f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char dtls_context_t::cookie_secret[<a class="el" href="dtls_8h.html#a44ec206b1d84aa3d83281a92ed7cc238">DTLS_COOKIE_SECRET_LENGTH</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00224">224</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3f26099dbb3588ae9a86d26f69ec08f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> dtls_context_t::cookie_secret_age</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>the time the secret has been generated </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00225">225</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a460737bda0d200538c00ef7877b339cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__handler__t.html">dtls_handler_t</a>* dtls_context_t::h</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>callback handlers </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00239">239</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a417fa8ac04478292f0539d2da0fec088"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_context_t::peers</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>peer hash map </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00228">228</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad6facbcd3c19ac8e1c79b1664dcf2434"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char dtls_context_t::readbuf[<a class="el" href="global_8h.html#acdbfba15eb1a5692e177d582b4ca1583">DTLS_MAX_BUF</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00241">241</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="dtls_8h_source.html">dtls.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_ecdsa_key_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_ecdsa_key_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="dtls_8h_source.html">dtls.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:ad78834cca7158114bd78d3d0acb4a548"><td class="memItemLeft" align="right" valign="top"><a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__ecdsa__key__t.html#ad78834cca7158114bd78d3d0acb4a548">curve</a></td></tr>
-<tr class="separator:ad78834cca7158114bd78d3d0acb4a548"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a91769609f44590f193d726187ab366de"><td class="memItemLeft" align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__ecdsa__key__t.html#a91769609f44590f193d726187ab366de">priv_key</a></td></tr>
-<tr class="separator:a91769609f44590f193d726187ab366de"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa54efc762737c1b94eaebae1262d4221"><td class="memItemLeft" align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__ecdsa__key__t.html#aa54efc762737c1b94eaebae1262d4221">pub_key_x</a></td></tr>
-<tr class="separator:aa54efc762737c1b94eaebae1262d4221"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaceb7ea4b4f9e74fb2ec85c49746132f"><td class="memItemLeft" align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__ecdsa__key__t.html#aaceb7ea4b4f9e74fb2ec85c49746132f">pub_key_y</a></td></tr>
-<tr class="separator:aaceb7ea4b4f9e74fb2ec85c49746132f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00063">63</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="ad78834cca7158114bd78d3d0acb4a548"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="crypto_8h.html#a3710d42871d602387a5147c05bf9f1ef">dtls_ecdh_curve</a> dtls_ecdsa_key_t::curve</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00064">64</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a91769609f44590f193d726187ab366de"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char* dtls_ecdsa_key_t::priv_key</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00065">65</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa54efc762737c1b94eaebae1262d4221"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char* dtls_ecdsa_key_t::pub_key_x</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>< private key as bytes > </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00066">66</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaceb7ea4b4f9e74fb2ec85c49746132f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const unsigned char* dtls_ecdsa_key_t::pub_key_y</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>< x part of the public key for the given private key > </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00067">67</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="dtls_8h_source.html">dtls.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_handler_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_handler_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="dtls_8h_source.html">dtls.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a161ad99d77bd3b963bcd473eb3cbefe2"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handler__t.html#a161ad99d77bd3b963bcd473eb3cbefe2">write</a> )(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td></tr>
-<tr class="separator:a161ad99d77bd3b963bcd473eb3cbefe2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a48f28d381286b493fe6dd8eab5cbaa88"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handler__t.html#a48f28d381286b493fe6dd8eab5cbaa88">read</a> )(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td></tr>
-<tr class="separator:a48f28d381286b493fe6dd8eab5cbaa88"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aae2db3733c5f0a0eea9a635490bdfe59"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handler__t.html#aae2db3733c5f0a0eea9a635490bdfe59">event</a> )(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, unsigned short code)</td></tr>
-<tr class="separator:aae2db3733c5f0a0eea9a635490bdfe59"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>This structure contains callback functions used by tinydtls to communicate with the application. At least the write function must be provided. It is called by the DTLS state machine to send packets over the network. The read function is invoked to deliver decrypted and verfified application data. The third callback is an event handler function that is called when alert messages are encountered or events generated by the library have occured. </p>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00084">84</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="aae2db3733c5f0a0eea9a635490bdfe59"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int(* dtls_handler_t::event)(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, unsigned short code)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>The event handler is called when a message from the alert protocol is received or the state of the DTLS session changes.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current dtls context. </td></tr>
- <tr><td class="paramname">session</td><td>The session object that was affected. </td></tr>
- <tr><td class="paramname">level</td><td>The alert level or <code>0</code> when an event ocurred that is not an alert. </td></tr>
- <tr><td class="paramname">code</td><td>Values less than <code>256</code> indicate alerts, while <code>256</code> or greater indicate internal DTLS session changes. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>ignored </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00129">129</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a48f28d381286b493fe6dd8eab5cbaa88"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int(* dtls_handler_t::read)(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Called from <a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message()</a> deliver application data that was received on the given session. The data is delivered only after decryption and verification have succeeded.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
- <tr><td class="paramname">session</td><td>The session object, including the address of the data's origin. </td></tr>
- <tr><td class="paramname">buf</td><td>The received data packet. </td></tr>
- <tr><td class="paramname">len</td><td>The actual length of <code>buf</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>ignored </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00114">114</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a161ad99d77bd3b963bcd473eb3cbefe2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int(* dtls_handler_t::write)(struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Called from <a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message()</a> to send DTLS packets over the network. The callback function must use the network interface denoted by session->ifindex to send the data.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
- <tr><td class="paramname">session</td><td>The session object, including the address of the remote peer where the data shall be sent. </td></tr>
- <tr><td class="paramname">buf</td><td>The data to send. </td></tr>
- <tr><td class="paramname">len</td><td>The actual length of <code>buf</code>. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The callback function must return the number of bytes that were sent, or a value less than zero to indicate an error. </dd></dl>
-
-<p>Definition at line <a class="el" href="dtls_8h_source.html#l00099">99</a> of file <a class="el" href="dtls_8h_source.html">dtls.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="dtls_8h_source.html">dtls.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_handshake_parameters_ecdsa_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_handshake_parameters_ecdsa_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aaa5b9eb0a00a615f7910294ed0739b5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aaa5b9eb0a00a615f7910294ed0739b5b">own_eph_priv</a> [32]</td></tr>
-<tr class="separator:aaa5b9eb0a00a615f7910294ed0739b5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa941f98cb3a6dd1dd3c52fb68c37921f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#aa941f98cb3a6dd1dd3c52fb68c37921f">other_eph_pub_x</a> [32]</td></tr>
-<tr class="separator:aa941f98cb3a6dd1dd3c52fb68c37921f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a56047d51afb4a38924db2000af74e83a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a56047d51afb4a38924db2000af74e83a">other_eph_pub_y</a> [32]</td></tr>
-<tr class="separator:a56047d51afb4a38924db2000af74e83a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0d0470e6d450f955ef574f22cb74c5bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#a0d0470e6d450f955ef574f22cb74c5bf">other_pub_x</a> [32]</td></tr>
-<tr class="separator:a0d0470e6d450f955ef574f22cb74c5bf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af1fde768658a37d6e3a469842e0854b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__ecdsa__t.html#af1fde768658a37d6e3a469842e0854b0">other_pub_y</a> [32]</td></tr>
-<tr class="separator:af1fde768658a37d6e3a469842e0854b0"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00079">79</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="aa941f98cb3a6dd1dd3c52fb68c37921f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_ecdsa_t::other_eph_pub_x[32]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00081">81</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a56047d51afb4a38924db2000af74e83a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_ecdsa_t::other_eph_pub_y[32]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00082">82</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0d0470e6d450f955ef574f22cb74c5bf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_ecdsa_t::other_pub_x[32]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00083">83</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af1fde768658a37d6e3a469842e0854b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_ecdsa_t::other_pub_y[32]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00084">84</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaa5b9eb0a00a615f7910294ed0739b5b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_ecdsa_t::own_eph_priv[32]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00080">80</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_handshake_parameters_psk_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_handshake_parameters_psk_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a39ae0d1ead76e8bd5a3631ae8677be1b"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__psk__t.html#a39ae0d1ead76e8bd5a3631ae8677be1b">id_length</a></td></tr>
-<tr class="separator:a39ae0d1ead76e8bd5a3631ae8677be1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6cce0754e4b9cf5469ddfec595be3084"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__psk__t.html#a6cce0754e4b9cf5469ddfec595be3084">identity</a> [<a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>]</td></tr>
-<tr class="separator:a6cce0754e4b9cf5469ddfec595be3084"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00094">94</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a39ae0d1ead76e8bd5a3631ae8677be1b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint16_t dtls_handshake_parameters_psk_t::id_length</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00095">95</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6cce0754e4b9cf5469ddfec595be3084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char dtls_handshake_parameters_psk_t::identity[<a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00096">96</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_handshake_parameters_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-methods">Public Member Functions</a> |
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_handshake_parameters_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a44c54027bff617597d51f4fc862a1dc4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#a44c54027bff617597d51f4fc862a1dc4">LIST_STRUCT</a> (reorder_queue)</td></tr>
-<tr class="separator:a44c54027bff617597d51f4fc862a1dc4"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:ac27a2063a8136615971f8d591afdd01f"><td class="memItemLeft" >union {</td></tr>
-<tr class="memitem:ae0ef3cbded39e2ff62e35218e53e6464"><td class="memItemLeft" >   struct <b>random_t</b> {</td></tr>
-<tr class="memitem:a75410924ecdb9da31e0d5f5f4d8145e9"><td class="memItemLeft" >      <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>   <a class="el" href="structdtls__handshake__parameters__t.html#af37f38ce7c5f5e4ab62f16aacc2035f9">client</a> [<a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]</td></tr>
-<tr class="separator:a75410924ecdb9da31e0d5f5f4d8145e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afd914da19071fe78279956b48106f2c7"><td class="memItemLeft" >      <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>   <a class="el" href="structdtls__handshake__parameters__t.html#a17344d2dab22a9c2c7f8bc9ef9137036">server</a> [<a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]</td></tr>
-<tr class="separator:afd914da19071fe78279956b48106f2c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae0ef3cbded39e2ff62e35218e53e6464"><td class="memItemLeft" valign="top">   }   <a class="el" href="structdtls__handshake__parameters__t.html#a5c4e7bb5d4d890200a176cfe13c6fb9a">random</a></td></tr>
-<tr class="separator:ae0ef3cbded39e2ff62e35218e53e6464"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aafe678faee752228c462b2049a101bee"><td class="memItemLeft" >   <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>   <a class="el" href="structdtls__handshake__parameters__t.html#a21ba88c7b062772beb75c5570d257898">master_secret</a> [<a class="el" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>]</td></tr>
-<tr class="separator:aafe678faee752228c462b2049a101bee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac27a2063a8136615971f8d591afdd01f"><td class="memItemLeft" valign="top">} </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#ac27a2063a8136615971f8d591afdd01f">tmp</a></td></tr>
-<tr class="separator:ac27a2063a8136615971f8d591afdd01f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a56e7392a649731166fc82a523b0eb027"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__hs__state__t.html">dtls_hs_state_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#a56e7392a649731166fc82a523b0eb027">hs_state</a></td></tr>
-<tr class="separator:a56e7392a649731166fc82a523b0eb027"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a67f85371953c8ae07ec110cb39c13125"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#a67f85371953c8ae07ec110cb39c13125">compression</a></td></tr>
-<tr class="separator:a67f85371953c8ae07ec110cb39c13125"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5cc61a98763800b5b4e7617307649933"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#a5cc61a98763800b5b4e7617307649933">cipher</a></td></tr>
-<tr class="separator:a5cc61a98763800b5b4e7617307649933"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab17efe8550600d945ced029e43ca86d6"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#ab17efe8550600d945ced029e43ca86d6">do_client_auth</a>:1</td></tr>
-<tr class="separator:ab17efe8550600d945ced029e43ca86d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a483b158f8fc86e45e7c0fc603a66925f"><td class="memItemLeft" >union {</td></tr>
-<tr class="memitem:a483b158f8fc86e45e7c0fc603a66925f"><td class="memItemLeft" valign="top">} </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__handshake__parameters__t.html#a483b158f8fc86e45e7c0fc603a66925f">keyx</a></td></tr>
-<tr class="separator:a483b158f8fc86e45e7c0fc603a66925f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00115">115</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a44c54027bff617597d51f4fc862a1dc4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dtls_handshake_parameters_t::LIST_STRUCT </td>
- <td>(</td>
- <td class="paramtype">reorder_queue </td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>the packets to reorder </p>
-
-</div>
-</div>
-<h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a5cc61a98763800b5b4e7617307649933"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> dtls_handshake_parameters_t::cipher</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>cipher type </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00128">128</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af37f38ce7c5f5e4ab62f16aacc2035f9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_t::client[<a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>client random gmt and bytes </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00118">118</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a67f85371953c8ae07ec110cb39c13125"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> dtls_handshake_parameters_t::compression</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>compression method </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00127">127</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab17efe8550600d945ced029e43ca86d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned int dtls_handshake_parameters_t::do_client_auth</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00129">129</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a56e7392a649731166fc82a523b0eb027"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__hs__state__t.html">dtls_hs_state_t</a> dtls_handshake_parameters_t::hs_state</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>handshake protocol status </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00125">125</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a483b158f8fc86e45e7c0fc603a66925f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">union { ... } dtls_handshake_parameters_t::keyx</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a21ba88c7b062772beb75c5570d257898"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_t::master_secret[<a class="el" href="crypto_8h.html#a2648582ddf4c82abc01d8388bd3f15db">DTLS_MASTER_SECRET_LENGTH</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>the session's master secret </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00122">122</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5c4e7bb5d4d890200a176cfe13c6fb9a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct { ... } ::random_t dtls_handshake_parameters_t::random</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a17344d2dab22a9c2c7f8bc9ef9137036"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_handshake_parameters_t::server[<a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>server random gmt and bytes </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00119">119</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac27a2063a8136615971f8d591afdd01f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">union { ... } dtls_handshake_parameters_t::tmp</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_hmac_context_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_hmac_context_t Struct Reference<div class="ingroups"><a class="el" href="group__HMAC.html">Keyed-Hash Message Authentication Code (HMAC)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="hmac_8h_source.html">hmac.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aba13422e176f7d16f3f251634ca7f868"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hmac__context__t.html#aba13422e176f7d16f3f251634ca7f868">pad</a> [<a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>]</td></tr>
-<tr class="separator:aba13422e176f7d16f3f251634ca7f868"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a84c35513fa655d8456be215f4509bb40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hmac__context__t.html#a84c35513fa655d8456be215f4509bb40">data</a></td></tr>
-<tr class="separator:a84c35513fa655d8456be215f4509bb40"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Context for HMAC generation. This object is initialized with <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init()</a> and must be passed to <a class="el" href="group__HMAC.html#ga1ef9c88a0a2053b442413a9cea3deb73">dtls_hmac_update()</a> and <a class="el" href="group__HMAC.html#gab98c992f3f9cc3c2d75077ddd46049bf">dtls_hmac_finalize()</a>. Once, finalized, the component <code>H</code> is invalid and must be initialized again with <a class="el" href="group__HMAC.html#gaa1eb35fcb2c2eb69eebaefa8eb4a790d">dtls_hmac_init()</a> before the structure can be used again. </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00095">95</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a84c35513fa655d8456be215f4509bb40"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> dtls_hmac_context_t::data</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>context for hash function </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00097">97</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aba13422e176f7d16f3f251634ca7f868"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char dtls_hmac_context_t::pad[<a class="el" href="group__HMAC.html#gab1f8617a558ef0f758439c96d3a4650e">DTLS_HMAC_BLOCKSIZE</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>ipad and opad storage </p>
-
-<p>Definition at line <a class="el" href="hmac_8h_source.html#l00096">96</a> of file <a class="el" href="hmac_8h_source.html">hmac.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="hmac_8h_source.html">hmac.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_hs_state_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_hs_state_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="state_8h_source.html">state.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a694ce15382e7504a750a1b102ad8ec32"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hs__state__t.html#a694ce15382e7504a750a1b102ad8ec32">mseq_s</a></td></tr>
-<tr class="separator:a694ce15382e7504a750a1b102ad8ec32"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4e2184c917d1ad46d308e8770193f542"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hs__state__t.html#a4e2184c917d1ad46d308e8770193f542">mseq_r</a></td></tr>
-<tr class="separator:a4e2184c917d1ad46d308e8770193f542"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a991b95919538531d730f74045e4fe3b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__hs__state__t.html#a991b95919538531d730f74045e4fe3b1">hs_hash</a></td></tr>
-<tr class="separator:a991b95919538531d730f74045e4fe3b1"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="state_8h_source.html#l00054">54</a> of file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a991b95919538531d730f74045e4fe3b1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> dtls_hs_state_t::hs_hash</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>pending config that is updated during handshake </p>
-
-<p>Definition at line <a class="el" href="state_8h_source.html#l00062">62</a> of file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4e2184c917d1ad46d308e8770193f542"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint16_t dtls_hs_state_t::mseq_r</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>received handshake message sequence number counter </p>
-
-<p>Definition at line <a class="el" href="state_8h_source.html#l00056">56</a> of file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a694ce15382e7504a750a1b102ad8ec32"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint16_t dtls_hs_state_t::mseq_s</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>send handshake message sequence number counter </p>
-
-<p>Definition at line <a class="el" href="state_8h_source.html#l00055">55</a> of file <a class="el" href="state_8h_source.html">state.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="state_8h_source.html">state.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_peer_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_peer_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="peer_8h_source.html">peer.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a4241666f9097d15a486840bce28c3fd5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#a4241666f9097d15a486840bce28c3fd5">hh</a></td></tr>
-<tr class="separator:a4241666f9097d15a486840bce28c3fd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a44ebb2ba643269c7e6943f3a9040febe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsession__t.html">session_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#a44ebb2ba643269c7e6943f3a9040febe">session</a></td></tr>
-<tr class="separator:a44ebb2ba643269c7e6943f3a9040febe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aeca80f1bcbcfdba89a2ab08e4bc48120"><td class="memItemLeft" align="right" valign="top"><a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#aeca80f1bcbcfdba89a2ab08e4bc48120">role</a></td></tr>
-<tr class="separator:aeca80f1bcbcfdba89a2ab08e4bc48120"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4e23cc3b273813744524c3db1fda9c83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#a4e23cc3b273813744524c3db1fda9c83">state</a></td></tr>
-<tr class="separator:a4e23cc3b273813744524c3db1fda9c83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6c85e48495ae7de8ddfc4c4fb2a350af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#a6c85e48495ae7de8ddfc4c4fb2a350af">security_params</a> [2]</td></tr>
-<tr class="separator:a6c85e48495ae7de8ddfc4c4fb2a350af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa176a7ffe3a780dc97a716dfffb54992"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__peer__t.html#aa176a7ffe3a780dc97a716dfffb54992">handshake_params</a></td></tr>
-<tr class="separator:aa176a7ffe3a780dc97a716dfffb54992"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Holds security parameters, local state and the transport address for each peer. </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00052">52</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="aa176a7ffe3a780dc97a716dfffb54992"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a>* dtls_peer_t::handshake_params</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00065">65</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4241666f9097d15a486840bce28c3fd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> dtls_peer_t::hh</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00054">54</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aeca80f1bcbcfdba89a2ab08e4bc48120"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> dtls_peer_t::role</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>denotes if this host is DTLS_CLIENT or DTLS_SERVER </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00061">61</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6c85e48495ae7de8ddfc4c4fb2a350af"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a>* dtls_peer_t::security_params[2]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00064">64</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a44ebb2ba643269c7e6943f3a9040febe"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structsession__t.html">session_t</a> dtls_peer_t::session</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>peer address and local interface </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00059">59</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4e23cc3b273813744524c3db1fda9c83"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> dtls_peer_t::state</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>DTLS engine state </p>
-
-<p>Definition at line <a class="el" href="peer_8h_source.html#l00062">62</a> of file <a class="el" href="peer_8h_source.html">peer.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="peer_8h_source.html">peer.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: dtls_security_parameters_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">dtls_security_parameters_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="crypto_8h_source.html">crypto.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a6a72df7ab1151f81e49d464175fcaf2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html#a6a72df7ab1151f81e49d464175fcaf2a">compression</a></td></tr>
-<tr class="separator:a6a72df7ab1151f81e49d464175fcaf2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a21d9fac709d739535b0cbecce4c18830"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html#a21d9fac709d739535b0cbecce4c18830">cipher</a></td></tr>
-<tr class="separator:a21d9fac709d739535b0cbecce4c18830"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2bce1fa0bf77eeab8fadca824de602da"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html#a2bce1fa0bf77eeab8fadca824de602da">epoch</a></td></tr>
-<tr class="separator:a2bce1fa0bf77eeab8fadca824de602da"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a100dc82ee41004df1d9f211873332f87"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html#a100dc82ee41004df1d9f211873332f87">rseq</a></td></tr>
-<tr class="separator:a100dc82ee41004df1d9f211873332f87"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1c3a56ea4af8ff71e1ffe77221541f4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structdtls__security__parameters__t.html#a1c3a56ea4af8ff71e1ffe77221541f4d">key_block</a> [<a class="el" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>]</td></tr>
-<tr class="separator:a1c3a56ea4af8ff71e1ffe77221541f4d"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00099">99</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a21d9fac709d739535b0cbecce4c18830"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> dtls_security_parameters_t::cipher</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>cipher type </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00102">102</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6a72df7ab1151f81e49d464175fcaf2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2">dtls_compression_t</a> dtls_security_parameters_t::compression</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>compression method </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00100">100</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2bce1fa0bf77eeab8fadca824de602da"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint16_t dtls_security_parameters_t::epoch</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>counter for cipher state changes </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00103">103</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1c3a56ea4af8ff71e1ffe77221541f4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> dtls_security_parameters_t::key_block[<a class="el" href="crypto_8h.html#a0df6db4f8c29f2b0aa5a1363b4f9127f">MAX_KEYBLOCK_LENGTH</a>]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>The key block generated from PRF applied to client and server random bytes. The actual size is given by the selected cipher and can be calculated using <a class="el" href="crypto_8h.html#a147bfdc558c2ec69ffdf388ae19ae01c">dtls_kb_size()</a>. Use <code>dtls_kb_</code> macros to access the components of the key block. </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00112">112</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a100dc82ee41004df1d9f211873332f87"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint64_t dtls_security_parameters_t::rseq</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>sequence number of last record sent </p>
-
-<p>Definition at line <a class="el" href="crypto_8h_source.html#l00104">104</a> of file <a class="el" href="crypto_8h_source.html">crypto.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="crypto_8h_source.html">crypto.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: list Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">list Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="t__list_8h_source.html">t_list.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a1900fe79e875e2838625b2eb60837f8f"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlist.html">list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlist.html#a1900fe79e875e2838625b2eb60837f8f">next</a></td></tr>
-<tr class="separator:a1900fe79e875e2838625b2eb60837f8f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00080">80</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a1900fe79e875e2838625b2eb60837f8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structlist.html">list</a>* list::next</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00081">81</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="t__list_8h_source.html">t_list.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: netq_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">netq_t Struct Reference<div class="ingroups"><a class="el" href="group__netq.html">Network Packet Queue</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="netq_8h_source.html">netq.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:a89ecfe2e9b464039d390e8746da546cb"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structnetq__t.html">netq_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#a89ecfe2e9b464039d390e8746da546cb">next</a></td></tr>
-<tr class="separator:a89ecfe2e9b464039d390e8746da546cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afe91256ff5267fc680b96efd3bd8635a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#afe91256ff5267fc680b96efd3bd8635a">t</a></td></tr>
-<tr class="separator:afe91256ff5267fc680b96efd3bd8635a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae0c2648acf87d1e6f2566bc3600771b6"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#ae0c2648acf87d1e6f2566bc3600771b6">timeout</a></td></tr>
-<tr class="separator:ae0c2648acf87d1e6f2566bc3600771b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaca5f6407bd7b3162d9ee7e7e7b8f0ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#aaca5f6407bd7b3162d9ee7e7e7b8f0ff">peer</a></td></tr>
-<tr class="separator:aaca5f6407bd7b3162d9ee7e7e7b8f0ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9998944e43a39a2e5700156876a312e0"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#a9998944e43a39a2e5700156876a312e0">epoch</a></td></tr>
-<tr class="separator:a9998944e43a39a2e5700156876a312e0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a13d74bc65c8879b894698935fbbe2246"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#a13d74bc65c8879b894698935fbbe2246">type</a></td></tr>
-<tr class="separator:a13d74bc65c8879b894698935fbbe2246"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aacd03017f40248c2f48c2b7b9cd92dc8"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#aacd03017f40248c2f48c2b7b9cd92dc8">retransmit_cnt</a></td></tr>
-<tr class="separator:aacd03017f40248c2f48c2b7b9cd92dc8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac72c9378282becab5a273f612f58c124"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#ac72c9378282becab5a273f612f58c124">length</a></td></tr>
-<tr class="separator:ac72c9378282becab5a273f612f58c124"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5b4d387623df43fe25a3b11e9d4fb02c"><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="structnetq__t.html#a5b4d387623df43fe25a3b11e9d4fb02c">data</a> []</td></tr>
-<tr class="separator:a5b4d387623df43fe25a3b11e9d4fb02c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00038">38</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a5b4d387623df43fe25a3b11e9d4fb02c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char netq_t::data[]</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>the datagram to send </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00051">51</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9998944e43a39a2e5700156876a312e0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint16_t netq_t::epoch</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00045">45</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac72c9378282becab5a273f612f58c124"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">size_t netq_t::length</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>actual length of data </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00049">49</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a89ecfe2e9b464039d390e8746da546cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct <a class="el" href="structnetq__t.html">netq_t</a>* netq_t::next</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00039">39</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaca5f6407bd7b3162d9ee7e7e7b8f0ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* netq_t::peer</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>remote address </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00044">44</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aacd03017f40248c2f48c2b7b9cd92dc8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned char netq_t::retransmit_cnt</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>retransmission counter, will be removed when zero </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00047">47</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afe91256ff5267fc680b96efd3bd8635a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> netq_t::t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>when to send PDU for the next time </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00041">41</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae0c2648acf87d1e6f2566bc3600771b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">unsigned int netq_t::timeout</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>randomized timeout value </p>
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00042">42</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a13d74bc65c8879b894698935fbbe2246"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t netq_t::type</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="netq_8h_source.html#l00046">46</a> of file <a class="el" href="netq_8h_source.html">netq.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="netq_8h_source.html">netq.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: session_t Struct Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">session_t Struct Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><code>#include <<a class="el" href="session_8h_source.html">session.h</a>></code></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Data Fields</h2></td></tr>
-<tr class="memitem:aed21682e9f971221d9f35f1266dea125"><td class="memItemLeft" align="right" valign="top">socklen_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structsession__t.html#aed21682e9f971221d9f35f1266dea125">size</a></td></tr>
-<tr class="separator:aed21682e9f971221d9f35f1266dea125"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0bb4423cd29b415a4cf6c32d5d9a43e4"><td class="memItemLeft" >union {</td></tr>
-<tr class="memitem:ad2ff23b596200bfd97332cf4617ab651"><td class="memItemLeft" >   struct sockaddr   <a class="el" href="structsession__t.html#a8d0a30ccc98425675a1b0e92e96eaa6a">sa</a></td></tr>
-<tr class="separator:ad2ff23b596200bfd97332cf4617ab651"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a18352e2487f158a08b671cc9fb816534"><td class="memItemLeft" >   struct sockaddr_storage   <a class="el" href="structsession__t.html#ac45985b6941c1fd25dbf4e48ff44fb8d">st</a></td></tr>
-<tr class="separator:a18352e2487f158a08b671cc9fb816534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0d438eeada3d4b5257fdb630e9153538"><td class="memItemLeft" >   struct sockaddr_in   <a class="el" href="structsession__t.html#a86093095c1ab36b12180f9215fa2375e">sin</a></td></tr>
-<tr class="separator:a0d438eeada3d4b5257fdb630e9153538"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a875a562861bb7b3477c3e79495ca10c2"><td class="memItemLeft" >   struct sockaddr_in6   <a class="el" href="structsession__t.html#a2f337ce1989f3a9b5afeef1a95506bde">sin6</a></td></tr>
-<tr class="separator:a875a562861bb7b3477c3e79495ca10c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0bb4423cd29b415a4cf6c32d5d9a43e4"><td class="memItemLeft" valign="top">} </td><td class="memItemRight" valign="bottom"><a class="el" href="structsession__t.html#a0bb4423cd29b415a4cf6c32d5d9a43e4">addr</a></td></tr>
-<tr class="separator:a0bb4423cd29b415a4cf6c32d5d9a43e4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aafc69fe43548bd69c0e15aa82e73f3ff"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structsession__t.html#aafc69fe43548bd69c0e15aa82e73f3ff">ifindex</a></td></tr>
-<tr class="separator:aafc69fe43548bd69c0e15aa82e73f3ff"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p>Definition at line <a class="el" href="session_8h_source.html#l00049">49</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-</div><h2 class="groupheader">Field Documentation</h2>
-<a class="anchor" id="a0bb4423cd29b415a4cf6c32d5d9a43e4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">union { ... } session_t::addr</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="aafc69fe43548bd69c0e15aa82e73f3ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t session_t::ifindex</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00057">57</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8d0a30ccc98425675a1b0e92e96eaa6a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct sockaddr session_t::sa</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00052">52</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a86093095c1ab36b12180f9215fa2375e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct sockaddr_in session_t::sin</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00054">54</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2f337ce1989f3a9b5afeef1a95506bde"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct sockaddr_in6 session_t::sin6</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00055">55</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aed21682e9f971221d9f35f1266dea125"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">socklen_t session_t::size</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>size of addr </p>
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00050">50</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac45985b6941c1fd25dbf4e48ff44fb8d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">struct sockaddr_storage session_t::st</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="session_8h_source.html#l00053">53</a> of file <a class="el" href="session_8h_source.html">session.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<li><a class="el" href="session_8h_source.html">session.h</a></li>
-</ul>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: t_list.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">t_list.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>Wrappers for list structures and functions.
-<a href="#details">More...</a></p>
-<div class="textblock"><code>#include "<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>"</code><br/>
-<code>#include "<a class="el" href="uthash_8h_source.html">uthash.h</a>"</code><br/>
-<code>#include "<a class="el" href="utlist_8h_source.html">utlist.h</a>"</code><br/>
-</div>
-<p><a href="t__list_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structlist.html">list</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:ad8951367826c57390a9f9892e0fc2659"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">LIST_CONCAT</a>(s1, s2)   s1##s2</td></tr>
-<tr class="separator:ad8951367826c57390a9f9892e0fc2659"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab5acb500a887e1957292f3dddc5c9b79"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79">LIST_STRUCT</a>(name)</td></tr>
-<tr class="separator:ab5acb500a887e1957292f3dddc5c9b79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adcb86fe4485a0f8ea79541117641f730"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730">LIST_STRUCT_INIT</a>(struct_ptr, name)</td></tr>
-<tr class="separator:adcb86fe4485a0f8ea79541117641f730"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a9c248916bae1f0b13732686786be7108"><td class="memItemLeft" align="right" valign="top">typedef void ** </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></td></tr>
-<tr class="separator:a9c248916bae1f0b13732686786be7108"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:adb42e31bb4fe0df6ec1aa3494902968d"><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>)</td></tr>
-<tr class="separator:adb42e31bb4fe0df6ec1aa3494902968d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a10de2120be61f445c5989c983c1e133b"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>, void *item)</td></tr>
-<tr class="separator:a10de2120be61f445c5989c983c1e133b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aee4e6fc5d9a6133555e7373c654b2120"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">list_add</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>, void *item)</td></tr>
-<tr class="separator:aee4e6fc5d9a6133555e7373c654b2120"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab1521a806c1775e743ddefede17673fd"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>, void *item)</td></tr>
-<tr class="separator:ab1521a806c1775e743ddefede17673fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ba6a8506e0226ab945349e25ef65d56"><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>)</td></tr>
-<tr class="separator:a5ba6a8506e0226ab945349e25ef65d56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0d4152f6de47bfefa600867056bc3355"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">list_insert</a> (<a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="el" href="structlist.html">list</a>, void *previtem, void *newitem)</td></tr>
-<tr class="separator:a0d4152f6de47bfefa600867056bc3355"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae7f0bdad2409695760ffd8de55b6a99b"><td class="memItemLeft" align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a> (void *item)</td></tr>
-<tr class="separator:ae7f0bdad2409695760ffd8de55b6a99b"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Wrappers for list structures and functions. </p>
-
-<p>Definition in file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="ad8951367826c57390a9f9892e0fc2659"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LIST_CONCAT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">s1, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">s2 </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   s1##s2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00084">84</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab5acb500a887e1957292f3dddc5c9b79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LIST_STRUCT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">name</td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">void</span> *<a class="code" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">LIST_CONCAT</a>(name, _list); <a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">\</a></div>
-<div class="line"><a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108"> list_t</a> name</div>
-<div class="ttc" id="t__list_8h_html_a9c248916bae1f0b13732686786be7108"><div class="ttname"><a href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></div><div class="ttdeci">void ** list_t</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00079">t_list.h:79</a></div></div>
-<div class="ttc" id="t__list_8h_html_ad8951367826c57390a9f9892e0fc2659"><div class="ttname"><a href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">LIST_CONCAT</a></div><div class="ttdeci">#define LIST_CONCAT(s1, s2)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00084">t_list.h:84</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00086">86</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adcb86fe4485a0f8ea79541117641f730"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LIST_STRUCT_INIT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">struct_ptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">name </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">{ \</div>
-<div class="line"> (struct_ptr)->name = &((struct_ptr)->LIST_CONCAT(name,_list)); \</div>
-<div class="line"> (struct_ptr)-><a class="code" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">LIST_CONCAT</a>(name,_list) = NULL; \</div>
-<div class="line"> }</div>
-<div class="ttc" id="t__list_8h_html_ad8951367826c57390a9f9892e0fc2659"><div class="ttname"><a href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659">LIST_CONCAT</a></div><div class="ttdeci">#define LIST_CONCAT(s1, s2)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00084">t_list.h:84</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00090">90</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a9c248916bae1f0b13732686786be7108"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef void** <a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00079">79</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aee4e6fc5d9a6133555e7373c654b2120"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void list_add </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>item</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00106">106</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="adb42e31bb4fe0df6ec1aa3494902968d"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void* list_head </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00096">96</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0d4152f6de47bfefa600867056bc3355"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void list_insert </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>previtem</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>newitem</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00127">127</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae7f0bdad2409695760ffd8de55b6a99b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void* list_item_next </td>
- <td>(</td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>item</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00137">137</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ba6a8506e0226ab945349e25ef65d56"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void* list_pop </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00117">117</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab1521a806c1775e743ddefede17673fd"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void list_push </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>item</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00112">112</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a10de2120be61f445c5989c983c1e133b"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">static void list_remove </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> </td>
- <td class="paramname"><em>list</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>item</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="t__list_8h_source.html#l00101">101</a> of file <a class="el" href="t__list_8h_source.html">t_list.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: t_list.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">t_list.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="t__list_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* t_list -- tinydtls lists</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Copyright (C) 2012 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef _DTLS_LIST_H_</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_LIST_H_</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="tinydtls_8h.html">tinydtls.h</a>"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifndef WITH_CONTIKI</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="uthash_8h.html">uthash.h</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="utlist_8h.html">utlist.h</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">/* We define list structures and utility functions to be compatible</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * with Contiki list structures. The Contiki list API is part of the</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * Contiki operating system, and therefore the following licensing</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * terms apply (taken from contiki/core/lib/list.h):</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * Copyright (c) 2004, Swedish Institute of Computer Science.</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * All rights reserved.</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * modification, are permitted provided that the following conditions</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * are met:</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * documentation and/or other materials provided with the distribution.</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> * 3. Neither the name of the Institute nor the names of its contributors</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> * may be used to endorse or promote products derived from this software</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> * without specific prior written permission.</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * SUCH DAMAGE.</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * This file is part of the Contiki operating system.</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * Author: Adam Dunkels <adam@sics.se></span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * $ Id: list.h,v 1.5 2010/09/13 13:31:00 adamdunkels Exp $</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108"> 79</a></span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> **<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structlist.html"> 80</a></span> <span class="keyword">struct </span><a class="code" href="structlist.html">list</a> {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structlist.html#a1900fe79e875e2838625b2eb60837f8f"> 81</a></span>  <span class="keyword">struct </span><a class="code" href="structlist.html">list</a> *<a class="code" href="structlist.html#a1900fe79e875e2838625b2eb60837f8f">next</a>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="t__list_8h.html#ad8951367826c57390a9f9892e0fc2659"> 84</a></span> <span class="preprocessor">#define LIST_CONCAT(s1, s2) s1##s2</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="t__list_8h.html#ab5acb500a887e1957292f3dddc5c9b79"> 86</a></span> <span class="preprocessor">#define LIST_STRUCT(name) \</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"> void *LIST_CONCAT(name, _list); \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> list_t name</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="t__list_8h.html#adcb86fe4485a0f8ea79541117641f730"> 90</a></span> <span class="preprocessor">#define LIST_STRUCT_INIT(struct_ptr, name) { \</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"> (struct_ptr)->name = &((struct_ptr)->LIST_CONCAT(name,_list)); \</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"> (struct_ptr)->LIST_CONCAT(name,_list) = NULL; \</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d"> 96</a></span> <a class="code" href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>) {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> *list;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b"> 101</a></span> <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>, <span class="keywordtype">void</span> *item) {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e">LL_DELETE</a>(*(<span class="keyword">struct</span> list **)list, (<span class="keyword">struct</span> list *)item);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120"> 106</a></span> <a class="code" href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">list_add</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>, <span class="keywordtype">void</span> *item) {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(list, item);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="utlist_8h.html#ace33c571c3df78e721a99a4494983855">LL_APPEND</a>(*(<span class="keyword">struct</span> list **)list, (<span class="keyword">struct</span> list *)item);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd"> 112</a></span> <a class="code" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>, <span class="keywordtype">void</span> *item) {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4">LL_PREPEND</a>(*(<span class="keyword">struct</span> list **)list, (<span class="keyword">struct</span> list *)item);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56"> 117</a></span> <a class="code" href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>) {</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">struct </span>list *l;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  l = *list;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span>(l)</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a>(list, l);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> l;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355"> 127</a></span> <a class="code" href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">list_insert</a>(<a class="code" href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a> <a class="code" href="structlist.html">list</a>, <span class="keywordtype">void</span> *previtem, <span class="keywordtype">void</span> *newitem) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span>(previtem == NULL) {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a>(list, newitem);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ((<span class="keyword">struct </span>list *)newitem)->next = ((<span class="keyword">struct </span>list *)previtem)->next;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  ((<span class="keyword">struct </span>list *)previtem)->next = newitem;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  } </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> *</div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b"> 137</a></span> <a class="code" href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a>(<span class="keywordtype">void</span> *item)</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> item == NULL? NULL: ((<span class="keyword">struct </span><a class="code" href="structlist.html">list</a> *)item)->next;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#else </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"></span><span class="preprocessor">#include "list.h"</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#endif </span><span class="comment">/* WITH_CONTIKI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_LIST_H_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span></div>
-<div class="ttc" id="tinydtls_8h_html"><div class="ttname"><a href="tinydtls_8h.html">tinydtls.h</a></div><div class="ttdoc">public tinydtls API </div></div>
-<div class="ttc" id="t__list_8h_html_a5ba6a8506e0226ab945349e25ef65d56"><div class="ttname"><a href="t__list_8h.html#a5ba6a8506e0226ab945349e25ef65d56">list_pop</a></div><div class="ttdeci">static void * list_pop(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00117">t_list.h:117</a></div></div>
-<div class="ttc" id="t__list_8h_html_a0d4152f6de47bfefa600867056bc3355"><div class="ttname"><a href="t__list_8h.html#a0d4152f6de47bfefa600867056bc3355">list_insert</a></div><div class="ttdeci">static void list_insert(list_t list, void *previtem, void *newitem)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00127">t_list.h:127</a></div></div>
-<div class="ttc" id="utlist_8h_html_a851fb4b583b0dc000097eeee6dd551d4"><div class="ttname"><a href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4">LL_PREPEND</a></div><div class="ttdeci">#define LL_PREPEND(head, add)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00287">utlist.h:287</a></div></div>
-<div class="ttc" id="t__list_8h_html_aee4e6fc5d9a6133555e7373c654b2120"><div class="ttname"><a href="t__list_8h.html#aee4e6fc5d9a6133555e7373c654b2120">list_add</a></div><div class="ttdeci">static void list_add(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00106">t_list.h:106</a></div></div>
-<div class="ttc" id="t__list_8h_html_ae7f0bdad2409695760ffd8de55b6a99b"><div class="ttname"><a href="t__list_8h.html#ae7f0bdad2409695760ffd8de55b6a99b">list_item_next</a></div><div class="ttdeci">static void * list_item_next(void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00137">t_list.h:137</a></div></div>
-<div class="ttc" id="t__list_8h_html_a9c248916bae1f0b13732686786be7108"><div class="ttname"><a href="t__list_8h.html#a9c248916bae1f0b13732686786be7108">list_t</a></div><div class="ttdeci">void ** list_t</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00079">t_list.h:79</a></div></div>
-<div class="ttc" id="utlist_8h_html"><div class="ttname"><a href="utlist_8h.html">utlist.h</a></div></div>
-<div class="ttc" id="utlist_8h_html_ace33c571c3df78e721a99a4494983855"><div class="ttname"><a href="utlist_8h.html#ace33c571c3df78e721a99a4494983855">LL_APPEND</a></div><div class="ttdeci">#define LL_APPEND(head, add)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00293">utlist.h:293</a></div></div>
-<div class="ttc" id="t__list_8h_html_adb42e31bb4fe0df6ec1aa3494902968d"><div class="ttname"><a href="t__list_8h.html#adb42e31bb4fe0df6ec1aa3494902968d">list_head</a></div><div class="ttdeci">static void * list_head(list_t list)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00096">t_list.h:96</a></div></div>
-<div class="ttc" id="t__list_8h_html_a10de2120be61f445c5989c983c1e133b"><div class="ttname"><a href="t__list_8h.html#a10de2120be61f445c5989c983c1e133b">list_remove</a></div><div class="ttdeci">static void list_remove(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00101">t_list.h:101</a></div></div>
-<div class="ttc" id="structlist_html"><div class="ttname"><a href="structlist.html">list</a></div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00080">t_list.h:80</a></div></div>
-<div class="ttc" id="utlist_8h_html_a34a4e54d488753465f6e87bb63b93c0e"><div class="ttname"><a href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e">LL_DELETE</a></div><div class="ttdeci">#define LL_DELETE(head, del)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00306">utlist.h:306</a></div></div>
-<div class="ttc" id="structlist_html_a1900fe79e875e2838625b2eb60837f8f"><div class="ttname"><a href="structlist.html#a1900fe79e875e2838625b2eb60837f8f">list::next</a></div><div class="ttdeci">struct list * next</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00081">t_list.h:81</a></div></div>
-<div class="ttc" id="uthash_8h_html"><div class="ttname"><a href="uthash_8h.html">uthash.h</a></div></div>
-<div class="ttc" id="t__list_8h_html_ab1521a806c1775e743ddefede17673fd"><div class="ttname"><a href="t__list_8h.html#ab1521a806c1775e743ddefede17673fd">list_push</a></div><div class="ttdeci">static void list_push(list_t list, void *item)</div><div class="ttdef"><b>Definition:</b> <a href="t__list_8h_source.html#l00112">t_list.h:112</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-.tabs, .tabs2, .tabs3 {
- background-image: url('tab_b.png');
- width: 100%;
- z-index: 101;
- font-size: 13px;
- font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-}
-
-.tabs2 {
- font-size: 10px;
-}
-.tabs3 {
- font-size: 9px;
-}
-
-.tablist {
- margin: 0;
- padding: 0;
- display: table;
-}
-
-.tablist li {
- float: left;
- display: table-cell;
- background-image: url('tab_b.png');
- line-height: 36px;
- list-style: none;
-}
-
-.tablist a {
- display: block;
- padding: 0 20px;
- font-weight: bold;
- background-image:url('tab_s.png');
- background-repeat:no-repeat;
- background-position:right;
- color: #283A5D;
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
- text-decoration: none;
- outline: none;
-}
-
-.tabs3 .tablist a {
- padding: 0 10px;
-}
-
-.tablist a:hover {
- background-image: url('tab_h.png');
- background-repeat:repeat-x;
- color: #fff;
- text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
- text-decoration: none;
-}
-
-.tablist li.current a {
- background-image: url('tab_a.png');
- background-repeat:repeat-x;
- color: #fff;
- text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: tinydtls.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle">
-<div class="title">tinydtls.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p>public tinydtls API
-<a href="#details">More...</a></p>
-
-<p><a href="tinydtls_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a1b77fedd334a66611747922038c930d6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="tinydtls_8h.html#a1b77fedd334a66611747922038c930d6">DTLS_ECC</a>   1</td></tr>
-<tr class="separator:a1b77fedd334a66611747922038c930d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ce72e9d11801559b799b999f50c49cf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf">DTLS_PSK</a>   1</td></tr>
-<tr class="separator:a5ce72e9d11801559b799b999f50c49cf"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>public tinydtls API </p>
-
-<p>Definition in file <a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>.</p>
-</div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a1b77fedd334a66611747922038c930d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_ECC   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Defined to 1 if tinydtls is built with support for ECC </p>
-
-<p>Definition at line <a class="el" href="tinydtls_8h_source.html#l00037">37</a> of file <a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a5ce72e9d11801559b799b999f50c49cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DTLS_PSK   1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p>Defined to 1 if tinydtls is built with support for PSK </p>
-
-<p>Definition at line <a class="el" href="tinydtls_8h_source.html#l00040">40</a> of file <a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: tinydtls.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">tinydtls.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="tinydtls_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* tinydtls.h. Generated from tinydtls.h.in by configure. */</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/* tinydtls -- a very basic DTLS implementation</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2011--2014 Olaf Bergmann <bergmann@tzi.org></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de></span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Permission is hereby granted, free of charge, to any person</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * obtaining a copy of this software and associated documentation</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * files (the "Software"), to deal in the Software without</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * restriction, including without limitation the rights to use, copy,</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * modify, merge, publish, distribute, sublicense, and/or sell copies</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * of the Software, and to permit persons to whom the Software is</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * The above copyright notice and this permission notice shall be</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * included in all copies or substantial portions of the Software.</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * SOFTWARE.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#ifndef _DTLS_TINYDTLS_H_</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_TINYDTLS_H_</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="tinydtls_8h.html#a1b77fedd334a66611747922038c930d6"> 37</a></span> <span class="preprocessor">#define DTLS_ECC 1</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="tinydtls_8h.html#a5ce72e9d11801559b799b999f50c49cf"> 40</a></span> <span class="preprocessor">#define DTLS_PSK 1</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/* #undef WITH_CONTIKI */</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_TINYDTLS_H_ */</span><span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: uthash.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Data Structures</a> |
-<a href="#define-members">Macros</a> |
-<a href="#typedef-members">Typedefs</a> </div>
- <div class="headertitle">
-<div class="title">uthash.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <string.h></code><br/>
-<code>#include <stddef.h></code><br/>
-<code>#include <inttypes.h></code><br/>
-</div>
-<p><a href="uthash_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Data Structures</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html">UT_hash_table</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html">UT_hash_handle</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a716ba290563c2d955cb0c90d85874073"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(x)   (__typeof(x))</td></tr>
-<tr class="separator:a716ba290563c2d955cb0c90d85874073"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3c736f2f2dd643f2987b2bc323e269ba"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(dst, src)</td></tr>
-<tr class="separator:a3c736f2f2dd643f2987b2bc323e269ba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa56cef9cb86dc1f4b5d27ee3a691077e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e">UTHASH_VERSION</a>   1.9.3</td></tr>
-<tr class="separator:aa56cef9cb86dc1f4b5d27ee3a691077e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a03b52301b0ed976b6981ef33613320c1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>(msg)   exit(-1) /* fatal error (out of memory,etc) */</td></tr>
-<tr class="separator:a03b52301b0ed976b6981ef33613320c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a861013aff36c0448f1888a2b0b5836d8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>(sz)   malloc(sz) /* malloc fcn */</td></tr>
-<tr class="separator:a861013aff36c0448f1888a2b0b5836d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a56cdf8c254fc700332c8e6a7263b4657"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash_free</a>(ptr, sz)   free(ptr) /* free fcn */</td></tr>
-<tr class="separator:a56cdf8c254fc700332c8e6a7263b4657"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7cc237d8f87de3836b5390856cfc5c86"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86">uthash_noexpand_fyi</a>(tbl)   /* can be defined to log noexpand */</td></tr>
-<tr class="separator:a7cc237d8f87de3836b5390856cfc5c86"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a86ea78714da520989a6f7a764b4d71b4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4">uthash_expand_fyi</a>(tbl)   /* can be defined to log expands */</td></tr>
-<tr class="separator:a86ea78714da520989a6f7a764b4d71b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a361cdc5e8d6d8fe5fae6912588ae15d0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>   32 /* initial number of buckets */</td></tr>
-<tr class="separator:a361cdc5e8d6d8fe5fae6912588ae15d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0b39a5cf1d6c05c43bd8530db2ec908c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">HASH_INITIAL_NUM_BUCKETS_LOG2</a>   5 /* lg2 of initial number of buckets */</td></tr>
-<tr class="separator:a0b39a5cf1d6c05c43bd8530db2ec908c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8ae3e6473261f6c4b78c030c94f5d68f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">HASH_BKT_CAPACITY_THRESH</a>   10 /* expand when bucket count reaches */</td></tr>
-<tr class="separator:a8ae3e6473261f6c4b78c030c94f5d68f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a568e95048979b8b3e4ea1567fd91c186"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(tbl, hhp)   ((void*)(((char*)(hhp)) - ((tbl)->hho)))</td></tr>
-<tr class="separator:a568e95048979b8b3e4ea1567fd91c186"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad4a1cd39c3044936c0e49d3f372c9dbf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh, head, keyptr, keylen, out)</td></tr>
-<tr class="separator:ad4a1cd39c3044936c0e49d3f372c9dbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a254f427772a1fe7a2480a8302af8f8b8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">HASH_BLOOM_MAKE</a>(tbl)</td></tr>
-<tr class="separator:a254f427772a1fe7a2480a8302af8f8b8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad6847ad938fc26bfd0726d7f159efd0a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a">HASH_BLOOM_FREE</a>(tbl)</td></tr>
-<tr class="separator:ad6847ad938fc26bfd0726d7f159efd0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acaad947212056cd8bfe3d660265fb2db"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">HASH_BLOOM_ADD</a>(tbl, hashv)</td></tr>
-<tr class="separator:acaad947212056cd8bfe3d660265fb2db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a06bfbf880899d54da35487d0d39c1009"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">HASH_BLOOM_TEST</a>(tbl, hashv)   (1)</td></tr>
-<tr class="separator:a06bfbf880899d54da35487d0d39c1009"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aeba971430f623b6334f565d9c7ec9de5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">HASH_MAKE_TABLE</a>(hh, head)</td></tr>
-<tr class="separator:aeba971430f623b6334f565d9c7ec9de5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aaf01358e257c8d838eb5e4b189f0c399"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh, head, fieldname, keylen_in, add)   <a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">HASH_ADD_KEYPTR</a>(hh,head,&add->fieldname,keylen_in,add)</td></tr>
-<tr class="separator:aaf01358e257c8d838eb5e4b189f0c399"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0b7468360b5c788762cdb2ccf9cd4d26"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">HASH_ADD_KEYPTR</a>(hh, head, keyptr, keylen_in, add)</td></tr>
-<tr class="separator:a0b7468360b5c788762cdb2ccf9cd4d26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4d7691544128a6ef265f3e4fa5ed3113"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113">HASH_TO_BKT</a>(hashv, num_bkts, bkt)</td></tr>
-<tr class="separator:a4d7691544128a6ef265f3e4fa5ed3113"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3f83117e1108d63844a58d2d79c3b980"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh, head, delptr)</td></tr>
-<tr class="separator:a3f83117e1108d63844a58d2d79c3b980"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a214529083adfab2fa8cd402d2eeb0a84"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84">HASH_FIND_STR</a>(head, findstr, out)   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findstr,strlen(findstr),out)</td></tr>
-<tr class="separator:a214529083adfab2fa8cd402d2eeb0a84"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9724951736f3985f74df17638c8a7885"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a9724951736f3985f74df17638c8a7885">HASH_ADD_STR</a>(head, strfield, add)   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,strfield,strlen(add->strfield),add)</td></tr>
-<tr class="separator:a9724951736f3985f74df17638c8a7885"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aadcb19b940348f3141bd51505ede0142"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aadcb19b940348f3141bd51505ede0142">HASH_FIND_INT</a>(head, findint, out)   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findint,sizeof(int),out)</td></tr>
-<tr class="separator:aadcb19b940348f3141bd51505ede0142"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acf85835471af894e354efb7e346698f3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#acf85835471af894e354efb7e346698f3">HASH_ADD_INT</a>(head, intfield, add)   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,intfield,sizeof(int),add)</td></tr>
-<tr class="separator:acf85835471af894e354efb7e346698f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a26a887f8e31952034becac0cf446f6c3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a26a887f8e31952034becac0cf446f6c3">HASH_FIND_PTR</a>(head, findptr, out)   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findptr,sizeof(void *),out)</td></tr>
-<tr class="separator:a26a887f8e31952034becac0cf446f6c3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2ad1f84ef1ba9df99fa2ada38cb61823"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823">HASH_ADD_PTR</a>(head, ptrfield, add)   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,ptrfield,sizeof(void *),add)</td></tr>
-<tr class="separator:a2ad1f84ef1ba9df99fa2ada38cb61823"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a48b7ed374602dcb236501aa23a971f05"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a48b7ed374602dcb236501aa23a971f05">HASH_DEL</a>(head, delptr)   <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td></tr>
-<tr class="separator:a48b7ed374602dcb236501aa23a971f05"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7d882fadb26a4e6c13c134d8be4d0759"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">HASH_FSCK</a>(hh, head)</td></tr>
-<tr class="separator:a7d882fadb26a4e6c13c134d8be4d0759"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a44f9d46e2cc79652492e5dd3e6c40a15"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">HASH_EMIT_KEY</a>(hh, head, keyptr, fieldlen)</td></tr>
-<tr class="separator:a44f9d46e2cc79652492e5dd3e6c40a15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abd3356419b386c379116393700a751d3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a>   <a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">HASH_JEN</a></td></tr>
-<tr class="separator:abd3356419b386c379116393700a751d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7271bf51d7fe2cf2c183578aee73601e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e">HASH_BER</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:a7271bf51d7fe2cf2c183578aee73601e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa4cb140b45415e7bf57237525388af79"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa4cb140b45415e7bf57237525388af79">HASH_SAX</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:aa4cb140b45415e7bf57237525388af79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac99f9a353421537527a80b392089dd9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ac99f9a353421537527a80b392089dd9d">HASH_FNV</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:ac99f9a353421537527a80b392089dd9d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abc7040b698211c1993441fb4165fa0b4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abc7040b698211c1993441fb4165fa0b4">HASH_OAT</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:abc7040b698211c1993441fb4165fa0b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6d37144e54d2bd49eb88fbfd04c59dc5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5">HASH_JEN_MIX</a>(a, b, c)</td></tr>
-<tr class="separator:a6d37144e54d2bd49eb88fbfd04c59dc5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa16e3ae6125d7f10d3deb4695e0ee51e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">HASH_JEN</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:aa16e3ae6125d7f10d3deb4695e0ee51e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abc7d71657be8975a51684e41029b7964"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abc7d71657be8975a51684e41029b7964">get16bits</a>(d)</td></tr>
-<tr class="separator:abc7d71657be8975a51684e41029b7964"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab595698a74642684dace0dfa47dab445"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ab595698a74642684dace0dfa47dab445">HASH_SFH</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
-<tr class="separator:ab595698a74642684dace0dfa47dab445"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a35c9b682ebb7a8cbf284b9f0a9594095"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">HASH_KEYCMP</a>(a, b, len)   memcmp(a,b,len)</td></tr>
-<tr class="separator:a35c9b682ebb7a8cbf284b9f0a9594095"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a42ae87cc63106a82601808f19329502c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">HASH_FIND_IN_BKT</a>(tbl, hh, head, keyptr, keylen_in, out)</td></tr>
-<tr class="separator:a42ae87cc63106a82601808f19329502c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a78e11adee321f45c5cb31ff2d6eb0348"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">HASH_ADD_TO_BKT</a>(head, addhh)</td></tr>
-<tr class="separator:a78e11adee321f45c5cb31ff2d6eb0348"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1b2d6f694f98cf6350cdd18225cb3f78"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78">HASH_DEL_IN_BKT</a>(hh, head, hh_del)</td></tr>
-<tr class="separator:a1b2d6f694f98cf6350cdd18225cb3f78"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6439fd6271474e61b1840fbf83132f03"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">HASH_EXPAND_BUCKETS</a>(tbl)</td></tr>
-<tr class="separator:a6439fd6271474e61b1840fbf83132f03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a88d2ab40956878caacd02c214f7e8f15"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15">HASH_SORT</a>(head, cmpfcn)   <a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">HASH_SRT</a>(hh,head,cmpfcn)</td></tr>
-<tr class="separator:a88d2ab40956878caacd02c214f7e8f15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a388b4071dcff005154f431d3d3025fbd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">HASH_SRT</a>(hh, head, cmpfcn)</td></tr>
-<tr class="separator:a388b4071dcff005154f431d3d3025fbd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad190366f7a476ece79bd628240a5fc93"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad190366f7a476ece79bd628240a5fc93">HASH_SELECT</a>(hh_dst, dst, hh_src, src, cond)</td></tr>
-<tr class="separator:ad190366f7a476ece79bd628240a5fc93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0512b3f7a824275579ec82643ef2cc23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23">HASH_CLEAR</a>(hh, head)</td></tr>
-<tr class="separator:a0512b3f7a824275579ec82643ef2cc23"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4d524042f1fcb976d8bccae9e4cc63d6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">HASH_ITER</a>(hh, head, el, tmp)</td></tr>
-<tr class="separator:a4d524042f1fcb976d8bccae9e4cc63d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7d3edf55a3ee4da1a0e1b477c314342f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f">HASH_COUNT</a>(head)   <a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">HASH_CNT</a>(hh,head)</td></tr>
-<tr class="separator:a7d3edf55a3ee4da1a0e1b477c314342f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6ea9e661cd8c35eff1fdcd5731127edd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">HASH_CNT</a>(hh, head)   ((head)?((head)->hh.tbl->num_items):0)</td></tr>
-<tr class="separator:a6ea9e661cd8c35eff1fdcd5731127edd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4a7a46b9b92a9c73e4f9321e8e6b6bb2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">HASH_SIGNATURE</a>   0xa0111fe1</td></tr>
-<tr class="separator:a4a7a46b9b92a9c73e4f9321e8e6b6bb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a18a33f4269f05c1e81ce54edbc0ffca6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6">HASH_BLOOM_SIGNATURE</a>   0xb12220f2</td></tr>
-<tr class="separator:a18a33f4269f05c1e81ce54edbc0ffca6"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a3ba3da0ca59a082c35a0d6b52e803ddf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">UT_hash_bucket</a></td></tr>
-<tr class="separator:a3ba3da0ca59a082c35a0d6b52e803ddf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0758074b9942c2ad076610b3e0ce548e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">UT_hash_table</a></td></tr>
-<tr class="separator:a0758074b9942c2ad076610b3e0ce548e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0e3a99ed9f776349720d0c362f956fb6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">UT_hash_handle</a></td></tr>
-<tr class="separator:a0e3a99ed9f776349720d0c362f956fb6"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a716ba290563c2d955cb0c90d85874073"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DECLTYPE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">x</td><td>)</td>
- <td>   (__typeof(x))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00042">42</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3c736f2f2dd643f2987b2bc323e269ba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DECLTYPE_ASSIGN</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">dst, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">src </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> (dst) = <a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(dst)(src); \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="uthash_8h_html_a716ba290563c2d955cb0c90d85874073"><div class="ttname"><a href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a></div><div class="ttdeci">#define DECLTYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00042">uthash.h:42</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00052">52</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a568e95048979b8b3e4ea1567fd91c186"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define ELMT_FROM_HH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hhp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((void*)(((char*)(hhp)) - ((tbl)->hho)))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00080">80</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abc7d71657be8975a51684e41029b7964"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define get16bits</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">d</td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">((((uint32_t)(((<span class="keyword">const</span> uint8_t *)(d))[1])) << 8) \</div>
-<div class="line"> +(uint32_t)(((<span class="keyword">const</span> uint8_t *)(d))[0]) )</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00436">436</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aaf01358e257c8d838eb5e4b189f0c399"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">fieldname, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen_in, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">HASH_ADD_KEYPTR</a>(hh,head,&add->fieldname,keylen_in,add)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00147">147</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acf85835471af894e354efb7e346698f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_INT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">intfield, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,intfield,sizeof(int),add)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00235">235</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0b7468360b5c788762cdb2ccf9cd4d26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_KEYPTR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keyptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen_in, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _ha_bkt; \</div>
-<div class="line"> (add)->hh.next = NULL; \</div>
-<div class="line"> (add)->hh.key = (<span class="keywordtype">char</span>*)keyptr; \</div>
-<div class="line"> (add)->hh.keylen = keylen_in; \</div>
-<div class="line"> if (!(head)) { \</div>
-<div class="line"> head = (add); \</div>
-<div class="line"> (head)->hh.prev = NULL; \</div>
-<div class="line"> <a class="code" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">HASH_MAKE_TABLE</a>(hh,head); \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (head)->hh.tbl->tail->next = (add); \</div>
-<div class="line"> (add)->hh.prev = <a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>((head)->hh.tbl, (head)->hh.tbl->tail); \</div>
-<div class="line"> (head)->hh.tbl->tail = &((add)->hh); \</div>
-<div class="line"> } \</div>
-<div class="line"> (head)->hh.tbl->num_items++; \</div>
-<div class="line"> (add)->hh.tbl = (head)->hh.tbl; \</div>
-<div class="line"> <a class="code" href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a>(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \</div>
-<div class="line"> (add)->hh.hashv, _ha_bkt); <a class="code" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348"> HASH_ADD_TO_BKT</a>((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); <a class="code" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db"> HASH_BLOOM_ADD</a>((head)->hh.tbl,(add)->hh.hashv); <a class="code" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15"> HASH_EMIT_KEY</a>(hh,head,keyptr,keylen_in); <a class="code" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759"> HASH_FSCK</a>(hh,head); \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="uthash_8h_html_a7d882fadb26a4e6c13c134d8be4d0759"><div class="ttname"><a href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">HASH_FSCK</a></div><div class="ttdeci">#define HASH_FSCK(hh, head)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00301">uthash.h:301</a></div></div>
-<div class="ttc" id="uthash_8h_html_abd3356419b386c379116393700a751d3"><div class="ttname"><a href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a></div><div class="ttdeci">#define HASH_FCN</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00322">uthash.h:322</a></div></div>
-<div class="ttc" id="uthash_8h_html_acaad947212056cd8bfe3d660265fb2db"><div class="ttname"><a href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">HASH_BLOOM_ADD</a></div><div class="ttdeci">#define HASH_BLOOM_ADD(tbl, hashv)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00124">uthash.h:124</a></div></div>
-<div class="ttc" id="uthash_8h_html_aeba971430f623b6334f565d9c7ec9de5"><div class="ttname"><a href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">HASH_MAKE_TABLE</a></div><div class="ttdeci">#define HASH_MAKE_TABLE(hh, head)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00128">uthash.h:128</a></div></div>
-<div class="ttc" id="uthash_8h_html_a78e11adee321f45c5cb31ff2d6eb0348"><div class="ttname"><a href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">HASH_ADD_TO_BKT</a></div><div class="ttdeci">#define HASH_ADD_TO_BKT(head, addhh)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00650">uthash.h:650</a></div></div>
-<div class="ttc" id="uthash_8h_html_a568e95048979b8b3e4ea1567fd91c186"><div class="ttname"><a href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a></div><div class="ttdeci">#define ELMT_FROM_HH(tbl, hhp)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00080">uthash.h:80</a></div></div>
-<div class="ttc" id="uthash_8h_html_a44f9d46e2cc79652492e5dd3e6c40a15"><div class="ttname"><a href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">HASH_EMIT_KEY</a></div><div class="ttdeci">#define HASH_EMIT_KEY(hh, head, keyptr, fieldlen)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00315">uthash.h:315</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00150">150</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a2ad1f84ef1ba9df99fa2ada38cb61823"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_PTR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">ptrfield, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,ptrfield,sizeof(void *),add)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00239">239</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9724951736f3985f74df17638c8a7885"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_STR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">strfield, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,strfield,strlen(add->strfield),add)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00231">231</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a78e11adee321f45c5cb31ff2d6eb0348"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ADD_TO_BKT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">addhh </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> head.count++; \</div>
-<div class="line"> (addhh)-><a class="code" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a> = head.hh_head; \</div>
-<div class="line"> (addhh)-><a class="code" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a> = NULL; \</div>
-<div class="line"> if (head.hh_head) { (head).hh_head-><a class="code" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a> = (addhh); } \</div>
-<div class="line"> (head).hh_head=addhh; \</div>
-<div class="line"> if (head.count >= ((head.expand_mult+1) * <a class="code" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">HASH_BKT_CAPACITY_THRESH</a>) \</div>
-<div class="line"> && (addhh)->tbl->noexpand != 1) { <a class="code" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03"> HASH_EXPAND_BUCKETS</a>((addhh)-><a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>); \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="uthash_8h_html_a6439fd6271474e61b1840fbf83132f03"><div class="ttname"><a href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">HASH_EXPAND_BUCKETS</a></div><div class="ttdeci">#define HASH_EXPAND_BUCKETS(tbl)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00705">uthash.h:705</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a4f6989385499ba6f594b0f0facd28325"><div class="ttname"><a href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">UT_hash_handle::hh_next</a></div><div class="ttdeci">struct UT_hash_handle * hh_next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00966">uthash.h:966</a></div></div>
-<div class="ttc" id="uthash_8h_html_a8ae3e6473261f6c4b78c030c94f5d68f"><div class="ttname"><a href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">HASH_BKT_CAPACITY_THRESH</a></div><div class="ttdeci">#define HASH_BKT_CAPACITY_THRESH</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00077">uthash.h:77</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_ad2035ee3b2aa55b22e352341372a5e73"><div class="ttname"><a href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">UT_hash_handle::tbl</a></div><div class="ttdeci">struct UT_hash_table * tbl</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00962">uthash.h:962</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a3ec03e34d7975d5c1981c44b324619b2"><div class="ttname"><a href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">UT_hash_handle::hh_prev</a></div><div class="ttdeci">struct UT_hash_handle * hh_prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00965">uthash.h:965</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00650">650</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7271bf51d7fe2cf2c183578aee73601e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _hb_keylen=<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; \</div>
-<div class="line"> char *_hb_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>); \</div>
-<div class="line"> (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) = 0; \</div>
-<div class="line"> while (_hb_keylen--) { (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) = ((<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) * 33) + *_hb_key++; } \</div>
-<div class="line"> bkt = (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) & (num_bkts-1); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a40690fc15aeaeba8f25385f05f84dd4d"><div class="ttname"><a href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle::key</a></div><div class="ttdeci">void * key</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00967">uthash.h:967</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00326">326</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8ae3e6473261f6c4b78c030c94f5d68f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BKT_CAPACITY_THRESH   10 /* expand when bucket count reaches */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00077">77</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="acaad947212056cd8bfe3d660265fb2db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BLOOM_ADD</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00124">124</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad6847ad938fc26bfd0726d7f159efd0a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BLOOM_FREE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl</td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00123">123</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a254f427772a1fe7a2480a8302af8f8b8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BLOOM_MAKE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl</td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00122">122</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a18a33f4269f05c1e81ce54edbc0ffca6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BLOOM_SIGNATURE   0xb12220f2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00926">926</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a06bfbf880899d54da35487d0d39c1009"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_BLOOM_TEST</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (1)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00125">125</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0512b3f7a824275579ec82643ef2cc23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_CLEAR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if (head) { <a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657"> uthash_free</a>((head)->hh.tbl->buckets, \</div>
-<div class="line"> (head)->hh.tbl->num_buckets*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>)); <a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657"> uthash_free</a>((head)->hh.tbl, <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>)); \</div>
-<div class="line"> (head)=NULL; \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="uthash_8h_html_a56cdf8c254fc700332c8e6a7263b4657"><div class="ttname"><a href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash_free</a></div><div class="ttdeci">#define uthash_free(ptr, sz)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00069">uthash.h:69</a></div></div>
-<div class="ttc" id="structUT__hash__table_html"><div class="ttname"><a href="structUT__hash__table.html">UT_hash_table</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00928">uthash.h:928</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html"><div class="ttname"><a href="structUT__hash__bucket.html">UT_hash_bucket</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00904">uthash.h:904</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00880">880</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6ea9e661cd8c35eff1fdcd5731127edd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_CNT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((head)?((head)->hh.tbl->num_items):0)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00902">902</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7d3edf55a3ee4da1a0e1b477c314342f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_COUNT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head</td><td>)</td>
- <td>   <a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">HASH_CNT</a>(hh,head)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00901">901</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a48b7ed374602dcb236501aa23a971f05"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_DEL</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">delptr </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00241">241</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1b2d6f694f98cf6350cdd18225cb3f78"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_DEL_IN_BKT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hh_del </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line">(head).count--; \</div>
-<div class="line"> if ((head).hh_head == hh_del) { \</div>
-<div class="line"> (head).hh_head = hh_del->hh_next; \</div>
-<div class="line"> } \</div>
-<div class="line"> if (hh_del->hh_prev) { \</div>
-<div class="line"> hh_del->hh_prev->hh_next = hh_del->hh_next; \</div>
-<div class="line"> } \</div>
-<div class="line"> if (hh_del->hh_next) { \</div>
-<div class="line"> hh_del->hh_next->hh_prev = hh_del->hh_prev; \</div>
-<div class="line"> }</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00664">664</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3f83117e1108d63844a58d2d79c3b980"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_DELETE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">delptr </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00192">192</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a44f9d46e2cc79652492e5dd3e6c40a15"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_EMIT_KEY</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keyptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">fieldlen </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00315">315</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6439fd6271474e61b1840fbf83132f03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_EXPAND_BUCKETS</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl</td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00705">705</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abd3356419b386c379116393700a751d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FCN   <a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">HASH_JEN</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00322">322</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad4a1cd39c3044936c0e49d3f372c9dbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keyptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _hf_bkt,_hf_hashv; \</div>
-<div class="line"> out=NULL; \</div>
-<div class="line"> if (head) { <a class="code" href="uthash_8h.html#abd3356419b386c379116393700a751d3">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#abd3356419b386c379116393700a751d3"> HASH_FCN</a>(keyptr,<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \</div>
-<div class="line"> if (<a class="code" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">HASH_BLOOM_TEST</a>((head)->hh.tbl, _hf_hashv)) { <a class="code" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c"> HASH_FIND_IN_BKT</a>((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \</div>
-<div class="line"> keyptr,<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>,out); \</div>
-<div class="line"> } \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="uthash_8h_html_abd3356419b386c379116393700a751d3"><div class="ttname"><a href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a></div><div class="ttdeci">#define HASH_FCN</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00322">uthash.h:322</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="uthash_8h_html_a06bfbf880899d54da35487d0d39c1009"><div class="ttname"><a href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">HASH_BLOOM_TEST</a></div><div class="ttdeci">#define HASH_BLOOM_TEST(tbl, hashv)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00125">uthash.h:125</a></div></div>
-<div class="ttc" id="uthash_8h_html_a42ae87cc63106a82601808f19329502c"><div class="ttname"><a href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">HASH_FIND_IN_BKT</a></div><div class="ttdeci">#define HASH_FIND_IN_BKT(tbl, hh, head, keyptr, keylen_in, out)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00636">uthash.h:636</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00082">82</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a42ae87cc63106a82601808f19329502c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND_IN_BKT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keyptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen_in, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if (head.hh_head) <a class="code" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(out,<a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(<a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>,head.hh_head)); \</div>
-<div class="line"> else out=NULL; \</div>
-<div class="line"> while (out) { \</div>
-<div class="line"> if (out->hh.keylen == keylen_in) { \</div>
-<div class="line"> if ((<a class="code" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">HASH_KEYCMP</a>(out->hh.key,keyptr,keylen_in)) == 0) break; \</div>
-<div class="line"> } \</div>
-<div class="line"> if (out->hh.<a class="code" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a>) <a class="code" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(out,<a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(tbl,out->hh.<a class="code" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a>)); \</div>
-<div class="line"> else out = NULL; \</div>
-<div class="line"> } \</div>
-<div class="line">} while(0)</div>
-<div class="ttc" id="structUT__hash__handle_html_a4f6989385499ba6f594b0f0facd28325"><div class="ttname"><a href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">UT_hash_handle::hh_next</a></div><div class="ttdeci">struct UT_hash_handle * hh_next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00966">uthash.h:966</a></div></div>
-<div class="ttc" id="uthash_8h_html_a3c736f2f2dd643f2987b2bc323e269ba"><div class="ttname"><a href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a></div><div class="ttdeci">#define DECLTYPE_ASSIGN(dst, src)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00052">uthash.h:52</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_ad2035ee3b2aa55b22e352341372a5e73"><div class="ttname"><a href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">UT_hash_handle::tbl</a></div><div class="ttdeci">struct UT_hash_table * tbl</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00962">uthash.h:962</a></div></div>
-<div class="ttc" id="uthash_8h_html_a35c9b682ebb7a8cbf284b9f0a9594095"><div class="ttname"><a href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">HASH_KEYCMP</a></div><div class="ttdeci">#define HASH_KEYCMP(a, b, len)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00633">uthash.h:633</a></div></div>
-<div class="ttc" id="uthash_8h_html_a568e95048979b8b3e4ea1567fd91c186"><div class="ttname"><a href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a></div><div class="ttdeci">#define ELMT_FROM_HH(tbl, hhp)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00080">uthash.h:80</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00636">636</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aadcb19b940348f3141bd51505ede0142"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND_INT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">findint, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findint,sizeof(int),out)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00233">233</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a26a887f8e31952034becac0cf446f6c3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND_PTR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">findptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findptr,sizeof(void *),out)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00237">237</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a214529083adfab2fa8cd402d2eeb0a84"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FIND_STR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">findstr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,findstr,strlen(findstr),out)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00229">229</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac99f9a353421537527a80b392089dd9d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FNV</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _fn_i; \</div>
-<div class="line"> char *_hf_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> = 2166136261UL; \</div>
-<div class="line"> for(_fn_i=0; _fn_i < <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _fn_i++) \</div>
-<div class="line"> <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> = (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> * 16777619) ^ _hf_key[_fn_i]; \</div>
-<div class="line"> bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> & (num_bkts-1); \</div>
-<div class="line">} <span class="keywordflow">while</span>(0);</div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a40690fc15aeaeba8f25385f05f84dd4d"><div class="ttname"><a href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle::key</a></div><div class="ttdeci">void * key</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00967">uthash.h:967</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00348">348</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7d882fadb26a4e6c13c134d8be4d0759"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_FSCK</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00301">301</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a361cdc5e8d6d8fe5fae6912588ae15d0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_INITIAL_NUM_BUCKETS   32 /* initial number of buckets */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00075">75</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0b39a5cf1d6c05c43bd8530db2ec908c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_INITIAL_NUM_BUCKETS_LOG2   5 /* lg2 of initial number of buckets */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00076">76</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4d524042f1fcb976d8bccae9e4cc63d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_ITER</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">for</span>((el)=(head),(tmp)=<a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(el)((head)?(head)->hh.next:NULL); \</div>
-<div class="line"> el; (el)=(tmp),(tmp)=<a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(el)((tmp)?(tmp)->hh.next:NULL))</div>
-<div class="ttc" id="uthash_8h_html_a716ba290563c2d955cb0c90d85874073"><div class="ttname"><a href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a></div><div class="ttdeci">#define DECLTYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00042">uthash.h:42</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00895">895</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa16e3ae6125d7f10d3deb4695e0ee51e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_JEN</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00387">387</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6d37144e54d2bd49eb88fbfd04c59dc5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_JEN_MIX</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">a, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">b, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">c </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> a -= b; a -= c; a ^= ( c >> 13 ); \</div>
-<div class="line"> b -= c; b -= a; b ^= ( a << 8 ); \</div>
-<div class="line"> c -= a; c -= b; c ^= ( b >> 13 ); \</div>
-<div class="line"> a -= b; a -= c; a ^= ( c >> 12 ); \</div>
-<div class="line"> b -= c; b -= a; b ^= ( a << 16 ); \</div>
-<div class="line"> c -= a; c -= b; c ^= ( b >> 5 ); \</div>
-<div class="line"> a -= b; a -= c; a ^= ( c >> 3 ); \</div>
-<div class="line"> b -= c; b -= a; b ^= ( a << 10 ); \</div>
-<div class="line"> c -= a; c -= b; c ^= ( b >> 15 ); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00374">374</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a35c9b682ebb7a8cbf284b9f0a9594095"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_KEYCMP</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">a, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">b, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">len </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   memcmp(a,b,len)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00633">633</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aeba971430f623b6334f565d9c7ec9de5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_MAKE_TABLE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> (head)->hh.tbl = (<a class="code" href="structUT__hash__table.html">UT_hash_table</a>*)<a class="code" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>( \</div>
-<div class="line"> <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>)); \</div>
-<div class="line"> if (!((head)->hh.tbl)) { <a class="code" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>( <span class="stringliteral">"out of memory"</span>); } \</div>
-<div class="line"> memset((head)->hh.tbl, 0, <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>)); \</div>
-<div class="line"> (head)->hh.tbl->tail = &((head)->hh); \</div>
-<div class="line"> (head)->hh.tbl->num_buckets = <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>; \</div>
-<div class="line"> (head)->hh.tbl->log2_num_buckets = <a class="code" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">HASH_INITIAL_NUM_BUCKETS_LOG2</a>; \</div>
-<div class="line"> (head)->hh.tbl->hho = (<span class="keywordtype">char</span>*)(&(head)->hh) - (<span class="keywordtype">char</span>*)(head); \</div>
-<div class="line"> (head)->hh.tbl->buckets = (<a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>*)<a class="code" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>( \</div>
-<div class="line"> <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>)); \</div>
-<div class="line"> if (! (head)->hh.tbl->buckets) { <a class="code" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>( <span class="stringliteral">"out of memory"</span>); } \</div>
-<div class="line"> memset((head)->hh.tbl->buckets, 0, \</div>
-<div class="line"> <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>)); <a class="code" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">\</a></div>
-<div class="line"><a class="code" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8"> HASH_BLOOM_MAKE</a>((head)->hh.tbl); \</div>
-<div class="line"> (head)->hh.tbl->signature = <a class="code" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">HASH_SIGNATURE</a>; \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="uthash_8h_html_a361cdc5e8d6d8fe5fae6912588ae15d0"><div class="ttname"><a href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a></div><div class="ttdeci">#define HASH_INITIAL_NUM_BUCKETS</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00075">uthash.h:75</a></div></div>
-<div class="ttc" id="uthash_8h_html_a4a7a46b9b92a9c73e4f9321e8e6b6bb2"><div class="ttname"><a href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">HASH_SIGNATURE</a></div><div class="ttdeci">#define HASH_SIGNATURE</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00925">uthash.h:925</a></div></div>
-<div class="ttc" id="uthash_8h_html_a0b39a5cf1d6c05c43bd8530db2ec908c"><div class="ttname"><a href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">HASH_INITIAL_NUM_BUCKETS_LOG2</a></div><div class="ttdeci">#define HASH_INITIAL_NUM_BUCKETS_LOG2</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00076">uthash.h:76</a></div></div>
-<div class="ttc" id="uthash_8h_html_a861013aff36c0448f1888a2b0b5836d8"><div class="ttname"><a href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a></div><div class="ttdeci">#define uthash_malloc(sz)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00068">uthash.h:68</a></div></div>
-<div class="ttc" id="uthash_8h_html_a254f427772a1fe7a2480a8302af8f8b8"><div class="ttname"><a href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">HASH_BLOOM_MAKE</a></div><div class="ttdeci">#define HASH_BLOOM_MAKE(tbl)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00122">uthash.h:122</a></div></div>
-<div class="ttc" id="structUT__hash__table_html"><div class="ttname"><a href="structUT__hash__table.html">UT_hash_table</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00928">uthash.h:928</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html"><div class="ttname"><a href="structUT__hash__bucket.html">UT_hash_bucket</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00904">uthash.h:904</a></div></div>
-<div class="ttc" id="uthash_8h_html_a03b52301b0ed976b6981ef33613320c1"><div class="ttname"><a href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a></div><div class="ttdeci">#define uthash_fatal(msg)</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00067">uthash.h:67</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00128">128</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abc7040b698211c1993441fb4165fa0b4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_OAT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _ho_i; \</div>
-<div class="line"> char *_ho_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> = 0; \</div>
-<div class="line"> for(_ho_i=0; _ho_i < <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _ho_i++) { <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> += _ho_key[_ho_i]; <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> << 10); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> >> 6); \</div>
-<div class="line"> } <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> << 3); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> >> 11); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> << 15); \</div>
-<div class="line"> bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> & (num_bkts-1); \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a40690fc15aeaeba8f25385f05f84dd4d"><div class="ttname"><a href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle::key</a></div><div class="ttdeci">void * key</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00967">uthash.h:967</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00358">358</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa4cb140b45415e7bf57237525388af79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SAX</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> unsigned _sx_i; \</div>
-<div class="line"> char *_hs_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>); <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">\</a></div>
-<div class="line"><a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> hashv</a> = 0; \</div>
-<div class="line"> for(_sx_i=0; _sx_i < <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _sx_i++) \</div>
-<div class="line"> <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> << 5) + (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> >> 2) + _hs_key[_sx_i]; \</div>
-<div class="line"> bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> & (num_bkts-1); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a40690fc15aeaeba8f25385f05f84dd4d"><div class="ttname"><a href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle::key</a></div><div class="ttdeci">void * key</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00967">uthash.h:967</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00338">338</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad190366f7a476ece79bd628240a5fc93"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SELECT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh_dst, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">dst, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hh_src, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">src, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cond </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00842">842</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab595698a74642684dace0dfa47dab445"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SFH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">key, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">keylen, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00439">439</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4a7a46b9b92a9c73e4f9321e8e6b6bb2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SIGNATURE   0xa0111fe1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00925">925</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a88d2ab40956878caacd02c214f7e8f15"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SORT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmpfcn </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   <a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">HASH_SRT</a>(hh,head,cmpfcn)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00757">757</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a388b4071dcff005154f431d3d3025fbd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_SRT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hh, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmpfcn </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00758">758</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4d7691544128a6ef265f3e4fa5ed3113"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define HASH_TO_BKT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">hashv, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">num_bkts, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">bkt </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> bkt = ((<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) & ((num_bkts) - 1)); \</div>
-<div class="line">} <span class="keywordflow">while</span>(0)</div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00175">175</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a86ea78714da520989a6f7a764b4d71b4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define uthash_expand_fyi</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl</td><td>)</td>
- <td>   /* can be defined to log expands */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00072">72</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a03b52301b0ed976b6981ef33613320c1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define uthash_fatal</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">msg</td><td>)</td>
- <td>   exit(-1) /* fatal error (out of memory,etc) */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00067">67</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a56cdf8c254fc700332c8e6a7263b4657"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define uthash_free</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">ptr, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">sz </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   free(ptr) /* free fcn */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00069">69</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a861013aff36c0448f1888a2b0b5836d8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define uthash_malloc</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">sz</td><td>)</td>
- <td>   malloc(sz) /* malloc fcn */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00068">68</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7cc237d8f87de3836b5390856cfc5c86"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define uthash_noexpand_fyi</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">tbl</td><td>)</td>
- <td>   /* can be defined to log noexpand */</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00071">71</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa56cef9cb86dc1f4b5d27ee3a691077e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define UTHASH_VERSION   1.9.3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="uthash_8h_source.html#l00065">65</a> of file <a class="el" href="uthash_8h_source.html">uthash.h</a>.</p>
-
-</div>
-</div>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="a3ba3da0ca59a082c35a0d6b52e803ddf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a> <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a0e3a99ed9f776349720d0c362f956fb6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a> <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a0758074b9942c2ad076610b3e0ce548e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a> <a class="el" href="structUT__hash__table.html">UT_hash_table</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: uthash.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">uthash.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="uthash_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">Copyright (c) 2003-2010, Troy D. Hanson http://uthash.sourceforge.net</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">All rights reserved.</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">Redistribution and use in source and binary forms, with or without</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">modification, are permitted provided that the following conditions are met:</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Redistributions of source code must retain the above copyright</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> notice, this list of conditions and the following disclaimer.</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef _DTLS_UTHASH_H</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_UTHASH_H </span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string.h></span> <span class="comment">/* memcmp,strlen */</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <stddef.h></span> <span class="comment">/* ptrdiff_t */</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/* These macros use decltype or the earlier __typeof GNU extension.</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> As decltype is only available in newer compilers (VS2010 or gcc 4.3+</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> when compiling c++ source) this code uses whatever method is needed</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> or, for VS2008 where neither is available, uses casting workarounds. */</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifdef _MSC_VER </span><span class="comment">/* MS compiler */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span><span class="preprocessor">#if _MSC_VER >= 1600 && defined(__cplusplus) </span><span class="comment">/* VS2010 or newer in C++ mode */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#define DECLTYPE(x) (decltype(x))</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* VS2008 or older (or VS2010 in C mode) */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span><span class="preprocessor">#define NO_DECLTYPE</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span><span class="preprocessor">#define DECLTYPE(x)</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* GNU, Sun and other compilers */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073"> 42</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DECLTYPE(x) (__typeof(x))</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef NO_DECLTYPE</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span><span class="preprocessor">#define DECLTYPE_ASSIGN(dst,src) \</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"> char **_da_dst = (char**)(&(dst)); \</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> *_da_dst = (char*)(src); \</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span><span class="preprocessor">#else </span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba"> 52</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DECLTYPE_ASSIGN(dst,src) \</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"> (dst) = DECLTYPE(dst)(src); \</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">/* a number of the hash function use uint32_t which isn't defined on win32 */</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor">#include <inttypes.h></span> <span class="comment">/* uint32_t */</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e"> 65</a></span> <span class="preprocessor">#define UTHASH_VERSION 1.9.3</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1"> 67</a></span> <span class="preprocessor">#define uthash_fatal(msg) exit(-1) </span><span class="comment">/* fatal error (out of memory,etc) */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8"> 68</a></span> <span class="preprocessor"></span><span class="preprocessor">#define uthash_malloc(sz) malloc(sz) </span><span class="comment">/* malloc fcn */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657"> 69</a></span> <span class="preprocessor"></span><span class="preprocessor">#define uthash_free(ptr,sz) free(ptr) </span><span class="comment">/* free fcn */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86"> 71</a></span> <span class="preprocessor">#define uthash_noexpand_fyi(tbl) </span><span class="comment">/* can be defined to log noexpand */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define uthash_expand_fyi(tbl) </span><span class="comment">/* can be defined to log expands */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/* initial number of buckets */</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0"> 75</a></span> <span class="preprocessor">#define HASH_INITIAL_NUM_BUCKETS 32 </span><span class="comment">/* initial number of buckets */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c"> 76</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 </span><span class="comment">/* lg2 of initial number of buckets */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f"> 77</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BKT_CAPACITY_THRESH 10 </span><span class="comment">/* expand when bucket count reaches */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">/* calculate the element whose hash handle address is hhe */</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186"> 80</a></span> <span class="preprocessor">#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf"> 82</a></span> <span class="preprocessor">#define HASH_FIND(hh,head,keyptr,keylen,out) \</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"> unsigned _hf_bkt,_hf_hashv; \</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"> out=NULL; \</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"> HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"> keyptr,keylen,out); \</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#ifdef HASH_BLOOM</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_MAKE(tbl) \</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"> (tbl)->bloom_nbits = HASH_BLOOM; \</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"> (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"> if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"> memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"> (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">} while (0);</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#define HASH_BLOOM_FREE(tbl) \</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">} while (0);</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#define HASH_BLOOM_ADD(tbl,hashv) \</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"> HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#define HASH_BLOOM_TEST(tbl,hashv) \</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8"> 122</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_MAKE(tbl) </span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a"> 123</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_FREE(tbl) </span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db"> 124</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_ADD(tbl,hashv) </span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009"> 125</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_TEST(tbl,hashv) (1)</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5"> 128</a></span> <span class="preprocessor">#define HASH_MAKE_TABLE(hh,head) \</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"> (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"> sizeof(UT_hash_table)); \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"> if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"> (head)->hh.tbl->tail = &((head)->hh); \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"> (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"> (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"> if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"> memset((head)->hh.tbl->buckets, 0, \</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"> HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"> HASH_BLOOM_MAKE((head)->hh.tbl); \</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"> (head)->hh.tbl->signature = HASH_SIGNATURE; \</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399"> 147</a></span> <span class="preprocessor">#define HASH_ADD(hh,head,fieldname,keylen_in,add) \</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> HASH_ADD_KEYPTR(hh,head,&add->fieldname,keylen_in,add)</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26"> 150</a></span> <span class="preprocessor">#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> unsigned _ha_bkt; \</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"> (add)->hh.next = NULL; \</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"> (add)->hh.key = (char*)keyptr; \</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"> (add)->hh.keylen = keylen_in; \</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"> if (!(head)) { \</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"> head = (add); \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> (head)->hh.prev = NULL; \</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"> HASH_MAKE_TABLE(hh,head); \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"> (head)->hh.tbl->tail->next = (add); \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"> (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"> (head)->hh.tbl->tail = &((add)->hh); \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> (head)->hh.tbl->num_items++; \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> (add)->hh.tbl = (head)->hh.tbl; \</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"> HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"> (add)->hh.hashv, _ha_bkt); \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"> HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"> HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> HASH_FSCK(hh,head); \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113"> 175</a></span> <span class="preprocessor">#define HASH_TO_BKT( hashv, num_bkts, bkt ) \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> bkt = ((hashv) & ((num_bkts) - 1)); \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/* delete "delptr" from the hash table.</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> * "the usual" patch-up process for the app-order doubly-linked-list.</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> * The use of _hd_hh_del below deserves special explanation.</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> * These used to be expressed using (delptr) but that led to a bug</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"> * if someone used the same symbol for the head and deletee, like</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment"> * HASH_DELETE(hh,users,users);</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment"> * We want that to work, but by changing the head (users) below</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment"> * we were forfeiting our ability to further refer to the deletee (users)</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment"> * in the patch-up process. Solution: use scratch space to</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment"> * copy the deletee pointer, then the latter references are via that</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment"> * scratch pointer rather than through the repointed (users) symbol.</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980"> 192</a></span> <span class="preprocessor">#define HASH_DELETE(hh,head,delptr) \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> unsigned _hd_bkt; \</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> struct UT_hash_handle *_hd_hh_del; \</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"> if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"> uthash_free((head)->hh.tbl->buckets, \</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> HASH_BLOOM_FREE((head)->hh.tbl); \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"> head = NULL; \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"> _hd_hh_del = &((delptr)->hh); \</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"> if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"> (head)->hh.tbl->tail = \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"> (UT_hash_handle*)((char*)((delptr)->hh.prev) + \</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"> (head)->hh.tbl->hho); \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> if ((delptr)->hh.prev) { \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> ((UT_hash_handle*)((char*)((delptr)->hh.prev) + \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> (head)->hh.tbl->hho))->next = (delptr)->hh.next; \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"> DECLTYPE_ASSIGN(head,(delptr)->hh.next); \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"> if (_hd_hh_del->next) { \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> ((UT_hash_handle*)((char*)_hd_hh_del->next + \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> (head)->hh.tbl->hho))->prev = \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> _hd_hh_del->prev; \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> (head)->hh.tbl->num_items--; \</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> HASH_FSCK(hh,head); \</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84"> 229</a></span> <span class="preprocessor">#define HASH_FIND_STR(head,findstr,out) \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> HASH_FIND(hh,head,findstr,strlen(findstr),out)</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="uthash_8h.html#a9724951736f3985f74df17638c8a7885"> 231</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ADD_STR(head,strfield,add) \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> HASH_ADD(hh,head,strfield,strlen(add->strfield),add)</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="uthash_8h.html#aadcb19b940348f3141bd51505ede0142"> 233</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FIND_INT(head,findint,out) \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> HASH_FIND(hh,head,findint,sizeof(int),out)</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="uthash_8h.html#acf85835471af894e354efb7e346698f3"> 235</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ADD_INT(head,intfield,add) \</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> HASH_ADD(hh,head,intfield,sizeof(int),add)</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="uthash_8h.html#a26a887f8e31952034becac0cf446f6c3"> 237</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FIND_PTR(head,findptr,out) \</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"> HASH_FIND(hh,head,findptr,sizeof(void *),out)</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823"> 239</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ADD_PTR(head,ptrfield,add) \</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"> HASH_ADD(hh,head,ptrfield,sizeof(void *),add)</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="uthash_8h.html#a48b7ed374602dcb236501aa23a971f05"> 241</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_DEL(head,delptr) \</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> HASH_DELETE(hh,head,delptr)</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor">#ifdef HASH_DEBUG</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FSCK(hh,head) \</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> unsigned _bkt_i; \</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> unsigned _count, _bkt_count; \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> char *_prev; \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> struct UT_hash_handle *_thh; \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> _count = 0; \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> _bkt_count = 0; \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> _prev = NULL; \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> while (_thh) { \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> if (_prev != (char*)(_thh->hh_prev)) { \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> HASH_OOPS("invalid hh_prev %p, actual %p\n", \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> _thh->hh_prev, _prev ); \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> _bkt_count++; \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> _prev = (char*)(_thh); \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> _thh = _thh->hh_next; \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> _count += _bkt_count; \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> HASH_OOPS("invalid bucket count %d, actual %d\n", \</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"> (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"> if (_count != (head)->hh.tbl->num_items) { \</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"> HASH_OOPS("invalid hh item count %d, actual %d\n", \</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"> (head)->hh.tbl->num_items, _count ); \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> </span><span class="comment">/* traverse hh in app order; check next/prev integrity, count */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> _count = 0; \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"> _prev = NULL; \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"> _thh = &(head)->hh; \</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"> while (_thh) { \</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"> _count++; \</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"> if (_prev !=(char*)(_thh->prev)) { \</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"> HASH_OOPS("invalid prev %p, actual %p\n", \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"> _thh->prev, _prev ); \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"> _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"> (head)->hh.tbl->hho) : NULL ); \</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"> if (_count != (head)->hh.tbl->num_items) { \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> HASH_OOPS("invalid app item count %d, actual %d\n", \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> (head)->hh.tbl->num_items, _count ); \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759"> 301</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FSCK(hh,head) </span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment">/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to </span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> * the descriptor to which this macro is defined for tuning the hash function.</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment"> * The app can #include <unistd.h> to get the prototype for write(2). */</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">#ifdef HASH_EMIT_KEYS</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> unsigned _klen = fieldlen; \</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> write(HASH_EMIT_KEYS, keyptr, fieldlen); \</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"></span><span class="preprocessor">#else </span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15"> 315</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) </span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor">#ifdef HASH_FUNCTION </span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FCN HASH_FUNCTION</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="uthash_8h.html#abd3356419b386c379116393700a751d3"> 322</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_FCN HASH_JEN</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">/* The Bernstein hash function, used in Perl prior to v5.6 */</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e"> 326</a></span> <span class="preprocessor">#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> unsigned _hb_keylen=keylen; \</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> char *_hb_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> (hashv) = 0; \</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> bkt = (hashv) & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment">/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at </span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment"> * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="uthash_8h.html#aa4cb140b45415e7bf57237525388af79"> 338</a></span> <span class="preprocessor">#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> unsigned _sx_i; \</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> char *_hs_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"> hashv = 0; \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> for(_sx_i=0; _sx_i < keylen; _sx_i++) \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"> hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="uthash_8h.html#ac99f9a353421537527a80b392089dd9d"> 348</a></span> <span class="preprocessor">#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> unsigned _fn_i; \</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> char *_hf_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> hashv = 2166136261UL; \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> for(_fn_i=0; _fn_i < keylen; _fn_i++) \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor">} while(0);</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"></span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="uthash_8h.html#abc7040b698211c1993441fb4165fa0b4"> 358</a></span> <span class="preprocessor">#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> unsigned _ho_i; \</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> char *_ho_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> hashv = 0; \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> for(_ho_i=0; _ho_i < keylen; _ho_i++) { \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> hashv += _ho_key[_ho_i]; \</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> hashv += (hashv << 10); \</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> hashv ^= (hashv >> 6); \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> hashv += (hashv << 3); \</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> hashv ^= (hashv >> 11); \</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> hashv += (hashv << 15); \</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5"> 374</a></span> <span class="preprocessor">#define HASH_JEN_MIX(a,b,c) \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> a -= b; a -= c; a ^= ( c >> 13 ); \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> b -= c; b -= a; b ^= ( a << 8 ); \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> c -= a; c -= b; c ^= ( b >> 13 ); \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> a -= b; a -= c; a ^= ( c >> 12 ); \</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> b -= c; b -= a; b ^= ( a << 16 ); \</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> c -= a; c -= b; c ^= ( b >> 5 ); \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> a -= b; a -= c; a ^= ( c >> 3 ); \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> b -= c; b -= a; b ^= ( a << 10 ); \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> c -= a; c -= b; c ^= ( b >> 15 ); \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e"> 387</a></span> <span class="preprocessor">#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> unsigned _hj_i,_hj_j,_hj_k; \</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> char *_hj_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> hashv = 0xfeedbeef; \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> _hj_i = _hj_j = 0x9e3779b9; \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> _hj_k = keylen; \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> while (_hj_k >= 12) { \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> + ( (unsigned)_hj_key[2] << 16 ) \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> + ( (unsigned)_hj_key[3] << 24 ) ); \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> + ( (unsigned)_hj_key[6] << 16 ) \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> + ( (unsigned)_hj_key[7] << 24 ) ); \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> + ( (unsigned)_hj_key[10] << 16 ) \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> + ( (unsigned)_hj_key[11] << 24 ) ); \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> HASH_JEN_MIX(_hj_i, _hj_j, hashv); \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> _hj_key += 12; \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> _hj_k -= 12; \</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> hashv += keylen; \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> switch ( _hj_k ) { \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> case 5: _hj_j += _hj_key[4]; \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> case 1: _hj_i += _hj_key[0]; \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> HASH_JEN_MIX(_hj_i, _hj_j, hashv); \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="comment">/* The Paul Hsieh hash function */</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor">#undef get16bits</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"></span><span class="preprocessor">#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"></span><span class="preprocessor">#define get16bits(d) (*((const uint16_t *) (d)))</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor">#if !defined (get16bits)</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="uthash_8h.html#abc7d71657be8975a51684e41029b7964"> 436</a></span> <span class="preprocessor"></span><span class="preprocessor">#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> +(uint32_t)(((const uint8_t *)(d))[0]) )</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="uthash_8h.html#ab595698a74642684dace0dfa47dab445"> 439</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> char *_sfh_key=(char*)(key); \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> uint32_t _sfh_tmp, _sfh_len = keylen; \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> int _sfh_rem = _sfh_len & 3; \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> _sfh_len >>= 2; \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> hashv = 0xcafebabe; \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> </span><span class="comment">/* Main loop */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> for (;_sfh_len > 0; _sfh_len--) { \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> hashv += get16bits (_sfh_key); \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> _sfh_tmp = (get16bits (_sfh_key+2) << 11) ^ hashv; \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> hashv = (hashv << 16) ^ _sfh_tmp; \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> _sfh_key += 2*sizeof (uint16_t); \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> hashv += hashv >> 11; \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"> </span><span class="comment">/* Handle end cases */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> switch (_sfh_rem) { \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> case 3: hashv += get16bits (_sfh_key); \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> hashv ^= hashv << 16; \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> hashv ^= _sfh_key[sizeof (uint16_t)] << 18; \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> hashv += hashv >> 11; \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> break; \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> case 2: hashv += get16bits (_sfh_key); \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> hashv ^= hashv << 11; \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> hashv += hashv >> 17; \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> break; \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> case 1: hashv += *_sfh_key; \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> hashv ^= hashv << 10; \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> hashv += hashv >> 1; \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> </span><span class="comment">/* Force "avalanching" of final 127 bits */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"> hashv ^= hashv << 3; \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"> hashv += hashv >> 5; \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> hashv ^= hashv << 4; \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> hashv += hashv >> 17; \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> hashv ^= hashv << 25; \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> hashv += hashv >> 6; \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">} while(0);</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#ifdef HASH_USING_NO_STRICT_ALIASING</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"></span><span class="comment">/* The MurmurHash exploits some CPU's (e.g. x86) tolerance for unaligned reads.</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="comment"> * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment"> * So MurmurHash comes in two versions, the faster unaligned one and the slower</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment"> * aligned one. We only use the faster one on CPU's where we know it's safe. </span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment"> * Note the preprocessor built-in defines can be emitted using:</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment"> * gcc -m64 -dM -E - < /dev/null (on gcc)</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="comment"> * cc -## a.c (where a.c is a simple test file) (Sun Studio)</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor">#if (defined(__i386__) || defined(__x86_64__)) </span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_MUR HASH_MUR_UNALIGNED</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_MUR HASH_MUR_ALIGNED</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">/* Appleby's MurmurHash fast version for unaligned-tolerant archs like i386 */</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor">#define HASH_MUR_UNALIGNED(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> const unsigned int _mur_m = 0x5bd1e995; \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> const int _mur_r = 24; \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> hashv = 0xcafebabe ^ keylen; \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> char *_mur_key = (char *)(key); \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> uint32_t _mur_tmp, _mur_len = keylen; \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> for (;_mur_len >= 4; _mur_len-=4) { \</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> _mur_tmp = *(uint32_t *)_mur_key; \</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> _mur_tmp *= _mur_m; \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> _mur_tmp ^= _mur_tmp >> _mur_r; \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> _mur_tmp *= _mur_m; \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> hashv ^= _mur_tmp; \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> _mur_key += 4; \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> switch(_mur_len) \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> case 3: hashv ^= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> case 2: hashv ^= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> case 1: hashv ^= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> }; \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> hashv ^= hashv >> 13; \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> hashv ^= hashv >> 15; \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="comment">/* Appleby's MurmurHash version for alignment-sensitive archs like Sparc */</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor">#define HASH_MUR_ALIGNED(key,keylen,num_bkts,hashv,bkt) \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> const unsigned int _mur_m = 0x5bd1e995; \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> const int _mur_r = 24; \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> hashv = 0xcafebabe ^ (keylen); \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> char *_mur_key = (char *)(key); \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> uint32_t _mur_len = keylen; \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> int _mur_align = (int)_mur_key & 3; \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> if (_mur_align && (_mur_len >= 4)) { \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> unsigned _mur_t = 0, _mur_d = 0; \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> switch(_mur_align) { \</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> case 1: _mur_t |= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> case 2: _mur_t |= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> case 3: _mur_t |= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> _mur_t <<= (8 * _mur_align); \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> _mur_key += 4-_mur_align; \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> _mur_len -= 4-_mur_align; \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> int _mur_sl = 8 * (4-_mur_align); \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> int _mur_sr = 8 * _mur_align; \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> for (;_mur_len >= 4; _mur_len-=4) { \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> _mur_d = *(unsigned *)_mur_key; \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> _mur_t = (_mur_t >> _mur_sr) | (_mur_d << _mur_sl); \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> unsigned _mur_k = _mur_t; \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> _mur_k ^= _mur_k >> _mur_r; \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> hashv ^= _mur_k; \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> _mur_t = _mur_d; \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> _mur_key += 4; \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> _mur_d = 0; \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> if(_mur_len >= _mur_align) { \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> switch(_mur_align) { \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> case 3: _mur_d |= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> case 2: _mur_d |= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> case 1: _mur_d |= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> unsigned _mur_k = (_mur_t >> _mur_sr) | (_mur_d << _mur_sl); \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> _mur_k ^= _mur_k >> _mur_r; \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> hashv ^= _mur_k; \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> _mur_k += _mur_align; \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> _mur_len -= _mur_align; \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> switch(_mur_len) \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> case 3: hashv ^= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> case 2: hashv ^= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> case 1: hashv ^= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> switch(_mur_len) \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> case 3: _mur_d ^= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> case 2: _mur_d ^= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> case 1: _mur_d ^= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> case 0: hashv ^= (_mur_t >> _mur_sr) | (_mur_d << _mur_sl); \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> hashv ^= hashv >> 13; \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> hashv ^= hashv >> 15; \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> for (;_mur_len >= 4; _mur_len-=4) { \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> unsigned _mur_k = *(unsigned*)_mur_key; \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> _mur_k ^= _mur_k >> _mur_r; \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> _mur_k *= _mur_m; \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> hashv ^= _mur_k; \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> _mur_key += 4; \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> switch(_mur_len) \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> case 3: hashv ^= _mur_key[2] << 16; \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> case 2: hashv ^= _mur_key[1] << 8; \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> case 1: hashv ^= _mur_key[0]; \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> hashv ^= hashv >> 13; \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> hashv *= _mur_m; \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> hashv ^= hashv >> 15; \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> bkt = hashv & (num_bkts-1); \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* HASH_USING_NO_STRICT_ALIASING */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment">/* key comparison function; return 0 if keys equal */</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095"> 633</a></span> <span class="preprocessor">#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) </span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="comment">/* iterate over items in a known bucket to find desired item */</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c"> 636</a></span> <span class="preprocessor">#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> else out=NULL; \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> while (out) { \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> if (out->hh.keylen == keylen_in) { \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> if ((HASH_KEYCMP(out->hh.key,keyptr,keylen_in)) == 0) break; \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> if (out->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,out->hh.hh_next)); \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> else out = NULL; \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="comment">/* add an item to a bucket */</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348"> 650</a></span> <span class="preprocessor">#define HASH_ADD_TO_BKT(head,addhh) \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> head.count++; \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> (addhh)->hh_next = head.hh_head; \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> (addhh)->hh_prev = NULL; \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> (head).hh_head=addhh; \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> && (addhh)->tbl->noexpand != 1) { \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> HASH_EXPAND_BUCKETS((addhh)->tbl); \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment">/* remove an item from a given bucket */</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78"> 664</a></span> <span class="preprocessor">#define HASH_DEL_IN_BKT(hh,head,hh_del) \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> (head).count--; \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> if ((head).hh_head == hh_del) { \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> (head).hh_head = hh_del->hh_next; \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> if (hh_del->hh_prev) { \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> hh_del->hh_prev->hh_next = hh_del->hh_next; \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> if (hh_del->hh_next) { \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> hh_del->hh_next->hh_prev = hh_del->hh_prev; \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> } </span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="comment">/* Bucket expansion has the effect of doubling the number of buckets</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="comment"> * and redistributing the items into the new buckets. Ideally the</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="comment"> * items will distribute more or less evenly into the new buckets</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="comment"> * (the extent to which this is true is a measure of the quality of</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="comment"> * the hash function as it applies to the key domain). </span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="comment"> * With the items distributed into more buckets, the chain length</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="comment"> * (item count) in each bucket is reduced. Thus by expanding buckets</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment"> * the hash keeps a bound on the chain length. This bounded chain </span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment"> * length is the essence of how a hash provides constant time lookup.</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="comment"> * The calculation of tbl->ideal_chain_maxlen below deserves some</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="comment"> * explanation. First, keep in mind that we're calculating the ideal</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="comment"> * maximum chain length based on the *new* (doubled) bucket count.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="comment"> * In fractions this is just n/b (n=number of items,b=new num buckets).</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="comment"> * Since the ideal chain length is an integer, we want to calculate </span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="comment"> * ceil(n/b). We don't depend on floating point arithmetic in this</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="comment"> * hash, so to calculate ceil(n/b) with integers we could write</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="comment"> * ceil(n/b) = (n/b) + ((n%b)?1:0)</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="comment"> * and in fact a previous version of this hash did just that.</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="comment"> * But now we have improved things a bit by recognizing that b is</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment"> * always a power of two. We keep its base 2 log handy (call it lb),</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment"> * so now we can write this with a bit shift and logical AND:</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="comment"> * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03"> 705</a></span> <span class="preprocessor">#define HASH_EXPAND_BUCKETS(tbl) \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"> unsigned _he_bkt; \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"> unsigned _he_bkt_i; \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"> struct UT_hash_handle *_he_thh, *_he_hh_nxt; \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"> UT_hash_bucket *_he_new_buckets, *_he_newbkt; \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"> _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"> 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"> if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"> memset(_he_new_buckets, 0, \</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"> 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"> tbl->ideal_chain_maxlen = \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"> (tbl->num_items >> (tbl->log2_num_buckets+1)) + \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor"> tbl->nonideal_items = 0; \</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"> for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"> _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor"> while (_he_thh) { \</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"> _he_hh_nxt = _he_thh->hh_next; \</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"> HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor"> _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"> if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"> tbl->nonideal_items++; \</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"> _he_newbkt->expand_mult = _he_newbkt->count / \</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"> tbl->ideal_chain_maxlen; \</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"> _he_thh->hh_prev = NULL; \</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor"> _he_thh->hh_next = _he_newbkt->hh_head; \</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"> if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor"> _he_thh; \</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"> _he_newbkt->hh_head = _he_thh; \</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"> _he_thh = _he_hh_nxt; \</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"> uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"> tbl->num_buckets *= 2; \</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor"> tbl->log2_num_buckets++; \</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"> tbl->buckets = _he_new_buckets; \</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"> tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"> (tbl->ineff_expands+1) : 0; \</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"> if (tbl->ineff_expands > 1) { \</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"> tbl->noexpand=1; \</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"> uthash_noexpand_fyi(tbl); \</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"> uthash_expand_fyi(tbl); \</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="comment">/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="comment">/* Note that HASH_SORT assumes the hash handle name to be hh. </span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="comment"> * HASH_SRT was added to allow the hash handle name to be passed in. */</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15"> 757</a></span> <span class="preprocessor">#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd"> 758</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_SRT(hh,head,cmpfcn) \</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor"> unsigned _hs_i; \</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"> unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"> struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"> _hs_insize = 1; \</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"> _hs_looping = 1; \</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="preprocessor"> _hs_list = &((head)->hh); \</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor"> while (_hs_looping) { \</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"> _hs_p = _hs_list; \</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"> _hs_list = NULL; \</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"> _hs_tail = NULL; \</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"> _hs_nmerges = 0; \</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"> while (_hs_p) { \</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"> _hs_nmerges++; \</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"> _hs_q = _hs_p; \</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"> _hs_psize = 0; \</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"> for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="preprocessor"> _hs_psize++; \</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor"> _hs_q = (UT_hash_handle*)((_hs_q->next) ? \</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="preprocessor"> ((void*)((char*)(_hs_q->next) + \</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor"> (head)->hh.tbl->hho)) : NULL); \</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"> if (! (_hs_q) ) break; \</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"> _hs_qsize = _hs_insize; \</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"> while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"> if (_hs_psize == 0) { \</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"> _hs_e = _hs_q; \</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="preprocessor"> _hs_q = (UT_hash_handle*)((_hs_q->next) ? \</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="preprocessor"> ((void*)((char*)(_hs_q->next) + \</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="preprocessor"> (head)->hh.tbl->hho)) : NULL); \</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"> _hs_qsize--; \</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"> } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"> _hs_e = _hs_p; \</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor"> _hs_p = (UT_hash_handle*)((_hs_p->next) ? \</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"> ((void*)((char*)(_hs_p->next) + \</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"> (head)->hh.tbl->hho)) : NULL); \</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"> _hs_psize--; \</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor"> } else if (( \</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"> cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor"> DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor"> ) <= 0) { \</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"> _hs_e = _hs_p; \</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor"> _hs_p = (UT_hash_handle*)((_hs_p->next) ? \</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="preprocessor"> ((void*)((char*)(_hs_p->next) + \</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="preprocessor"> (head)->hh.tbl->hho)) : NULL); \</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="preprocessor"> _hs_psize--; \</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"> _hs_e = _hs_q; \</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor"> _hs_q = (UT_hash_handle*)((_hs_q->next) ? \</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor"> ((void*)((char*)(_hs_q->next) + \</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="preprocessor"> (head)->hh.tbl->hho)) : NULL); \</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="preprocessor"> _hs_qsize--; \</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor"> if ( _hs_tail ) { \</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor"> _hs_tail->next = ((_hs_e) ? \</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor"> ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"> _hs_list = _hs_e; \</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="preprocessor"> _hs_e->prev = ((_hs_tail) ? \</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="preprocessor"> ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="preprocessor"> _hs_tail = _hs_e; \</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"> _hs_p = _hs_q; \</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"> _hs_tail->next = NULL; \</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="preprocessor"> if ( _hs_nmerges <= 1 ) { \</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="preprocessor"> _hs_looping=0; \</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor"> (head)->hh.tbl->tail = _hs_tail; \</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"> DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"> _hs_insize *= 2; \</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"> HASH_FSCK(hh,head); \</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment">/* This function selects items from one hash into another hash. </span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment"> * The end result is that the selected items have dual presence </span></div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="comment"> * in both hashes. There is no copy of the items made; rather </span></div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="comment"> * they are added into the new hash through a secondary hash </span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"> * hash handle that must be present in the structure. */</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="uthash_8h.html#ad190366f7a476ece79bd628240a5fc93"> 842</a></span> <span class="preprocessor">#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="preprocessor"> unsigned _src_bkt, _dst_bkt; \</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="preprocessor"> void *_last_elt=NULL, *_elt; \</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="preprocessor"> UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="preprocessor"> ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="preprocessor"> if (src) { \</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="preprocessor"> for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="preprocessor"> for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="preprocessor"> _src_hh; \</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="preprocessor"> _src_hh = _src_hh->hh_next) { \</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="preprocessor"> _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="preprocessor"> if (cond(_elt)) { \</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="preprocessor"> _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="preprocessor"> _dst_hh->key = _src_hh->key; \</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="preprocessor"> _dst_hh->keylen = _src_hh->keylen; \</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="preprocessor"> _dst_hh->hashv = _src_hh->hashv; \</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="preprocessor"> _dst_hh->prev = _last_elt; \</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="preprocessor"> _dst_hh->next = NULL; \</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="preprocessor"> if (_last_elt_hh) { _last_elt_hh->next = _elt; } \</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="preprocessor"> if (!dst) { \</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="preprocessor"> DECLTYPE_ASSIGN(dst,_elt); \</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="preprocessor"> HASH_MAKE_TABLE(hh_dst,dst); \</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="preprocessor"> _dst_hh->tbl = (dst)->hh_dst.tbl; \</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="preprocessor"> HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="preprocessor"> HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="preprocessor"> (dst)->hh_dst.tbl->num_items++; \</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="preprocessor"> _last_elt = _elt; \</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="preprocessor"> _last_elt_hh = _dst_hh; \</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="preprocessor"> HASH_FSCK(hh_dst,dst); \</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23"> 880</a></span> <span class="preprocessor">#define HASH_CLEAR(hh,head) \</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="preprocessor"> uthash_free((head)->hh.tbl->buckets, \</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="preprocessor"> (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="preprocessor"> uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="preprocessor"> (head)=NULL; \</span></div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="preprocessor">} while(0)</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#ifdef NO_DECLTYPE</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ITER(hh,head,el,tmp) \</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="preprocessor">for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="preprocessor"> el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) </span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6"> 895</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_ITER(hh,head,el,tmp) \</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="preprocessor">for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="preprocessor"> el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment">/* obtain a count of items in the hash */</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f"> 901</a></span> <span class="preprocessor">#define HASH_COUNT(head) HASH_CNT(hh,head) </span></div>
-<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd"> 902</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="structUT__hash__bucket.html"> 904</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a> {</div>
-<div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf"> 905</a></span>  <span class="keyword">struct </span><a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> *<a class="code" href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf">hh_head</a>;</div>
-<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634"> 906</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634">count</a>;</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="comment">/* expand_mult is normally set to 0. In this situation, the max chain length</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment"> * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment"> * the bucket's chain exceeds this length, bucket expansion is triggered). </span></div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment"> * However, setting expand_mult to a non-zero value delays bucket expansion</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment"> * (that would be triggered by additions to this particular bucket)</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment"> * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment"> * (The multiplier is simply expand_mult+1). The whole idea of this</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment"> * multiplier is to reduce bucket expansions, since they are expensive, in</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="comment"> * situations where we know that a particular bucket tends to be overused.</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="comment"> * It is better to let its chain length grow to a longer yet-still-bounded</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="comment"> * value, than to do an O(n) bucket expansion too often. </span></div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b"> 920</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b">expand_mult</a>;</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> </div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> } <a class="code" href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">UT_hash_bucket</a>;</div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment">/* random signature used only to find hash tables in external analysis */</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2"> 925</a></span> <span class="preprocessor">#define HASH_SIGNATURE 0xa0111fe1</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6"> 926</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HASH_BLOOM_SIGNATURE 0xb12220f2</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="structUT__hash__table.html"> 928</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structUT__hash__table.html">UT_hash_table</a> {</div>
-<div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b"> 929</a></span>  <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a> *<a class="code" href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b">buckets</a>;</div>
-<div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339"> 930</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339">num_buckets</a>, <a class="code" href="structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f">log2_num_buckets</a>;</div>
-<div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76"> 931</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76">num_items</a>;</div>
-<div class="line"><a name="l00932"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992"> 932</a></span>  <span class="keyword">struct </span><a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> *<a class="code" href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992">tail</a>; <span class="comment">/* tail hh in app order, for fast append */</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6"> 933</a></span>  ptrdiff_t <a class="code" href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6">hho</a>; <span class="comment">/* hash handle offset (byte pos of hash handle in element */</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="comment">/* in an ideal situation (all buckets used equally), no bucket would have</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="comment"> * more than ceil(#items/#buckets) items. that's the ideal chain length. */</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad"> 937</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad">ideal_chain_maxlen</a>;</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="comment">/* nonideal_items is the number of items in the hash whose chain position</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment"> * exceeds the ideal chain maxlen. these items pay the penalty for an uneven</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"> * hash distribution; reaching them in a chain traversal takes >ideal steps */</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f"> 942</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f">nonideal_items</a>;</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="comment">/* ineffective expands occur when a bucket doubling was performed, but </span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="comment"> * afterward, more than half the items in the hash had nonideal chain</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment"> * positions. If this happens on two consecutive expansions we inhibit any</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment"> * further expansion, as it's not helping; this happens when the hash</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment"> * function isn't a good fit for the key domain. When expansion is inhibited</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"> * the hash will still work, albeit no longer in constant time. */</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1"> 950</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7">ineff_expands</a>, <a class="code" href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1">noexpand</a>;</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div>
-<div class="line"><a name="l00952"></a><span class="lineno"><a class="line" href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f"> 952</a></span>  uint32_t <a class="code" href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f">signature</a>; <span class="comment">/* used only to find hash tables in external analysis */</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="preprocessor">#ifdef HASH_BLOOM</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="preprocessor"></span> uint32_t bloom_sig; <span class="comment">/* used only to test bloom exists in external analysis */</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  uint8_t *bloom_bv;</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordtype">char</span> bloom_nbits;</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> } <a class="code" href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">UT_hash_table</a>;</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> </div>
-<div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html"> 961</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> {</div>
-<div class="line"><a name="l00962"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73"> 962</a></span>  <span class="keyword">struct </span><a class="code" href="structUT__hash__table.html">UT_hash_table</a> *<a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58"> 963</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>; <span class="comment">/* prev element in app order */</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942"> 964</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>; <span class="comment">/* next element in app order */</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2"> 965</a></span>  <span class="keyword">struct </span><a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> *<a class="code" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a>; <span class="comment">/* previous hh in bucket order */</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325"> 966</a></span>  <span class="keyword">struct </span><a class="code" href="structUT__hash__handle.html">UT_hash_handle</a> *<a class="code" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a>; <span class="comment">/* next hh in bucket order */</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d"> 967</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>; <span class="comment">/* ptr to enclosing struct's key */</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4"> 968</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; <span class="comment">/* enclosing struct's key len */</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323"> 969</a></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>; <span class="comment">/* result of hash-fcn(key) */</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> } <a class="code" href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">UT_hash_handle</a>;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_UTHASH_H */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="structUT__hash__table_html_a216c7d98cf40a0064bee94aa8a5bf1b7"><div class="ttname"><a href="structUT__hash__table.html#a216c7d98cf40a0064bee94aa8a5bf1b7">UT_hash_table::ineff_expands</a></div><div class="ttdeci">unsigned ineff_expands</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00950">uthash.h:950</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a00a889a5e1ebaeec0a83ec2701df1992"><div class="ttname"><a href="structUT__hash__table.html#a00a889a5e1ebaeec0a83ec2701df1992">UT_hash_table::tail</a></div><div class="ttdeci">struct UT_hash_handle * tail</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00932">uthash.h:932</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a04556bbef9c9a1c40b1bc0d17a2a6e0b"><div class="ttname"><a href="structUT__hash__table.html#a04556bbef9c9a1c40b1bc0d17a2a6e0b">UT_hash_table::buckets</a></div><div class="ttdeci">UT_hash_bucket * buckets</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00929">uthash.h:929</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html_a9b739c1b69c141e8198c0c64af643b2b"><div class="ttname"><a href="structUT__hash__bucket.html#a9b739c1b69c141e8198c0c64af643b2b">UT_hash_bucket::expand_mult</a></div><div class="ttdeci">unsigned expand_mult</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00920">uthash.h:920</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html_a785a785132212378bb28fb4341cfecaf"><div class="ttname"><a href="structUT__hash__bucket.html#a785a785132212378bb28fb4341cfecaf">UT_hash_bucket::hh_head</a></div><div class="ttdeci">struct UT_hash_handle * hh_head</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00905">uthash.h:905</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_ae376a7f3fac525f3a9d03b6beec8d12f"><div class="ttname"><a href="structUT__hash__table.html#ae376a7f3fac525f3a9d03b6beec8d12f">UT_hash_table::log2_num_buckets</a></div><div class="ttdeci">unsigned log2_num_buckets</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00930">uthash.h:930</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a4f6989385499ba6f594b0f0facd28325"><div class="ttname"><a href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">UT_hash_handle::hh_next</a></div><div class="ttdeci">struct UT_hash_handle * hh_next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00966">uthash.h:966</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html_a5d20cc12bdcbde360398910eefb45634"><div class="ttname"><a href="structUT__hash__bucket.html#a5d20cc12bdcbde360398910eefb45634">UT_hash_bucket::count</a></div><div class="ttdeci">unsigned count</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00906">uthash.h:906</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html"><div class="ttname"><a href="structUT__hash__handle.html">UT_hash_handle</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00961">uthash.h:961</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a635661789933752e7b83dac84430eae1"><div class="ttname"><a href="structUT__hash__table.html#a635661789933752e7b83dac84430eae1">UT_hash_table::noexpand</a></div><div class="ttdeci">unsigned noexpand</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00950">uthash.h:950</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_af2abdc405972a6bbdee2ade2c0f346c4"><div class="ttname"><a href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">UT_hash_handle::keylen</a></div><div class="ttdeci">unsigned keylen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00968">uthash.h:968</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a8cb66cfb259a204cda59a815e4db664f"><div class="ttname"><a href="structUT__hash__table.html#a8cb66cfb259a204cda59a815e4db664f">UT_hash_table::nonideal_items</a></div><div class="ttdeci">unsigned nonideal_items</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00942">uthash.h:942</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_afd05f4d9e45354fb010367ae9e1bddb6"><div class="ttname"><a href="structUT__hash__table.html#afd05f4d9e45354fb010367ae9e1bddb6">UT_hash_table::hho</a></div><div class="ttdeci">ptrdiff_t hho</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00933">uthash.h:933</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a3ed04b6233facaedf910672578d86339"><div class="ttname"><a href="structUT__hash__table.html#a3ed04b6233facaedf910672578d86339">UT_hash_table::num_buckets</a></div><div class="ttdeci">unsigned num_buckets</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00930">uthash.h:930</a></div></div>
-<div class="ttc" id="structUT__hash__table_html"><div class="ttname"><a href="structUT__hash__table.html">UT_hash_table</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00928">uthash.h:928</a></div></div>
-<div class="ttc" id="uthash_8h_html_a3ba3da0ca59a082c35a0d6b52e803ddf"><div class="ttname"><a href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">UT_hash_bucket</a></div><div class="ttdeci">struct UT_hash_bucket UT_hash_bucket</div></div>
-<div class="ttc" id="structUT__hash__handle_html_aae5e635fa110556e5007f627089f8323"><div class="ttname"><a href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">UT_hash_handle::hashv</a></div><div class="ttdeci">unsigned hashv</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00969">uthash.h:969</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a40690fc15aeaeba8f25385f05f84dd4d"><div class="ttname"><a href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">UT_hash_handle::key</a></div><div class="ttdeci">void * key</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00967">uthash.h:967</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_ad2035ee3b2aa55b22e352341372a5e73"><div class="ttname"><a href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">UT_hash_handle::tbl</a></div><div class="ttdeci">struct UT_hash_table * tbl</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00962">uthash.h:962</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a87d1ab3f3ede1809c6a485972d20b25f"><div class="ttname"><a href="structUT__hash__table.html#a87d1ab3f3ede1809c6a485972d20b25f">UT_hash_table::signature</a></div><div class="ttdeci">uint32_t signature</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00952">uthash.h:952</a></div></div>
-<div class="ttc" id="structUT__hash__bucket_html"><div class="ttname"><a href="structUT__hash__bucket.html">UT_hash_bucket</a></div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00904">uthash.h:904</a></div></div>
-<div class="ttc" id="uthash_8h_html_a0758074b9942c2ad076610b3e0ce548e"><div class="ttname"><a href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">UT_hash_table</a></div><div class="ttdeci">struct UT_hash_table UT_hash_table</div></div>
-<div class="ttc" id="structUT__hash__table_html_a5f1cec93d5d753ba02097c797e4d67ad"><div class="ttname"><a href="structUT__hash__table.html#a5f1cec93d5d753ba02097c797e4d67ad">UT_hash_table::ideal_chain_maxlen</a></div><div class="ttdeci">unsigned ideal_chain_maxlen</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00937">uthash.h:937</a></div></div>
-<div class="ttc" id="uthash_8h_html_a0e3a99ed9f776349720d0c362f956fb6"><div class="ttname"><a href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">UT_hash_handle</a></div><div class="ttdeci">struct UT_hash_handle UT_hash_handle</div></div>
-<div class="ttc" id="structUT__hash__handle_html_a3ec03e34d7975d5c1981c44b324619b2"><div class="ttname"><a href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">UT_hash_handle::hh_prev</a></div><div class="ttdeci">struct UT_hash_handle * hh_prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00965">uthash.h:965</a></div></div>
-<div class="ttc" id="structUT__hash__table_html_a74534cc14f080c96f94d8f5da83d9d76"><div class="ttname"><a href="structUT__hash__table.html#a74534cc14f080c96f94d8f5da83d9d76">UT_hash_table::num_items</a></div><div class="ttdeci">unsigned num_items</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00931">uthash.h:931</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: utlist.h File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#define-members">Macros</a> </div>
- <div class="headertitle">
-<div class="title">utlist.h File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="utlist_8h_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
-Macros</h2></td></tr>
-<tr class="memitem:a9f3779f3c49ddf609c97f1c3d1f29730"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730">UTLIST_VERSION</a>   1.9.1</td></tr>
-<tr class="separator:a9f3779f3c49ddf609c97f1c3d1f29730"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae8c9864192170d02fd996abaa1589611"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">LDECLTYPE</a>(x)   __typeof(x)</td></tr>
-<tr class="separator:ae8c9864192170d02fd996abaa1589611"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9eded80a8b98df631e889eb72b77c7a4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4">_SV</a>(elt, <a class="el" href="structlist.html">list</a>)</td></tr>
-<tr class="separator:a9eded80a8b98df631e889eb72b77c7a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aec696573e92f2ebd0a1641d77bb5b0fe"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe">_NEXT</a>(elt, <a class="el" href="structlist.html">list</a>)   ((elt)->next)</td></tr>
-<tr class="separator:aec696573e92f2ebd0a1641d77bb5b0fe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a93e2d161c8ad8350100a4fad092ef058"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058">_NEXTASGN</a>(elt, <a class="el" href="structlist.html">list</a>, to)   ((elt)->next)=(to)</td></tr>
-<tr class="separator:a93e2d161c8ad8350100a4fad092ef058"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ade8452ec59d6bf7ef23770ee4d96f8d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5">_PREV</a>(elt, <a class="el" href="structlist.html">list</a>)   ((elt)->prev)</td></tr>
-<tr class="separator:ade8452ec59d6bf7ef23770ee4d96f8d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6f6acf0ac7f07dcb26cef2110fef496a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a">_PREVASGN</a>(elt, <a class="el" href="structlist.html">list</a>, to)   ((elt)->prev)=(to)</td></tr>
-<tr class="separator:a6f6acf0ac7f07dcb26cef2110fef496a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9916f2c26fd7f6f7edb1f6baf400f315"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315">_RS</a>(<a class="el" href="structlist.html">list</a>)</td></tr>
-<tr class="separator:a9916f2c26fd7f6f7edb1f6baf400f315"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1eb4a3192390405087ef1bb6c57241e3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3">_CASTASGN</a>(a, b)   (a)=(b)</td></tr>
-<tr class="separator:a1eb4a3192390405087ef1bb6c57241e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0b2137d4a0c157cb7a1a30d9340ece31"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31">LL_SORT</a>(<a class="el" href="structlist.html">list</a>, cmp)</td></tr>
-<tr class="separator:a0b2137d4a0c157cb7a1a30d9340ece31"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad966f284f615a2ced4028258fa08f8f3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3">DL_SORT</a>(<a class="el" href="structlist.html">list</a>, cmp)</td></tr>
-<tr class="separator:ad966f284f615a2ced4028258fa08f8f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a13add78e5524efe1ae6bfb1631b2dc17"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17">CDL_SORT</a>(<a class="el" href="structlist.html">list</a>, cmp)</td></tr>
-<tr class="separator:a13add78e5524efe1ae6bfb1631b2dc17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a851fb4b583b0dc000097eeee6dd551d4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4">LL_PREPEND</a>(head, add)</td></tr>
-<tr class="separator:a851fb4b583b0dc000097eeee6dd551d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ace33c571c3df78e721a99a4494983855"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ace33c571c3df78e721a99a4494983855">LL_APPEND</a>(head, add)</td></tr>
-<tr class="separator:ace33c571c3df78e721a99a4494983855"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a34a4e54d488753465f6e87bb63b93c0e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e">LL_DELETE</a>(head, del)</td></tr>
-<tr class="separator:a34a4e54d488753465f6e87bb63b93c0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3c301ddde2cfd8c32df4137c902b66f3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3">LL_APPEND_VS2008</a>(head, add)</td></tr>
-<tr class="separator:a3c301ddde2cfd8c32df4137c902b66f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a832d4d46464fb2dada9e198ad4f70cdf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf">LL_DELETE_VS2008</a>(head, del)</td></tr>
-<tr class="separator:a832d4d46464fb2dada9e198ad4f70cdf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a487c0ce49f397e1743caae16a797e4bb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">LL_FOREACH</a>(head, el)   for(el=head;el;el=el->next)</td></tr>
-<tr class="separator:a487c0ce49f397e1743caae16a797e4bb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad0a695664d31f0b929fd50b39ebcf0ef"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef">LL_FOREACH_SAFE</a>(head, el, tmp)   for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</td></tr>
-<tr class="separator:ad0a695664d31f0b929fd50b39ebcf0ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8c5c97079c5b259e4c0ff7c563b0f8ed"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed">LL_SEARCH_SCALAR</a>(head, out, field, val)</td></tr>
-<tr class="separator:a8c5c97079c5b259e4c0ff7c563b0f8ed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af7a5ae66c9386c4b89403d9ca038adcb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb">LL_SEARCH</a>(head, out, elt, cmp)</td></tr>
-<tr class="separator:af7a5ae66c9386c4b89403d9ca038adcb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a78be4dea3344ba1b1c7fe1b893c0fdfa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa">DL_PREPEND</a>(head, add)</td></tr>
-<tr class="separator:a78be4dea3344ba1b1c7fe1b893c0fdfa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a17d40c945e1dc55490feb2fe160670c8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8">DL_APPEND</a>(head, add)</td></tr>
-<tr class="separator:a17d40c945e1dc55490feb2fe160670c8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aad429903354ffe8cdf4ca2e9d0ae89cc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc">DL_DELETE</a>(head, del)</td></tr>
-<tr class="separator:aad429903354ffe8cdf4ca2e9d0ae89cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abb0c2851c5f0567be7b8827ce5168ef7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7">DL_FOREACH</a>(head, el)   for(el=head;el;el=el->next)</td></tr>
-<tr class="separator:abb0c2851c5f0567be7b8827ce5168ef7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3bb0c84a69846d2f019a97ea0b4709aa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa">DL_FOREACH_SAFE</a>(head, el, tmp)   for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</td></tr>
-<tr class="separator:a3bb0c84a69846d2f019a97ea0b4709aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a172fce2d647fdedadf0f8080e0441c5b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b">DL_SEARCH_SCALAR</a>   <a class="el" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed">LL_SEARCH_SCALAR</a></td></tr>
-<tr class="separator:a172fce2d647fdedadf0f8080e0441c5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a819373d14278b52c313b743acc292ba0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a819373d14278b52c313b743acc292ba0">DL_SEARCH</a>   <a class="el" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb">LL_SEARCH</a></td></tr>
-<tr class="separator:a819373d14278b52c313b743acc292ba0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6c6a7232d281eab4b18563b92e5653bd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd">CDL_PREPEND</a>(head, add)</td></tr>
-<tr class="separator:a6c6a7232d281eab4b18563b92e5653bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a60fd7696c4d0865f53a07579a7b08235"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235">CDL_DELETE</a>(head, del)</td></tr>
-<tr class="separator:a60fd7696c4d0865f53a07579a7b08235"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a795df7857792d7e811709a060c911a36"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#a795df7857792d7e811709a060c911a36">CDL_FOREACH</a>(head, el)   for(el=head;el;el=(el->next==head ? 0L : el->next))</td></tr>
-<tr class="separator:a795df7857792d7e811709a060c911a36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abdb80106f7733e37fbe4f62e9d97ccfd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd">CDL_FOREACH_SAFE</a>(head, el, tmp1, tmp2)</td></tr>
-<tr class="separator:abdb80106f7733e37fbe4f62e9d97ccfd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad064cddb894b478b3c3cd23719f58651"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#ad064cddb894b478b3c3cd23719f58651">CDL_SEARCH_SCALAR</a>(head, out, field, val)</td></tr>
-<tr class="separator:ad064cddb894b478b3c3cd23719f58651"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afb329a0bdf1fa0b644317e9d84082e1e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e">CDL_SEARCH</a>(head, out, elt, cmp)</td></tr>
-<tr class="separator:afb329a0bdf1fa0b644317e9d84082e1e"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<h2 class="groupheader">Macro Definition Documentation</h2>
-<a class="anchor" id="a1eb4a3192390405087ef1bb6c57241e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _CASTASGN</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">a, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">b </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   (a)=(b)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00093">93</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aec696573e92f2ebd0a1641d77bb5b0fe"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _NEXT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((elt)->next)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00088">88</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a93e2d161c8ad8350100a4fad092ef058"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _NEXTASGN</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">to </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((elt)->next)=(to)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00089">89</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ade8452ec59d6bf7ef23770ee4d96f8d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _PREV</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((elt)->prev)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00090">90</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6f6acf0ac7f07dcb26cef2110fef496a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _PREVASGN</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">to </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   ((elt)->prev)=(to)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00091">91</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9916f2c26fd7f6f7edb1f6baf400f315"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _RS</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00092">92</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9eded80a8b98df631e889eb72b77c7a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define _SV</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00087">87</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a60fd7696c4d0865f53a07579a7b08235"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_DELETE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">del </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if ( ((head)==(del)) && ((head)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> == (head))) { \</div>
-<div class="line"> (head) = 0L; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>->prev = (del)->prev; \</div>
-<div class="line"> (del)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>->next = (del)->next; \</div>
-<div class="line"> if ((del) == (head)) (head)=(del)->next; \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0);</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00456">456</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a795df7857792d7e811709a060c911a36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_FOREACH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for(el=head;el;el=(el->next==head ? 0L : el->next))</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00467">467</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abdb80106f7733e37fbe4f62e9d97ccfd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_FOREACH_SAFE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp1, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp2 </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">for</span>((el)=(head), ((tmp1)=(head)?((head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>):NULL); \</div>
-<div class="line"> (el) && ((tmp2)=(el)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>, 1); \</div>
-<div class="line"> ((el) = (((el)==(tmp1)) ? 0L : (tmp2))))</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00470">470</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a6c6a7232d281eab4b18563b92e5653bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_PREPEND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if (head) { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (head)->prev; \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = (head); \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (add); \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>->next = (add); \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (add); \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = (add); \</div>
-<div class="line"> } \</div>
-<div class="line">(head)=(add); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00442">442</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afb329a0bdf1fa0b644317e9d84082e1e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_SEARCH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#a795df7857792d7e811709a060c911a36">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#a795df7857792d7e811709a060c911a36"> CDL_FOREACH</a>(head,out) { \</div>
-<div class="line"> if ((cmp(out,elt))==0) break; \</div>
-<div class="line"> } \</div>
-<div class="line">} while(0)</div>
-<div class="ttc" id="utlist_8h_html_a795df7857792d7e811709a060c911a36"><div class="ttname"><a href="utlist_8h.html#a795df7857792d7e811709a060c911a36">CDL_FOREACH</a></div><div class="ttdeci">#define CDL_FOREACH(head, el)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00467">utlist.h:467</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00482">482</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad064cddb894b478b3c3cd23719f58651"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_SEARCH_SCALAR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">field, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">val </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#a795df7857792d7e811709a060c911a36">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#a795df7857792d7e811709a060c911a36"> CDL_FOREACH</a>(head,out) { \</div>
-<div class="line"> if ((out)->field == (val)) break; \</div>
-<div class="line"> } \</div>
-<div class="line">} while(0)</div>
-<div class="ttc" id="utlist_8h_html_a795df7857792d7e811709a060c911a36"><div class="ttname"><a href="utlist_8h.html#a795df7857792d7e811709a060c911a36">CDL_FOREACH</a></div><div class="ttdeci">#define CDL_FOREACH(head, el)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00467">utlist.h:467</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00475">475</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a13add78e5524efe1ae6bfb1631b2dc17"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define CDL_SORT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00214">214</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a17d40c945e1dc55490feb2fe160670c8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_APPEND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if (head) { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (head)->prev; \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>->next = (add); \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (add); \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = NULL; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (head)=(add); \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (head); \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = NULL; \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0);</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00396">396</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aad429903354ffe8cdf4ca2e9d0ae89cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_DELETE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">del </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if ((del)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> == (del)) { \</div>
-<div class="line"> (head)=NULL; \</div>
-<div class="line"> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((del)==(head)) { \</div>
-<div class="line"> (del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>->prev = (del)->prev; \</div>
-<div class="line"> (head) = (del)->next; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (del)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a>->next = (del)->next; \</div>
-<div class="line"> if ((del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>) { \</div>
-<div class="line"> (del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>->prev = (del)->prev; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (del)->prev; \</div>
-<div class="line"> } \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0);</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00410">410</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="abb0c2851c5f0567be7b8827ce5168ef7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_FOREACH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for(el=head;el;el=el->next)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00428">428</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3bb0c84a69846d2f019a97ea0b4709aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_FOREACH_SAFE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00432">432</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a78be4dea3344ba1b1c7fe1b893c0fdfa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_PREPEND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = head; \</div>
-<div class="line"> if (head) { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (head)->prev; \</div>
-<div class="line"> (head)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (add); \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">prev</a> = (add); \</div>
-<div class="line"> } \</div>
-<div class="line"> (head) = (add); \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_abaf54a69367933df2d45575f48ca6a58"><div class="ttname"><a href="structUT__hash__handle.html#abaf54a69367933df2d45575f48ca6a58">UT_hash_handle::prev</a></div><div class="ttdeci">void * prev</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00963">uthash.h:963</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00384">384</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a819373d14278b52c313b743acc292ba0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_SEARCH   <a class="el" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb">LL_SEARCH</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00437">437</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a172fce2d647fdedadf0f8080e0441c5b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_SEARCH_SCALAR   <a class="el" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed">LL_SEARCH_SCALAR</a></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00436">436</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad966f284f615a2ced4028258fa08f8f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DL_SORT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00156">156</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae8c9864192170d02fd996abaa1589611"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LDECLTYPE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">x</td><td>)</td>
- <td>   __typeof(x)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00072">72</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ace33c571c3df78e721a99a4494983855"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_APPEND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611"> LDECLTYPE</a>(head) _tmp; \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>=NULL; \</div>
-<div class="line"> if (head) { \</div>
-<div class="line"> _tmp = head; \</div>
-<div class="line"> while (_tmp->next) { _tmp = _tmp->next; } \</div>
-<div class="line"> _tmp->next=(add); \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (head)=(add); \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="utlist_8h_html_ae8c9864192170d02fd996abaa1589611"><div class="ttname"><a href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">LDECLTYPE</a></div><div class="ttdeci">#define LDECLTYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00072">utlist.h:72</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00293">293</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3c301ddde2cfd8c32df4137c902b66f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_APPEND_VS2008</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if (head) { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = head; <span class="comment">/* use add->next as a temp variable */</span> \</div>
-<div class="line"> while ((add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>->next) { (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = (add)->next->next; } \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>->next=(add); \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> (head)=(add); \</div>
-<div class="line"> } \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>=NULL; \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00323">323</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a34a4e54d488753465f6e87bb63b93c0e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_DELETE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">del </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611"> LDECLTYPE</a>(head) _tmp; \</div>
-<div class="line"> if ((head) == (del)) { \</div>
-<div class="line"> (head)=(head)->next; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> _tmp = head; \</div>
-<div class="line"> while (_tmp->next && (_tmp->next != (del))) { \</div>
-<div class="line"> _tmp = _tmp->next; \</div>
-<div class="line"> } \</div>
-<div class="line"> if (_tmp->next) { \</div>
-<div class="line"> _tmp->next = ((del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>); \</div>
-<div class="line"> } \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="utlist_8h_html_ae8c9864192170d02fd996abaa1589611"><div class="ttname"><a href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611">LDECLTYPE</a></div><div class="ttdeci">#define LDECLTYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00072">utlist.h:72</a></div></div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00306">306</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a832d4d46464fb2dada9e198ad4f70cdf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_DELETE_VS2008</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">del </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> if ((head) == (del)) { \</div>
-<div class="line"> (head)=(head)->next; \</div>
-<div class="line"> } <span class="keywordflow">else</span> { \</div>
-<div class="line"> char *_tmp = (<span class="keywordtype">char</span>*)(head); \</div>
-<div class="line"> while (head->next && (head->next != (del))) { \</div>
-<div class="line"> head = head->next; \</div>
-<div class="line"> } \</div>
-<div class="line"> if (head->next) { \</div>
-<div class="line"> head->next = ((del)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a>); \</div>
-<div class="line"> } \</div>
-<div class="line"> { \</div>
-<div class="line"> char **_head_alias = (<span class="keywordtype">char</span>**)&(head); \</div>
-<div class="line"> *_head_alias = _tmp; \</div>
-<div class="line"> } \</div>
-<div class="line"> } \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00335">335</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a487c0ce49f397e1743caae16a797e4bb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_FOREACH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for(el=head;el;el=el->next)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00361">361</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad0a695664d31f0b929fd50b39ebcf0ef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_FOREACH_SAFE</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">el, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">tmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td>   for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00364">364</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a851fb4b583b0dc000097eeee6dd551d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_PREPEND</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">add </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
-<div class="line"> (add)-><a class="code" href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">next</a> = head; \</div>
-<div class="line"> head = add; \</div>
-<div class="line">} <span class="keywordflow">while</span> (0)</div>
-<div class="ttc" id="structUT__hash__handle_html_a93bc88ffe97f85ea0d9e0056b7118942"><div class="ttname"><a href="structUT__hash__handle.html#a93bc88ffe97f85ea0d9e0056b7118942">UT_hash_handle::next</a></div><div class="ttdeci">void * next</div><div class="ttdef"><b>Definition:</b> <a href="uthash_8h_source.html#l00964">uthash.h:964</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00287">287</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af7a5ae66c9386c4b89403d9ca038adcb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_SEARCH</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">elt, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb"> LL_FOREACH</a>(head,out) { \</div>
-<div class="line"> if ((cmp(out,elt))==0) break; \</div>
-<div class="line"> } \</div>
-<div class="line">} while(0)</div>
-<div class="ttc" id="utlist_8h_html_a487c0ce49f397e1743caae16a797e4bb"><div class="ttname"><a href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">LL_FOREACH</a></div><div class="ttdeci">#define LL_FOREACH(head, el)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00361">utlist.h:361</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00374">374</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a8c5c97079c5b259e4c0ff7c563b0f8ed"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_SEARCH_SCALAR</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname">head, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">out, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">field, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">val </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { <a class="code" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">\</a></div>
-<div class="line"><a class="code" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb"> LL_FOREACH</a>(head,out) { \</div>
-<div class="line"> if ((out)->field == (val)) break; \</div>
-<div class="line"> } \</div>
-<div class="line">} while(0)</div>
-<div class="ttc" id="utlist_8h_html_a487c0ce49f397e1743caae16a797e4bb"><div class="ttname"><a href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb">LL_FOREACH</a></div><div class="ttdeci">#define LL_FOREACH(head, el)</div><div class="ttdef"><b>Definition:</b> <a href="utlist_8h_source.html#l00361">utlist.h:361</a></div></div>
-</div><!-- fragment -->
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00367">367</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0b2137d4a0c157cb7a1a30d9340ece31"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define LL_SORT</td>
- <td>(</td>
- <td class="paramtype"> </td>
- <td class="paramname"><a class="el" href="structlist.html">list</a>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"> </td>
- <td class="paramname">cmp </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00100">100</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9f3779f3c49ddf609c97f1c3d1f29730"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define UTLIST_VERSION   1.9.1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Definition at line <a class="el" href="utlist_8h_source.html#l00027">27</a> of file <a class="el" href="utlist_8h_source.html">utlist.h</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.6"/>
-<title>tinydtls: utlist.h Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">tinydtls
-  <span id="projectnumber">0.8.2</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.6 -->
-<script type="text/javascript">
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-</script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a></div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-<div class="header">
- <div class="headertitle">
-<div class="title">utlist.h</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="utlist_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">Copyright (c) 2007-2010, Troy D. Hanson http://uthash.sourceforge.net</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">All rights reserved.</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"></span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">Redistribution and use in source and binary forms, with or without</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">modification, are permitted provided that the following conditions are met:</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"></span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Redistributions of source code must retain the above copyright</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> notice, this list of conditions and the following disclaimer.</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"></span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef _DTLS_UTLIST_H</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#define _DTLS_UTLIST_H</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="utlist_8h.html#a9f3779f3c49ddf609c97f1c3d1f29730"> 27</a></span> <span class="preprocessor">#define UTLIST_VERSION 1.9.1</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">/* </span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * This file contains macros to manipulate singly and doubly-linked lists.</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * 1. LL_ macros: singly-linked lists.</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * 2. DL_ macros: doubly-linked lists.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * 3. CDL_ macros: circular doubly-linked lists.</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * To use singly-linked lists, your structure must have a "next" pointer.</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * To use doubly-linked lists, your structure must "prev" and "next" pointers.</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * Either way, the pointer to the head of the list must be initialized to NULL.</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * </span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * ----------------.EXAMPLE -------------------------</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * struct item {</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * int id;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * struct item *prev, *next;</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * }</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * struct item *list = NULL:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * int main() {</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * struct item *item;</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * ... allocate and populate item ...</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * DL_APPEND(list, item);</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * }</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * --------------------------------------------------</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * For doubly-linked lists, the append and delete macros are O(1)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> * For singly-linked lists, append and delete are O(n) but prepend is O(1)</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> * The sort macro is O(n log(n)) for all types of single/double/circular lists.</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">/* These macros use decltype or the earlier __typeof GNU extension.</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> As decltype is only available in newer compilers (VS2010 or gcc 4.3+</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> when compiling c++ code), this code uses whatever method is needed</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> or, for VS2008 where neither is available, uses casting workarounds. */</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#ifdef _MSC_VER </span><span class="comment">/* MS compiler */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor">#if _MSC_VER >= 1600 && __cplusplus </span><span class="comment">/* VS2010 and newer in C++ mode */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span><span class="preprocessor">#define LDECLTYPE(x) decltype(x)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* VS2008 or older (or VS2010 in C mode) */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span><span class="preprocessor">#define NO_DECLTYPE</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span><span class="preprocessor">#define LDECLTYPE(x) char*</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* GNU, Sun and other compilers */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="utlist_8h.html#ae8c9864192170d02fd996abaa1589611"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define LDECLTYPE(x) __typeof(x)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">/* for VS2008 we use some workarounds to get around the lack of decltype,</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> * namely, we always reassign our tmp variable to the list head if we need</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> * to dereference its prev/next pointers, and save/restore the real head.*/</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#ifdef NO_DECLTYPE</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span><span class="preprocessor">#define _SV(elt,list) _tmp = (char*)(list); {char **_alias = (char**)&(list); *_alias = (elt); }</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"></span><span class="preprocessor">#define _NEXT(elt,list) ((char*)((list)->next))</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"></span><span class="preprocessor">#define _NEXTASGN(elt,list,to) { char **_alias = (char**)&((list)->next); *_alias=(char*)(to); }</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"></span><span class="preprocessor">#define _PREV(elt,list) ((char*)((list)->prev))</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span><span class="preprocessor">#define _PREVASGN(elt,list,to) { char **_alias = (char**)&((list)->prev); *_alias=(char*)(to); }</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"></span><span class="preprocessor">#define _RS(list) { char **_alias = (char**)&(list); *_alias=_tmp; }</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span><span class="preprocessor">#define _CASTASGN(a,b) { char **_alias = (char**)&(a); *_alias=(char*)(b); }</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"></span><span class="preprocessor">#else </span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="utlist_8h.html#a9eded80a8b98df631e889eb72b77c7a4"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _SV(elt,list)</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="utlist_8h.html#aec696573e92f2ebd0a1641d77bb5b0fe"> 88</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _NEXT(elt,list) ((elt)->next)</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="utlist_8h.html#a93e2d161c8ad8350100a4fad092ef058"> 89</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _NEXTASGN(elt,list,to) ((elt)->next)=(to)</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="utlist_8h.html#ade8452ec59d6bf7ef23770ee4d96f8d5"> 90</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _PREV(elt,list) ((elt)->prev)</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="utlist_8h.html#a6f6acf0ac7f07dcb26cef2110fef496a"> 91</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _PREVASGN(elt,list,to) ((elt)->prev)=(to)</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="utlist_8h.html#a9916f2c26fd7f6f7edb1f6baf400f315"> 92</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _RS(list)</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="utlist_8h.html#a1eb4a3192390405087ef1bb6c57241e3"> 93</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _CASTASGN(a,b) (a)=(b)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">/******************************************************************************</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * The sort macro is an adaptation of Simon Tatham's O(n log(n)) mergesort *</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * Unwieldy variable names used here to avoid shadowing passed-in variables. *</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> *****************************************************************************/</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="utlist_8h.html#a0b2137d4a0c157cb7a1a30d9340ece31"> 100</a></span> <span class="preprocessor">#define LL_SORT(list, cmp) \</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"> LDECLTYPE(list) _ls_p; \</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"> LDECLTYPE(list) _ls_q; \</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"> LDECLTYPE(list) _ls_e; \</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> LDECLTYPE(list) _ls_tail; \</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"> LDECLTYPE(list) _ls_oldhead; \</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"> LDECLTYPE(list) _tmp; \</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> int _ls_insize, _ls_nmerges, _ls_psize, _ls_qsize, _ls_i, _ls_looping; \</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> if (list) { \</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"> _ls_insize = 1; \</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"> _ls_looping = 1; \</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"> while (_ls_looping) { \</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"> _CASTASGN(_ls_p,list); \</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"> _CASTASGN(_ls_oldhead,list); \</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"> list = NULL; \</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"> _ls_tail = NULL; \</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"> _ls_nmerges = 0; \</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"> while (_ls_p) { \</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> _ls_nmerges++; \</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"> _ls_q = _ls_p; \</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"> _ls_psize = 0; \</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"> for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"> _ls_psize++; \</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"> _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); \</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"> if (!_ls_q) break; \</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"> _ls_qsize = _ls_insize; \</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"> while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"> if (_ls_psize == 0) { \</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"> } else if (_ls_qsize == 0 || !_ls_q) { \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> } else if (cmp(_ls_p,_ls_q) <= 0) { \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> if (_ls_tail) { \</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"> _CASTASGN(list,_ls_e); \</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"> _ls_tail = _ls_e; \</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"> _ls_p = _ls_q; \</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL); _RS(list); \</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> if (_ls_nmerges <= 1) { \</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> _ls_looping=0; \</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"> _ls_insize *= 2; \</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"> } else _tmp=NULL; </span><span class="comment">/* quiet gcc unused variable warning */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="utlist_8h.html#ad966f284f615a2ced4028258fa08f8f3"> 156</a></span> <span class="preprocessor">#define DL_SORT(list, cmp) \</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> LDECLTYPE(list) _ls_p; \</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"> LDECLTYPE(list) _ls_q; \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"> LDECLTYPE(list) _ls_e; \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"> LDECLTYPE(list) _ls_tail; \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"> LDECLTYPE(list) _ls_oldhead; \</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"> LDECLTYPE(list) _tmp; \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> int _ls_insize, _ls_nmerges, _ls_psize, _ls_qsize, _ls_i, _ls_looping; \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> if (list) { \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> _ls_insize = 1; \</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"> _ls_looping = 1; \</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"> while (_ls_looping) { \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"> _CASTASGN(_ls_p,list); \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"> _CASTASGN(_ls_oldhead,list); \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> list = NULL; \</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> _ls_tail = NULL; \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> _ls_nmerges = 0; \</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> while (_ls_p) { \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> _ls_nmerges++; \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> _ls_q = _ls_p; \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> _ls_psize = 0; \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"> for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"> _ls_psize++; \</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"> _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); \</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> if (!_ls_q) break; \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> _ls_qsize = _ls_insize; \</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"> if (_ls_psize == 0) { \</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"> } else if (_ls_qsize == 0 || !_ls_q) { \</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"> } else if (cmp(_ls_p,_ls_q) <= 0) { \</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> if (_ls_tail) { \</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"> _CASTASGN(list,_ls_e); \</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail); _RS(list); \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> _ls_tail = _ls_e; \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"> _ls_p = _ls_q; \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"> _CASTASGN(list->prev, _ls_tail); \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,NULL); _RS(list); \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"> if (_ls_nmerges <= 1) { \</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"> _ls_looping=0; \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> _ls_insize *= 2; \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> } else _tmp=NULL; </span><span class="comment">/* quiet gcc unused variable warning */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="utlist_8h.html#a13add78e5524efe1ae6bfb1631b2dc17"> 214</a></span> <span class="preprocessor">#define CDL_SORT(list, cmp) \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> LDECLTYPE(list) _ls_p; \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> LDECLTYPE(list) _ls_q; \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> LDECLTYPE(list) _ls_e; \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> LDECLTYPE(list) _ls_tail; \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> LDECLTYPE(list) _ls_oldhead; \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> LDECLTYPE(list) _tmp; \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> LDECLTYPE(list) _tmp2; \</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> int _ls_insize, _ls_nmerges, _ls_psize, _ls_qsize, _ls_i, _ls_looping; \</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> if (list) { \</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"> _ls_insize = 1; \</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"> _ls_looping = 1; \</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> while (_ls_looping) { \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> _CASTASGN(_ls_p,list); \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> _CASTASGN(_ls_oldhead,list); \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> list = NULL; \</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> _ls_tail = NULL; \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> _ls_nmerges = 0; \</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> while (_ls_p) { \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> _ls_nmerges++; \</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> _ls_q = _ls_p; \</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> _ls_psize = 0; \</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"> for (_ls_i = 0; _ls_i < _ls_insize; _ls_i++) { \</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"> _ls_psize++; \</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"> _SV(_ls_q,list); \</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"> if (_NEXT(_ls_q,list) == _ls_oldhead) { \</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"> _ls_q = NULL; \</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> _ls_q = _NEXT(_ls_q,list); \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> _RS(list); \</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> if (!_ls_q) break; \</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"> _ls_qsize = _ls_insize; \</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"> while (_ls_psize > 0 || (_ls_qsize > 0 && _ls_q)) { \</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> if (_ls_psize == 0) { \</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> if (_ls_q == _ls_oldhead) { _ls_q = NULL; } \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> } else if (_ls_qsize == 0 || !_ls_q) { \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> if (_ls_p == _ls_oldhead) { _ls_p = NULL; } \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> } else if (cmp(_ls_p,_ls_q) <= 0) { \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> _ls_e = _ls_p; _SV(_ls_p,list); _ls_p = _NEXT(_ls_p,list); _RS(list); _ls_psize--; \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> if (_ls_p == _ls_oldhead) { _ls_p = NULL; } \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> _ls_e = _ls_q; _SV(_ls_q,list); _ls_q = _NEXT(_ls_q,list); _RS(list); _ls_qsize--; \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> if (_ls_q == _ls_oldhead) { _ls_q = NULL; } \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> if (_ls_tail) { \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_ls_e); _RS(list); \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> _CASTASGN(list,_ls_e); \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> _SV(_ls_e,list); _PREVASGN(_ls_e,list,_ls_tail); _RS(list); \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> _ls_tail = _ls_e; \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> _ls_p = _ls_q; \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"> _CASTASGN(list->prev,_ls_tail); \</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"> _CASTASGN(_tmp2,list); \</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"> _SV(_ls_tail,list); _NEXTASGN(_ls_tail,list,_tmp2); _RS(list); \</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"> if (_ls_nmerges <= 1) { \</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"> _ls_looping=0; \</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> _ls_insize *= 2; \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> } else _tmp=NULL; </span><span class="comment">/* quiet gcc unused variable warning */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">/******************************************************************************</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment"> * singly linked list macros (non-circular) *</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment"> *****************************************************************************/</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="utlist_8h.html#a851fb4b583b0dc000097eeee6dd551d4"> 287</a></span> <span class="preprocessor">#define LL_PREPEND(head,add) \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> (add)->next = head; \</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> head = add; \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="utlist_8h.html#ace33c571c3df78e721a99a4494983855"> 293</a></span> <span class="preprocessor">#define LL_APPEND(head,add) \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> LDECLTYPE(head) _tmp; \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> (add)->next=NULL; \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> _tmp = head; \</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"> while (_tmp->next) { _tmp = _tmp->next; } \</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"> _tmp->next=(add); \</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> (head)=(add); \</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="utlist_8h.html#a34a4e54d488753465f6e87bb63b93c0e"> 306</a></span> <span class="preprocessor">#define LL_DELETE(head,del) \</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> LDECLTYPE(head) _tmp; \</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> if ((head) == (del)) { \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> (head)=(head)->next; \</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> _tmp = head; \</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> while (_tmp->next && (_tmp->next != (del))) { \</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> _tmp = _tmp->next; \</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"> if (_tmp->next) { \</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> _tmp->next = ((del)->next); \</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment">/* Here are VS2008 replacements for LL_APPEND and LL_DELETE */</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="utlist_8h.html#a3c301ddde2cfd8c32df4137c902b66f3"> 323</a></span> <span class="preprocessor">#define LL_APPEND_VS2008(head,add) \</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> (add)->next = head; </span><span class="comment">/* use add->next as a temp variable */</span><span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> while ((add)->next->next) { (add)->next = (add)->next->next; } \</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> (add)->next->next=(add); \</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> (head)=(add); \</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> (add)->next=NULL; \</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="utlist_8h.html#a832d4d46464fb2dada9e198ad4f70cdf"> 335</a></span> <span class="preprocessor">#define LL_DELETE_VS2008(head,del) \</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"> if ((head) == (del)) { \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> (head)=(head)->next; \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> char *_tmp = (char*)(head); \</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> while (head->next && (head->next != (del))) { \</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"> head = head->next; \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"> if (head->next) { \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> head->next = ((del)->next); \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> char **_head_alias = (char**)&(head); \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> *_head_alias = _tmp; \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef NO_DECLTYPE</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"></span><span class="preprocessor">#undef LL_APPEND</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"></span><span class="preprocessor">#define LL_APPEND LL_APPEND_VS2008</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"></span><span class="preprocessor">#undef LL_DELETE</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"></span><span class="preprocessor">#define LL_DELETE LL_DELETE_VS2008</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"></span><span class="comment">/* end VS2008 replacements */</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="utlist_8h.html#a487c0ce49f397e1743caae16a797e4bb"> 361</a></span> <span class="preprocessor">#define LL_FOREACH(head,el) \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> for(el=head;el;el=el->next)</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="utlist_8h.html#ad0a695664d31f0b929fd50b39ebcf0ef"> 364</a></span> <span class="preprocessor">#define LL_FOREACH_SAFE(head,el,tmp) \</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="utlist_8h.html#a8c5c97079c5b259e4c0ff7c563b0f8ed"> 367</a></span> <span class="preprocessor">#define LL_SEARCH_SCALAR(head,out,field,val) \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> LL_FOREACH(head,out) { \</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> if ((out)->field == (val)) break; \</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor">} while(0) </span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="utlist_8h.html#af7a5ae66c9386c4b89403d9ca038adcb"> 374</a></span> <span class="preprocessor">#define LL_SEARCH(head,out,elt,cmp) \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> LL_FOREACH(head,out) { \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> if ((cmp(out,elt))==0) break; \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor">} while(0) </span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="comment">/******************************************************************************</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="comment"> * doubly linked list macros (non-circular) *</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment"> *****************************************************************************/</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="utlist_8h.html#a78be4dea3344ba1b1c7fe1b893c0fdfa"> 384</a></span> <span class="preprocessor">#define DL_PREPEND(head,add) \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> (add)->next = head; \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> (add)->prev = (head)->prev; \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> (head)->prev = (add); \</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> (add)->prev = (add); \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> (head) = (add); \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="utlist_8h.html#a17d40c945e1dc55490feb2fe160670c8"> 396</a></span> <span class="preprocessor">#define DL_APPEND(head,add) \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> (add)->prev = (head)->prev; \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> (head)->prev->next = (add); \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> (head)->prev = (add); \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> (add)->next = NULL; \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> (head)=(add); \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> (head)->prev = (head); \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> (head)->next = NULL; \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">} while (0);</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="utlist_8h.html#aad429903354ffe8cdf4ca2e9d0ae89cc"> 410</a></span> <span class="preprocessor">#define DL_DELETE(head,del) \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> if ((del)->prev == (del)) { \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> (head)=NULL; \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> } else if ((del)==(head)) { \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> (del)->next->prev = (del)->prev; \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> (head) = (del)->next; \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> (del)->prev->next = (del)->next; \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> if ((del)->next) { \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> (del)->next->prev = (del)->prev; \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> (head)->prev = (del)->prev; \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor">} while (0);</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="utlist_8h.html#abb0c2851c5f0567be7b8827ce5168ef7"> 428</a></span> <span class="preprocessor">#define DL_FOREACH(head,el) \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> for(el=head;el;el=el->next)</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="comment">/* this version is safe for deleting the elements during iteration */</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="utlist_8h.html#a3bb0c84a69846d2f019a97ea0b4709aa"> 432</a></span> <span class="preprocessor">#define DL_FOREACH_SAFE(head,el,tmp) \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment">/* these are identical to their singly-linked list counterparts */</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="utlist_8h.html#a172fce2d647fdedadf0f8080e0441c5b"> 436</a></span> <span class="preprocessor">#define DL_SEARCH_SCALAR LL_SEARCH_SCALAR</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="utlist_8h.html#a819373d14278b52c313b743acc292ba0"> 437</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DL_SEARCH LL_SEARCH</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment">/******************************************************************************</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment"> * circular doubly linked list macros *</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment"> *****************************************************************************/</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="utlist_8h.html#a6c6a7232d281eab4b18563b92e5653bd"> 442</a></span> <span class="preprocessor">#define CDL_PREPEND(head,add) \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> if (head) { \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> (add)->prev = (head)->prev; \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> (add)->next = (head); \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> (head)->prev = (add); \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> (add)->prev->next = (add); \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> (add)->prev = (add); \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> (add)->next = (add); \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor">(head)=(add); \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor">} while (0)</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="utlist_8h.html#a60fd7696c4d0865f53a07579a7b08235"> 456</a></span> <span class="preprocessor">#define CDL_DELETE(head,del) \</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> if ( ((head)==(del)) && ((head)->next == (head))) { \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> (head) = 0L; \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> } else { \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> (del)->next->prev = (del)->prev; \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> (del)->prev->next = (del)->next; \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> if ((del) == (head)) (head)=(del)->next; \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor">} while (0);</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="utlist_8h.html#a795df7857792d7e811709a060c911a36"> 467</a></span> <span class="preprocessor">#define CDL_FOREACH(head,el) \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> for(el=head;el;el=(el->next==head ? 0L : el->next)) </span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="utlist_8h.html#abdb80106f7733e37fbe4f62e9d97ccfd"> 470</a></span> <span class="preprocessor">#define CDL_FOREACH_SAFE(head,el,tmp1,tmp2) \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> for((el)=(head), ((tmp1)=(head)?((head)->prev):NULL); \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> (el) && ((tmp2)=(el)->next, 1); \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> ((el) = (((el)==(tmp1)) ? 0L : (tmp2))))</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="utlist_8h.html#ad064cddb894b478b3c3cd23719f58651"> 475</a></span> <span class="preprocessor">#define CDL_SEARCH_SCALAR(head,out,field,val) \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> CDL_FOREACH(head,out) { \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> if ((out)->field == (val)) break; \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor">} while(0) </span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="utlist_8h.html#afb329a0bdf1fa0b644317e9d84082e1e"> 482</a></span> <span class="preprocessor">#define CDL_SEARCH(head,out,elt,cmp) \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">do { \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> CDL_FOREACH(head,out) { \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> if ((cmp(out,elt))==0) break; \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor">} while(0) </span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"></span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor">#endif </span><span class="comment">/* _DTLS_UTLIST_H */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"></span></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Feb 27 2015 15:15:33 for tinydtls by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.6
-</small></address>
-</body>
-</html>