lib/parsel.rb in parsel-0.3.0 vs lib/parsel.rb in parsel-1.0.0
- old
+ new
@@ -1,16 +1,25 @@
-require 'openssl'
-require 'base64'
-require 'json'
-require 'parsel/marshal'
-require 'parsel/json'
-require 'parsel/version'
+require "securerandom"
+require "openssl"
+require "base64"
+require "json"
+require "parsel/marshal"
+require "parsel/json"
+require "parsel/version"
module Parsel
- DEFAULT_IV = 'f89209ffcdd1a225'.freeze
- CIPHER = 'AES-256-CBC'.freeze
+ DEFAULT_IV = "f89209ffcdd1a225".freeze
+ CIPHER = "AES-256-CBC".freeze
+ def self.print_deprecation_message
+ warn <<~TEXT
+ `parsel` is no longer supported. Use at your own risk.
+ Called from #{caller[1]}
+
+ TEXT
+ end
+
def self.default_iv=(iv)
@default_iv = iv
end
def self.default_iv
@@ -18,14 +27,16 @@
end
self.default_iv = DEFAULT_IV
def self.encrypt(*args)
+ Parsel.print_deprecation_message
encode cipher(:encrypt, *expand_args(args))
end
def self.decrypt(*args)
+ Parsel.print_deprecation_message
key, iv, data = expand_args(args)
cipher(:decrypt, key, iv, decode(data))
rescue Exception
false
end
@@ -43,17 +54,19 @@
private
def self.cipher(mode, key, iv, data)
cipher = OpenSSL::Cipher.new(CIPHER).public_send(mode)
cipher.key = Digest::SHA256.digest(key)
- cipher.iv = iv
+ cipher.iv = iv[0...cipher.iv_len]
cipher.update(data) + cipher.final
end
def self.encode(data)
- Base64.encode64(data).gsub(/\n/, '')
+ Base64.encode64(data).gsub(/\n/, "")
end
def self.decode(data)
Base64.decode64(data)
end
end
+
+Parsel.print_deprecation_message