# File lib/rubytorrent/package.rb, line 313
  def valid?
    return @valid unless @valid.nil?
    return (@valid = false) unless complete?

    data = read_bytes(0, @length)
    if (data.length != @length)
      @valid = false
    else
      @valid = (Digest::SHA1.digest(data) == @sha1)
    end
  end