⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eapmschapv2.h

📁 linux 下通过802.1认证的安装包
💻 H
字号:
/**
 * EAP-MSCHAPv2 Function Headers
 * 
 * Licensed under a dual GPL/BSD license.  (See LICENSE file for more info.)
 *
 * \file eapmschapv2.h
 *
 * \author chris@open1x.org
 *
 **/

#ifndef _EAP_MSCHAPV2_H_
#define _EAP_MSCHAPV2_H_

#ifndef WINDOWS
#include <inttypes.h>
#endif

#include "../../context.h"

#define MS_CHAPV2_CHALLENGE     1
#define MS_CHAPV2_RESPONSE      2
#define MS_CHAPV2_SUCCESS       3
#define MS_CHAPV2_FAILURE       4
#define MS_CHAPV2_CHANGE_PWD    7

struct mschapv2_vars {
  uint8_t *AuthenticatorChallenge;
  uint8_t *PeerChallenge;
  uint8_t *NtResponse;
  uint8_t *keyingMaterial;
  uint8_t MS_CHAPv2_ID;
  uint8_t eap_fast_mode;
  char *password;
};

struct mschapv2_challenge {
  uint8_t OpCode;
  uint8_t MS_CHAPv2_ID;
  uint16_t MS_Length;
  uint8_t Value_Size;
  uint8_t Challenge[16];
  // Everything else in the packet should be the name of the RADIUS server.
};

struct mschapv2_response {
  uint8_t OpCode;
  uint8_t MS_CHAPv2_ID;
  uint16_t MS_Length;
  uint8_t Value_Size;
  uint8_t Peer_Challenge[16];
  uint8_t Reserved[8];
  uint8_t NT_Response[24];
  uint8_t Flags;
};

struct mschapv2_success_request {
  uint8_t OpCode;
  uint8_t MS_CHAPv2_ID;
  uint16_t MS_Length;
  uint8_t MsgField[42];   // S=<auth_string>
};

struct mschapv2_fail_request {
  uint8_t OpCode;
  uint8_t MS_CHAPv2_ID;
  uint16_t MS_Length;
  uint8_t MsgField[0];
};

// Define the failure codes listed in the internet draft standard.
#define MSCHAPV2_RESTRICTED_LOGON_HOURS   646
#define MSCHAPV2_ACCT_DISABLED            647
#define MSCHAPV2_PASSWD_EXPIRED           648
#define MSCHAPV2_NO_DIALIN_PERMISSION     649
#define MSCHAPV2_AUTHENTICATION_FAILURE   691
#define MSCHAPV2_CHANGING_PASSWORD        709

// The password changing protocol supported by this version of EAP-MSCHAPv2.
#define MSCHAPV2_PASSWORD_CHANGE_VER        3

// A success response is a single byte 0x03, so we really don't need a 
// structure.

void eapmschapv2_check(eap_type_data *);
void eapmschapv2_process(eap_type_data *);
uint8_t *eapmschapv2_buildResp(eap_type_data *);
uint8_t eapmschapv2_isKeyAvailable(eap_type_data *);
uint8_t *eapmschapv2_getKey(eap_type_data *);
void eapmschapv2_deinit(eap_type_data *);
uint8_t eapmschapv2_set_challenges(uint8_t *, uint8_t *);
void eapmschapv2_set_eap_fast_mode(eap_type_data *, uint8_t);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -