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 class
PKWareExtraHeader.EncryptionAlgorithm
Encryption algorithm.static class
PKWareExtraHeader.HashAlgorithm
Hash 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.ZipShort
getCentralDirectoryLength()
Get the central data length.ZipShort
getHeaderId()
Get the header id.byte[]
getLocalFileDataData()
Get the local data.ZipShort
getLocalFileDataLength()
Get the length of the local data.void
parseFromCentralDirectoryData(byte[] data, int offset, int length)
Populate data from this array as if it was in central directory data.void
parseFromLocalFileData(byte[] data, int offset, int length)
Populate data from this array as if it was in local file data.void
setCentralDirectoryData(byte[] data)
Set the extra field data in central directory.void
setLocalFileDataData(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:
getHeaderId
in 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:
getLocalFileDataLength
in interfaceZipExtraField
- Returns:
- the length of the local data
-
getLocalFileDataData
public byte[] getLocalFileDataData()
Get the local data.- Specified by:
getLocalFileDataData
in 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:
getCentralDirectoryLength
in interfaceZipExtraField
- Returns:
- the central data length
-
getCentralDirectoryData
public byte[] getCentralDirectoryData()
Get the central data.- Specified by:
getCentralDirectoryData
in 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.ZipException
Description copied from interface:ZipExtraField
Populate data from this array as if it was in local file data.- Specified by:
parseFromLocalFileData
in 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.ZipException
Description copied from interface:ZipExtraField
Populate data from this array as if it was in central directory data.- Specified by:
parseFromCentralDirectoryData
in 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)
-
-