Class: Evervault::Crypto::Client
- Inherits:
-
Object
- Object
- Evervault::Crypto::Client
- Defined in:
- lib/evervault/crypto/client.rb
Instance Attribute Summary collapse
-
#request_handler ⇒ Object
readonly
Returns the value of attribute request_handler.
Instance Method Summary collapse
- #encrypt(data) ⇒ Object
-
#initialize(request_handler:, curve:) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(request_handler:, curve:) ⇒ Client
Returns a new instance of Client.
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/evervault/crypto/client.rb', line 13 def initialize(request_handler:, curve:) @curve = curve @p256 = Evervault::Crypto::Curves::P256.new() @ev_version = base_64_remove_padding( Base64.strict_encode64(EV_VERSION[curve]) ) response = request_handler.get("cages/key") key = @curve == 'secp256k1' ? 'ecdhKey' : 'ecdhP256Key' @team_key = response[key] end |
Instance Attribute Details
#request_handler ⇒ Object (readonly)
Returns the value of attribute request_handler.
12 13 14 |
# File 'lib/evervault/crypto/client.rb', line 12 def request_handler @request_handler end |
Instance Method Details
#encrypt(data) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/evervault/crypto/client.rb', line 24 def encrypt(data) raise Evervault::Errors::UndefinedDataError.new( "Data is required for encryption" ) if data.nil? || (data.instance_of?(String) && data.empty?) raise Evervault::Errors::UnsupportedEncryptType.new( "Encryption is not supported for #{data.class}" ) if !(encryptable_data?(data) || data.instance_of?(Hash) || data.instance_of?(Array)) traverse_and_encrypt(data) end |