Method: Rex::Zip::CentralDir#pack

Defined in:
lib/rex/zip/blocks.rb

#packObject



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/rex/zip/blocks.rb', line 118

def pack
  if @entry.central_dir_name.blank?
    path = @entry.relative_path
  else
    path = @entry.central_dir_path
  end

  ret = [ SIGNATURE, ZIP_VERSION ].pack('Vv')
  ret << [ ZIP_VERSION ].pack('v')
  ret << @entry.flags.pack
  ret << @entry.info.pack
  arr = []
  arr << path.length
  arr << @entry.xtra.length
  arr << @entry.comment.length
  arr << @disknum_start
  arr << @attr_int
  arr << @entry.attrs
  arr << @hdr_offset
  ret << arr.pack('vvvvvVV')
  ret << path
  ret << @entry.xtra
  ret << @entry.comment
  # digital signature not supported
  ret
end