org.apache.poi.hssf.record.crypto
Class Biff8DecryptingStream
java.lang.Object
org.apache.poi.hssf.record.crypto.Biff8DecryptingStream
- All Implemented Interfaces:
- BiffHeaderInput, LittleEndianInput
public final class Biff8DecryptingStream
- extends java.lang.Object
- implements BiffHeaderInput, LittleEndianInput
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RC4_REKEYING_INTERVAL
public static final int RC4_REKEYING_INTERVAL
- See Also:
- Constant Field Values
Biff8DecryptingStream
public Biff8DecryptingStream(java.io.InputStream in,
int initialOffset,
EncryptionInfo info)
throws RecordFormatException
- Throws:
RecordFormatException
available
public int available()
- Specified by:
available
in interface BiffHeaderInput
- Specified by:
available
in interface LittleEndianInput
- Returns:
- the available bytes
readRecordSID
public int readRecordSID()
- Reads an unsigned short value without decrypting
- Specified by:
readRecordSID
in interface BiffHeaderInput
- Returns:
- the record sid
readDataSize
public int readDataSize()
- Reads an unsigned short value without decrypting
- Specified by:
readDataSize
in interface BiffHeaderInput
- Returns:
- the data size
readDouble
public double readDouble()
- Specified by:
readDouble
in interface LittleEndianInput
readFully
public void readFully(byte[] buf)
- Specified by:
readFully
in interface LittleEndianInput
readFully
public void readFully(byte[] buf,
int off,
int len)
- Specified by:
readFully
in interface LittleEndianInput
readUByte
public int readUByte()
- Specified by:
readUByte
in interface LittleEndianInput
readByte
public byte readByte()
- Specified by:
readByte
in interface LittleEndianInput
readUShort
public int readUShort()
- Specified by:
readUShort
in interface LittleEndianInput
readShort
public short readShort()
- Specified by:
readShort
in interface LittleEndianInput
readInt
public int readInt()
- Specified by:
readInt
in interface LittleEndianInput
readLong
public long readLong()
- Specified by:
readLong
in interface LittleEndianInput
getPosition
public long getPosition()
- Returns:
- the absolute position in the stream
isNeverEncryptedRecord
public static boolean isNeverEncryptedRecord(int sid)
- TODO: Additionally, the lbPlyPos (position_of_BOF) field of the BoundSheet8 record MUST NOT be encrypted.
- Returns:
true
if record type specified by sid is never encrypted
readPlain
public void readPlain(byte[] b,
int off,
int len)
- Description copied from interface:
LittleEndianInput
- Usually acts the same as
LittleEndianInput.readFully(byte[], int, int)
, but
for an encrypted stream the raw (unencrypted) data is filled
- Specified by:
readPlain
in interface LittleEndianInput
- Parameters:
b
- the byte array to receive the bytesoff
- the start offset into the byte arraylen
- the amount of bytes to fill