anchor.diff:  	<<_:8/binary, MAC_S:8/binary>> = out1(OPc, K, TEMP, IN1),
   	MAC_S.
   
  --spec f2345(OPc, K, RAND) -> {RES, CK, IK, AK}
  +-spec f2(OPc, K, RAND) -> {RES, CK, IK, AK}
   	when
   		OPc :: opc(),
   		K :: k(),
  
positive.code: 		CK :: ck(),
  		IK :: ik(),
  		AK :: ak().
  %% @doc Computes response and keys.
  %%
  %% 	Takes as input the derived OPc, subscriber key K and random
  %% 	challenge RAND.  Returns response RES, confidentiality key CK,
  %% 	integrity key IK and anonymity key AK.
  %%
  f2345(OPc, K, RAND) ->
  	TEMP = temp(OPc, K, RAND),
  	<<AK:6/binary, _:2/binary, RES:8/binary>> = out2(OPc, K, TEMP),
  	CK = out3(OPc, K, TEMP),
  	IK = out4(OPc, K, TEMP),
  	{RES, CK, IK, AK}.
  	
  -spec f5(OPc, K, RAND) -> AK
  	when
  		OPc :: opc(),
  		K :: k(),
  		RAND :: rand(),
  		AK :: ak().
  %% @doc Computes resynch anonymity key AK. 
  %%
  %% 	Takes as input the derived OPc, subscriber key K and random
  %% 	challenge RAND.  Returns the anonymity key AK.
  %%
  f5(OPc, K, RAND) ->
  	TEMP = temp(OPc, K, RAND),
  	<<AK:6/binary, _/binary>> = out2(OPc, K, TEMP),
  	AK.
  
  -spec 'f5*'(OPc, K, RAND) -> AK
  	when
  
negative.code: 		K :: k(),
  		RAND :: rand(),
  		AK :: ak().
  %% @doc Anonymity key derivation function for re-synchronisation.
  %%
  %% 	Takes as input the derived OPc, subscriber key K and random
  %% 	challenge RAND.  Returns the anonymity key AK.
  