public override async Task <(Asn1Object, int)> Read(IAsn1Serializer serializer, Identifier id, int length,
                                                            Stream stream, CancellationToken cancellationToken)
        {
            var totalLength = 0;
            var lst         = new List <Asn1Object>();

            while (length > 0)
            {
                var(obj, bytesRead) = await serializer.Read(stream, cancellationToken);

                lst.Add(obj);
                length      -= bytesRead;
                totalLength += bytesRead;
            }
            return(new Asn1Set(lst), totalLength);
        }