Main Page | Class List | Directories | File List | Class Members | File Members

ipmi_auth.h File Reference

Go to the source code of this file.

Classes

struct  ipmi_auth_sg_s
struct  ipmi_auth_s

Defines

#define IPMI_USERNAME_MAX   16
#define IPMI_PASSWORD_MAX   20
#define IPMI_AUTHTYPE_DEFAULT   (~0)
#define IPMI_AUTHTYPE_NONE   0
#define IPMI_AUTHTYPE_MD2   1
#define IPMI_AUTHTYPE_MD5   2
#define IPMI_AUTHTYPE_STRAIGHT   4
#define IPMI_AUTHTYPE_OEM   5
#define IPMI_AUTHTYPE_RMCP_PLUS   6
#define MAX_IPMI_AUTHS   6
#define IPMI_PRIVILEGE_CALLBACK   1
#define IPMI_PRIVILEGE_USER   2
#define IPMI_PRIVILEGE_OPERATOR   3
#define IPMI_PRIVILEGE_ADMIN   4
#define IPMI_PRIVILEGE_OEM   5
#define IPMI_PRIV_INVALID   -1
#define IPMI_PRIV_DENIED   0
#define IPMI_PRIV_PERMITTED   1
#define IPMI_PRIV_SEND   2
#define IPMI_PRIV_BOOT   3

Typedefs

typedef ipmi_auth_sg_s ipmi_auth_sg_t
typedef ipmi_authdata_sipmi_authdata_t
typedef ipmi_auth_s ipmi_auth_t

Functions

const char * ipmi_authtype_string (int authtype)
const char * ipmi_privilege_string (int privilege)
int ipmi_cmd_permitted (unsigned char priv, unsigned char netfn, unsigned char cmd)

Variables

ipmi_auth_t ipmi_auths [MAX_IPMI_AUTHS]


Define Documentation

#define IPMI_AUTHTYPE_DEFAULT   (~0)
 

Definition at line 108 of file ipmi_auth.h.

Referenced by auth_cap_done(), ipmi_authtype_string(), ipmi_lanp_setup_con(), lan_con_alloc_args(), and send_auth_cap().

#define IPMI_AUTHTYPE_MD2   1
 

Definition at line 110 of file ipmi_auth.h.

Referenced by auth_cap_done(), get_auths(), ipmi_authtype_string(), and lan_parse_args().

#define IPMI_AUTHTYPE_MD5   2
 

Definition at line 111 of file ipmi_auth.h.

Referenced by auth_cap_done(), get_auths(), ipmi_authtype_string(), and lan_parse_args().

#define IPMI_AUTHTYPE_NONE   0
 

Definition at line 109 of file ipmi_auth.h.

Referenced by auth_cap_done(), get_auths(), handle_lan15_recv(), handle_no_session(), ipmi_authtype_string(), ipmi_handle_rmcp_msg(), lan15_format_msg(), lan_parse_args(), and return_rsp().

#define IPMI_AUTHTYPE_OEM   5
 

Definition at line 113 of file ipmi_auth.h.

Referenced by ipmi_authtype_string().

#define IPMI_AUTHTYPE_RMCP_PLUS   6
 

Definition at line 114 of file ipmi_auth.h.

Referenced by auth_cap_done(), auth_cap_done_p(), data_handler(), handle_open_session_payload(), ipmi_authtype_string(), ipmi_handle_lan_msg(), ipmi_lanp_setup_con(), lan_send_addr(), return_rmcpp_rsp(), send_auth_cap(), send_close_session(), and start_rmcpp().

#define IPMI_AUTHTYPE_STRAIGHT   4
 

Definition at line 112 of file ipmi_auth.h.

Referenced by auth_cap_done(), get_auths(), ipmi_authtype_string(), and lan_parse_args().

#define IPMI_PASSWORD_MAX   20
 

Definition at line 105 of file ipmi_auth.h.

#define IPMI_PRIV_BOOT   3
 

Definition at line 136 of file ipmi_auth.h.

Referenced by handle_normal_session(), and ipmi_cmd_permitted().

#define IPMI_PRIV_DENIED   0
 

Definition at line 133 of file ipmi_auth.h.

Referenced by force_check_permitted(), handle_normal_session(), and ipmi_cmd_permitted().

#define IPMI_PRIV_INVALID   -1
 

Definition at line 132 of file ipmi_auth.h.

Referenced by force_check_permitted(), handle_normal_session(), and ipmi_cmd_permitted().

#define IPMI_PRIV_PERMITTED   1
 

Definition at line 134 of file ipmi_auth.h.

Referenced by force_check_permitted(), handle_normal_session(), and ipmi_cmd_permitted().

#define IPMI_PRIV_SEND   2
 

Definition at line 135 of file ipmi_auth.h.

Referenced by handle_normal_session(), and ipmi_cmd_permitted().

#define IPMI_PRIVILEGE_ADMIN   4
 

Definition at line 125 of file ipmi_auth.h.

Referenced by force_check_permitted(), get_priv(), handle_close_session(), ipmi_cmd_permitted(), ipmi_cmdlang_get_user(), ipmi_lanp_setup_con(), ipmi_open_domain(), ipmi_privilege_string(), lan_con_alloc_args(), lan_parse_args(), mc_set_chan_access(), and mc_user_set().

#define IPMI_PRIVILEGE_CALLBACK   1
 

Definition at line 122 of file ipmi_auth.h.

Referenced by get_priv(), handle_set_session_privilege(), ipmi_cmdlang_get_user(), ipmi_privilege_string(), lan_parse_args(), mc_set_chan_access(), and mc_user_set().

#define IPMI_PRIVILEGE_OEM   5
 

Definition at line 126 of file ipmi_auth.h.

Referenced by ipmi_cmdlang_get_user(), ipmi_privilege_string(), mc_set_chan_access(), and mc_user_set().

#define IPMI_PRIVILEGE_OPERATOR   3
 

Definition at line 124 of file ipmi_auth.h.

Referenced by force_check_permitted(), get_priv(), ipmi_cmdlang_get_user(), ipmi_privilege_string(), lan_parse_args(), mc_set_chan_access(), and mc_user_set().

#define IPMI_PRIVILEGE_USER   2
 

Definition at line 123 of file ipmi_auth.h.

Referenced by force_check_permitted(), get_priv(), handle_rakp1_payload(), handle_temp_session(), ipmi_cmdlang_get_user(), ipmi_privilege_string(), lan_parse_args(), mc_set_chan_access(), and mc_user_set().

#define IPMI_USERNAME_MAX   16
 

Definition at line 104 of file ipmi_auth.h.

Referenced by send_challenge().

#define MAX_IPMI_AUTHS   6
 

Definition at line 118 of file ipmi_auth.h.

Referenced by ipmi_lanp_setup_con().


Typedef Documentation

typedef struct ipmi_auth_sg_s ipmi_auth_sg_t
 

typedef struct ipmi_auth_s ipmi_auth_t
 

typedef struct ipmi_authdata_s* ipmi_authdata_t
 

Definition at line 74 of file ipmi_auth.h.


Function Documentation

const char* ipmi_authtype_string int  authtype  ) 
 

Definition at line 1365 of file strings.c.

References IPMI_AUTHTYPE_DEFAULT, IPMI_AUTHTYPE_MD2, IPMI_AUTHTYPE_MD5, IPMI_AUTHTYPE_NONE, IPMI_AUTHTYPE_OEM, IPMI_AUTHTYPE_RMCP_PLUS, and IPMI_AUTHTYPE_STRAIGHT.

01366 {
01367     switch(authtype) {
01368     case IPMI_AUTHTYPE_DEFAULT:
01369         return "default";
01370     case IPMI_AUTHTYPE_NONE:
01371         return "none";
01372     case IPMI_AUTHTYPE_MD2:
01373         return "md2";
01374     case IPMI_AUTHTYPE_MD5:
01375         return "md5";
01376     case IPMI_AUTHTYPE_STRAIGHT:
01377         return "straight";
01378     case IPMI_AUTHTYPE_OEM:
01379         return "oem";
01380     case IPMI_AUTHTYPE_RMCP_PLUS:
01381         return "rmcp+";
01382     default:
01383         return "invalid";
01384     }
01385 }

int ipmi_cmd_permitted unsigned char  priv,
unsigned char  netfn,
unsigned char  cmd
 

Definition at line 453 of file priv_table.c.

References b, b2, h, i, IPMI_PRIV_BOOT, IPMI_PRIV_DENIED, IPMI_PRIV_INVALID, IPMI_PRIV_PERMITTED, IPMI_PRIV_SEND, IPMI_PRIVILEGE_ADMIN, IPMI_TRANSPORT_NETFN, n, p, priv_table, s, size, and X.

Referenced by handle_normal_session().

00456 {
00457     int      perm;
00458 
00459     /* Priviledges */
00460     if ((priv < IPMI_PRIVILEGE_CALLBACK) || (priv > IPMI_PRIVILEGE_ADMIN))
00461         return IPMI_PRIV_INVALID;
00462 
00463     if ((netfn > IPMI_TRANSPORT_NETFN)
00464         || (cmd >= priv_table[netfn>>1].size))
00465     {
00466         /* All things not in the table are assumed to take
00467            administrator priviledge. */
00468         if (priv == IPMI_PRIVILEGE_ADMIN)
00469             return IPMI_PRIV_PERMITTED;
00470         else
00471             return IPMI_PRIV_DENIED;
00472     }
00473 
00474     perm = priv_table[netfn>>1].vals[cmd];
00475     /* Extract the permissions for the given privilege from the
00476        permission word.  The tables are 0-based, but the first valid
00477        privilege is 1, thus the (priv - 1) here. */
00478     perm >>= 4 * (priv - 1);
00479     perm &= 0xf;
00480 
00481     switch (perm)
00482     {
00483         case n:
00484         case s:
00485         case b:
00486         case b2:
00487             return 0;
00488 
00489         case p:
00490         case X:
00491             return IPMI_PRIV_PERMITTED;
00492 
00493         case h:
00494             return IPMI_PRIV_SEND;
00495 
00496         case i:
00497             return IPMI_PRIV_BOOT;
00498     }
00499 
00500     return IPMI_PRIV_DENIED;
00501 }

const char* ipmi_privilege_string int  privilege  ) 
 

Definition at line 1388 of file strings.c.

References IPMI_PRIVILEGE_ADMIN, IPMI_PRIVILEGE_CALLBACK, IPMI_PRIVILEGE_OEM, IPMI_PRIVILEGE_OPERATOR, and IPMI_PRIVILEGE_USER.

Referenced by got_chan_access(), and got_users().

01389 {
01390     switch(privilege) {
01391     case IPMI_PRIVILEGE_CALLBACK:
01392         return "callback";
01393     case IPMI_PRIVILEGE_USER:
01394         return "user";
01395     case IPMI_PRIVILEGE_OPERATOR:
01396         return "operator";
01397     case IPMI_PRIVILEGE_ADMIN:
01398         return "admin";
01399     case IPMI_PRIVILEGE_OEM:
01400         return "oem";
01401     default:
01402         return "invalid";
01403     }
01404 }


Variable Documentation

ipmi_auth_t ipmi_auths[MAX_IPMI_AUTHS]
 

Definition at line 145 of file ipmi_auth.c.

Referenced by auth_cap_done(), auth_check(), auth_gen(), cleanup_con(), close_session(), handle_temp_session(), ipmi_lanp_setup_con(), and lan_cleanup().


© sourcejam.com 2005-2008