1package IO::Compress::Zip::Constants; 2 3use strict ; 4use warnings; 5 6require Exporter; 7 8our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS); 9 10$VERSION = '2.212'; 11 12@ISA = qw(Exporter); 13 14@EXPORT= qw( 15 16 ZIP_CM_STORE 17 ZIP_CM_DEFLATE 18 ZIP_CM_BZIP2 19 ZIP_CM_LZMA 20 ZIP_CM_PPMD 21 ZIP_CM_XZ 22 ZIP_CM_ZSTD 23 ZIP_CM_AES 24 25 ZIP_LOCAL_HDR_SIG 26 ZIP_DATA_HDR_SIG 27 ZIP_CENTRAL_HDR_SIG 28 ZIP_END_CENTRAL_HDR_SIG 29 ZIP64_END_CENTRAL_REC_HDR_SIG 30 ZIP64_END_CENTRAL_LOC_HDR_SIG 31 ZIP64_ARCHIVE_EXTRA_SIG 32 ZIP64_DIGITAL_SIGNATURE_SIG 33 34 ZIP_GP_FLAG_ENCRYPTED_MASK 35 ZIP_GP_FLAG_STREAMING_MASK 36 ZIP_GP_FLAG_PATCHED_MASK 37 ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK 38 ZIP_GP_FLAG_LZMA_EOS_PRESENT 39 ZIP_GP_FLAG_LANGUAGE_ENCODING 40 41 ZIP_EXTRA_ID_ZIP64 42 ZIP_EXTRA_ID_EXT_TIMESTAMP 43 ZIP_EXTRA_ID_INFO_ZIP_UNIX2 44 ZIP_EXTRA_ID_INFO_ZIP_UNIXN 45 ZIP_EXTRA_ID_INFO_ZIP_Upath 46 ZIP_EXTRA_ID_INFO_ZIP_Ucom 47 ZIP_EXTRA_ID_JAVA_EXE 48 49 ZIP_OS_CODE_UNIX 50 ZIP_OS_CODE_DEFAULT 51 52 ZIP_IFA_TEXT_MASK 53 54 %ZIP_CM_MIN_VERSIONS 55 ZIP64_MIN_VERSION 56 57 ZIP_A_RONLY 58 ZIP_A_HIDDEN 59 ZIP_A_SYSTEM 60 ZIP_A_LABEL 61 ZIP_A_DIR 62 ZIP_A_ARCHIVE 63 ); 64 65# Compression types supported 66use constant ZIP_CM_STORE => 0 ; 67use constant ZIP_CM_DEFLATE => 8 ; 68use constant ZIP_CM_BZIP2 => 12 ; 69use constant ZIP_CM_LZMA => 14 ; 70use constant ZIP_CM_ZSTD => 93 ; 71use constant ZIP_CM_XZ => 95 ; 72use constant ZIP_CM_PPMD => 98 ; # Not Supported yet 73use constant ZIP_CM_AES => 99 ; 74 75# General Purpose Flag 76use constant ZIP_GP_FLAG_ENCRYPTED_MASK => (1 << 0) ; 77use constant ZIP_GP_FLAG_STREAMING_MASK => (1 << 3) ; 78use constant ZIP_GP_FLAG_PATCHED_MASK => (1 << 5) ; 79use constant ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK => (1 << 6) ; 80use constant ZIP_GP_FLAG_LZMA_EOS_PRESENT => (1 << 1) ; 81use constant ZIP_GP_FLAG_LANGUAGE_ENCODING => (1 << 11) ; 82 83# Internal File Attributes 84use constant ZIP_IFA_TEXT_MASK => 1; 85 86# Signatures for each of the headers 87use constant ZIP_LOCAL_HDR_SIG => 0x04034b50; 88use constant ZIP_DATA_HDR_SIG => 0x08074b50; 89use constant packed_ZIP_DATA_HDR_SIG => pack "V", ZIP_DATA_HDR_SIG; 90use constant ZIP_CENTRAL_HDR_SIG => 0x02014b50; 91use constant ZIP_END_CENTRAL_HDR_SIG => 0x06054b50; 92use constant ZIP64_END_CENTRAL_REC_HDR_SIG => 0x06064b50; 93use constant ZIP64_END_CENTRAL_LOC_HDR_SIG => 0x07064b50; 94use constant ZIP64_ARCHIVE_EXTRA_SIG => 0x08064b50; 95use constant ZIP64_DIGITAL_SIGNATURE_SIG => 0x05054b50; 96 97use constant ZIP_OS_CODE_UNIX => 3; 98use constant ZIP_OS_CODE_DEFAULT => 3; 99 100# Extra Field ID's 101use constant ZIP_EXTRA_ID_ZIP64 => pack "v", 1; 102use constant ZIP_EXTRA_ID_EXT_TIMESTAMP => "UT"; 103use constant ZIP_EXTRA_ID_INFO_ZIP_UNIX2 => "Ux"; 104use constant ZIP_EXTRA_ID_INFO_ZIP_UNIXN => "ux"; 105use constant ZIP_EXTRA_ID_INFO_ZIP_Upath => "up"; 106use constant ZIP_EXTRA_ID_INFO_ZIP_Ucom => "uc"; 107use constant ZIP_EXTRA_ID_JAVA_EXE => pack "v", 0xCAFE; 108 109# DOS Attributes 110use constant ZIP_A_RONLY => 0x01; 111use constant ZIP_A_HIDDEN => 0x02; 112use constant ZIP_A_SYSTEM => 0x04; 113use constant ZIP_A_LABEL => 0x08; 114use constant ZIP_A_DIR => 0x10; 115use constant ZIP_A_ARCHIVE => 0x20; 116 117use constant ZIP64_MIN_VERSION => 45; 118 119%ZIP_CM_MIN_VERSIONS = ( 120 ZIP_CM_STORE() => 20, 121 ZIP_CM_DEFLATE() => 20, 122 ZIP_CM_BZIP2() => 46, 123 ZIP_CM_LZMA() => 63, 124 ZIP_CM_PPMD() => 63, 125 ZIP_CM_ZSTD() => 20, # Winzip needs these to be 20 126 ZIP_CM_XZ() => 20, 127 ); 128 129 1301; 131 132__END__ 133