~ubuntu-branches/ubuntu/feisty/freeradius/feisty-security

« back to all changes in this revision

Viewing changes to src/modules/rlm_otp/otp.h

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2006-12-16 20:45:11 UTC
  • mfrom: (3.1.10 feisty)
  • Revision ID: james.westby@ubuntu.com-20061216204511-3pbbsu4s8jtehsor
Tags: 1.1.3-3
Fix POSIX compliance problem in init script.  Closes: #403384. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * $Id: otp.h,v 1.28.2.7 2006/06/01 19:02:19 fcusack Exp $
 
3
 *
 
4
 *   This program is free software; you can redistribute it and/or modify
 
5
 *   it under the terms of the GNU General Public License as published by
 
6
 *   the Free Software Foundation; either version 2 of the License, or
 
7
 *   (at your option) any later version.
 
8
 *
 
9
 *   This program is distributed in the hope that it will be useful,
 
10
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 *   GNU General Public License for more details.
 
13
 *
 
14
 *   You should have received a copy of the GNU General Public License
 
15
 *   along with this program; if not, write to the Free Software
 
16
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 
17
 *
 
18
 * Copyright 2005,2006 TRI-D Systems, Inc.
 
19
 */
 
20
 
 
21
#ifndef OTP_H
 
22
#define OTP_H
 
23
 
 
24
#ifdef __SUNPRO_C
 
25
#pragma sun ident "$Id: otp.h,v 1.28.2.7 2006/06/01 19:02:19 fcusack Exp $"
 
26
#endif
 
27
 
 
28
#include <sys/types.h>
 
29
 
 
30
/*
 
31
 * NOTE: This file must be synced between plugins and otpd.
 
32
 */
 
33
 
 
34
#ifndef OTP_MAX_CHALLENGE_LEN
 
35
#define OTP_MAX_CHALLENGE_LEN   16
 
36
#elif OTP_MAX_CHALLENGE_LEN != 16
 
37
#error OTP_MAX_CHALLENGE_LEN
 
38
#endif
 
39
 
 
40
#define OTP_RC_OK               0
 
41
#define OTP_RC_USER_UNKNOWN     1
 
42
#define OTP_RC_AUTHINFO_UNAVAIL 2
 
43
#define OTP_RC_AUTH_ERR         3
 
44
#define OTP_RC_MAXTRIES         4
 
45
#define OTP_RC_SERVICE_ERR      5
 
46
 
 
47
#define OTP_MAX_USERNAME_LEN            31
 
48
#define OTP_MAX_PASSCODE_LEN            47
 
49
#define OTP_MAX_CHAP_CHALLENGE_LEN      16
 
50
#define OTP_MAX_CHAP_RESPONSE_LEN       50
 
51
 
 
52
typedef enum otp_pwe_t {
 
53
  PWE_PAP = 1,
 
54
  PWE_CHAP = 3,
 
55
  PWE_MSCHAP = 5,
 
56
  PWE_MSCHAP2 = 7,
 
57
} otp_pwe_t;
 
58
 
 
59
typedef struct otp_request_t {
 
60
  int   version;                                        /* 1 */
 
61
  char  username[OTP_MAX_USERNAME_LEN + 1];
 
62
  char  challenge[OTP_MAX_CHALLENGE_LEN + 1];           /* USER challenge */
 
63
  struct {
 
64
    otp_pwe_t     pwe;
 
65
    char          passcode[OTP_MAX_PASSCODE_LEN + 1];
 
66
    unsigned char challenge[OTP_MAX_CHAP_CHALLENGE_LEN]; /* CHAP challenge */
 
67
    size_t        clen;
 
68
    unsigned char response[OTP_MAX_CHAP_RESPONSE_LEN];
 
69
    size_t        rlen;
 
70
  } pwe;
 
71
  int           allow_async;            /* async auth allowed?           */
 
72
  int           allow_sync;             /* sync auth allowed?            */
 
73
  unsigned      challenge_delay;        /* min delay between async auths */
 
74
  int           resync;                 /* resync on async auth?         */
 
75
} otp_request_t;
 
76
 
 
77
typedef struct otp_reply_t {
 
78
  int   version;                                        /* 1 */
 
79
  int   rc;
 
80
  char  passcode[OTP_MAX_PASSCODE_LEN + 1];
 
81
} otp_reply_t;
 
82
 
 
83
#endif /* OTP_H */