Class: ActiveRecord::Encryption::Key
- Inherits:
-
Object
- Object
- ActiveRecord::Encryption::Key
- Defined in:
- 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
-
#public_tags ⇒ Object
readonly
Returns the value of attribute public_tags.
-
#secret ⇒ Object
readonly
Returns the value of attribute secret.
Class Method Summary collapse
Instance Method Summary collapse
- #id ⇒ Object
-
#initialize(secret) ⇒ Key
constructor
A new instance of Key.
Constructor Details
#initialize(secret) ⇒ Key
Returns a new instance of Key.
13 14 15 16 |
# File 'lib/active_record/encryption/key.rb', line 13 def initialize(secret) @secret = secret @public_tags = Properties.new end |
Instance Attribute Details
#public_tags ⇒ Object (readonly)
Returns the value of attribute public_tags.
11 12 13 |
# File 'lib/active_record/encryption/key.rb', line 11 def @public_tags end |
#secret ⇒ Object (readonly)
Returns the value of attribute secret.
11 12 13 |
# File 'lib/active_record/encryption/key.rb', line 11 def secret @secret end |
Class Method Details
.derive_from(password) ⇒ Object
18 19 20 21 |
# File '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
#id ⇒ Object
23 24 25 |
# File 'lib/active_record/encryption/key.rb', line 23 def id Digest::SHA1.hexdigest(secret).first(4) end |