Sha256: 82dd0f2b3954741231df72832a55a2d7cebb831f027a6e20d8c9ff65b65b64c8

Contents?: true

Size: 692 Bytes

Versions: 11

Compression:

Stored size: 692 Bytes

Contents

# frozen_string_literal: true

require 'base64'

module  Chamber
module  EncryptionMethods
class   PublicKey
  def self.encrypt(_key, value, encryption_key)
    value            = YAML.dump(value)
    encrypted_string = encryption_key.public_encrypt(value)

    Base64.strict_encode64(encrypted_string)
  end

  def self.decrypt(_key, value, decryption_key)
    if decryption_key.nil?
      value
    else
      decoded_string    = Base64.strict_decode64(value)
      unencrypted_value = decryption_key.private_decrypt(decoded_string)

      begin
        _unserialized_value = YAML.load(unencrypted_value)
      rescue TypeError
        unencrypted_value
      end
    end
  end
end
end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
chamber-3.0.0rc1 lib/chamber/encryption_methods/public_key.rb
chamber-2.14.2 lib/chamber/encryption_methods/public_key.rb
chamber-2.14.1 lib/chamber/encryption_methods/public_key.rb
chamber-2.14.0 lib/chamber/encryption_methods/public_key.rb
chamber-2.13.1 lib/chamber/encryption_methods/public_key.rb
chamber-2.13.0 lib/chamber/encryption_methods/public_key.rb
chamber-2.12.5 lib/chamber/encryption_methods/public_key.rb
chamber-2.12.3 lib/chamber/encryption_methods/public_key.rb
chamber-2.12.2 lib/chamber/encryption_methods/public_key.rb
chamber-2.12.1 lib/chamber/encryption_methods/public_key.rb
chamber-2.12.0 lib/chamber/encryption_methods/public_key.rb