lib/new_relic/agent/obfuscator.rb in newrelic_rpm-8.2.0 vs lib/new_relic/agent/obfuscator.rb in newrelic_rpm-8.3.0

- old
+ new

@@ -1,49 +1,47 @@ # encoding: utf-8 # This file is distributed under New Relic's license terms. # See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details. -#require 'base64' +# require 'base64' module NewRelic module Agent class Obfuscator - attr_reader :key_bytes EMPTY_KEY_BYTES = [0] PACK_FORMAT = 'm' # RUM uses a shortened key, so just trim it up front - def initialize(key, length=nil) + def initialize(key, length = nil) if key.nil? || key.empty? @key_bytes = EMPTY_KEY_BYTES else @key_bytes = key.bytes.to_a @key_bytes = @key_bytes.first(length) if length end end def obfuscate(text) - [ encode(text) ].pack(PACK_FORMAT).gsub(/\n/, '') + [encode(text)].pack(PACK_FORMAT).gsub(/\n/, '') end def deobfuscate(text) - encode(text.unpack(PACK_FORMAT).first ) + encode(text.unpack(PACK_FORMAT).first) end def encode(text) return text unless key_bytes encoded = "" - encoded.force_encoding('binary') if encoded.respond_to?( :force_encoding ) + encoded.force_encoding('binary') if encoded.respond_to?(:force_encoding) index = 0 text.each_byte do |byte| encoded.concat((byte ^ key_bytes[index % key_bytes.length])) - index+=1 + index += 1 end encoded end - end end end