final BitSet plainBytes = getPlainByteFlags(); final byte xorArray[] = getEncryptionInfo().getEncryptor().getSecretKey().getEncoded(); final byte chunk[] = getChunk(); final byte plain[] = (plainBytes.isEmpty()) ? null : chunk.clone(); byte value = chunk[i]; value ^= xorArray[(xorArrayIndex++) & 0x0F]; value = rotateLeft(value, 8-3); chunk[i] = value;
final BitSet plainBytes = getPlainByteFlags(); final byte xorArray[] = getEncryptionInfo().getEncryptor().getSecretKey().getEncoded(); final byte chunk[] = getChunk(); final byte plain[] = (plainBytes.isEmpty()) ? null : chunk.clone(); byte value = chunk[i]; value ^= xorArray[(xorArrayIndex++) & 0x0F]; value = rotateLeft(value, 8-3); chunk[i] = value;
@Override public OutputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException { return new XORCipherOutputStream(dir); }
@Override public void flush() throws IOException { setNextRecordSize(0, true); super.flush(); }
@Override public XORCipherOutputStream getDataStream(OutputStream stream, int initialOffset) throws IOException, GeneralSecurityException { return new XORCipherOutputStream(stream, initialOffset); }
@Override public void setNextRecordSize(int recordSize, boolean isPlain) { if (recordEnd > 0 && !isPlain) { // encrypt last record invokeCipher((int)getPos(), true); } recordStart = (int)getTotalPos()+4; recordEnd = recordStart+recordSize; }
@Override public XORCipherOutputStream getDataStream(OutputStream stream, int initialOffset) throws IOException, GeneralSecurityException { return new XORCipherOutputStream(stream, initialOffset); }
@Override public void flush() throws IOException { setNextRecordSize(0, true); super.flush(); }
@Override public void setNextRecordSize(int recordSize, boolean isPlain) { if (recordEnd > 0 && !isPlain) { // encrypt last record invokeCipher((int)getPos(), true); } recordStart = (int)getTotalPos()+4; recordEnd = recordStart+recordSize; }
@Override public OutputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException { return new XORCipherOutputStream(dir); }