Module: Match::Encryption
- Defined in:
- match/lib/match/encryption.rb,
match/lib/match/encryption/openssl.rb,
match/lib/match/encryption/interface.rb,
match/lib/match/encryption/encryption.rb
Defined Under Namespace
Classes: EncryptionV1, EncryptionV2, Interface, MatchDataEncryption, MatchFileEncryption, OpenSSL
Class Method Summary collapse
- .backends ⇒ Object
-
.for_storage_mode(storage_mode, params) ⇒ Object
Returns the class to be used for a given ‘storage_mode`.
- .register_backend(type: nil, encryption_class: nil, &configurator) ⇒ Object
Class Method Details
.backends ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'match/lib/match/encryption.rb', line 8 def backends @backends ||= { "git" => lambda { |params| # OpenSSL is storage agnostic so this maps git_url # to keychain_name for the name of the keychain entry params[:keychain_name] = params[:git_url] return Encryption::OpenSSL.configure(params) }, "google_cloud" => lambda { |params| return nil }, "s3" => lambda { |params| params[:keychain_name] = params[:s3_bucket] return params[:s3_skip_encryption] ? nil : Encryption::OpenSSL.configure(params) }, "gitlab_secure_files" => lambda { |params| return nil } } end |
.for_storage_mode(storage_mode, params) ⇒ Object
Returns the class to be used for a given ‘storage_mode`
45 46 47 48 49 50 |
# File 'match/lib/match/encryption.rb', line 45 def for_storage_mode(storage_mode, params) configurator = backends[storage_mode.to_s] return configurator.call(params) if configurator UI.user_error!("No encryption backend for storage mode '#{storage_mode}'") end |
.register_backend(type: nil, encryption_class: nil, &configurator) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'match/lib/match/encryption.rb', line 29 def register_backend(type: nil, encryption_class: nil, &configurator) UI.user_error!("No type specified for encryption backend") if type.nil? normalized_name = type.to_s UI.("Replacing Match::Encryption backend for type '#{normalized_name}'") if backends.include?(normalized_name) if configurator @backends[normalized_name] = configurator elsif encryption_class @backends[normalized_name] = ->(params) { return encryption_class.configure(params) } else UI.user_error!("Specify either a `encryption_class` or a configuration block when registering a encryption backend") end end |