summaryrefslogtreecommitdiff
path: root/src/eap_common/eap_sim_common.c
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2019-08-22 02:58:49 +0000
committerCy Schubert <cy@FreeBSD.org>2019-08-22 02:58:49 +0000
commit61ba7d6203bdf21c1e14dda217e1bcbe7b35abf6 (patch)
tree1a98b35c0a77ae6d183c5ad2e1f4322ad057f642 /src/eap_common/eap_sim_common.c
parent6e6d0eb51ef7b7487340bae7f20097ee5a57dbf4 (diff)
Diffstat (limited to 'src/eap_common/eap_sim_common.c')
-rw-r--r--src/eap_common/eap_sim_common.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/eap_common/eap_sim_common.c b/src/eap_common/eap_sim_common.c
index 6290c35f1a6b8..1e0f80879dafd 100644
--- a/src/eap_common/eap_sim_common.c
+++ b/src/eap_common/eap_sim_common.c
@@ -945,10 +945,15 @@ u8 * eap_sim_parse_encr(const u8 *k_encr, const u8 *encr_data,
if (decrypted == NULL)
return NULL;
+#ifdef TEST_FUZZ
+ wpa_printf(MSG_INFO,
+ "TEST: Skip AES-128-CBC decryption for fuzz testing");
+#else /* TEST_FUZZ */
if (aes_128_cbc_decrypt(k_encr, iv, decrypted, encr_data_len)) {
os_free(decrypted);
return NULL;
}
+#endif /* TEST_FUZZ */
wpa_hexdump(MSG_MSGDUMP, "EAP-SIM: Decrypted AT_ENCR_DATA",
decrypted, encr_data_len);
@@ -1203,3 +1208,19 @@ void eap_sim_report_notification(void *msg_ctx, int notification, int aka)
}
}
}
+
+
+int eap_sim_anonymous_username(const u8 *id, size_t id_len)
+{
+ static const char *anonymous_id_prefix = "anonymous@";
+ size_t anonymous_id_len = os_strlen(anonymous_id_prefix);
+
+ if (id_len > anonymous_id_len &&
+ os_memcmp(id, anonymous_id_prefix, anonymous_id_len) == 0)
+ return 1; /* 'anonymous@realm' */
+
+ if (id_len > 1 && id[0] == '@')
+ return 1; /* '@realm' */
+
+ return 0;
+}