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: %%
  -type sqn() :: binary().
  %% @type sqn() = binary().
  %% 	A 48 bit sequence number (SQN).  The management of sequence 
  %% 	numbers is specified in
  %% 	<a href="http://www.3gpp.org/ftp/Specs/html-info/33102.htm">
  %% 	3GPP TS 33.102</a> Annex C.  The current implementation of
  %% 	the {@link //hss/hss_server. hss_server} module uses sequence
  %% 	numbers which are not time-based as described in C.1.1.2 and
  %% 	C.3.2.  `SQN = SQE || IND' where the length of `IND' is five 
  %% 	bits or in Erlang terms `SQN = <<SQE:43, IND:5>>'.
  %%
  -type amf() :: binary().
  
negative.code: %% 	A 128 bit integrity key (AK).
  %%
  
  -spec f0() -> RAND
  	when
  		RAND :: rand().
  %% @doc Random challenge generating function.
  %%
  %% 	Generate a strongly random 128-bit value.
  f0() ->
  	crypto:strong_rand_bytes(16).
  
  -spec f1(OPc, K, RAND, SQN, AMF) -> MAC_A
  	when
  		OPc :: opc(),
  