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

📄 ipmi_auth.h

📁 支持IPMI协议的开源API包。可以开发服务器硬件状态监控程序。
💻 H
字号:
/* * ipmi_auth.h * * MontaVista IPMI interface for authorization * * Author: MontaVista Software, Inc. *         Corey Minyard <minyard@mvista.com> *         source@mvista.com * * Copyright 2002,2003 MontaVista Software Inc. * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public License *  as published by the Free Software Foundation; either version 2 of *  the License, or (at your option) any later version. * * *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *  You should have received a copy of the GNU Lesser General Public *  License along with this program; if not, write to the Free *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef _IPMI_AUTH_H#define _IPMI_AUTH_H/* Data is provided to the authorization code as an array of these items, a   "scatter-gather" list.  The algorithm will go through the item in the   array until "data" is NULL. */typedef struct ipmi_auth_sg_s{    void *data; /* NULL to terminate. */    int  len;} ipmi_auth_sg_t;/* A handle for an authorization algorithm to use. */typedef struct ipmi_authdata_s *ipmi_authdata_t;typedef struct ipmi_auth_s{    /* Initialize the authorization engine and return a handle for it.       You must pass this handle into the other authorization       calls.  Return 0 on success or an errno on failure. */    int (*authcode_init)(unsigned char   *password,			 ipmi_authdata_t *handle,			 void            *info,			 void            *(*mem_alloc)(void *info, int size),			 void            (*mem_free)(void *info, void *data));    /* Generate a 16-byte authorization code and put it into       "output". Returns 0 on success and an errno on failure.  */    int (*authcode_gen)(ipmi_authdata_t handle,			ipmi_auth_sg_t  data[],			void            *output);    /* Check that the 16-byte authorization code given in "code" is valid.       This will return 0 if it is valid or EINVAL if not. */    int (*authcode_check)(ipmi_authdata_t handle,			  ipmi_auth_sg_t  data[],			  void            *code);    /* Free the handle.  You MUST call this when you are done with the       handle. */    void (*authcode_cleanup)(ipmi_authdata_t handle);} ipmi_auth_t;#define IPMI_USERNAME_MAX	16#define IPMI_PASSWORD_MAX	16/* Standard IPMI authentication algorithms. */#define IPMI_AUTHTYPE_NONE	0#define IPMI_AUTHTYPE_MD2	1#define IPMI_AUTHTYPE_MD5	2#define IPMI_AUTHTYPE_STRAIGHT	4/* This is a table of authentication algorithms. */#define MAX_IPMI_AUTHS		6extern ipmi_auth_t ipmi_auths[MAX_IPMI_AUTHS];/* IPMI privilege levels */#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/* Tell if a specific command is permitted for the given priviledge   level.  Returns one of the following. */#define IPMI_PRIV_INVALID	-1#define IPMI_PRIV_DENIED	0#define IPMI_PRIV_PERMITTED	1#define IPMI_PRIV_SEND		2 /* Special send message handling needed. */#define IPMI_PRIV_BOOT		3 /* Special set system boot options handling.*/int ipmi_cmd_permitted(unsigned char priv,		       unsigned char netfn,		       unsigned char cmd);#endif /* _IPMI_AUTH_H */

⌨️ 快捷键说明

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