class method self.fixed_length_secure_compare

Ruby on Rails 6.0.6

Since v5.2.8.1

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

self.fixed_length_secure_compare(a, b)

Constant time string comparison, for fixed length strings.

The values compared should be of fixed length, such as strings that have already been processed by HMAC. Raises in case of length mismatch.

Parameters

a req
b req
Source
# File activesupport/lib/active_support/security_utils.rb, line 11
    def fixed_length_secure_compare(a, b)
      raise ArgumentError, "string length mismatch." unless a.bytesize == b.bytesize

      l = a.unpack "C#{a.bytesize}"

      res = 0
      b.each_byte { |byte| res |= byte ^ l.shift }
      res == 0
    end

Defined in activesupport/lib/active_support/security_utils.rb line 11 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::SecurityUtils

Type at least 2 characters to search.

↑↓ navigate · open · esc close