class ActionDispatch::Cookies::UpgradeLegacyHmacAesCbcCookieJar
UpgradeLegacyHmacAesCbcCookieJar
is used by ActionDispatch::Session::CookieStore
to upgrade cookies encrypted with AES-256-CBC with HMAC to AES-256-GCM
Public Class Methods
new(parent_jar)
click to toggle source
Calls superclass method
Object::new
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 641 def initialize(parent_jar) super secret = key_generator.generate_key(request.encrypted_cookie_salt || "")[0, ActiveSupport::MessageEncryptor.key_len] sign_secret = key_generator.generate_key(request.encrypted_signed_cookie_salt || "") @legacy_encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret, cipher: "aes-256-cbc", digest: digest, serializer: ActiveSupport::MessageEncryptor::NullSerializer) end
Public Instance Methods
decrypt_and_verify_legacy_encrypted_message(name, signed_message)
click to toggle source
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 650 def decrypt_and_verify_legacy_encrypted_message(name, signed_message) deserialize(name, @legacy_encryptor.decrypt_and_verify(signed_message)).tap do |value| self[name] = { value: value } end rescue ActiveSupport::MessageVerifier::InvalidSignature, ActiveSupport::MessageEncryptor::InvalidMessage nil end
Private Instance Methods
parse(name, signed_message)
click to toggle source
Calls superclass method
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 659 def parse(name, signed_message) super || decrypt_and_verify_legacy_encrypted_message(name, signed_message) end