Class: Growthbook::DecryptionUtil
- Inherits:
-
Object
- Object
- Growthbook::DecryptionUtil
- Defined in:
- lib/growthbook/decryption_util.rb
Overview
Utils for working with encrypted feature payloads.
Class Method Summary collapse
-
.decrypt(payload, key:) ⇒ String?
The decrypted payload, or nil if it fails to decrypt.
Class Method Details
.decrypt(payload, key:) ⇒ String?
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/growthbook/decryption_util.rb', line 10 def self.decrypt(payload, key:) return nil if payload.nil? return nil unless payload.include?('.') parts = payload.split('.') return nil if parts.length != 2 iv = parts[0] decoded_iv = Base64.strict_decode64(iv) decoded_key = Base64.strict_decode64(key) cipher_text = parts[1] decoded_cipher_text = Base64.strict_decode64(cipher_text) cipher = OpenSSL::Cipher.new('aes-128-cbc') cipher.decrypt cipher.key = decoded_key cipher.iv = decoded_iv cipher.update(decoded_cipher_text) + cipher.final rescue StandardError nil end |