protected void writeFileInfo(ExtZipEntry entry) throws IOException { writeShort(ZIP_VERSION); // version needed to extract // general purpose bit flag - 0x0001 indicates encryption 2 bytes writeShort(entry.getFlag()); writeShort(entry.getPrimaryCompressionMethod()); // primary compression // method - // 0x63==encryption writeInt(entry.getDosTime()); // 2 bytes last mod file time + 2 bytes // last mod file date writeInt(entry.getCrc()); // 28 bytes is the encryption overhead (caused by 256-bit AES key) // 2 bytes pwVerification + 16 bytes SALT + 10 bytes AUTHENTICATION writeInt((int) entry.getCompressedSize()); // compressed size writeInt((int) entry.getSize()); // uncompressed size writeShort(entry.getName().length()); // file name length if (entry.getExtra() != null) { writeShort(entry.getExtra().length); // extra field length } else { writeShort(0); } }
protected void writeFileInfo(ExtZipEntry entry) throws IOException { writeShort(ZIP_VERSION); // version needed to extract // general purpose bit flag - 0x0001 indicates encryption 2 bytes writeShort(entry.getFlag()); writeShort(entry.getPrimaryCompressionMethod()); // primary compression // method - // 0x63==encryption writeInt(entry.getDosTime()); // 2 bytes last mod file time + 2 bytes // last mod file date writeInt(entry.getCrc()); // 28 bytes is the encryption overhead (caused by 256-bit AES key) // 2 bytes pwVerification + 16 bytes SALT + 10 bytes AUTHENTICATION writeInt((int) entry.getCompressedSize()); // compressed size writeInt((int) entry.getSize()); // uncompressed size writeShort(entry.getName().length()); // file name length if (entry.getExtra() != null) { writeShort(entry.getExtra().length); // extra field length } else { writeShort(0); } }