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