class Zip::TraditionalEncrypter
Public Instance Methods
data_descriptor(crc32, compressed_size, uncomprssed_size)
click to toggle source
# File lib/zip/crypto/traditional_encryption.rb, line 56 def data_descriptor(crc32, compressed_size, uncomprssed_size) [0x08074b50, crc32, compressed_size, uncomprssed_size].pack('VVVV') end
encrypt(data)
click to toggle source
# File lib/zip/crypto/traditional_encryption.rb, line 52 def encrypt(data) data.unpack('C*').map { |x| encode x }.pack('C*') end
header(mtime)
click to toggle source
# File lib/zip/crypto/traditional_encryption.rb, line 42 def header(mtime) [].tap do |header| (header_bytesize - 2).times do header << Random.rand(0..255) end header << (mtime.to_binary_dos_time & 0xff) header << (mtime.to_binary_dos_time >> 8) end.map { |x| encode x }.pack('C*') end
reset!()
click to toggle source
# File lib/zip/crypto/traditional_encryption.rb, line 60 def reset! reset_keys! end
Private Instance Methods
encode(num)
click to toggle source
# File lib/zip/crypto/traditional_encryption.rb, line 66 def encode(num) t = decrypt_byte update_keys(num.chr) t ^ num end