Compare commits
2 commits
1e2b240599
...
e63300e3a2
Author | SHA1 | Date | |
---|---|---|---|
e63300e3a2 | |||
9d452a6ba2 |
3 changed files with 13 additions and 9 deletions
|
@ -1,5 +1,9 @@
|
||||||
encfs-java
|
encfs-java
|
||||||
==========
|
==========
|
||||||
|
|
||||||
This branch contains a hack to cache decoded values better.
|
I made the modifications for encfs-brute. The aim was
|
||||||
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.
|
||||||
|
|
|
@ -30,24 +30,24 @@ public class EncFSPBKDF2Data
|
||||||
throws InvalidKeySpecException
|
throws InvalidKeySpecException
|
||||||
{
|
{
|
||||||
byte[] cipherSaltData = config.getSaltData();
|
byte[] cipherSaltData = config.getSaltData();
|
||||||
int keySizeInBytes = config.getConfig().getVolumeKeySizeInBits() / 8;
|
int keySizeInBits = config.getConfig().getVolumeKeySizeInBits();
|
||||||
KeySpec ks = new PBEKeySpec(password.toCharArray(), cipherSaltData,
|
KeySpec ks = new PBEKeySpec(password.toCharArray(), cipherSaltData,
|
||||||
config.getConfig().getIterationForPasswordKeyDerivationCount(),
|
config.getConfig().getIterationForPasswordKeyDerivationCount(),
|
||||||
(keySizeInBytes + EncFSVolume.IV_LENGTH_IN_BYTES) * 8
|
keySizeInBits + 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, pbkdf2Data);
|
obj = EncFSPBKDF2Data.from(config.getConfig(), pbkdf2Data);
|
||||||
obj.password = password;
|
obj.password = password;
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EncFSPBKDF2Data from(EncFSBinaryConfig config, byte[] pbkdf2Data)
|
public static EncFSPBKDF2Data from(EncFSConfig config, byte[] pbkdf2Data)
|
||||||
throws InvalidKeySpecException
|
throws InvalidKeySpecException
|
||||||
{
|
{
|
||||||
EncFSPBKDF2Data obj = new EncFSPBKDF2Data();
|
EncFSPBKDF2Data obj = new EncFSPBKDF2Data();
|
||||||
int keySizeInBytes = config.getConfig().getVolumeKeySizeInBits() / 8;
|
int keySizeInBytes = config.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,
|
||||||
|
|
|
@ -76,7 +76,7 @@ class VolumeKey {
|
||||||
EncFSPBKDF2Data pbkdf2DataObj;
|
EncFSPBKDF2Data pbkdf2DataObj;
|
||||||
try {
|
try {
|
||||||
binaryConfig = EncFSBinaryConfig.from(config);
|
binaryConfig = EncFSBinaryConfig.from(config);
|
||||||
pbkdf2DataObj = EncFSPBKDF2Data.from(binaryConfig, pbkdf2Data);
|
pbkdf2DataObj = EncFSPBKDF2Data.from(config, 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));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class DecryptInfo {
|
protected static class DecryptInfo {
|
||||||
byte[] clearVolKeyData;
|
byte[] clearVolKeyData;
|
||||||
Mac mac;
|
Mac mac;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue