123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- /****************************************************************
- ****************************************************************
- ** **
- ** (C)Copyright 2005-2006, American Megatrends Inc. **
- ** **
- ** All Rights Reserved. **
- ** **
- ** 6145-F, Northbelt Parkway, Norcross, **
- ** **
- ** Georgia - 30071, USA. Phone-(770)-246-8600. **
- ** **
- ****************************************************************
- ****************************************************************
- ****************************************************************
- *
- * rmcp.h
- * RMCP Packet Handler
- *
- * Author: Govind Kothandapani <govindk@ami.com>
- * : Bakka Ravinder Reddy <bakkar@ami.com>
- *
- *****************************************************************/
- #ifndef IPMI_RMCP_PLUS_H
- #define IPMI_RMCP_PLUS_H
- #include <stdio.h>
- #include <stdint.h>
- #include "com_IPMIDefs.h"
- #define MAX_PAYLOAD_ALGO_SUPPORTED 3
- /**** RSSP and RAKP Message Status Codes *****/
- #define SC_NO_ERROR 0
- #define SC_INSUFFICIENT_RESOURCE 1
- #define SC_INV_SESSION_ID 2
- #define SC_INV_PAYLOAD_TYPE 3
- #define SC_INV_AUTH_ALGORITHM 4
- #define SC_INV_INTEGRITY_ALGORITHM 5
- #define SC_NO_MATCHED_AUTH_PAYLOAD 6
- #define SC_NO_MATCHED_INTEGRITY_PAYLOAD 7
- #define SC_INACTIVE_SESSION_ID 8
- #define SC_INV_ROLE 9
- #define SC_UNAUTHORISED_ROLE 10
- #define SC_INSUFFICIENT_RESOURCE_AT_ROLE 11
- #define SC_INV_NAME_LEN 12
- #define SC_UNAUTHORISED_NAME 13
- #define SC_UNAUTHORISED_GUID 14
- #define SC_INV_INTEGRITY_CHECK 15
- #define SC_INV_CONFIDENTIALITY_ALGORTHM 16
- #define SC_NO_CIPHER_SUITE_MATCH 17
- #define SESSION_INTEGRITY_KEY_SIZE 20
- #define SESSION_HMAC_MD5_I_KEY_SIZE 16
- #define SESSION_MD5_KEY_SIZE 16
- #define HASH_KEY1_SIZE 20
- #define HASH_KEY2_SIZE 20
- #define SHA2_HASH_KEY_SIZE 32
- #define MAX_HASH_KEY_SIZE SHA2_HASH_KEY_SIZE
- #pragma pack( 1 )
- /**** RSSP Open Session Request ****/
- typedef struct
- {
- uint8_t PayloadType;
- uint16_t Reserved1;
- uint8_t PayloadLen;
- uint8_t Algorithm;
- uint8_t Reserved2 [3];
- } RSSPPayloadInfo_T;
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t Role;
- uint8_t Reserved [2];
- uint32_t RemConSessionID;
- RSSPPayloadInfo_T Auth;
- RSSPPayloadInfo_T Integrity;
- RSSPPayloadInfo_T Confidentiality;
- } RSSPOpenSessionReq_T;
- /**** RSSP Open Session Response ****/
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Role;
- uint8_t Reserved;
- uint32_t RemConSessionID;
- } RSSPOpenSessionErrRes_T;
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Role;
- uint8_t Reserved;
- uint32_t RemConSessionID;
- uint32_t MgdSysSessionID;
- RSSPPayloadInfo_T Auth;
- RSSPPayloadInfo_T Integrity;
- RSSPPayloadInfo_T Confidentiality;
- } RSSPOpenSessionRes_T;
- /**** RAKP Message1 ****/
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t Reserved1 [3];
- uint32_t ManSysSessionID;
- uint8_t RemConRandomNo [16];
- uint8_t Role;
- uint8_t Reserved2 [2];
- uint8_t UsrNameLen;
- uint8_t UsrName [16];
- } RAKPMsg1Req_T;
- /**** RAKP Message2 ****/
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Reserved1 [2];
- uint32_t RemConSessionID;
- } RAKPMsg2ErrRes_T;
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Reserved1 [2];
- uint32_t RemConSessionID;
- uint8_t ManSysRandomNo [16];
- uint8_t ManSysGUID [16];
- } RAKPMsg2Res_T;
- typedef struct
- {
- uint32_t RemConSessionID;
- uint32_t MgdSysSessionID;
- uint8_t RemConRandNo [16];
- uint8_t MgdSysRandNo [16];
- uint8_t MgdSysGUID [16];
- uint8_t Role;
- uint8_t UsrNameLen;
- uint8_t UsrName [16];
- } RAKPMsg1HMAC_T;
- /**** RAKP Message3 ****/
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Reserved1 [2];
- uint32_t ManSysSessionID;
- } RAKPMsg3Req_T;
- typedef struct
- {
- uint8_t MgdSysRandNo [16];
- uint32_t RemConSessionID;
- uint8_t Role;
- uint8_t UsrNameLen;
- uint8_t UsrName [16];
- } Msg3hmac_T;
- typedef struct
- {
- uint8_t RemConRandNo [16];
- uint8_t MgdSysRandNo [16];
- uint8_t Role;
- uint8_t UsrNameLen;
- uint8_t UsrName [16];
- } SIKhmac_T;
- /**** RAKP Message4 ****/
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Reserved1 [2];
- uint32_t RemConSessionID;
- } RAKPMsg4ErrRes_T;
- typedef struct
- {
- uint8_t MsgTag;
- uint8_t StatusCode;
- uint8_t Reserved1 [2];
- uint32_t RemConSessionID;
- } RAKPMsg4Res_T;
- typedef struct
- {
- uint8_t RemConRandNo [16];
- uint32_t MgdSysSessionID;
- uint8_t MgdSysGUID [16];
- } RAKPMsg4hmac_T;
- #pragma pack( )
- #endif /* RMCP_PLUS_H */
|