Method: CF::UAA::Util.decode64

Defined in:
lib/uaa/util.rb

.decode64(str) ⇒ String

Decodes a URL-safe base 64 encoded string. Adds padding if necessary.

Returns:

  • (String)

    decoded string



171
172
173
174
175
176
177
178
179
# File 'lib/uaa/util.rb', line 171

def self.decode64(str)
  return unless str
  pad = str.length % 4
  str = str + '=' * (4 - pad) if pad > 0
  Base64.respond_to?(:urlsafe_decode64) ?
      Base64.urlsafe_decode64(str) : Base64.decode64(str.tr('-_', '+/'))
rescue ArgumentError
  raise DecodeError, "invalid base64 encoding"
end