anchor.diff:          <<LenData:4/binary, PayloadData/binary>>) ->
       %% Encrypt length
       IV1 = <<0:8/unit:8, Seq:8/unit:8>>,
  -    EncLen = crypto:crypto_one_shot(chacha20, K1, IV1, LenData, true),
  +    EncLen = crypto:crypto_one_time(chacha20, K1, IV1, LenData, true),
       %% Encrypt payload
       IV2 = <<1:8/little-unit:8, Seq:8/unit:8>>,
  -    EncPayloadData = crypto:crypto_one_shot(chacha20, K2, IV2, PayloadData, true),
  +    EncPayloadData = crypto:crypto_one_time(chacha20, K2, IV2, PayloadData, true),
       %% MAC tag
  -    PolyKey = crypto:crypto_one_shot(chacha20, K2, <<0:8/unit:8,Seq:8/unit:8>>, <<0:32/unit:8>>, true),
  +    PolyKey = crypto:crypto_one_time(chacha20, K2, <<0:8/unit:8,Seq:8/unit:8>>, <<0:32/unit:8>>, true),
       EncBytes = <<EncLen/binary,EncPayloadData/binary>>,
       Ctag = crypto:poly1305(PolyKey, EncBytes),
       %% Result
  
positive.code: decrypt(#ssh{decrypt = 'chacha20-poly1305@openssh.com',
               decrypt_keys = {K1,_K2},
               recv_sequence = Seq} = Ssh, {length,EncryptedLen}) ->
      PacketLenBin = crypto:crypto_one_shot(chacha20, K1, <<0:8/unit:8, Seq:8/unit:8>>, EncryptedLen, false),
      {Ssh, PacketLenBin};
  
  decrypt(#ssh{decrypt = 'chacha20-poly1305@openssh.com',
  
negative.code: 	 {'AEAD_AES_256_GCM', [{ciphers,aes_256_gcm}]},
  	 {'AEAD_AES_128_GCM', [{ciphers,aes_128_gcm}]},
  	 {'aes128-cbc',       [{ciphers,aes_128_cbc}]},
  	 {'3des-cbc',         [{ciphers,des_ede3_cbc}]}
  	]
         ));
  supported_algorithms(mac) ->
  