class D2L::Valence::Encrypt

Encrypt

Class encrypt and encode data for transmission in a URL

Public Class Methods

encode(digest) click to toggle source
# File lib/d2l/valence/encrypt.rb, line 18
def self.encode(digest)
  Base64.urlsafe_encode64(digest, padding: false).strip
rescue
  old_encode digest
end
generate_from(key, data) click to toggle source

Encrypt and encode data with provided key

@param [String] key the key to encrypt with @param [String] data data to encrypt and encode

# File lib/d2l/valence/encrypt.rb, line 10
def self.generate_from(key, data)
  encode(sign(key, data))
end
old_encode(digest) click to toggle source

support for older versions of ruby

# File lib/d2l/valence/encrypt.rb, line 25
def self.old_encode(digest)
  remove_unwanted_chars Base64.encode64(digest).strip
end
remove_unwanted_chars(string) click to toggle source
# File lib/d2l/valence/encrypt.rb, line 29
def self.remove_unwanted_chars(string)
  string.delete('=').tr('+', '-').tr('/', '_').strip
end
sign(key, data) click to toggle source
# File lib/d2l/valence/encrypt.rb, line 14
def self.sign(key, data)
  OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), key, data)
end