anchor.diff:  
   encrypt_and_send_chunk(
     #params{
  -     socket = Socket, rekey_count = Seq, rekey_msg = RekeyMsg} = Params,
  -  Seq, Cleartext) ->
  +     socket = Socket, rekey_count = RekeyCount, rekey_msg = RekeyMsg} = Params,
  +  Seq, Cleartext) when Seq =:= RekeyCount ->
       %%
       cancel_rekey_timer(RekeyMsg),
       case encrypt_and_send_rekey_chunk(Params, Seq) of
  
positive.code:                 dist_tick ->
                      output_handler_tick(Params, Seq);
                  _ when Msg =:= Params#params.rekey_msg ->
                      Params_1 = output_handler_rekey(Params, Seq),
                      output_handler(Params_1, 0);
                  _ ->
                      %% Ignore
                      _ = trace(Msg),
  
negative.code:             end;
          %%
          {?MODULE, From, {send, Data}} ->
              {SendParams_1, SendSeq_1, Result} =
                  encrypt_and_send_chunk(
                    SendParams, SendSeq, [?HANDSHAKE_CHUNK, Data]),
              if
                  Result =:= ok ->
                      reply(From, ok),
                      handshake(
                        SendParams_1, SendSeq_1, RecvParams, RecvSeq,
                        Controller);
                  true ->
                      reply(From, {error, closed}),
                      death_row({send, trace(Result)})
              end;
          {?MODULE, From, recv} ->
              {RecvParams_1, RecvSeq_1, Result} =
                  recv_and_decrypt_chunk(RecvParams, RecvSeq),
              case Result of
                  {ok, _} ->
                      reply(From, Result),
                      handshake(
                        SendParams, SendSeq, RecvParams_1, RecvSeq_1,
                        Controller);
                  {error, _} ->
                      reply(From, Result),
                      death_row({recv, trace(Result)})
              end;
          {?MODULE, From, peername} ->
              reply(From, inet:peername(Socket)),
  