class EasyCrypto::Key

Constants

HASH_ALGO
ITERATION_COUNT
KEY_LENGTH

Attributes

key[R]
salt[R]

Public Class Methods

generate(password, salt_length = DEFAULT_SALT_LENGTH) click to toggle source
# File lib/easycrypto/key.rb, line 18
def self.generate(password, salt_length = DEFAULT_SALT_LENGTH)
  salt = OpenSSL::Random.random_bytes(salt_length)

  generate_with_salt(password, salt)
end
generate_with_salt(password, salt) click to toggle source
# File lib/easycrypto/key.rb, line 24
def self.generate_with_salt(password, salt)
  key = OpenSSL::PKCS5.pbkdf2_hmac(
    password,
    salt,
    Key::ITERATION_COUNT,
    Key::KEY_LENGTH,
    Key::HASH_ALGO
  )

  new(key, salt)
end
new(key, salt) click to toggle source
# File lib/easycrypto/key.rb, line 13
def initialize(key, salt)
  @key = key
  @salt = salt
end