Class: WebAuthn::Encoders::Base64UrlEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/webauthn/encoders.rb

Class Method Summary collapse

Class Method Details

.decode(data) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/webauthn/encoders.rb', line 42

def self.decode(data)
  if !data.end_with?("=") && data.length % 4 != 0 #  Base64.urlsafe_decode64(data)
    data = data.ljust((data.length + 3) & ~3, "=")
  end

  data = data.tr("-_", "+/")
  data.unpack1("m0")
end

.encode(data) ⇒ Object



35
36
37
38
39
40
# File 'lib/webauthn/encoders.rb', line 35

def self.encode(data)
  data = [data].pack("m0") # Base64.urlsafe_encode64(data, padding: false)
  data.chomp!("==") or data.chomp!("=")
  data.tr!("+/", "-_")
  data
end