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
public abstract class PKWareExtraHeader extends java.lang.Object implements ZipExtraField
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 Classes Modifier and Type Class Description static classPKWareExtraHeader.EncryptionAlgorithmEncryption algorithm.static classPKWareExtraHeader.HashAlgorithmHash Algorithm
-
Field Summary
-
Fields inherited from interface org.apache.commons.compress.archivers.zip.ZipExtraField
EXTRAFIELD_HEADER_SIZE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]getCentralDirectoryData()Get the central data.ZipShortgetCentralDirectoryLength()Get the central data length.ZipShortgetHeaderId()Get the header id.byte[]getLocalFileDataData()Get the local data.ZipShortgetLocalFileDataLength()Get 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)Set the extra field data in central directory.voidsetLocalFileDataData(byte[] data)Set the extra field data in the local file data - without Header-ID or length specifier.
-
-
-
Method Detail
-
getHeaderId
public ZipShort getHeaderId()
Get the header id.- Specified by:
getHeaderIdin interfaceZipExtraField- Returns:
- the header id
-
setLocalFileDataData
public void setLocalFileDataData(byte[] data)
Set the extra field data in the local file data - without Header-ID or length specifier.- Parameters:
data- the field data to use
-
getLocalFileDataLength
public ZipShort getLocalFileDataLength()
Get the length of the local data.- Specified by:
getLocalFileDataLengthin interfaceZipExtraField- Returns:
- the length of the local data
-
getLocalFileDataData
public byte[] getLocalFileDataData()
Get the local data.- Specified by:
getLocalFileDataDatain interfaceZipExtraField- Returns:
- the local data
-
setCentralDirectoryData
public void setCentralDirectoryData(byte[] data)
Set the extra field data in central directory.- Parameters:
data- the data to use
-
getCentralDirectoryLength
public ZipShort getCentralDirectoryLength()
Get 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
-
getCentralDirectoryData
public byte[] getCentralDirectoryData()
Get the central data.- Specified by:
getCentralDirectoryDatain interfaceZipExtraField- Returns:
- the central data if present, else return the local file data
-
parseFromLocalFileData
public void parseFromLocalFileData(byte[] data, int offset, int length) throws java.util.zip.ZipExceptionDescription 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:
java.util.zip.ZipException- on error- See Also:
ZipExtraField.parseFromLocalFileData(byte[], int, int)
-
parseFromCentralDirectoryData
public void parseFromCentralDirectoryData(byte[] data, int offset, int length) throws java.util.zip.ZipExceptionDescription 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:
java.util.zip.ZipException- on error- See Also:
ZipExtraField.parseFromCentralDirectoryData(byte[], int, int)
-
-