anchor.diff:                          protocol = Protocol,
                           hash_algorithm = HashAlgorithm,
                           block_crypto = BlockCrypto,
  -                        iv = IV,
  +                        iv = {IVSalt, IVNo},
                           key = {KeySalt, OtherSalt},
                           tag_len = TagLen,
                           rekey_interval = RekeyInterval},
  
positive.code: 		  BlockCryptoBinLen,
  		  BlockCryptoBin:BlockCryptoBinLen/binary,
  		  Rest_2/binary>> ->
                      IVLen = ?IV_LEN, KeyLen = ?KEY_LEN,
  		    TagLen = ?TAG_LEN, RekeyInterval = ?REKEY_INTERVAL,
                      <<KeyLen, TagLen,
                        KeySalt:KeyLen/binary,
                        OtherSalt:KeyLen/binary,
                        IV:IVLen/binary>> = Rest_2,
                      HeaderLen = byte_size(Msg) - (byte_size(Rest_2) - 2),
                      <<Header:HeaderLen/binary, _/binary>> = Msg,
  		    {#params{
  
negative.code:     case crypto:block_decrypt(CipherName, Key, IV, Data) of
          <<?REKEY_CHUNK, Rest/binary>> ->
              KeyLen = byte_size(Key),
              IVSaltLen = byte_size(IV) - 6,
              case Rest of
                  <<KeySalt:KeyLen/binary, IVSalt:IVSaltLen/binary, IVNo:48>> ->
                      Key_1 =
                          hash_key(
                            Params#params.hash_algorithm, Key, KeySalt),
                      Params#params{iv = {IVSalt, IVNo}, key = Key_1};
                  _ ->
                      error
              end;
          Chunk when is_binary(Chunk) ->
              case Seq of
                  RekeyInterval ->
                      %% This was one chunk too many without rekeying
                      error;
                  _ ->
                      Chunk
  