Module: PQCrypto::Internal

Defined in:
lib/pq_crypto/internal.rb

Class Method Summary collapse

Class Method Details

.binary_string(value) ⇒ Object



7
8
9
# File 'lib/pq_crypto/internal.rb', line 7

def binary_string(value)
  String(value).b
end

.constant_time_equal?(left, right) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/pq_crypto/internal.rb', line 29

def constant_time_equal?(left, right)
  PQCrypto.__send__(:native_ct_equals, left, right)
end

.frozen_binary_string(value) ⇒ Object



11
12
13
# File 'lib/pq_crypto/internal.rb', line 11

def frozen_binary_string(value)
  binary_string(value).freeze
end

.safe_wipe(value) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/pq_crypto/internal.rb', line 21

def safe_wipe(value)
  return unless value.is_a?(String) && !value.frozen?

  PQCrypto.secure_wipe(value)
rescue ArgumentError
  nil
end

.strict_boolean!(value, name:) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
# File 'lib/pq_crypto/internal.rb', line 15

def strict_boolean!(value, name:)
  return value if value.equal?(true) || value.equal?(false)

  raise ArgumentError, "#{name} must be true or false (got #{value.inspect})"
end