instance method decrypt_and_verify

Ruby on Rails 8.1.2

Since v2.3.18

Available in: v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

decrypt_and_verify(message, **options)

Decrypt and verify a message. We need to verify the message in order to avoid padding attacks. Reference: www.limited-entropy.com/padding-oracle-attacks/.

Options

:purpose

The purpose that the message was generated with. If the purpose does not match, decrypt_and_verify will return nil.

message = encryptor.encrypt_and_sign("hello", purpose: "greeting")
encryptor.decrypt_and_verify(message, purpose: "greeting") # => "hello"
encryptor.decrypt_and_verify(message)                      # => nil

message = encryptor.encrypt_and_sign("bye")
encryptor.decrypt_and_verify(message)                      # => "bye"
encryptor.decrypt_and_verify(message, purpose: "greeting") # => nil

Parameters

message req
options keyrest
Source
# File activesupport/lib/active_support/message_encryptor.rb, line 241
    def decrypt_and_verify(message, **options)
      catch_and_raise :invalid_message_format, as: InvalidMessage do
        catch_and_raise :invalid_message_serialization, as: InvalidMessage do
          catch_and_ignore :invalid_message_content do
            read_message(message, **options)
          end
        end
      end
    end

Defined in activesupport/lib/active_support/message_encryptor.rb line 241 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::MessageEncryptor

Type at least 2 characters to search.

↑↓ navigate · open · esc close