0.6.4 broke this for some peer identity lengths. The padding was supposed to make sure that the length of PAC-Opaque is divisible by 8.
@@ -3,6 +3,8 @@ ChangeLog for hostapd
????-??-?? - v0.6.5
* added support for SHA-256 as X.509 certificate digest when using the
internal X.509/TLSv1 implementation
+ * fixed EAP-FAST PAC-Opaque padding (0.6.4 broke this for some peer
+ identity lengths)
2008-08-10 - v0.6.4
* added peer identity into EAP-FAST PAC-Opaque and skip Phase 2
@@ -685,7 +685,7 @@ static struct wpabuf * eap_fast_build_pac(struct eap_sm *sm,
}
pac_len = pos - pac_buf;
- if (pac_len % 8) {
+ while (pac_len % 8) {
*pos++ = PAC_OPAQUE_TYPE_PAD;
pac_len++;