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

Go to the source code of this file.
Data Structures | |
| struct | eap_gpsk_csuite |
Defines | |
| #define | EAP_GPSK_OPCODE_GPSK_1 1 |
| #define | EAP_GPSK_OPCODE_GPSK_2 2 |
| #define | EAP_GPSK_OPCODE_GPSK_3 3 |
| #define | EAP_GPSK_OPCODE_GPSK_4 4 |
| #define | EAP_GPSK_OPCODE_FAIL 5 |
| #define | EAP_GPSK_OPCODE_PROTECTED_FAIL 6 |
| #define | EAP_GPSK_FAIL_PSK_NOT_FOUND 0x00000001 |
| #define | EAP_GPSK_FAIL_AUTHENTICATION_FAILURE 0x00000002 |
| #define | EAP_GPSK_FAIL_AUTHORIZATION_FAILURE 0x00000003 |
| #define | EAP_GPSK_RAND_LEN 32 |
| #define | EAP_GPSK_MAX_SK_LEN 32 |
| #define | EAP_GPSK_MAX_PK_LEN 32 |
| #define | EAP_GPSK_MAX_MIC_LEN 32 |
| #define | EAP_GPSK_VENDOR_IETF 0x00000000 |
| #define | EAP_GPSK_CIPHER_RESERVED 0x000000 |
| #define | EAP_GPSK_CIPHER_AES 0x000001 |
| #define | EAP_GPSK_CIPHER_SHA256 0x000002 |
Functions | |
| int | eap_gpsk_supported_ciphersuite (int vendor, int specifier) |
| Check whether ciphersuite is supported. | |
| int | eap_gpsk_derive_keys (const u8 *psk, size_t psk_len, int vendor, int specifier, const u8 *rand_client, const u8 *rand_server, const u8 *id_client, size_t id_client_len, const u8 *id_server, size_t id_server_len, u8 *msk, u8 *emsk, u8 *sk, size_t *sk_len, u8 *pk, size_t *pk_len) |
| Derive EAP-GPSK keys. | |
| size_t | eap_gpsk_mic_len (int vendor, int specifier) |
| Get the length of the MIC. | |
| int | eap_gpsk_compute_mic (const u8 *sk, size_t sk_len, int vendor, int specifier, const u8 *data, size_t len, u8 *mic) |
| Compute EAP-GPSK MIC for an EAP packet. | |
Variables | |
| struct eap_gpsk_csuite | STRUCT_PACKED |
EAP server/peer: EAP-GPSK shared routines.
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_gpsk_common.h.
| int eap_gpsk_compute_mic | ( | const u8 * | sk, | |
| size_t | sk_len, | |||
| int | vendor, | |||
| int | specifier, | |||
| const u8 * | data, | |||
| size_t | len, | |||
| u8 * | mic | |||
| ) |
Compute EAP-GPSK MIC for an EAP packet.
| sk | Session key SK from eap_gpsk_derive_keys() | |
| sk_len | SK length in bytes from eap_gpsk_derive_keys() | |
| vendor | CSuite/Vendor | |
| specifier | CSuite/Specifier | |
| data | Input data to MIC | |
| len | Input data length in bytes | |
| mic | Buffer for the computed MIC, eap_gpsk_mic_len(cipher) bytes |
Definition at line 405 of file eap_gpsk_common.c.

| int eap_gpsk_derive_keys | ( | const u8 * | psk, | |
| size_t | psk_len, | |||
| int | vendor, | |||
| int | specifier, | |||
| const u8 * | rand_peer, | |||
| const u8 * | rand_server, | |||
| const u8 * | id_peer, | |||
| size_t | id_peer_len, | |||
| const u8 * | id_server, | |||
| size_t | id_server_len, | |||
| u8 * | msk, | |||
| u8 * | emsk, | |||
| u8 * | sk, | |||
| size_t * | sk_len, | |||
| u8 * | pk, | |||
| size_t * | pk_len | |||
| ) |
Derive EAP-GPSK keys.
| psk | Pre-shared key | |
| psk_len | Length of psk in bytes | |
| vendor | CSuite/Vendor | |
| specifier | CSuite/Specifier | |
| rand_peer | 32-byte RAND_Peer | |
| rand_server | 32-byte RAND_Server | |
| id_peer | ID_Peer | |
| id_peer_len | Length of ID_Peer | |
| id_server | ID_Server | |
| id_server_len | Length of ID_Server | |
| msk | Buffer for 64-byte MSK | |
| emsk | Buffer for 64-byte EMSK | |
| sk | Buffer for SK (at least EAP_GPSK_MAX_SK_LEN bytes) | |
| sk_len | Buffer for returning length of SK | |
| pk | Buffer for PK (at least EAP_GPSK_MAX_PK_LEN bytes) | |
| pk_len | Buffer for returning length of PK |
Definition at line 290 of file eap_gpsk_common.c.

| size_t eap_gpsk_mic_len | ( | int | vendor, | |
| int | specifier | |||
| ) |
Get the length of the MIC.
| vendor | CSuite/Vendor | |
| specifier | CSuite/Specifier |
Definition at line 362 of file eap_gpsk_common.c.
| int eap_gpsk_supported_ciphersuite | ( | int | vendor, | |
| int | specifier | |||
| ) |
Check whether ciphersuite is supported.
| vendor | CSuite/Vendor | |
| specifier | CSuite/Specifier |
Definition at line 35 of file eap_gpsk_common.c.
1.6.1