while (i < res) {
int allow_skip = 1;
int maybe = 0;
+ bool prefix = false;
if (*pos == '=') {
allow_skip = 0;
len = next - pos;
else
len = os_strlen(pos);
- if (os_strncmp(pos, func[i], len) != 0) {
+ if (len >= 1 && pos[len - 1] == '*') {
+ prefix = true;
+ len -= 1;
+ }
+ if (os_strncmp(pos, func[i], len) != 0 ||
+ (!prefix && func[i][len] != '\0')) {
if (maybe && next) {
pos = next + 1;
continue;
tests = [(1, "eap_eke_dh_init", None),
(1, "eap_eke_prf_hmac_sha1", "dhgroup=3 encr=1 prf=1 mac=1"),
(1, "eap_eke_prf_hmac_sha256", "dhgroup=5 encr=1 prf=2 mac=2"),
- (1, "eap_eke_prf", None),
+ (1, "eap_eke_prf_*", None),
(1, "os_get_random;eap_eke_dhcomp", None),
(1, "aes_128_cbc_encrypt;eap_eke_dhcomp", None),
(1, "aes_128_cbc_decrypt;eap_eke_shared_secret", None),