anchor.diff:                  <<Ciphertext:CiphertextLen/binary,
                     CipherTag:TagLen/binary>> ->
                       block_decrypt(
  -                      Params, Seq, BlockCrypto, Key, IVBin,
  +                      Params, Seq, AeadCipher, Key, IVBin,
                         {AAD, Ciphertext, CipherTag});
                   _ ->
                       error
  
positive.code: -define(DRIVER, inet_tcp).
  -define(FAMILY, inet).
  
  -define(PROTOCOL, inet_crypto_dist_v1).
  -define(HASH_ALGORITHM, sha256).
  -define(BLOCK_CRYPTO, aes_gcm).
  -define(IV_LEN, 12).
  -define(KEY_LEN, 16).
  -define(TAG_LEN, 16).
  -define(REKEY_INTERVAL, 32768).
  
  -export([listen/1, accept/1, accept_connection/5,
  	 setup/5, close/1, select/1, is_node_name/1]).
  
  
negative.code: 
  encrypt_chunk(
    #params{
       aead_cipher = AeadCipher,
       iv = {IVSalt, IVNo}, key = Key, tag_len = TagLen}, Seq, Cleartext) ->
      %%
      ChunkLen = iolist_size(Cleartext) + TagLen,
      AAD = <<Seq:32, ChunkLen:32>>,
      IVBin = <<IVSalt/binary, (IVNo + Seq):48>>,
      {Ciphertext, CipherTag} =
          crypto:block_encrypt(AeadCipher, Key, IVBin, {AAD, Cleartext, TagLen}),
      Chunk = [Ciphertext,CipherTag],
      Chunk.
  
  decrypt_chunk(
    #params{
       aead_cipher = AeadCipher,
       iv = {IVSalt, IVNo}, key = Key, tag_len = TagLen} = Params, Seq, Chunk) ->
      %%
      ChunkLen = byte_size(Chunk),
  