Class: Duse::Client::UpdateSecret

Inherits:
Object
  • Object
show all
Defined in:
lib/duse/client/secret.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(secret, values_to_update) ⇒ UpdateSecret

Returns a new instance of UpdateSecret.



10
11
12
13
# File 'lib/duse/client/secret.rb', line 10

def initialize(secret, values_to_update)
  @secret = secret
  @values = values_to_update
end

Class Method Details

.values(secret, value_hash) ⇒ Object



43
44
45
# File 'lib/duse/client/secret.rb', line 43

def self.values(secret, value_hash)
  new(secret, value_hash)
end

Instance Method Details

#buildObject

Possible Scenarios


change title change secret -> changes cipher + shares change users -> changes shares



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/duse/client/secret.rb', line 25

def build
  result = {}
  result[:title] = @values[:title] if @values[:title]
  result[:folder_id] = @values[:folder_id].to_i if @values[:folder_id]
  if @values[:secret_text]
    users = @secret.users || @values[:current_users]
    cipher_text, shares = Encryption.encrypt(@values[:secret_text], users, @private_key)
    result[:cipher_text] = cipher_text
    result[:shares] = shares
  end
  if @values[:secret_text].nil? && @values[:users]
    shares = @secret.shares.map(&:content)
    symmetric_key = Encryption.decrypt_symmetric_key(shares, @private_key)
    result[:shares] = Encryption.encrypt_symmetric_key(symmetric_key, @values[:users], @private_key)
  end
  result
end

#encrypt_with(private_key) ⇒ Object



15
16
17
18
# File 'lib/duse/client/secret.rb', line 15

def encrypt_with(private_key)
  @private_key = private_key
  self
end