wpa_supplicant / hostapd 2.0
Functions

eap_pax_common.c File Reference

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

#include "includes.h"
#include "common.h"
#include "crypto/sha1.h"
#include "eap_pax_common.h"

Functions

int eap_pax_kdf (u8 mac_id, const u8 *key, size_t key_len, const char *identifier, const u8 *entropy, size_t entropy_len, size_t output_len, u8 *output)
 PAX Key Derivation Function.
int eap_pax_mac (u8 mac_id, const u8 *key, size_t key_len, const u8 *data1, size_t data1_len, const u8 *data2, size_t data2_len, const u8 *data3, size_t data3_len, u8 *mac)
 EAP-PAX MAC.
int eap_pax_initial_key_derivation (u8 mac_id, const u8 *ak, const u8 *e, u8 *mk, u8 *ck, u8 *ick)
 EAP-PAX initial key derivation.

Detailed Description

EAP server/peer: EAP-PAX shared routines.

Copyright
Copyright (c) 2005, Jouni Malinen <j@w1.fi>

This software may be distributed under the terms of the BSD license. See README for more details.


Function Documentation

int eap_pax_initial_key_derivation ( u8  mac_id,
const u8 *  ak,
const u8 *  e,
u8 *  mk,
u8 *  ck,
u8 *  ick 
)

EAP-PAX initial key derivation.

Parameters:
mac_idMAC ID (EAP_PAX_MAC_*) / currently, only HMAC_SHA1_128 is supported
akAuthentication Key
eEntropy
mkBuffer for the derived Master Key
ckBuffer for the derived Confirmation Key
ickBuffer for the derived Integrity Check Key
Returns:
0 on success, -1 on failure
int eap_pax_kdf ( u8  mac_id,
const u8 *  key,
size_t  key_len,
const char *  identifier,
const u8 *  entropy,
size_t  entropy_len,
size_t  output_len,
u8 *  output 
)

PAX Key Derivation Function.

Parameters:
mac_idMAC ID (EAP_PAX_MAC_*) / currently, only HMAC_SHA1_128 is supported
keySecret key (X)
key_lenLength of the secret key in bytes
identifierPublic identifier for the key (Y)
entropyExchanged entropy to seed the KDF (Z)
entropy_lenLength of the entropy in bytes
output_lenOutput len in bytes (W)
outputBuffer for the derived key
Returns:
0 on success, -1 failed

RFC 4746, Section 2.6: PAX-KDF-W(X, Y, Z)

int eap_pax_mac ( u8  mac_id,
const u8 *  key,
size_t  key_len,
const u8 *  data1,
size_t  data1_len,
const u8 *  data2,
size_t  data2_len,
const u8 *  data3,
size_t  data3_len,
u8 *  mac 
)

EAP-PAX MAC.

Parameters:
mac_idMAC ID (EAP_PAX_MAC_*) / currently, only HMAC_SHA1_128 is supported
keySecret key
key_lenLength of the secret key in bytes
data1Optional data, first block; NULL if not used
data1_lenLength of data1 in bytes
data2Optional data, second block; NULL if not used
data2_lenLength of data2 in bytes
data3Optional data, third block; NULL if not used
data3_lenLength of data3 in bytes
macBuffer for the MAC value (EAP_PAX_MAC_LEN = 16 bytes)
Returns:
0 on success, -1 on failure

Wrapper function to calculate EAP-PAX MAC.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines