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

📄 chap.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 H
字号:
/*
 * FILENAME: chap.h
 *
 * Copyright  2001 By InterNiche Technologies Inc. All rights reserved
 *
 * Cryptographic Handshake Authentication Protocol definitions. 
 *
 * MODULE: PPP
 *
 *
 * PORTABLE: yes
 */

/* Additional Copyrights: */
/* 
 * Portions Copyright (C) ARM Limited 1998,1999. All rights reserved. 
 * Portions Copyright 1996 by NetPort Software. 
 * Portions Copyright (c) 1991 Gregory M. Christy All rights reserved.
 *
 * Redistribution and use in source and binary forms are 
 * permitted provided that the above copyright notice and this 
 * paragraph are duplicated in all such forms and that any 
 * documentation, advertising materials, and other materials related 
 * to such distribution and use acknowledge that the software was 
 * developed by the author. 
 */

#ifndef __CHAP_INCLUDE__


/* CHAP constants. */
#define  CHAP_DIGEST_MD5         5     /* use MD5 algorithm */
#define  CHAP_DIGEST_MSCHAP      0x80  /* use Microsoft algorithm */
#define  MD5_SIGNATURE_SIZE      16    /* 16 bytes in a MD5 message digest */
#define  MSCHAP_SIGNATURE_SIZE   49    /* 49 bytes in an MSCHAP message digest */

#define  CHAP_CHALLENGE          1
#define  CHAP_RESPONSE           2
#define  CHAP_SUCCESS            3
#define  CHAP_FAILURE            4

/*
 *  Challenge lengths (for challenges we send) and other limits.
 */
#define  MIN_CHALLENGE_LENGTH    32
#define  MAX_CHALLENGE_LENGTH    64
#define  MAX_RESPONSE_LENGTH     49 /* sufficient for MD5 & MSCHAP */

/*
 * Each interface is described by a chap structure.
 */
typedef struct chap_state 
{
   M_PPP mppp;
   int      clientstate;      /* Client state */
   int      serverstate;      /* Server state */
   int      chal_interval;    /* Time until we challenge peer again */
   int      timeouttime;      /* Timeout time in seconds */
   int      max_transmits;    /* Maximum # of challenge transmissions */
   int      chal_transmits;   /* Number of transmissions of challenge */
   int      resp_transmits;   /* Number of transmissions of response */
   int      mschap_failures;  /* Number of failed authentications for ms-chap */
   char *   resp_name;        /* Our name to send with response */
   char *   chal_name;        /* Our name to use with challenge */
   u_char   challenge[MAX_CHALLENGE_LENGTH]; /* last challenge string sent */
   u_char   response[MAX_RESPONSE_LENGTH];   /* Response to send */
   u_char   resp_length;      /* length of response */
   u_char   resp_id;          /* ID for response messages */
   u_char   resp_type;        /* hash algorithm for responses */
   u_char   chal_len;         /* challenge length */
   u_char   chal_id;          /* ID of last challenge */
   u_char   chal_type;        /* hash algorithm for challenges */
   u_char   id;               /* Current id */
} chap_state;


/*
 * Client (peer) states.
 */
#define  CHAPCS_INITIAL          0     /* Lower layer down, not opened */
#define  CHAPCS_CLOSED           1     /* Lower layer up, not opened */
#define  CHAPCS_PENDING          2     /* Auth us to peer when lower up */
#define  CHAPCS_LISTEN           3     /* Listening for a challenge */
#define  CHAPCS_RESPONSE         4     /* Sent response, waiting for status */
#define  CHAPCS_OPEN             5     /* We've received Success */

/*
 * Server (authenticator) states.
 */
#define  CHAPSS_INITIAL          0     /* Lower layer down, not opened */
#define  CHAPSS_CLOSED           1     /* Lower layer up, not opened */
#define  CHAPSS_PENDING          2     /* Auth peer when lower up */
#define  CHAPSS_INITIAL_CHAL     3     /* We've sent the first challenge */
#define  CHAPSS_OPEN             4     /* We've sent a Success msg */
#define  CHAPSS_RECHALLENGE      5     /* We've sent another challenge */
#define  CHAPSS_BADAUTH          6     /* We've sent a Failure msg */

/*
 * Timeouts.
 */
#define  CHAP_DEFTIMEOUT         3     /* Timeout time in seconds */
#define  CHAP_DEFTRANSMITS       10    /* max # times to send challenge */

void     ChapInit (M_PPP);
void     ChapAuthWithPeer (M_PPP);
void     ChapAuthPeer (M_PPP);
void     ChapLowerUp (M_PPP);
void     ChapLowerDown (M_PPP);
void     ChapInput (M_PPP, u_char *, int);
void     ChapProtocolReject (M_PPP);

int      ChapPrintPkt (u_char *, int, 
              void (*) (void *, char *, ...), void *);

extern auth_funcs ChapAuthTable;

/* support routines for CHAP code. These are per-port */
int   get_secret(M_PPP mppp, char * resp_name, char * rhostname, 
            char * out_buffer, int * out_buflen, int flags);

#define  CHAP_DEBUG  1  /* comment this out to save space */

#define  __CHAP_INCLUDE__
#endif   /* __CHAP_INCLUDE__ */


⌨️ 快捷键说明

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