Class: Chatopsify::CoSecurity
- Inherits:
-
Object
- Object
- Chatopsify::CoSecurity
- Defined in:
- lib/chatopsify/co.rb
Overview
CoSecurity service
Class Method Summary collapse
Instance Method Summary collapse
- #decrypt_string ⇒ Object
- #encrypt_string ⇒ Object
-
#initialize(str) ⇒ CoSecurity
constructor
A new instance of CoSecurity.
Constructor Details
#initialize(str) ⇒ CoSecurity
Returns a new instance of CoSecurity.
123 124 125 |
# File 'lib/chatopsify/co.rb', line 123 def initialize(str) @str = str end |
Class Method Details
.call(*args, &block) ⇒ Object
119 120 121 |
# File 'lib/chatopsify/co.rb', line 119 def self.call(*args, &block) new(*args, &block) end |
Instance Method Details
#decrypt_string ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/chatopsify/co.rb', line 144 def decrypt_string encrypted = [@str].pack('H*') cipher = OpenSSL::Cipher.new('aes-256-cbc') cipher.decrypt salt = encrypted[0, 16] encrypted_data = encrypted[16..] key_iv = OpenSSL::PKCS5.pbkdf2_hmac_sha1(generate_pwd, salt, 2000, cipher.key_len + cipher.iv_len) key = key_iv[0, cipher.key_len] iv = key_iv[cipher.key_len, cipher.iv_len] cipher.key = key cipher.iv = iv cipher.update(encrypted_data) + cipher.final rescue StandardError => e puts e. end |
#encrypt_string ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/chatopsify/co.rb', line 127 def encrypt_string cipher = OpenSSL::Cipher.new('aes-256-cbc') cipher.encrypt salt = SecureRandom.random_bytes(16) key_iv = OpenSSL::PKCS5.pbkdf2_hmac_sha1(generate_pwd, salt, 2000, cipher.key_len + cipher.iv_len) key = key_iv[0, cipher.key_len] iv = key_iv[cipher.key_len, cipher.iv_len] cipher.key = key cipher.iv = iv encrypted = cipher.update(@str) + cipher.final (salt + encrypted).unpack1('H*') rescue StandardError => e puts e. end |