use of org.syncany.crypto.CipherSession in project syncany by syncany.
the class CipherTransformer method initCipherSession.
private void initCipherSession(String masterKeyStr, String masterKeySaltStr) {
byte[] masterKeySalt = StringUtil.fromHex(masterKeySaltStr);
byte[] masterKeyBytes = StringUtil.fromHex(masterKeyStr);
SaltedSecretKey masterKey = new SaltedSecretKey(new SecretKeySpec(masterKeyBytes, "RAW"), masterKeySalt);
cipherSession = new CipherSession(masterKey);
}
use of org.syncany.crypto.CipherSession in project syncany by syncany.
the class CipherSessionTest method testCipherSessionWriteKeyReuseCountOfTwo.
@Test
public void testCipherSessionWriteKeyReuseCountOfTwo() throws Exception {
SaltedSecretKey masterKey = createDummyMasterKey();
CipherSession cipherSession = new CipherSession(masterKey, 999, 2);
CipherSpec cipherSpecAes128 = CipherSpecs.getCipherSpec(CipherSpecs.AES_128_GCM);
CipherSpec cipherSpecTwofish128 = CipherSpecs.getCipherSpec(CipherSpecs.TWOFISH_128_GCM);
SaltedSecretKey writeSecretKey1Aes128 = cipherSession.getWriteSecretKey(cipherSpecAes128);
SaltedSecretKey writeSecretKey2Aes128 = cipherSession.getWriteSecretKey(cipherSpecAes128);
SaltedSecretKey writeSecretKey3Aes128 = cipherSession.getWriteSecretKey(cipherSpecAes128);
SaltedSecretKey writeSecretKey1Twofish128 = cipherSession.getWriteSecretKey(cipherSpecTwofish128);
SaltedSecretKey writeSecretKey2Twofish128 = cipherSession.getWriteSecretKey(cipherSpecTwofish128);
SaltedSecretKey writeSecretKey3Twofish128 = cipherSession.getWriteSecretKey(cipherSpecTwofish128);
assertEquals(writeSecretKey1Aes128, writeSecretKey2Aes128);
assertNotSame(writeSecretKey1Aes128, writeSecretKey3Aes128);
assertEquals(writeSecretKey1Twofish128, writeSecretKey2Twofish128);
assertNotSame(writeSecretKey1Twofish128, writeSecretKey3Twofish128);
assertNotSame(writeSecretKey1Aes128, writeSecretKey1Twofish128);
}
use of org.syncany.crypto.CipherSession in project syncany by syncany.
the class CipherSessionTest method testCipherSessionReadKeyCacheSizeOfThree.
@Test
public void testCipherSessionReadKeyCacheSizeOfThree() throws Exception {
SaltedSecretKey masterKey = createDummyMasterKey();
CipherSession cipherSession = new CipherSession(masterKey, 2, 999);
CipherSpec cipherSpecAes128 = CipherSpecs.getCipherSpec(CipherSpecs.AES_128_GCM);
byte[] readKeySalt1 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());
byte[] readKeySalt2 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());
byte[] readKeySalt3 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());
SaltedSecretKey readSecretKey1Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt1);
SaltedSecretKey readSecretKey2Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt2);
SaltedSecretKey readSecretKey3Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt3);
assertNotSame(readSecretKey1Aes128, readSecretKey2Aes128);
assertNotSame(readSecretKey1Aes128, readSecretKey3Aes128);
assertNotSame(readSecretKey2Aes128, readSecretKey3Aes128);
// TODO [medium] This does NOT TEST the actual read cache. How to test this. The cache is completely hidden/private?!
}
Aggregations