Sha256: 25fddc4912cd773f1058993b6cc5b34f6c1bd30b74ac1b5099a75348aad4f1f5
Contents?: true
Size: 585 Bytes
Versions: 32
Compression:
Stored size: 585 Bytes
Contents
module ActiveSupport module SecurityUtils # Constant time string comparison. # # The values compared should be of fixed length, such as strings # that have already been processed by HMAC. This should not be used # on variable length plaintext strings because it could leak length info # via timing attacks. def secure_compare(a, b) return false unless a.bytesize == b.bytesize l = a.unpack "C#{a.bytesize}" res = 0 b.each_byte { |byte| res |= byte ^ l.shift } res == 0 end module_function :secure_compare end end
Version data entries
32 entries across 30 versions & 7 rubygems