Sha256: b8c52f57168c8943a59ec0296ec70b4fe74e1a3b63720e8d01b1bde2e29290fb
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
require 'openssl' require 'encryptor/string' String.send(:include, Encryptor::String) # A simple wrapper for the standard OpenSSL library module Encryptor autoload :Version, 'encryptor/version' extend self # The default options to use when calling the <tt>encrypt</tt> and <tt>decrypt</tt> methods # # Defaults to { :algorithm => 'aes-256-cbc' } # # Run 'openssl list-cipher-commands' in your terminal to view a list all cipher algorithms that are supported on your platform def default_options @default_options ||= { :algorithm => 'aes-256-cbc' } end # Encrypts a <tt>:value</tt> with a specified <tt>:key</tt> # # Optionally accepts <tt>:iv</tt> and <tt>:algorithm</tt> options # # Example # # encrypted_value = Encryptor.encrypt(:value => 'some string to encrypt', :key => 'some secret key') # # or # encrypted_value = Encryptor.encrypt('some string to encrypt', :key => 'some secret key') def encrypt(*args) crypt :encrypt, *args end # Decrypts a <tt>:value</tt> with a specified <tt>:key</tt> # # Optionally accepts <tt>:iv</tt> and <tt>:algorithm</tt> options # # Example # # decrypted_value = Encryptor.decrypt(:value => 'some encrypted string', :key => 'some secret key') # # or # decrypted_value = Encryptor.decrypt('some encrypted string', :key => 'some secret key') def decrypt(*args) crypt :decrypt, *args end protected def crypt(cipher_method, *args) #:nodoc: options = default_options.merge(:value => args.first).merge(args.last.is_a?(Hash) ? args.last : {}) cipher = OpenSSL::Cipher::Cipher.new(options[:algorithm]) cipher.send(cipher_method) if options[:iv] cipher.key = options[:key] cipher.iv = options[:iv] else cipher.pkcs5_keyivgen(options[:key]) end result = cipher.update(options[:value]) result << cipher.final end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
encryptor-1.1.2 | lib/encryptor.rb |