# File lib/prawn/security.rb, line 109 def self.encrypt_string(str, key, id, gen) # Convert ID and Gen number into little-endian truncated byte strings id = [id].pack('V')[0,3] gen = [gen].pack('V')[0,2] extended_key = "#{key}#{id}#{gen}" # Compute the RC4 key from the extended key and perform the encryption rc4_key = Digest::MD5.digest(extended_key)[0, 10] Arcfour.new(rc4_key).encrypt(str) end