def each_cargo_section(name)
      raise CargoStreamerError.new("Mode must be 'r' to read cargo data") unless @mode == "r"
      locations = @cargo_locations[name] or return
      locations.each do |seek_location|
        @ioh.seek(seek_location)
        digest = ""
        encoded_data = ""
        @ioh.each_line do |line|
          line.chomp!
          if line == CARGO_END
            break
          elsif digest == ""
            digest = line
          else
            encoded_data += line
          end
        end
        
        yield verify_and_decode_cargo(digest, encoded_data)
      end
    end
def each_cargo_section(name)
      raise CargoStreamerError.new("Mode must be 'r' to read cargo data") unless @mode == "r"
      locations = @cargo_locations[name] or return
      locations.each do |seek_location|
        @ioh.seek(seek_location)
        digest = ""
        encoded_data = ""
        @ioh.each_line do |line|
          line.chomp!
          if line == CARGO_END
            break
          elsif digest == ""
            digest = line
          else
            encoded_data += line
          end
        end
        
        yield verify_and_decode_cargo(digest, encoded_data)
      end
    end
Reads, verifies, and decodes each cargo section with a given name, passing each section's decoded data to the block