aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/message_encryptor.rb
diff options
context:
space:
mode:
authorVipul A M <vipulnsward@gmail.com>2016-07-09 15:51:56 -0700
committerVipul A M <vipulnsward@gmail.com>2016-09-01 03:00:10 +0530
commit79c847892f5a08515769ad2598d4e6726dcd65e3 (patch)
treed330726952e6e5a8175a0144cf7de4d272703aea /activesupport/lib/active_support/message_encryptor.rb
parentae32b69ab9647f4072d6852c4d4d1f2a939360c1 (diff)
downloadrails-79c847892f5a08515769ad2598d4e6726dcd65e3.tar.gz
rails-79c847892f5a08515769ad2598d4e6726dcd65e3.tar.bz2
rails-79c847892f5a08515769ad2598d4e6726dcd65e3.zip
Start passing cipher from EncryptedCookieJar since we use it to determine key length
Diffstat (limited to 'activesupport/lib/active_support/message_encryptor.rb')
-rw-r--r--activesupport/lib/active_support/message_encryptor.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/message_encryptor.rb b/activesupport/lib/active_support/message_encryptor.rb
index ab8b2f8ded..7b33dc3481 100644
--- a/activesupport/lib/active_support/message_encryptor.rb
+++ b/activesupport/lib/active_support/message_encryptor.rb
@@ -19,6 +19,8 @@ module ActiveSupport
# encrypted_data = crypt.encrypt_and_sign('my secret data') # => "NlFBTTMwOUV5UlA1QlNEN2xkY2d6eThYWWh..."
# crypt.decrypt_and_verify(encrypted_data) # => "my secret data"
class MessageEncryptor
+ DEFAULT_CIPHER = "aes-256-cbc"
+
module NullSerializer #:nodoc:
def self.load(value)
value
@@ -77,6 +79,11 @@ module ActiveSupport
_decrypt(verifier.verify(value))
end
+ # Given a cipher, returns the key length of the cipher to help generate the key of desired size
+ def self.key_len(cipher = DEFAULT_CIPHER)
+ OpenSSL::Cipher.new(cipher).key_len
+ end
+
private
def _encrypt(value)