Sha256: ae36d57330d9f62b51c3da57942ac312ca8b0ce2cb0dd91272eb1ba3453c930f

Contents?: true

Size: 873 Bytes

Versions: 66

Compression:

Stored size: 873 Bytes

Contents

# frozen_string_literal: true

module ActiveRecord
  module Encryption
    # A message defines the structure of the data we store in encrypted attributes. It contains:
    #
    # * An encrypted payload
    # * A list of unencrypted headers
    #
    # See Encryptor#encrypt
    class Message
      attr_accessor :payload, :headers

      def initialize(payload: nil, headers: {})
        validate_payload_type(payload)

        @payload = payload
        @headers = Properties.new(headers)
      end

      def ==(other_message)
        payload == other_message.payload && headers == other_message.headers
      end

      private
        def validate_payload_type(payload)
          unless payload.is_a?(String) || payload.nil?
            raise ActiveRecord::Encryption::Errors::ForbiddenClass, "Only string payloads allowed"
          end
        end
    end
  end
end

Version data entries

66 entries across 65 versions & 8 rubygems

Version Path
activerecord-7.2.0.beta1 lib/active_record/encryption/message.rb
activerecord-7.1.3.2 lib/active_record/encryption/message.rb
activerecord-7.1.3.1 lib/active_record/encryption/message.rb
activerecord-7.0.8.1 lib/active_record/encryption/message.rb
activerecord-7.1.3 lib/active_record/encryption/message.rb
activerecord-7.1.2 lib/active_record/encryption/message.rb
activerecord-7.1.1 lib/active_record/encryption/message.rb
activerecord-7.1.0 lib/active_record/encryption/message.rb
activerecord-7.1.0.rc2 lib/active_record/encryption/message.rb
activerecord-7.1.0.rc1 lib/active_record/encryption/message.rb
activerecord-7.1.0.beta1 lib/active_record/encryption/message.rb
activerecord-7.0.8 lib/active_record/encryption/message.rb
activerecord-7.0.7.2 lib/active_record/encryption/message.rb
activerecord-7.0.7.1 lib/active_record/encryption/message.rb
activerecord-7.0.7 lib/active_record/encryption/message.rb
activerecord-7.0.6 lib/active_record/encryption/message.rb
activerecord-7.0.5.1 lib/active_record/encryption/message.rb
rubypitaya-3.12.5 ./lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4/lib/active_record/encryption/message.rb
activerecord-7.0.5 lib/active_record/encryption/message.rb
activerecord-7.0.4.3 lib/active_record/encryption/message.rb