eap_sake_common.c File Reference

EAP server/peer: EAP-SAKE shared routines. More...

#include "includes.h"
#include "common.h"
#include "sha1.h"
#include "wpabuf.h"
#include "eap_defs.h"
#include "eap_sake_common.h"
Include dependency graph for eap_sake_common.c:

Go to the source code of this file.

Functions

int eap_sake_parse_attributes (const u8 *buf, size_t len, struct eap_sake_parse_attr *attr)
 Parse EAP-SAKE attributes.
void eap_sake_derive_keys (const u8 *root_secret_a, const u8 *root_secret_b, const u8 *rand_s, const u8 *rand_p, u8 *tek, u8 *msk, u8 *emsk)
 Derive EAP-SAKE keys.
int eap_sake_compute_mic (const u8 *tek_auth, const u8 *rand_s, const u8 *rand_p, const u8 *serverid, size_t serverid_len, const u8 *peerid, size_t peerid_len, int peer, const u8 *eap, size_t eap_len, const u8 *mic_pos, u8 *mic)
 Compute EAP-SAKE MIC for an EAP packet.
void eap_sake_add_attr (struct wpabuf *buf, u8 type, const u8 *data, size_t len)

Detailed Description

EAP server/peer: EAP-SAKE shared routines.

Copyright
Copyright (c) 2006-2007, Jouni Malinen <j@w1.fi>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Alternatively, this software may be distributed under the terms of BSD license.

See README and COPYING for more details.

Definition in file eap_sake_common.c.


Function Documentation

int eap_sake_compute_mic ( const u8 *  tek_auth,
const u8 *  rand_s,
const u8 *  rand_p,
const u8 *  serverid,
size_t  serverid_len,
const u8 *  peerid,
size_t  peerid_len,
int  peer,
const u8 *  eap,
size_t  eap_len,
const u8 *  mic_pos,
u8 *  mic 
)

Compute EAP-SAKE MIC for an EAP packet.

Parameters:
tek_auth 16-byte TEK-Auth
rand_s 16-byte RAND_S
rand_p 16-byte RAND_P
serverid SERVERID
serverid_len SERVERID length
peerid PEERID
peerid_len PEERID length
peer MIC calculation for 0 = Server, 1 = Peer message
eap EAP packet
eap_len EAP packet length
mic_pos MIC position in the EAP packet (must be [eap .. eap + eap_len])
mic Buffer for the computed 16-byte MIC

Definition at line 327 of file eap_sake_common.c.

void eap_sake_derive_keys ( const u8 *  root_secret_a,
const u8 *  root_secret_b,
const u8 *  rand_s,
const u8 *  rand_p,
u8 *  tek,
u8 *  msk,
u8 *  emsk 
)

Derive EAP-SAKE keys.

Parameters:
root_secret_a 16-byte Root-Secret-A
root_secret_b 16-byte Root-Secret-B
rand_s 16-byte RAND_S
rand_p 16-byte RAND_P
tek Buffer for Temporary EAK Keys (TEK-Auth[16] | TEK-Cipher[16])
msk Buffer for 64-byte MSK
emsk Buffer for 64-byte EMSK

This function derives EAP-SAKE keys as defined in RFC 4763, section 3.2.6.

Definition at line 269 of file eap_sake_common.c.

Here is the call graph for this function:

int eap_sake_parse_attributes ( const u8 *  buf,
size_t  len,
struct eap_sake_parse_attr attr 
)

Parse EAP-SAKE attributes.

Parameters:
buf Packet payload (starting with the first attribute)
len Payload length
attr Structure to be filled with found attributes
Returns:
0 on success or -1 on failure

Definition at line 168 of file eap_sake_common.c.

Here is the call graph for this function:

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Sat Nov 21 23:21:07 2009 for hostapd by  doxygen 1.6.1