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); }