Module: Sorcery::CryptoProviders

Defined in:
lib/sorcery/crypto_providers/sha256.rb,
lib/sorcery.rb,
lib/sorcery/crypto_providers/md5.rb,
lib/sorcery/crypto_providers/sha1.rb,
lib/sorcery/crypto_providers/aes256.rb,
lib/sorcery/crypto_providers/bcrypt.rb,
lib/sorcery/crypto_providers/common.rb,
lib/sorcery/crypto_providers/sha512.rb

Overview

The activate_sorcery method has a custom_crypto_provider configuration option. This allows you to use any type of encryption you like. Just create a class with a class level encrypt and matches? method. See example below.

Example

class MyAwesomeEncryptionMethod
  def self.encrypt(*tokens)
    # the tokens passed will be an array of objects, what type of object is irrelevant,
    # just do what you need to do with them and return a single encrypted string.
    # for example, you will most likely join all of the objects into a single string and then encrypt that string
  end

  def self.matches?(crypted, *tokens)
    # return true if the crypted string matches the tokens.
    # depending on your algorithm you might decrypt the string then compare it to the token, or you might
    # encrypt the tokens and make sure it matches the crypted string, its up to you
  end
end

Defined Under Namespace

Modules: Common Classes: AES256, BCrypt, MD5, SHA1, SHA256, SHA512