anchor.diff:  					RadiusID, [], RequestAuthenticator, Secret, RadiusFsm),
   			{stop, {shutdown, SessionID}, NewStateData}
   	end.
  +%% @hidden
  +%% TLS Record - <<ContentType, Version:16, Length:16, ProtocolMessage>>
  +%% ProtocolMessage - <<MessageType, Length:24, ClientHelloMessage>>
  +%% RFC 5246 Section 7.4.1.2
  +%% ClientHelloMessage - <<ProtocolVersion:16, Gmt_unix_time:32, ClientRand:28,
  +%%		SessionID, CipherSuite, CompressionMethod, ..>>
  +client_hello1(<<?Handshake, _:32, ?ClientHello, _:72
  +		ClientRand:28/binary, _/binary>>, StateData) ->
  +	StateData#statedata{client_rand = ClientRand}.
  +
   
   -spec server_hello(Event :: timeout | term(), StateData :: #statedata{}) ->
   	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  
positive.code: 		rx_buf = [] :: iolist(),
  		tx_buf = [] :: iolist(),
  		ssl_pid :: pid(),
  		tls_key :: string(),
  		tls_crt :: string()}).
  
  
negative.code: 		case ocs_eap_codec:eap_ttls(TtlsData) of
  			#eap_ttls{more = false, message_len = undefined,
  					start = false, data = Data} when RxLength == undefined ->
  				NextStateData = client_hello1(iolist_to_binary([RxBuf, Data]), NewStateData),
  				ocs_eap_ttls_transport:deliver(SslPid, self(), [RxBuf, Data]),
  				NextNewStateData = NextStateData#statedata{rx_buf = [],
  						rx_length = undefined},
  				{next_state, server_hello, NextNewStateData, ?TIMEOUT};
  			#eap_ttls{more = false, message_len = undefined,
  					start = false, data = Data} ->
  				RxLength = iolist_size([RxBuf, Data]),
  