protected async Task <byte[]> ReadAsync(CancellationToken cancellation)
        {
            MemoryStream response    = new MemoryStream();
            int          remaining   = 0;
            int          sequenceIdx = 0;

            try
            {
                do
                {
                    var result = await _Device.ReadAsync(cancellation);

                    var commandPart = UnwrapReponseAPDU(result, ref sequenceIdx, ref remaining);
                    if (commandPart == null)
                    {
                        return(null);
                    }
                    response.Write(commandPart, 0, commandPart.Length);
                } while(remaining != 0);
            }
            catch (HIDDeviceException)
            {
                return(null);
            }
            return(response.ToArray());
        }