class Passman::Crypto
Constants
- MINIMUM_SIZE_KEY
Public Class Methods
decrypt(encrypted_password, key)
click to toggle source
# File lib/passman/crypto.rb, line 17 def decrypt(encrypted_password, key) cipher = new_cipher cipher.decrypt cipher.key = sanitize_key(key) decrypted_password = cipher.update(Base64.decode64(encrypted_password)) decrypted_password << cipher.final end
encrypt(password, key)
click to toggle source
# File lib/passman/crypto.rb, line 9 def encrypt(password, key) cipher = new_cipher cipher.encrypt cipher.key = sanitize_key(key) encrypted_password = cipher.update(password) + cipher.final Base64.encode64(encrypted_password) end
Private Class Methods
new_cipher()
click to toggle source
# File lib/passman/crypto.rb, line 27 def new_cipher OpenSSL::Cipher::AES.new(256, 'CBC') end
sanitize_key(key)
click to toggle source
# File lib/passman/crypto.rb, line 31 def sanitize_key(key) raise ArgumentError, 'No key provided.' if key.nil? || key.empty? sanitized = key sanitized += key while sanitized.length < MINIMUM_SIZE_KEY sanitized end