Lines Matching refs:msg
204 void eap_sim_add_mac(const u8 *k_aut, const u8 *msg, size_t msg_len, u8 *mac, in eap_sim_add_mac() argument
211 addr[0] = msg; in eap_sim_add_mac()
218 wpa_hexdump(MSG_MSGDUMP, "EAP-SIM: Add MAC - msg", msg, msg_len); in eap_sim_add_mac()
398 void eap_sim_add_mac_sha256(const u8 *k_aut, const u8 *msg, size_t msg_len, in eap_sim_add_mac_sha256() argument
405 addr[0] = msg; in eap_sim_add_mac_sha256()
412 wpa_hexdump(MSG_MSGDUMP, "EAP-AKA': Add MAC - msg", msg, msg_len); in eap_sim_add_mac_sha256()
982 struct eap_sim_msg *msg; in eap_sim_msg_init() local
986 msg = os_zalloc(sizeof(*msg)); in eap_sim_msg_init()
987 if (msg == NULL) in eap_sim_msg_init()
990 msg->buf = wpabuf_alloc(EAP_SIM_INIT_LEN); in eap_sim_msg_init()
991 if (msg->buf == NULL) { in eap_sim_msg_init()
992 os_free(msg); in eap_sim_msg_init()
995 eap = wpabuf_put(msg->buf, sizeof(*eap)); in eap_sim_msg_init()
999 pos = wpabuf_put(msg->buf, 4); in eap_sim_msg_init()
1005 return msg; in eap_sim_msg_init()
1009 struct wpabuf * eap_sim_msg_finish(struct eap_sim_msg *msg, int type, in eap_sim_msg_finish() argument
1016 if (msg == NULL) in eap_sim_msg_finish()
1019 eap = wpabuf_mhead(msg->buf); in eap_sim_msg_finish()
1020 eap->length = host_to_be16(wpabuf_len(msg->buf)); in eap_sim_msg_finish()
1023 if (k_aut && msg->mac && type == EAP_TYPE_AKA_PRIME) { in eap_sim_msg_finish()
1024 eap_sim_add_mac_sha256(k_aut, (u8 *) wpabuf_head(msg->buf), in eap_sim_msg_finish()
1025 wpabuf_len(msg->buf), in eap_sim_msg_finish()
1026 (u8 *) wpabuf_mhead(msg->buf) + in eap_sim_msg_finish()
1027 msg->mac, extra, extra_len); in eap_sim_msg_finish()
1030 if (k_aut && msg->mac) { in eap_sim_msg_finish()
1031 eap_sim_add_mac(k_aut, (u8 *) wpabuf_head(msg->buf), in eap_sim_msg_finish()
1032 wpabuf_len(msg->buf), in eap_sim_msg_finish()
1033 (u8 *) wpabuf_mhead(msg->buf) + msg->mac, in eap_sim_msg_finish()
1037 buf = msg->buf; in eap_sim_msg_finish()
1038 os_free(msg); in eap_sim_msg_finish()
1043 void eap_sim_msg_free(struct eap_sim_msg *msg) in eap_sim_msg_free() argument
1045 if (msg) { in eap_sim_msg_free()
1046 wpabuf_free(msg->buf); in eap_sim_msg_free()
1047 os_free(msg); in eap_sim_msg_free()
1052 u8 * eap_sim_msg_add_full(struct eap_sim_msg *msg, u8 attr, in eap_sim_msg_add_full() argument
1059 if (msg == NULL) in eap_sim_msg_add_full()
1064 if (wpabuf_resize(&msg->buf, attr_len)) in eap_sim_msg_add_full()
1066 start = wpabuf_put(msg->buf, 0); in eap_sim_msg_add_full()
1067 wpabuf_put_u8(msg->buf, attr); in eap_sim_msg_add_full()
1068 wpabuf_put_u8(msg->buf, attr_len / 4); in eap_sim_msg_add_full()
1069 wpabuf_put_data(msg->buf, data, len); in eap_sim_msg_add_full()
1071 os_memset(wpabuf_put(msg->buf, pad_len), 0, pad_len); in eap_sim_msg_add_full()
1076 u8 * eap_sim_msg_add(struct eap_sim_msg *msg, u8 attr, u16 value, in eap_sim_msg_add() argument
1083 if (msg == NULL) in eap_sim_msg_add()
1088 if (wpabuf_resize(&msg->buf, attr_len)) in eap_sim_msg_add()
1090 start = wpabuf_put(msg->buf, 0); in eap_sim_msg_add()
1091 wpabuf_put_u8(msg->buf, attr); in eap_sim_msg_add()
1092 wpabuf_put_u8(msg->buf, attr_len / 4); in eap_sim_msg_add()
1093 wpabuf_put_be16(msg->buf, value); in eap_sim_msg_add()
1095 wpabuf_put_data(msg->buf, data, len); in eap_sim_msg_add()
1097 wpabuf_put(msg->buf, len); in eap_sim_msg_add()
1099 os_memset(wpabuf_put(msg->buf, pad_len), 0, pad_len); in eap_sim_msg_add()
1104 u8 * eap_sim_msg_add_mac(struct eap_sim_msg *msg, u8 attr) in eap_sim_msg_add_mac() argument
1106 u8 *pos = eap_sim_msg_add(msg, attr, 0, NULL, EAP_SIM_MAC_LEN); in eap_sim_msg_add_mac()
1108 msg->mac = (pos - wpabuf_head_u8(msg->buf)) + 4; in eap_sim_msg_add_mac()
1113 int eap_sim_msg_add_encr_start(struct eap_sim_msg *msg, u8 attr_iv, in eap_sim_msg_add_encr_start() argument
1116 u8 *pos = eap_sim_msg_add(msg, attr_iv, 0, NULL, EAP_SIM_IV_LEN); in eap_sim_msg_add_encr_start()
1119 msg->iv = (pos - wpabuf_head_u8(msg->buf)) + 4; in eap_sim_msg_add_encr_start()
1120 if (random_get_bytes(wpabuf_mhead_u8(msg->buf) + msg->iv, in eap_sim_msg_add_encr_start()
1122 msg->iv = 0; in eap_sim_msg_add_encr_start()
1126 pos = eap_sim_msg_add(msg, attr_encr, 0, NULL, 0); in eap_sim_msg_add_encr_start()
1128 msg->iv = 0; in eap_sim_msg_add_encr_start()
1131 msg->encr = pos - wpabuf_head_u8(msg->buf); in eap_sim_msg_add_encr_start()
1137 int eap_sim_msg_add_encr_end(struct eap_sim_msg *msg, u8 *k_encr, int attr_pad) in eap_sim_msg_add_encr_end() argument
1141 if (msg == NULL || k_encr == NULL || msg->iv == 0 || msg->encr == 0) in eap_sim_msg_add_encr_end()
1144 encr_len = wpabuf_len(msg->buf) - msg->encr - 4; in eap_sim_msg_add_encr_end()
1155 pos = eap_sim_msg_add(msg, attr_pad, 0, NULL, pad_len - 4); in eap_sim_msg_add_encr_end()
1163 wpabuf_mhead_u8(msg->buf)[msg->encr + 1] = encr_len / 4 + 1; in eap_sim_msg_add_encr_end() local
1164 return aes_128_cbc_encrypt(k_encr, wpabuf_head_u8(msg->buf) + msg->iv, in eap_sim_msg_add_encr_end()
1165 wpabuf_mhead_u8(msg->buf) + msg->encr + 4, in eap_sim_msg_add_encr_end()