using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hazel.Crypto
{
    /// 
    /// AES encryption interface
    /// 
    public interface IAes : IDisposable
    {
        /// 
        /// Encrypts the specified region of the input byte array and copies
        /// the resulting transform to the specified region of the output
        /// array.
        /// 
        /// The input for which to encrypt
        /// 
        /// The otput to which to write the encrypted data. This span can
        /// overlap with `inputSpan`.
        /// 
        /// The number of bytes written
        int EncryptBlock(ByteSpan inputSpan, ByteSpan outputSpan);
    }
}