Sha256: 3f1e90fd140d62b641222d65e955f1b766ca331ec0f15390ad0e6624e7a20759
Contents?: true
Size: 979 Bytes
Versions: 1
Compression:
Stored size: 979 Bytes
Contents
require 'crypt_keeper/log_subscriber/mysql_aes' module CryptKeeper module Provider class MysqlAes include CryptKeeper::Helper::SQL attr_accessor :key # Public: Initializes the encryptor # # options - A hash, :key is required def initialize(options = {}) ActiveSupport.run_load_hooks(:crypt_keeper_mysql_aes_log, self) @key = options.fetch(:key) do raise ArgumentError, "Missing :key" end end # Public: Encrypts a string # # Returns an encrypted string def encrypt(value) Base64.encode64 escape_and_execute_sql( ["SELECT AES_ENCRYPT(?, ?) AS ciphertext", value, key])['ciphertext'] end # Public: Decrypts a string # # Returns a plaintext string def decrypt(value) escape_and_execute_sql( ["SELECT AES_DECRYPT(?, ?) AS plaintext", Base64.decode64(value), key])['plaintext'] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
crypt_keeper-0.11.0 | lib/crypt_keeper/provider/mysql_aes.rb |