anchor.diff:  		prf = PRF,
   		token = Token,
   		pwd_prep = PWDPrep,
  -		identity = Identity}.
  -
  --spec payload_id(#eap_pwd_id{}) -> binary().
  -%% @doc Encode `EAP-pwd-ID' 
  -%%
  -%% RFC-5931 3.2.1
  -%% Comprise the Ciphersuite included in the calculation of the
  -%% peer's and server's confirm messages
  -payload_id(#eap_pwd_id{groug_id = GID, random_fun = RanFun, prf = PRF,
  +		identity = Id};
  +payload_id(#eap_pwd_id{group_desc = GDesc, random_fun = RanFun, prf = PRF,
   		token = Token, pwd_prep = PWDPre, identity = ID}) ->
  -	<<GID, RanFun, PRF, Token, PWDPre, ID>>.
  +	<<GDesc, RanFun, PRF, Token, PWDPre, ID>>.
  
positive.code: 		_ ->
  			pwd(T, Acc)
  	end;
  pwd(<<Identifier/binary, T>>, Acc) ->
  	pwd(T, Acc#eap_pwd{identifier = Identifier});
  pwd(<<Length/binary, T>>, Acc) ->
  	case size(Length) of
  		S when S >= 32 ->
  			pwd(T, Acc#eap_pwd{length = Length});
  		_ ->
  			pwd(T, Acc)
  	end;
  pwd(<<Type/binary, T>>, Acc) ->
  	case Type of
  		?PWD ->
  			pwd(T, Acc#eap_pwd{type = Type});
  		_ ->
  			pwd(T, Acc)
  	end;
  pwd(<<LB/binary, T>>, Acc) ->
  	pwd(T, Acc#eap_pwd{l_bit = LB});
  pwd(<<MB/binary, T>>, Acc) ->
  	pwd(T, Acc#eap_pwd{m_bit = MB});
  pwd(<<PWDExch/binary, T>>, Acc) ->
  	pwd(T, Acc#eap_pwd{pwd_exch = PWDExch});
  pwd(<<TotLength/binary, T>>, Acc) ->
  	case Acc#eap_pwd.l_bit of
  		true ->
  			pwd(T, Acc#eap_pwd{tot_length = TotLength});
  
negative.code: pwd(<<>>, Acc) ->
  	Acc.
  
  -spec payload_id(Packet :: binary()) -> #eap_pwd_id{}.
  %% @doc Encode or Decode `EAP-pwd-ID' 
  %%
  %% RFC-5931 3.2.1
  %% Comprise the Ciphersuite included in the calculation of the
  