1b39c5158Smillertpackage IO::Compress::Zip::Constants; 2b39c5158Smillert 3b39c5158Smillertuse strict ; 4b39c5158Smillertuse warnings; 5b39c5158Smillert 6b39c5158Smillertrequire Exporter; 7b39c5158Smillert 8b39c5158Smillertour ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS); 9b39c5158Smillert 10*3d61058aSafresh1$VERSION = '2.212'; 11b39c5158Smillert 12b39c5158Smillert@ISA = qw(Exporter); 13b39c5158Smillert 14b39c5158Smillert@EXPORT= qw( 15b39c5158Smillert 16b39c5158Smillert ZIP_CM_STORE 17b39c5158Smillert ZIP_CM_DEFLATE 18b39c5158Smillert ZIP_CM_BZIP2 19b39c5158Smillert ZIP_CM_LZMA 20b39c5158Smillert ZIP_CM_PPMD 21eac174f2Safresh1 ZIP_CM_XZ 22eac174f2Safresh1 ZIP_CM_ZSTD 23eac174f2Safresh1 ZIP_CM_AES 24b39c5158Smillert 25b39c5158Smillert ZIP_LOCAL_HDR_SIG 26b39c5158Smillert ZIP_DATA_HDR_SIG 27b39c5158Smillert ZIP_CENTRAL_HDR_SIG 28b39c5158Smillert ZIP_END_CENTRAL_HDR_SIG 29b39c5158Smillert ZIP64_END_CENTRAL_REC_HDR_SIG 30b39c5158Smillert ZIP64_END_CENTRAL_LOC_HDR_SIG 31b39c5158Smillert ZIP64_ARCHIVE_EXTRA_SIG 32b39c5158Smillert ZIP64_DIGITAL_SIGNATURE_SIG 33b39c5158Smillert 34b39c5158Smillert ZIP_GP_FLAG_ENCRYPTED_MASK 35b39c5158Smillert ZIP_GP_FLAG_STREAMING_MASK 36b39c5158Smillert ZIP_GP_FLAG_PATCHED_MASK 37b39c5158Smillert ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK 38b39c5158Smillert ZIP_GP_FLAG_LZMA_EOS_PRESENT 39b39c5158Smillert ZIP_GP_FLAG_LANGUAGE_ENCODING 40b39c5158Smillert 41b39c5158Smillert ZIP_EXTRA_ID_ZIP64 42b39c5158Smillert ZIP_EXTRA_ID_EXT_TIMESTAMP 43b39c5158Smillert ZIP_EXTRA_ID_INFO_ZIP_UNIX2 44898184e3Ssthen ZIP_EXTRA_ID_INFO_ZIP_UNIXN 45898184e3Ssthen ZIP_EXTRA_ID_INFO_ZIP_Upath 46898184e3Ssthen ZIP_EXTRA_ID_INFO_ZIP_Ucom 47b39c5158Smillert ZIP_EXTRA_ID_JAVA_EXE 48b39c5158Smillert 49b39c5158Smillert ZIP_OS_CODE_UNIX 50b39c5158Smillert ZIP_OS_CODE_DEFAULT 51b39c5158Smillert 52b39c5158Smillert ZIP_IFA_TEXT_MASK 53b39c5158Smillert 54b39c5158Smillert %ZIP_CM_MIN_VERSIONS 55b39c5158Smillert ZIP64_MIN_VERSION 56b39c5158Smillert 57898184e3Ssthen ZIP_A_RONLY 58898184e3Ssthen ZIP_A_HIDDEN 59898184e3Ssthen ZIP_A_SYSTEM 60898184e3Ssthen ZIP_A_LABEL 61898184e3Ssthen ZIP_A_DIR 62898184e3Ssthen ZIP_A_ARCHIVE 63b39c5158Smillert ); 64b39c5158Smillert 65b39c5158Smillert# Compression types supported 66b39c5158Smillertuse constant ZIP_CM_STORE => 0 ; 67b39c5158Smillertuse constant ZIP_CM_DEFLATE => 8 ; 68b39c5158Smillertuse constant ZIP_CM_BZIP2 => 12 ; 69eac174f2Safresh1use constant ZIP_CM_LZMA => 14 ; 70eac174f2Safresh1use constant ZIP_CM_ZSTD => 93 ; 71eac174f2Safresh1use constant ZIP_CM_XZ => 95 ; 72b39c5158Smillertuse constant ZIP_CM_PPMD => 98 ; # Not Supported yet 73eac174f2Safresh1use constant ZIP_CM_AES => 99 ; 74b39c5158Smillert 75b39c5158Smillert# General Purpose Flag 76b39c5158Smillertuse constant ZIP_GP_FLAG_ENCRYPTED_MASK => (1 << 0) ; 77b39c5158Smillertuse constant ZIP_GP_FLAG_STREAMING_MASK => (1 << 3) ; 78b39c5158Smillertuse constant ZIP_GP_FLAG_PATCHED_MASK => (1 << 5) ; 79b39c5158Smillertuse constant ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK => (1 << 6) ; 80b39c5158Smillertuse constant ZIP_GP_FLAG_LZMA_EOS_PRESENT => (1 << 1) ; 81b39c5158Smillertuse constant ZIP_GP_FLAG_LANGUAGE_ENCODING => (1 << 11) ; 82b39c5158Smillert 83b39c5158Smillert# Internal File Attributes 84b39c5158Smillertuse constant ZIP_IFA_TEXT_MASK => 1; 85b39c5158Smillert 86b39c5158Smillert# Signatures for each of the headers 87b39c5158Smillertuse constant ZIP_LOCAL_HDR_SIG => 0x04034b50; 88b39c5158Smillertuse constant ZIP_DATA_HDR_SIG => 0x08074b50; 89898184e3Ssthenuse constant packed_ZIP_DATA_HDR_SIG => pack "V", ZIP_DATA_HDR_SIG; 90b39c5158Smillertuse constant ZIP_CENTRAL_HDR_SIG => 0x02014b50; 91b39c5158Smillertuse constant ZIP_END_CENTRAL_HDR_SIG => 0x06054b50; 92b39c5158Smillertuse constant ZIP64_END_CENTRAL_REC_HDR_SIG => 0x06064b50; 93b39c5158Smillertuse constant ZIP64_END_CENTRAL_LOC_HDR_SIG => 0x07064b50; 94b39c5158Smillertuse constant ZIP64_ARCHIVE_EXTRA_SIG => 0x08064b50; 95b39c5158Smillertuse constant ZIP64_DIGITAL_SIGNATURE_SIG => 0x05054b50; 96b39c5158Smillert 97b39c5158Smillertuse constant ZIP_OS_CODE_UNIX => 3; 98b39c5158Smillertuse constant ZIP_OS_CODE_DEFAULT => 3; 99b39c5158Smillert 100b39c5158Smillert# Extra Field ID's 101b39c5158Smillertuse constant ZIP_EXTRA_ID_ZIP64 => pack "v", 1; 102b39c5158Smillertuse constant ZIP_EXTRA_ID_EXT_TIMESTAMP => "UT"; 103b39c5158Smillertuse constant ZIP_EXTRA_ID_INFO_ZIP_UNIX2 => "Ux"; 104898184e3Ssthenuse constant ZIP_EXTRA_ID_INFO_ZIP_UNIXN => "ux"; 105898184e3Ssthenuse constant ZIP_EXTRA_ID_INFO_ZIP_Upath => "up"; 106898184e3Ssthenuse constant ZIP_EXTRA_ID_INFO_ZIP_Ucom => "uc"; 107b39c5158Smillertuse constant ZIP_EXTRA_ID_JAVA_EXE => pack "v", 0xCAFE; 108b39c5158Smillert 109898184e3Ssthen# DOS Attributes 110898184e3Ssthenuse constant ZIP_A_RONLY => 0x01; 111898184e3Ssthenuse constant ZIP_A_HIDDEN => 0x02; 112898184e3Ssthenuse constant ZIP_A_SYSTEM => 0x04; 113898184e3Ssthenuse constant ZIP_A_LABEL => 0x08; 114898184e3Ssthenuse constant ZIP_A_DIR => 0x10; 115898184e3Ssthenuse constant ZIP_A_ARCHIVE => 0x20; 116898184e3Ssthen 117b39c5158Smillertuse constant ZIP64_MIN_VERSION => 45; 118b39c5158Smillert 119b39c5158Smillert%ZIP_CM_MIN_VERSIONS = ( 120b39c5158Smillert ZIP_CM_STORE() => 20, 121b39c5158Smillert ZIP_CM_DEFLATE() => 20, 122b39c5158Smillert ZIP_CM_BZIP2() => 46, 123b39c5158Smillert ZIP_CM_LZMA() => 63, 124898184e3Ssthen ZIP_CM_PPMD() => 63, 125eac174f2Safresh1 ZIP_CM_ZSTD() => 20, # Winzip needs these to be 20 126eac174f2Safresh1 ZIP_CM_XZ() => 20, 127b39c5158Smillert ); 128b39c5158Smillert 129b39c5158Smillert 130b39c5158Smillert1; 131b39c5158Smillert 132b39c5158Smillert__END__ 133