anchor.diff:  		#eap_pwd{type = ?PWD, pwd_exch = id, data = BodyData} = EAPHeader,
   		Body = ocs_eap_codec:eap_pwd_id(BodyData),
   		#eap_pwd_id{token = Token, pwd_prep = none, identity = PeerID} = Body,
  -		PWE = ocs_eap_pwd:compute_pwe(Token, PeerID, HostName, Password),
  -		{ScalarS, ElementS} = ocs_eap_pwd:compute_scalar(Password, PWE),
  +		PWE = ocs_eap_pwd:compute_pwe(Token, PeerID, HostName, Secret),
  +		{ScalarS, ElementS} = ocs_eap_pwd:compute_scalar(<<S_rand:256>>, PWE),
   		Body = #eap_pwd_commit{scalar = ScalarS, element = ElementS},
   		BodyData = ocs_eap_codec:eap_pwd_commit(Body),
   		Header = #eap_pwd{type = ?PWD, length = false,
  
positive.code: 				authenticator = ResponseAuthenticator, attributes = AttributeData},
  		ResponsePacket = radius:codec(Response),
  		radius:response(RadiusFsm, ResponsePacket),
  		NewStateData = StateData#statedata{password = Password, pwe = PWE,
  			peer_id = PeerID, eap_id = NewEAPID, scalar_s = ScalarS, element_s = ElementS},
  		{next_state, wait_for_commit, NewStateData, ?TIMEOUT}
  	catch
  
negative.code: 		eap_id = EapID, radius_id = RadiusID, secret = Secret,
  		radius_fsm = RadiusFsm, authenticator = RequestAuthenticator} = StateData)->
  	{ok, HostName} = inet:gethostname(),
  	S_rand = crypto:rand_bytes(4),
  	try 
  		EAPData = ocs_eap_codec:eap_packet(EAPPacket),
  		#eap_packet{code = ?Response, identifier = EapID, data = Data} = EAPData,
  