Sha256: 051f5baf31efa0e7b7f294dfd71705d0edaeb601500f02ff9e79708179299473
Contents?: true
Size: 629 Bytes
Versions: 3
Compression:
Stored size: 629 Bytes
Contents
# frozen_string_literal: true require "openssl" module AndroidKeyAttestation module FixedLengthSecureCompare unless OpenSSL.singleton_class.method_defined?(:fixed_length_secure_compare) refine OpenSSL.singleton_class do def fixed_length_secure_compare(a, b) # rubocop:disable Naming/UncommunicativeMethodParamName raise ArgumentError, "inputs must be of equal length" unless a.bytesize == b.bytesize # borrowed from Rack::Utils l = a.unpack("C*") r, i = 0, -1 b.each_byte { |v| r |= v ^ l[i += 1] } r == 0 end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems