Lines Matching defs:erp
536 struct eap_erp_key *erp;
538 dl_list_for_each(erp, &sm->erp_keys, struct eap_erp_key, list) {
541 pos = os_strchr(erp->keyname_nai, '@');
546 return erp;
556 struct eap_erp_key *erp;
558 dl_list_for_each(erp, &sm->erp_keys, struct eap_erp_key, list) {
559 if (os_strcmp(erp->keyname_nai, nai) == 0)
560 return erp;
567 static void eap_peer_erp_free_key(struct eap_erp_key *erp)
569 dl_list_del(&erp->list);
570 bin_clear_free(erp, sizeof(*erp));
576 struct eap_erp_key *erp;
578 while ((erp = eap_erp_get_key(sm, realm)) != NULL) {
580 erp->keyname_nai);
581 eap_peer_erp_free_key(erp);
588 struct eap_erp_key *erp;
597 erp = eap_erp_get_key(sm, home_realm);
598 if (!erp) {
606 if ((u32) next_seq_num < erp->next_seq) {
610 eap_peer_erp_free_key(erp);
612 erp->next_seq = (u32) next_seq_num;
626 struct eap_erp_key *erp;
639 erp = eap_erp_get_key(sm, home_realm);
641 if (!erp)
644 if (erp->next_seq >= 65536)
647 pos = os_strchr(erp->keyname_nai, '@');
650 *username_len = pos - erp->keyname_nai;
651 *username = (u8 *) erp->keyname_nai;
657 *erp_next_seq_num = (u16) erp->next_seq;
659 *rrk_len = erp->rRK_len;
660 *rrk = erp->rRK;
674 struct eap_erp_key *erp, *tmp;
676 dl_list_for_each_safe(erp, tmp, &sm->erp_keys, struct eap_erp_key, list)
677 eap_peer_erp_free_key(erp);
698 struct eap_erp_key *erp = NULL;
719 erp = os_zalloc(sizeof(*erp) + nai_buf_len);
720 if (erp == NULL)
760 pos = wpa_snprintf_hex(erp->keyname_nai, nai_buf_len,
762 erp->keyname_nai[pos] = '@';
763 os_memcpy(&erp->keyname_nai[pos + 1], realm, realm_len);
768 len, sizeof(len), erp->rRK, emsk_len) < 0) {
772 erp->rRK_len = emsk_len;
773 wpa_hexdump_key(MSG_DEBUG, "EAP: ERP rRK", erp->rRK, erp->rRK_len);
776 WPA_PUT_BE16(&ctx[1], erp->rRK_len);
777 if (hmac_sha256_kdf(erp->rRK, erp->rRK_len,
779 ctx, sizeof(ctx), erp->rIK, erp->rRK_len) < 0) {
783 erp->rIK_len = erp->rRK_len;
784 wpa_hexdump_key(MSG_DEBUG, "EAP: ERP rIK", erp->rIK, erp->rIK_len);
786 wpa_printf(MSG_DEBUG, "EAP: Stored ERP keys %s", erp->keyname_nai);
787 dl_list_add(&sm->erp_keys, &erp->list);
788 erp = NULL;
795 bin_clear_free(erp, sizeof(*erp));
805 struct eap_erp_key *erp;
813 erp = eap_erp_get_key(sm, realm);
816 if (!erp)
819 if (erp->next_seq >= 65536)
825 erp->keyname_nai, erp->next_seq);
829 1 + 2 + 2 + os_strlen(erp->keyname_nai) + 1 + 16,
835 wpabuf_put_be16(msg, erp->next_seq);
838 wpabuf_put_u8(msg, os_strlen(erp->keyname_nai));
839 wpabuf_put_str(msg, erp->keyname_nai);
843 if (hmac_sha256(erp->rIK, erp->rIK_len,
850 sm->erp_seq = erp->next_seq;
851 erp->next_seq++;
1087 if (config->erp && sm->m->get_emsk && sm->eapSessionId &&
1866 struct eap_erp_key *erp;
1926 erp = eap_erp_get_key_nai(sm, nai);
1927 if (!erp) {
1951 if (hmac_sha256(erp->rIK, erp->rIK_len, (const u8 *) hdr,
1983 eap_peer_erp_free_key(erp);
1989 sm->eapKeyData = os_malloc(erp->rRK_len);
1992 sm->eapKeyDataLen = erp->rRK_len;
1995 WPA_PUT_BE16(&seed[2], erp->rRK_len);
1996 if (hmac_sha256_kdf(erp->rRK, erp->rRK_len,
1999 sm->eapKeyData, erp->rRK_len) < 0) {