xref: /openbsd-src/gnu/usr.bin/perl/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
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