EAP server/peer: EAP-GPSK shared routines.
More...
Go to the source code of this file.
|
#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 |
|
|
int | eap_gpsk_supported_ciphersuite (int vendor, int specifier) |
| Check whether ciphersuite is supported. More...
|
|
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. More...
|
|
int | eap_gpsk_derive_session_id (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 method_type, u8 *sid, size_t *sid_len) |
| Derive EAP-GPSK Session ID. More...
|
|
size_t | eap_gpsk_mic_len (int vendor, int specifier) |
| Get the length of the MIC. More...
|
|
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. More...
|
|
EAP server/peer: EAP-GPSK shared routines.
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.
- Parameters
-
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 |
- Returns
- 0 on success, -1 on failure
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.
- Parameters
-
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 |
- Returns
- 0 on success, -1 on failure
int eap_gpsk_derive_session_id |
( |
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 |
method_type, |
|
|
u8 * |
sid, |
|
|
size_t * |
sid_len |
|
) |
| |
Derive EAP-GPSK Session ID.
- Parameters
-
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 |
method_type | EAP Authentication Method Type |
sid | Buffer for 17-byte Session ID |
sid_len | Buffer for returning length of Session ID |
- Returns
- 0 on success, -1 on failure
size_t eap_gpsk_mic_len |
( |
int |
vendor, |
|
|
int |
specifier |
|
) |
| |
Get the length of the MIC.
- Parameters
-
vendor | CSuite/Vendor |
specifier | CSuite/Specifier |
- Returns
- MIC length in bytes
int eap_gpsk_supported_ciphersuite |
( |
int |
vendor, |
|
|
int |
specifier |
|
) |
| |
Check whether ciphersuite is supported.
- Parameters
-
vendor | CSuite/Vendor |
specifier | CSuite/Specifier |
- Returns
- 1 if ciphersuite is support, or 0 if not