diff --git a/ipmitool/include/ipmitool/ipmi_intf.h b/ipmitool/include/ipmitool/ipmi_intf.h index 204fa69..ffe0bd9 100644 --- a/ipmitool/include/ipmitool/ipmi_intf.h +++ b/ipmitool/include/ipmitool/ipmi_intf.h @@ -81,6 +81,7 @@ struct ipmi_session { uint8_t authstatus; uint8_t authextra; uint8_t privlvl; + uint8_t cipher_suite_id; int password; int port; int active; @@ -100,6 +101,9 @@ struct ipmi_session { enum LANPLUS_SESSION_STATE session_state; /* These are the algorithms agreed upon for the session */ + uint8_t requested_auth_alg; + uint8_t requested_integrity_alg; + uint8_t requested_crypt_alg; uint8_t auth_alg; uint8_t integrity_alg; uint8_t crypt_alg; @@ -173,6 +177,7 @@ void ipmi_intf_session_set_hostname(struct ipmi_intf * intf, char * hostname); void ipmi_intf_session_set_username(struct ipmi_intf * intf, char * username); void ipmi_intf_session_set_password(struct ipmi_intf * intf, char * password); void ipmi_intf_session_set_privlvl(struct ipmi_intf * intf, uint8_t privlvl); +void ipmi_intf_session_set_cipher_suite_id(struct ipmi_intf * intf, uint8_t cipher_suite_id); void ipmi_intf_session_set_port(struct ipmi_intf * intf, int port); void ipmi_intf_session_set_authtype(struct ipmi_intf * intf, uint8_t authtype); void ipmi_cleanup(struct ipmi_intf * intf); diff --git a/ipmitool/src/plugins/ipmi_intf.c b/ipmitool/src/plugins/ipmi_intf.c index 1d3bdf7..611552a 100644 --- a/ipmitool/src/plugins/ipmi_intf.c +++ b/ipmitool/src/plugins/ipmi_intf.c @@ -200,6 +200,15 @@ ipmi_intf_session_set_privlvl(struct ipmi_intf * intf, uint8_t level) intf->session->privlvl = level; } +void +ipmi_intf_session_set_cipher_suite_id(struct ipmi_intf * intf, uint8_t cipher_suite_id) +{ + if (intf->session == NULL) + return; + + intf->session->cipher_suite_id = cipher_suite_id; +} + void ipmi_intf_session_set_port(struct ipmi_intf * intf, int port) {