mbed port of tinydtls

Committer:
ashleymills
Date:
Fri Oct 11 08:46:21 2013 +0000
Revision:
1:bc8a649bad13
Parent:
0:04990d454f45
Cleaned up all the debug stuff I added finding the hash table bug.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 0:04990d454f45 1 /* dtls -- a very basic DTLS implementation
ashleymills 0:04990d454f45 2 *
ashleymills 0:04990d454f45 3 * Copyright (C) 2011--2013 Olaf Bergmann <bergmann@tzi.org>
ashleymills 0:04990d454f45 4 *
ashleymills 0:04990d454f45 5 * Permission is hereby granted, free of charge, to any person
ashleymills 0:04990d454f45 6 * obtaining a copy of this software and associated documentation
ashleymills 0:04990d454f45 7 * files (the "Software"), to deal in the Software without
ashleymills 0:04990d454f45 8 * restriction, including without limitation the rights to use, copy,
ashleymills 0:04990d454f45 9 * modify, merge, publish, distribute, sublicense, and/or sell copies
ashleymills 0:04990d454f45 10 * of the Software, and to permit persons to whom the Software is
ashleymills 0:04990d454f45 11 * furnished to do so, subject to the following conditions:
ashleymills 0:04990d454f45 12 *
ashleymills 0:04990d454f45 13 * The above copyright notice and this permission notice shall be
ashleymills 0:04990d454f45 14 * included in all copies or substantial portions of the Software.
ashleymills 0:04990d454f45 15 *
ashleymills 0:04990d454f45 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
ashleymills 0:04990d454f45 17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
ashleymills 0:04990d454f45 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
ashleymills 0:04990d454f45 19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
ashleymills 0:04990d454f45 20 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ashleymills 0:04990d454f45 21 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
ashleymills 0:04990d454f45 22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
ashleymills 0:04990d454f45 23 * SOFTWARE.
ashleymills 0:04990d454f45 24 */
ashleymills 0:04990d454f45 25
ashleymills 0:04990d454f45 26 /**
ashleymills 0:04990d454f45 27 * @file state.h
ashleymills 0:04990d454f45 28 * @brief state information for DTLS FSM
ashleymills 0:04990d454f45 29 */
ashleymills 0:04990d454f45 30
ashleymills 0:04990d454f45 31 #ifndef _STATE_H_
ashleymills 0:04990d454f45 32 #define _STATE_H_
ashleymills 0:04990d454f45 33
ashleymills 0:04990d454f45 34 #include "config.h"
ashleymills 0:04990d454f45 35 #include "global.h"
ashleymills 0:04990d454f45 36 #include "hmac.h"
ashleymills 0:04990d454f45 37
ashleymills 0:04990d454f45 38 typedef enum {
ashleymills 0:04990d454f45 39 DTLS_STATE_INIT = 0, DTLS_STATE_SERVERHELLO, DTLS_STATE_KEYEXCHANGE,
ashleymills 0:04990d454f45 40 DTLS_STATE_WAIT_FINISHED, DTLS_STATE_FINISHED,
ashleymills 0:04990d454f45 41 /* client states */
ashleymills 0:04990d454f45 42 DTLS_STATE_CLIENTHELLO, DTLS_STATE_WAIT_SERVERHELLODONE,
ashleymills 0:04990d454f45 43 DTLS_STATE_WAIT_SERVERFINISHED,
ashleymills 0:04990d454f45 44
ashleymills 0:04990d454f45 45 DTLS_STATE_CONNECTED,
ashleymills 0:04990d454f45 46 DTLS_STATE_CLOSING,
ashleymills 0:04990d454f45 47 DTLS_STATE_CLOSED,
ashleymills 0:04990d454f45 48 } dtls_state_t;
ashleymills 0:04990d454f45 49
ashleymills 0:04990d454f45 50 typedef struct {
ashleymills 0:04990d454f45 51 uint24 mseq; /**< handshake message sequence number counter */
ashleymills 0:04990d454f45 52
ashleymills 0:04990d454f45 53 /** pending config that is updated during handshake */
ashleymills 0:04990d454f45 54 /* FIXME: dtls_security_parameters_t pending_config; */
ashleymills 0:04990d454f45 55
ashleymills 0:04990d454f45 56 /* temporary storage for the final handshake hash */
ashleymills 0:04990d454f45 57 dtls_hash_ctx hs_hash;
ashleymills 0:04990d454f45 58 } dtls_hs_state_t;
ashleymills 0:04990d454f45 59
ashleymills 0:04990d454f45 60 #endif /* _STATE_H_ */