Class PKWareExtraHeader
java.lang.Object
org.apache.commons.compress.archivers.zip.PKWareExtraHeader
- All Implemented Interfaces:
ZipExtraField
- Direct Known Subclasses:
X0014_X509Certificates,X0015_CertificateIdForFile,X0016_CertificateIdForCentralDirectory,X0017_StrongEncryptionHeader,X0019_EncryptionRecipientCertificateList
Base class for all PKWare strong crypto extra headers.
This base class acts as a marker so you know you can ignore all extra fields that extend this class if you are not interested in the meta data of PKWare strong encryption.
Algorithm IDs - integer identifier of the encryption algorithm from the following range- 0x6601 - DES
- 0x6602 - RC2 (version needed to extract < 5.2)
- 0x6603 - 3DES 168
- 0x6609 - 3DES 112
- 0x660E - AES 128
- 0x660F - AES 192
- 0x6610 - AES 256
- 0x6702 - RC2 (version needed to extract >= 5.2)
- 0x6720 - Blowfish
- 0x6721 - Twofish
- 0x6801 - RC4
- 0xFFFF - Unknown algorithm
- 0x0000 - none
- 0x0001 - CRC32
- 0x8003 - MD5
- 0x8004 - SHA1
- 0x8007 - RIPEMD160
- 0x800C - SHA256
- 0x800D - SHA384
- 0x800E - SHA512
- Since:
- 1.11
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEncryption algorithm.static enumHash Algorithm -
Field Summary
Fields inherited from interface org.apache.commons.compress.archivers.zip.ZipExtraField
EXTRAFIELD_HEADER_SIZE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidassertMinimalLength(int minimum, int length) byte[]Gets the central data.Gets the central data length.Gets the header id.byte[]Gets the local data.Gets the length of the local data.voidparseFromCentralDirectoryData(byte[] data, int offset, int length) Populate data from this array as if it was in central directory data.voidparseFromLocalFileData(byte[] data, int offset, int length) Populate data from this array as if it was in local file data.voidsetCentralDirectoryData(byte[] data) Sets the extra field data in central directory.voidsetLocalFileDataData(byte[] data) Sets the extra field data in the local file data - without Header-ID or length specifier.
-
Constructor Details
-
PKWareExtraHeader
-
-
Method Details
-
assertMinimalLength
- Throws:
ZipException
-
getCentralDirectoryData
Gets the central data.- Specified by:
getCentralDirectoryDatain interfaceZipExtraField- Returns:
- the central data if present, else return the local file data
-
getCentralDirectoryLength
Gets the central data length. If there is no central data, get the local file data length.- Specified by:
getCentralDirectoryLengthin interfaceZipExtraField- Returns:
- the central data length
-
getHeaderId
Gets the header id.- Specified by:
getHeaderIdin interfaceZipExtraField- Returns:
- the header id
-
getLocalFileDataData
Gets the local data.- Specified by:
getLocalFileDataDatain interfaceZipExtraField- Returns:
- the local data
-
getLocalFileDataLength
Gets the length of the local data.- Specified by:
getLocalFileDataLengthin interfaceZipExtraField- Returns:
- the length of the local data
-
parseFromCentralDirectoryData
Description copied from interface:ZipExtraFieldPopulate data from this array as if it was in central directory data.- Specified by:
parseFromCentralDirectoryDatain interfaceZipExtraField- Parameters:
data- the array of bytes.offset- the source location in the data array.length- the number of bytes to use in the data array.- Throws:
ZipException- on error- See Also:
-
parseFromLocalFileData
Description copied from interface:ZipExtraFieldPopulate data from this array as if it was in local file data.- Specified by:
parseFromLocalFileDatain interfaceZipExtraField- Parameters:
data- the array of bytes.offset- the source location in the data array.length- the number of bytes to use in the data array.- Throws:
ZipException- on error- See Also:
-
setCentralDirectoryData
Sets the extra field data in central directory.- Parameters:
data- the data to use
-
setLocalFileDataData
Sets the extra field data in the local file data - without Header-ID or length specifier.- Parameters:
data- the field data to use
-