Module: ActiveSupport::SecurityUtils
- Included in:
- SecureCompareRotator
- Defined in:
- lib/active_support/security_utils.rb
Class Method Summary collapse
- .fixed_length_secure_compare(a, b) ⇒ Object
-
.secure_compare(a, b) ⇒ Object
Secure string comparison for strings of variable length.
Class Method Details
.fixed_length_secure_compare(a, b) ⇒ Object
11 12 13 |
# File 'lib/active_support/security_utils.rb', line 11 def fixed_length_secure_compare(a, b) OpenSSL.fixed_length_secure_compare(a, b) end |
.secure_compare(a, b) ⇒ Object
Secure string comparison for strings of variable length.
While a timing attack would not be able to discern the content of a secret compared via secure_compare, it is possible to determine the secret length. This should be considered when using secure_compare to compare weak, short secrets to user input.
33 34 35 |
# File 'lib/active_support/security_utils.rb', line 33 def secure_compare(a, b) a.bytesize == b.bytesize && fixed_length_secure_compare(a, b) end |