Compare commits

..

2 commits

Author SHA1 Message Date
1e2b240599 Update branch README 2015-11-09 15:20:42 +01:00
fadef46364 Dirty hack to cache decoded values better 2015-11-09 15:19:15 +01:00
3 changed files with 9 additions and 13 deletions

View file

@ -1,9 +1,5 @@
encfs-java encfs-java
========== ==========
I made the modifications for encfs-brute. The aim was This branch contains a hack to cache decoded values better.
This is to use with encfs-brute.
1. to cache decoded values better,
2. no exception throwing if the key is incorrect.
Those two items are important to improve speed.

View file

@ -30,24 +30,24 @@ public class EncFSPBKDF2Data
throws InvalidKeySpecException throws InvalidKeySpecException
{ {
byte[] cipherSaltData = config.getSaltData(); byte[] cipherSaltData = config.getSaltData();
int keySizeInBits = config.getConfig().getVolumeKeySizeInBits(); int keySizeInBytes = config.getConfig().getVolumeKeySizeInBits() / 8;
KeySpec ks = new PBEKeySpec(password.toCharArray(), cipherSaltData, KeySpec ks = new PBEKeySpec(password.toCharArray(), cipherSaltData,
config.getConfig().getIterationForPasswordKeyDerivationCount(), config.getConfig().getIterationForPasswordKeyDerivationCount(),
keySizeInBits + EncFSVolume.IV_LENGTH_IN_BYTES * 8 (keySizeInBytes + EncFSVolume.IV_LENGTH_IN_BYTES) * 8
); );
byte[] pbkdf2Data = skf.generateSecret(ks).getEncoded(); byte[] pbkdf2Data = skf.generateSecret(ks).getEncoded();
EncFSPBKDF2Data obj; EncFSPBKDF2Data obj;
obj = EncFSPBKDF2Data.from(config.getConfig(), pbkdf2Data); obj = EncFSPBKDF2Data.from(config, pbkdf2Data);
obj.password = password; obj.password = password;
return obj; return obj;
} }
public static EncFSPBKDF2Data from(EncFSConfig config, byte[] pbkdf2Data) public static EncFSPBKDF2Data from(EncFSBinaryConfig config, byte[] pbkdf2Data)
throws InvalidKeySpecException throws InvalidKeySpecException
{ {
EncFSPBKDF2Data obj = new EncFSPBKDF2Data(); EncFSPBKDF2Data obj = new EncFSPBKDF2Data();
int keySizeInBytes = config.getVolumeKeySizeInBits() / 8; int keySizeInBytes = config.getConfig().getVolumeKeySizeInBits() / 8;
obj.pbkdf2Data = pbkdf2Data; obj.pbkdf2Data = pbkdf2Data;
obj.passKeyData = Arrays.copyOfRange(pbkdf2Data, 0, keySizeInBytes); obj.passKeyData = Arrays.copyOfRange(pbkdf2Data, 0, keySizeInBytes);
obj.passIvData = Arrays.copyOfRange(pbkdf2Data, keySizeInBytes, obj.passIvData = Arrays.copyOfRange(pbkdf2Data, keySizeInBytes,

View file

@ -76,7 +76,7 @@ class VolumeKey {
EncFSPBKDF2Data pbkdf2DataObj; EncFSPBKDF2Data pbkdf2DataObj;
try { try {
binaryConfig = EncFSBinaryConfig.from(config); binaryConfig = EncFSBinaryConfig.from(config);
pbkdf2DataObj = EncFSPBKDF2Data.from(config, pbkdf2Data); pbkdf2DataObj = EncFSPBKDF2Data.from(binaryConfig, pbkdf2Data);
} catch (Exception e) { } catch (Exception e) {
throw new EncFSInvalidConfigException(e); throw new EncFSInvalidConfigException(e);
} }
@ -212,7 +212,7 @@ class VolumeKey {
config.setBase64EncodedVolumeKey(EncFSBase64.encodeBytes(encodedVolKey)); config.setBase64EncodedVolumeKey(EncFSBase64.encodeBytes(encodedVolKey));
} }
protected static class DecryptInfo { private static class DecryptInfo {
byte[] clearVolKeyData; byte[] clearVolKeyData;
Mac mac; Mac mac;
} }