Class: ActiveRecord::Encryption::Key

Inherits:
Object
  • Object
show all
Defined in:
activerecord/lib/active_record/encryption/key.rb

Overview

A key is a container for a given secret

Optionally, it can include public_tags. These tags are meant to be stored in clean (public) and can be used, for example, to include information that references the key for a future retrieval operation.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(secret) ⇒ Key

Returns a new instance of Key.



13
14
15
16
# File 'activerecord/lib/active_record/encryption/key.rb', line 13

def initialize(secret)
  @secret = secret
  @public_tags = Properties.new
end

Instance Attribute Details

#public_tagsObject (readonly)

Returns the value of attribute public_tags



11
12
13
# File 'activerecord/lib/active_record/encryption/key.rb', line 11

def public_tags
  @public_tags
end

#secretObject (readonly)

Returns the value of attribute secret



11
12
13
# File 'activerecord/lib/active_record/encryption/key.rb', line 11

def secret
  @secret
end

Class Method Details

.derive_from(password) ⇒ Object



18
19
20
21
# File 'activerecord/lib/active_record/encryption/key.rb', line 18

def self.derive_from(password)
  secret = ActiveRecord::Encryption.key_generator.derive_key_from(password)
  ActiveRecord::Encryption::Key.new(secret)
end

Instance Method Details

#idObject



23
24
25
# File 'activerecord/lib/active_record/encryption/key.rb', line 23

def id
  Digest::SHA1.hexdigest(secret).first(4)
end