anchor.diff:     	end,
       try
      	{Packets, Buf} = ssl_handshake:get_tls_handshake(Data,Buf0, KeyAlg,Version),
  -   	Start = {next_state, StateName, State0#state{tls_handshake_buffer = Buf}},
  -	lists:foldl(Handle, Start, Packets)
  +	State = State0#state{tls_packets = Packets, tls_handshake_buffer = Buf},
  +	handle_tls_handshake(Handle, StateName, State)
       catch throw:#alert{} = Alert ->
      	    handle_own_alert(Alert, Version, StateName, State0), 
      	    {stop, normal, State0}
  
positive.code: send_user(Pid, Msg) ->
      Pid ! Msg.
  
  next_state(_, #alert{} = Alert, #state{negotiated_version = Version} = State) ->
      handle_own_alert(Alert, Version, decipher_error, State),
      {stop, normal, State};
  next_state(Next, no_record, State) ->
      {next_state, Next, State};
  
  
negative.code:           ssl_options,        % #ssl_options{}
            socket_options,     % #socket_options{}
            connection_states,  % #connection_states{} from ssl_record.hrl
  	  tls_packets = [],        % Not yet handled decode ssl/tls packets.
            tls_record_buffer,  % binary() buffer of incomplete records
            tls_handshake_buffer, % binary() buffer of incomplete handshakes
  	  %% {{md5_hash, sha_hash}, {prev_md5, prev_sha}} (binary())
  