Lines Matching full:session

49  * param session holds all the state data that we need to generate the hmac
54 * SIDm - Remote console session ID
55 * SIDc - BMC session ID
72 lanplus_rakp2_hmac_matches(const struct ipmi_session * session, in lanplus_rakp2_hmac_matches() argument
83 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_rakp2_hmac_matches()
87 assert(session->v2_data.auth_alg == IPMI_AUTH_RAKP_HMAC_SHA1); in lanplus_rakp2_hmac_matches()
112 SIDm_lsbf = session->v2_data.console_id; in lanplus_rakp2_hmac_matches()
120 SIDc_lsbf = session->v2_data.bmc_id; in lanplus_rakp2_hmac_matches()
129 buffer[8 + i] = session->v2_data.console_rand[16 - 1 - i]; in lanplus_rakp2_hmac_matches()
132 buffer[8 + i] = session->v2_data.console_rand[i]; in lanplus_rakp2_hmac_matches()
138 buffer[24 + i] = session->v2_data.bmc_rand[16 - 1 - i]; in lanplus_rakp2_hmac_matches()
141 buffer[24 + i] = session->v2_data.bmc_rand[i]; in lanplus_rakp2_hmac_matches()
147 buffer[40 + i] = session->v2_data.bmc_guid[16 - 1 - i]; in lanplus_rakp2_hmac_matches()
150 buffer[40 + i] = session->v2_data.bmc_guid[i]; in lanplus_rakp2_hmac_matches()
154 buffer[56] = session->v2_data.requested_role; in lanplus_rakp2_hmac_matches()
175 printbuf((const uint8_t *)session->authcode, IPMI_AUTHCODE_BUFFER_SIZE, ">> rakp2 mac key"); in lanplus_rakp2_hmac_matches()
181 lanplus_HMAC(session->v2_data.auth_alg, in lanplus_rakp2_hmac_matches()
182 session->authcode, in lanplus_rakp2_hmac_matches()
206 * param session holds all the state data that we need to generate the hmac
212 * SIDc - BMC session ID
215 * generated by using SIK (the session integrity key). I am aware that the
226 lanplus_rakp4_hmac_matches(const struct ipmi_session * session, in lanplus_rakp4_hmac_matches() argument
237 if (session->v2_data.integrity_alg == IPMI_INTEGRITY_NONE) in lanplus_rakp4_hmac_matches()
241 assert(session->v2_data.integrity_alg == IPMI_INTEGRITY_HMAC_SHA1_96); in lanplus_rakp4_hmac_matches()
243 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_rakp4_hmac_matches()
247 assert(session->v2_data.auth_alg == IPMI_AUTH_RAKP_HMAC_SHA1); in lanplus_rakp4_hmac_matches()
269 buffer[i] = session->v2_data.console_rand[16 - 1 - i]; in lanplus_rakp4_hmac_matches()
272 buffer[i] = session->v2_data.console_rand[i]; in lanplus_rakp4_hmac_matches()
277 SIDc_lsbf = session->v2_data.bmc_id; in lanplus_rakp4_hmac_matches()
287 buffer[i + 20] = session->v2_data.bmc_guid[16 - 1 - i]; in lanplus_rakp4_hmac_matches()
290 buffer[i + 20] = session->v2_data.bmc_guid[i]; in lanplus_rakp4_hmac_matches()
297 printbuf(session->v2_data.sik, 20l, ">> rakp4 mac key (sik)"); in lanplus_rakp4_hmac_matches()
305 ? session->v2_data.integrity_alg in lanplus_rakp4_hmac_matches()
306 : session->v2_data.auth_alg , in lanplus_rakp4_hmac_matches()
307 session->v2_data.sik, in lanplus_rakp4_hmac_matches()
336 * SIDm - Console session ID
347 * param session [in] holds all the state data we need to generate the auth code
355 const struct ipmi_session * session, in lanplus_generate_rakp3_authcode() argument
364 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_generate_rakp3_authcode()
371 assert(session->v2_data.auth_alg == IPMI_AUTH_RAKP_HMAC_SHA1); in lanplus_generate_rakp3_authcode()
394 input_buffer[i] = session->v2_data.bmc_rand[16 - 1 - i]; in lanplus_generate_rakp3_authcode()
397 input_buffer[i] = session->v2_data.bmc_rand[i]; in lanplus_generate_rakp3_authcode()
401 SIDm_lsbf = session->v2_data.console_id; in lanplus_generate_rakp3_authcode()
411 input_buffer[20] = session->v2_data.requested_role; in lanplus_generate_rakp3_authcode()
423 printbuf((const uint8_t *)session->authcode, IPMI_AUTHCODE_BUFFER_SIZE, ">> rakp3 mac key"); in lanplus_generate_rakp3_authcode()
426 lanplus_HMAC(session->v2_data.auth_alg, in lanplus_generate_rakp3_authcode()
427 session->authcode, in lanplus_generate_rakp3_authcode()
449 * Generate the session integrity key (SIK) used for integrity checking
450 * during the IPMI v2 / RMCP+ session
452 * This session integrity key is a HMAC generated with :
467 * param session [in/out] contains our input and output fields.
473 lanplus_generate_sik(struct ipmi_session * session, struct ipmi_intf * intf) in lanplus_generate_sik() argument
481 memset(session->v2_data.sik, 0, IPMI_SIK_BUFFER_SIZE); in lanplus_generate_sik()
483 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_generate_sik()
487 assert(session->v2_data.auth_alg == IPMI_AUTH_RAKP_HMAC_SHA1); in lanplus_generate_sik()
510 input_buffer[i] = session->v2_data.console_rand[16 - 1 - i]; in lanplus_generate_sik()
513 input_buffer[i] = session->v2_data.console_rand[i]; in lanplus_generate_sik()
520 input_buffer[16 + i] = session->v2_data.bmc_rand[16 - 1 - i]; in lanplus_generate_sik()
523 input_buffer[16 + i] = session->v2_data.bmc_rand[i]; in lanplus_generate_sik()
527 input_buffer[32] = session->v2_data.requested_role; in lanplus_generate_sik()
558 input_key = session->authcode; in lanplus_generate_sik()
563 printbuf((const uint8_t *)input_buffer, input_buffer_length, "session integrity key input"); in lanplus_generate_sik()
565 lanplus_HMAC(session->v2_data.auth_alg, in lanplus_generate_sik()
570 session->v2_data.sik, in lanplus_generate_sik()
582 printbuf(session->v2_data.sik, 20, "Generated session integrity key"); in lanplus_generate_sik()
595 * the session integrity key (SIK) as our key.
597 * param session [in/out].
603 lanplus_generate_k1(struct ipmi_session * session) in lanplus_generate_k1() argument
611 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_generate_k1()
612 memcpy(session->v2_data.k1, CONST_1, 20); in lanplus_generate_k1()
615 lanplus_HMAC(session->v2_data.auth_alg, in lanplus_generate_k1()
616 session->v2_data.sik, in lanplus_generate_k1()
620 session->v2_data.k1, in lanplus_generate_k1()
626 printbuf(session->v2_data.k1, 20, "Generated K1"); in lanplus_generate_k1()
639 * the session integrity key (SIK) as our key.
641 * param session [in/out].
647 lanplus_generate_k2(struct ipmi_session * session) in lanplus_generate_k2() argument
655 if (session->v2_data.auth_alg == IPMI_AUTH_RAKP_NONE) in lanplus_generate_k2()
656 memcpy(session->v2_data.k2, CONST_2, 20); in lanplus_generate_k2()
659 lanplus_HMAC(session->v2_data.auth_alg, in lanplus_generate_k2()
660 session->v2_data.sik, in lanplus_generate_k2()
664 session->v2_data.k2, in lanplus_generate_k2()
670 printbuf(session->v2_data.k2, 20, "Generated K2"); in lanplus_generate_k2()
784 * - the session is not yet active
786 * - the integrity algorithm agreed upon during session creation is "none"
795 * param session holds our session state, including our chosen algorithm, key, etc.
801 lanplus_has_valid_auth_code(struct ipmi_rs * rs, struct ipmi_session * session) in lanplus_has_valid_auth_code() argument
808 if ((rs->session.authtype != IPMI_SESSION_AUTHTYPE_RMCP_PLUS) || in lanplus_has_valid_auth_code()
809 (session->v2_data.session_state != LANPLUS_STATE_ACTIVE) || in lanplus_has_valid_auth_code()
810 (! rs->session.bAuthenticated) || in lanplus_has_valid_auth_code()
811 (session->v2_data.integrity_alg == IPMI_INTEGRITY_NONE)) in lanplus_has_valid_auth_code()
815 assert(session->v2_data.integrity_alg == IPMI_INTEGRITY_HMAC_SHA1_96); in lanplus_has_valid_auth_code()
822 lanplus_HMAC(session->v2_data.integrity_alg, in lanplus_has_valid_auth_code()
823 session->v2_data.k1, in lanplus_has_valid_auth_code()
833 printbuf(session->v2_data.k1, 20, "K1"); in lanplus_has_valid_auth_code()